/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.network; import java.util.Iterator; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; import com.galaxy.meetup.client.android.content.EsAccount; import com.galaxy.meetup.client.android.network.http.HttpOperation; import com.galaxy.meetup.client.android.network.http.HttpRequestConfiguration; import com.galaxy.meetup.client.util.Property; /** * * @author sihai * */ public abstract class PlusiOperation extends ApiaryOperation { private final String mLogTag; public PlusiOperation(Context context, EsAccount esaccount, String command, Intent intent, HttpOperation.OperationListener operationlistener, Class responseClass) { super(context, esaccount, createPlusiRequestUrl(command), Property.PLUS_BACKEND_URL.get(), "oauth2:https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/plus.stream.read https://www.googleapis.com/auth/plus.stream.write https://www.googleapis.com/auth/plus.circles.write https://www.googleapis.com/auth/plus.circles.read https://www.googleapis.com/auth/plus.photos.readwrite https://www.googleapis.com/auth/plus.native", intent, operationlistener, responseClass); mLogTag = truncateLogTagIfNecessary(command); } protected PlusiOperation(Context context, EsAccount esaccount, String command, Intent intent, HttpOperation.OperationListener operationlistener, HttpRequestConfiguration httprequestconfiguration, Class responseClass) { super(context, esaccount, createPlusiRequestUrl(command), Property.PLUS_BACKEND_URL.get(), "oauth2:https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/plus.stream.read https://www.googleapis.com/auth/plus.stream.write https://www.googleapis.com/auth/plus.circles.write https://www.googleapis.com/auth/plus.circles.read https://www.googleapis.com/auth/plus.photos.readwrite https://www.googleapis.com/auth/plus.native", intent, operationlistener, httprequestconfiguration, responseClass); mLogTag = truncateLogTagIfNecessary(command); } protected PlusiOperation(Context context, EsAccount esaccount, String command, Bundle bundle, Intent intent, HttpOperation.OperationListener operationlistener, HttpRequestConfiguration httprequestconfiguration, Class responseClass) { super(context, esaccount, createPlusiRequestUrl(command, bundle), Property.PLUS_BACKEND_URL.get(), "oauth2:https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/plus.stream.read https://www.googleapis.com/auth/plus.stream.write https://www.googleapis.com/auth/plus.circles.write https://www.googleapis.com/auth/plus.circles.read https://www.googleapis.com/auth/plus.photos.readwrite https://www.googleapis.com/auth/plus.native", intent, operationlistener, httprequestconfiguration, responseClass); mLogTag = truncateLogTagIfNecessary(command); } private static String createPlusiRequestUrl(String command) { Bundle bundle = new Bundle(); bundle.putString(COMMAND, command); return createPlusiRequestUrl(bundle); } private static String createPlusiRequestUrl(String command, Bundle bundle) { bundle.putString(COMMAND, command); return createPlusiRequestUrl(bundle); } private static String createPlusiRequestUrl(Bundle bundle) { Uri.Builder builder = Uri.parse(Property.PLUS_FRONTEND_URL.get()).buildUpon(); if(bundle != null) { String s5; for(Iterator iterator = bundle.keySet().iterator(); iterator.hasNext(); builder.appendQueryParameter(s5, bundle.getString(s5))) s5 = (String)iterator.next(); } String s2 = Property.TRACING_TOKEN.get(); if(!TextUtils.isEmpty(s2)) { String s3 = Property.TRACING_TOKEN_2.get(); if(!TextUtils.isEmpty(s3)) s2 = (new StringBuilder()).append(s2).append(s3).toString(); String s4 = Property.TRACING_PATH.get(); if(!TextUtils.isEmpty(s4)) { builder.appendQueryParameter("trace", (new StringBuilder("token:")).append(s2).toString()); if(!TextUtils.isEmpty(Property.TRACING_LEVEL.get())) builder.appendQueryParameter("trace.deb", Property.TRACING_LEVEL.get()); } } return builder.build().toString(); } private static String truncateLogTagIfNecessary(String s) { if(s != null && s.length() > 23) s = s.substring(0, 23); return s; } protected final String getLogTag() { return mLogTag; } }