/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.fragments; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Resources; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.content.Loader; import android.text.Html; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; import com.galaxy.meetup.client.android.EsCursorLoader; import com.galaxy.meetup.client.android.Intents; import com.galaxy.meetup.client.android.R; import com.galaxy.meetup.client.android.analytics.AnalyticsInfo; import com.galaxy.meetup.client.android.analytics.EsAnalytics; import com.galaxy.meetup.client.android.analytics.OzActions; import com.galaxy.meetup.client.android.analytics.OzViews; import com.galaxy.meetup.client.android.content.EsAccount; import com.galaxy.meetup.client.android.content.EsApiProvider; import com.galaxy.meetup.client.android.network.ApiaryActivity; import com.galaxy.meetup.client.android.network.ApiaryApiInfo; import com.galaxy.meetup.client.android.service.EsService; import com.galaxy.meetup.client.android.service.EsServiceListener; import com.galaxy.meetup.client.android.service.ServiceResult; import com.galaxy.meetup.client.android.ui.activity.BaseActivity; import com.galaxy.meetup.client.android.ui.view.AvatarView; import com.galaxy.meetup.client.util.EsLog; import com.galaxy.meetup.client.util.PlatformContractUtils; /** * * @author sihai * */ public class PlusOneFragment extends EsFragment { private EsAccount mAccount; private ApiaryApiInfo mApiaryApiInfo; private boolean mInsert; private boolean mLoggedPreview; private final android.support.v4.app.LoaderManager.LoaderCallbacks mPreviewLoaderCallbacks = new PreviewLoaderCallbacks(); private ProgressBar mProgressView; private Integer mRequestId; private final EsServiceListener mServiceListener = new EsServiceListener() { public final void onPlusOneApplyResult(int i, ServiceResult serviceresult) { if(Integer.valueOf(i).equals(mRequestId)) onFinishedWrite(serviceresult); } }; private String mToken; private String mUrl; public PlusOneFragment() { } public final EsAccount getAccount() { return (EsAccount)getArguments().getParcelable("PlusOneFragment#mAccount"); } protected final boolean isEmpty() { return false; } public final void onActivityCreated(Bundle bundle) { super.onActivityCreated(bundle); Bundle bundle1 = getArguments(); mApiaryApiInfo = (ApiaryApiInfo)bundle1.getSerializable("PlusOneFragment#mApiaryApiInfo"); mToken = bundle1.getString("PlusOneFragment#mToken"); mUrl = bundle1.getString("PlusOneFragment#mUrl"); mInsert = bundle1.getBoolean("PlusOneFragment#mInsert"); mAccount = (EsAccount)bundle1.getParcelable("PlusOneFragment#mAccount"); TextView textview; Resources resources; int i; Object aobj[]; String s; PackageManager packagemanager; ImageView imageview; TextView textview1; Button button; Button button1; android.view.View.OnClickListener onclicklistener; android.view.View.OnClickListener onclicklistener1; if(bundle == null && mInsert) { BaseActivity instrumentedactivity = (BaseActivity)getActivity(); PlatformContractUtils.getCallingPackageAnalytics(mApiaryApiInfo); AnalyticsInfo analyticsinfo = instrumentedactivity.getAnalyticsInfo(); mRequestId = Integer.valueOf(EsService.applyPlusOne(getActivity(), mAccount, analyticsinfo, mApiaryApiInfo, mUrl, mInsert, mToken)); mLoggedPreview = false; } else if(bundle != null) { Integer integer; if(bundle.containsKey("PlusOneFragment#mRequestId")) integer = Integer.valueOf(bundle.getInt("PlusOneFragment#mRequestId")); else integer = null; mRequestId = integer; mLoggedPreview = bundle.getBoolean("PlusOneFragment#mLoggedPreview"); } ((AvatarView)getView().findViewById(R.id.plus_one_user_avatar)).setGaiaId(mAccount.getGaiaId()); textview = (TextView)getView().findViewById(R.id.plus_one_user_name); resources = getResources(); i = R.string.plus_one_title; aobj = new Object[1]; aobj[0] = mAccount.getDisplayName(); textview.setText(Html.fromHtml(resources.getString(i, aobj))); s = mApiaryApiInfo.getSourceInfo().getPackageName(); packagemanager = getActivity().getPackageManager(); imageview = (ImageView)getView().findViewById(R.id.plus_one_app_icon); textview1 = (TextView)getView().findViewById(R.id.plus_one_app_name); try { imageview.setImageDrawable(packagemanager.getApplicationIcon(s)); CharSequence charsequence = packagemanager.getApplicationLabel(packagemanager.getApplicationInfo(s, 0)); textview1.setText(Html.fromHtml(getResources().getString(R.string.plus_one_app, new Object[] { charsequence }))); } catch(android.content.pm.PackageManager.NameNotFoundException namenotfoundexception) { textview1.setVisibility(4); imageview.setVisibility(4); } ((Button)getView().findViewById(R.id.share)).setOnClickListener(new android.view.View.OnClickListener() { public final void onClick(View view) { PlusOneFragment.access$100(PlusOneFragment.this, OzActions.PLATFORM_CLICKED_SHARE_FROM_PLUSONE); ApiaryApiInfo apiaryapiinfo = mApiaryApiInfo.getSourceInfo(); Intent intent = new Intent("com.google.android.apps.plus.SHARE_GOOGLE", Uri.parse(mUrl)); intent.putExtra("com.google.android.apps.plus.API_KEY", apiaryapiinfo.getApiKey()); intent.putExtra("com.google.android.apps.plus.CLIENT_ID", apiaryapiinfo.getClientId()); intent.putExtra("com.google.android.apps.plus.VERSION", apiaryapiinfo.getSdkVersion()); intent.putExtra("com.google.android.apps.plus.IS_FROM_PLUSONE", true); Intent intent1 = Intents.getTargetIntent(getActivity(), intent, mApiaryApiInfo.getSourceInfo().getPackageName()); intent1.putExtra("from_signup", true); intent1.putExtra("start_editing", true); startActivityForResult(intent1, 1); } }); button = (Button)getView().findViewById(R.id.plusone_confirm_button); button1 = (Button)getView().findViewById(R.id.plusone_cancel_button); onclicklistener = new android.view.View.OnClickListener() { public final void onClick(View view) { AnalyticsInfo analyticsinfo1; FragmentActivity fragmentactivity; boolean flag; int j; if(mInsert) PlusOneFragment.access$100(PlusOneFragment.this, OzActions.PLATFORM_PLUSONE_CANCELED); else PlusOneFragment.access$100(PlusOneFragment.this, OzActions.PLATFORM_UNDO_PLUSONE_CONFIRMED); analyticsinfo1 = new AnalyticsInfo(OzViews.PLATFORM_PLUS_ONE, OzViews.PLATFORM_THIRD_PARTY_APP, System.currentTimeMillis(), PlatformContractUtils.getCallingPackageAnalytics(mApiaryApiInfo)); EsService.applyPlusOne(getActivity(), mAccount, analyticsinfo1, mApiaryApiInfo, mUrl, false, mToken); fragmentactivity = getActivity(); flag = mInsert; j = 0; if(!flag) j = -1; fragmentactivity.setResult(j); getActivity().finish(); } }; onclicklistener1 = new android.view.View.OnClickListener() { public final void onClick(View view) { FragmentActivity fragmentactivity; byte byte0; if(mInsert) PlusOneFragment.access$100(PlusOneFragment.this, OzActions.PLATFORM_PLUSONE_CONFIRMED); else PlusOneFragment.access$100(PlusOneFragment.this, OzActions.PLATFORM_UNDO_PLUSONE_CANCELED); fragmentactivity = getActivity(); if(mInsert) byte0 = -1; else byte0 = 0; fragmentactivity.setResult(byte0); getActivity().finish(); } }; button.setText(R.string.plusone_ok); button.setOnClickListener(onclicklistener1); button1.setText(R.string.plusone_undo); button1.setOnClickListener(onclicklistener); getLoaderManager().initLoader(0, Bundle.EMPTY, mPreviewLoaderCallbacks); updateSpinner(mProgressView); } public final void onActivityResult(int i, int j, Intent intent) { if(i == 1) { getActivity().setResult(j, intent); getActivity().finish(); } } public final View onCreateView(LayoutInflater layoutinflater, ViewGroup viewgroup, Bundle bundle) { return layoutinflater.inflate(R.layout.plus_one_fragment, viewgroup, false); } protected final void onFinishedWrite(ServiceResult serviceresult) { mRequestId = null; FragmentActivity fragmentactivity = getActivity(); if(serviceresult.hasError()) fragmentactivity.showDialog(1); updateSpinner(mProgressView); } public final void onPause() { super.onPause(); EsService.unregisterListener(mServiceListener); } public final void onResume() { super.onResume(); EsService.registerListener(mServiceListener); if(mRequestId != null && !EsService.isRequestPending(mRequestId.intValue())) { ServiceResult serviceresult = EsService.removeResult(mRequestId.intValue()); if(serviceresult != null) onFinishedWrite(serviceresult); else mRequestId = null; } updateSpinner(mProgressView); } public final void onSaveInstanceState(Bundle bundle) { super.onSaveInstanceState(bundle); if(mRequestId != null) bundle.putInt("PlusOneFragment#mRequestId", mRequestId.intValue()); else bundle.remove("PlusOneFragment#mRequestId"); bundle.putBoolean("PlusOneFragment#mLoggedPreview", mLoggedPreview); } public final void setProgressBar(ProgressBar progressbar) { mProgressView = progressbar; updateSpinner(mProgressView); } protected final void updateSpinner(ProgressBar progressbar) { if(mProgressView != null) { ProgressBar progressbar1 = mProgressView; byte byte0; if(mRequestId == null) byte0 = 8; else byte0 = 0; progressbar1.setVisibility(byte0); } } static void access$100(PlusOneFragment plusonefragment, OzActions ozactions) { if(plusonefragment.mAccount != null) { BaseActivity instrumentedactivity = (BaseActivity)plusonefragment.getActivity(); PlatformContractUtils.getCallingPackageAnalytics(plusonefragment.mApiaryApiInfo); AnalyticsInfo analyticsinfo = instrumentedactivity.getAnalyticsInfo(); EsAnalytics.recordEvent(plusonefragment.getActivity(), plusonefragment.getAccount(), analyticsinfo, ozactions); } return; } static int access$702(PlusOneFragment plusonefragment, boolean flag) { plusonefragment.mLoggedPreview = true; return 1; } final class PreviewLoaderCallbacks implements android.support.v4.app.LoaderManager.LoaderCallbacks { public final Loader onCreateLoader(int i, Bundle bundle) { EsCursorLoader escursorloader = new EsCursorLoader(getActivity()); escursorloader.setUri(EsApiProvider.makePreviewUri(mApiaryApiInfo)); String as[] = new String[1]; as[0] = mUrl; escursorloader.setSelectionArgs(as); return escursorloader; } public final void onLoadFinished(Loader loader, Object obj) { Cursor cursor = (Cursor) obj; if (cursor != null && cursor.getExtras() != null) { android.os.Parcelable aparcelable[] = cursor .getExtras() .getParcelableArray( "com.google.android.apps.content.EXTRA_ACTIVITY"); ApiaryActivity apiaryactivity; boolean flag; if (aparcelable != null && aparcelable.length > 0) apiaryactivity = (ApiaryActivity) aparcelable[0]; else apiaryactivity = null; flag = false; if (apiaryactivity != null) flag = true; if (!flag && EsLog.isLoggable("PlusOneActivity", 3)) Log.d("PlusOneActivity", (new StringBuilder( "Unable to url retrieve preview for: ")) .append(mUrl).toString()); if (!mLoggedPreview) { mLoggedPreview = true; BaseActivity instrumentedactivity = (BaseActivity) getActivity(); PlatformContractUtils.getCallingPackageAnalytics(mApiaryApiInfo); AnalyticsInfo analyticsinfo = instrumentedactivity.getAnalyticsInfo(); OzActions ozactions; if (flag) ozactions = OzActions.PLATFORM_PLUSONE_PREVIEW_SHOWN; else ozactions = OzActions.PLATFORM_SHARE_PREVIEW_ERROR; EsAnalytics.recordEvent(getActivity(), getAccount(), analyticsinfo, ozactions); } //ViewGroup viewgroup = (ViewGroup) this.getView().findViewById(access$702); } } public final void onLoaderReset(Loader loader) { } } }