// Path: sdk/src/com/sharethis/loopy/sdk/util/JSONUtils.java
// public class JSONUtils {
// 
//     public static boolean put(JSONObject object, String key, Object value) throws JSONException {
//         return put(object, key, value, null);
//     }
// 
//     public static boolean put(JSONObject object, String key, Object value, Object defaultValue) throws JSONException {
//         if(value != null) {
// 
//             if(value instanceof Map) {
//                 JSONObject mapObject = new JSONObject();
//                 Map<?,?> map = (Map<?,?>) value;
//                 for (Object o : map.keySet()) {
//                     put(mapObject, o.toString(), map.get(o));
//                 }
// 
//                 object.put(key, mapObject);
//             }
//             else if(value instanceof Collection) {
//                 JSONArray arrayObject = new JSONArray();
//                 Collection<?> collection = (Collection<?>) value;
//                 for (Object o : collection) {
//                     // TODO: This is not very robust.  Needs to infer the type
//                     arrayObject.put(o.toString());
//                 }
//                 object.put(key, arrayObject);
//             }
//             else {
//                 object.put(key, value);
//             }
// 
//             return true;
//         }
//         else if(defaultValue != null) {
//             object.put(key, defaultValue);
//             return true;
//         }
//         return false;
//     }
// 
//     public static boolean isNull(JSONObject object, String key) {
//         return !object.has(key) || object.isNull(key);
//     }
// 
//     public static String getString(JSONObject object, String key) {
//         if(!isNull(object, key)) {
//             try {
//                 return object.getString(key);
//             } catch (JSONException e) {
//                 Logger.e(e);
//             }
//         }
//         return null;
//     }
// }


import android.content.Context;
import android.content.Intent;
import com.sharethis.loopy.sdk.util.JSONUtils;
import org.json.JSONObject;
package com.sharethis.loopy.sdk;


/**
 * Callback used when creating a tracking url.
 * @author Jason Polites
 */
public abstract class ShareCallback extends ApiCallback {

    Item item;

    @Override
    public final void onSuccess(JSONObject result) {
        if(item != null) {
// Path: sdk/src/com/sharethis/loopy/sdk/util/JSONUtils.java
// public class JSONUtils {
// 
//     public static boolean put(JSONObject object, String key, Object value) throws JSONException {
//         return put(object, key, value, null);
//     }
// 
//     public static boolean put(JSONObject object, String key, Object value, Object defaultValue) throws JSONException {
//         if(value != null) {
// 
//             if(value instanceof Map) {
//                 JSONObject mapObject = new JSONObject();
//                 Map<?,?> map = (Map<?,?>) value;
//                 for (Object o : map.keySet()) {
//                     put(mapObject, o.toString(), map.get(o));
//                 }
// 
//                 object.put(key, mapObject);
//             }
//             else if(value instanceof Collection) {
//                 JSONArray arrayObject = new JSONArray();
//                 Collection<?> collection = (Collection<?>) value;
//                 for (Object o : collection) {
//                     // TODO: This is not very robust.  Needs to infer the type
//                     arrayObject.put(o.toString());
//                 }
//                 object.put(key, arrayObject);
//             }
//             else {
//                 object.put(key, value);
//             }
// 
//             return true;
//         }
//         else if(defaultValue != null) {
//             object.put(key, defaultValue);
//             return true;
//         }
//         return false;
//     }
// 
//     public static boolean isNull(JSONObject object, String key) {
//         return !object.has(key) || object.isNull(key);
//     }
// 
//     public static String getString(JSONObject object, String key) {
//         if(!isNull(object, key)) {
//             try {
//                 return object.getString(key);
//             } catch (JSONException e) {
//                 Logger.e(e);
//             }
//         }
//         return null;
//     }
// }


// Path: sdk/src/com/sharethis/loopy/sdk/ShareCallback.java
import android.content.Context;
import android.content.Intent;
import com.sharethis.loopy.sdk.util.JSONUtils;
import org.json.JSONObject;

package com.sharethis.loopy.sdk;


/**
 * Callback used when creating a tracking url.
 * @author Jason Polites
 */
public abstract class ShareCallback extends ApiCallback {

    Item item;

    @Override
    public final void onSuccess(JSONObject result) {
        if(item != null) {
            item.setShortlink(JSONUtils.getString(result, "shortlink"));