/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.activity; import java.util.ArrayList; import android.app.Dialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; import com.galaxy.meetup.client.android.Intents; import com.galaxy.meetup.client.android.R; import com.galaxy.meetup.client.android.analytics.OzActions; import com.galaxy.meetup.client.android.analytics.OzViews; import com.galaxy.meetup.client.android.api.BirthdayData; import com.galaxy.meetup.client.android.api.CallToActionData; import com.galaxy.meetup.client.android.content.AudienceData; import com.galaxy.meetup.client.android.content.EsAccountsData; import com.galaxy.meetup.client.android.content.PersonData; import com.galaxy.meetup.client.android.network.ApiaryApiInfo; import com.galaxy.meetup.client.util.ImageUtils; import com.galaxy.meetup.client.util.ImageUtils.InsertCameraPhotoDialogDisplayer; import com.galaxy.meetup.client.util.PlatformContractUtils; /** * * @author sihai * */ public class ShareActivity extends PostActivity implements InsertCameraPhotoDialogDisplayer { private android.content.DialogInterface.OnClickListener mDialogListener; private ApiaryApiInfo mInfo; private android.content.DialogInterface.OnClickListener mLocationDialogListener; public ShareActivity() { mDialogListener = new DialogListener(); mLocationDialogListener = new LocationDialogListener(); } private void copyStringExtraToArgs(String s, String s1, Bundle bundle) { String s2 = getIntent().getStringExtra(s); if(s2 == null) { CharSequence charsequence = getIntent().getCharSequenceExtra(s); if(charsequence != null) s2 = charsequence.toString(); } if(s2 != null) bundle.putString(s1, s2); } private boolean isThirdPartyPackageSecure() { Intent intent = getIntent(); String s = getCallingPackage(); boolean flag = intent.getBooleanExtra("from_signup", false); String s1 = intent.getStringExtra("calling_package"); boolean flag1 = TextUtils.isEmpty(s); boolean flag2 = false; if(!flag1) { boolean flag3 = TextUtils.isEmpty(s1); flag2 = false; if(!flag3) { boolean flag4 = s.equals(getPackageName()); flag2 = false; if(flag4) { flag2 = false; if(flag) flag2 = true; } } } return flag2; } protected final Bundle getPostFragmentArguments() { Bundle bundle = super.getPostFragmentArguments(); if(null == bundle) { return null; } Intent intent = getIntent(); copyStringExtraToArgs("com.google.android.apps.plus.CID", "cid", bundle); copyStringExtraToArgs("com.google.android.apps.plus.LOCATION_NAME", "location_name", bundle); copyStringExtraToArgs("com.google.android.apps.plus.EXTERNAL_ID", "external_id", bundle); copyStringExtraToArgs("com.google.android.apps.plus.FOOTER", "footer", bundle); copyStringExtraToArgs("com.google.android.apps.plus.LATITUDE", "latitude", bundle); copyStringExtraToArgs("com.google.android.apps.plus.LONGITUDE", "longitude", bundle); copyStringExtraToArgs("com.google.android.apps.plus.ADDRESS", "address", bundle); copyStringExtraToArgs("com.google.android.apps.plus.CONTENT_DEEP_LINK_ID", "content_deep_link_id", bundle); Bundle bundle1 = intent.getBundleExtra("com.google.android.apps.plus.CONTENT_DEEP_LINK_METADATA"); if(bundle1 != null) bundle.putBundle("content_deep_link_metadata", bundle1); if(getIntent().hasExtra("com.google.android.apps.plus.IS_FROM_PLUSONE")) bundle.putBoolean("is_from_plusone", getIntent().getBooleanExtra("com.google.android.apps.plus.IS_FROM_PLUSONE", false)); copyStringExtraToArgs("android.intent.extra.TEXT", "android.intent.extra.TEXT", bundle); String s = intent.getDataString(); if(s != null && "com.google.android.apps.plus.SHARE_GOOGLE".equals(intent.getAction())) bundle.putString("url", s); String s1 = intent.getAction(); if("com.google.android.apps.plus.GOOGLE_BIRTHDAY_POST".equals(s1)) { if(TextUtils.isEmpty(intent.getStringExtra("RECIPIENT_ID")) || TextUtils.isEmpty(intent.getStringExtra("RECIPIENT_NAME")) || intent.getIntExtra("com.google.android.apps.plus.BIRTHDAY_YEAR", 0) == 0) { return null; } bundle.putParcelable("birthday_data", new BirthdayData(intent.getStringExtra("RECIPIENT_ID"), intent.getStringExtra("RECIPIENT_NAME"), intent.getIntExtra("com.google.android.apps.plus.BIRTHDAY_YEAR", 0))); bundle.putParcelable("audience", new AudienceData(new PersonData(intent.getStringExtra("RECIPIENT_ID"), intent.getStringExtra("RECIPIENT_NAME"), null))); } if("com.google.android.apps.plus.GOOGLE_PLUS_SHARE".equals(s1) || "android.intent.action.SEND".equals(s1)) { copyStringExtraToArgs("com.google.android.apps.plus.CONTENT_DEEP_LINK_ID", "content_deep_link_id", bundle); copyStringExtraToArgs("com.google.android.apps.plus.CONTENT_URL", "url", bundle); if(mAccount != null && mAccount.hasGaiaId() && TextUtils.equals(mAccount.getGaiaId(), intent.getStringExtra("com.google.android.apps.plus.SENDER_ID"))) { ArrayList arraylist = intent.getStringArrayListExtra("RECIPIENT_IDS"); ArrayList arraylist1 = intent.getStringArrayListExtra("RECIPIENT_DISPLAY_NAMES"); int i; if(arraylist != null) i = arraylist.size(); else i = 0; if(arraylist1 != null && i != 0) { int j = arraylist1.size(); if(i == j) { ArrayList arraylist2 = new ArrayList(arraylist.size()); for(int k = 0; k < i; k++) { PersonData persondata = new PersonData((String)arraylist.get(k), (String)arraylist1.get(k), null); arraylist2.add(persondata); } AudienceData audiencedata = new AudienceData(arraylist2, null); bundle.putParcelable("audience", audiencedata); } } } } if(intent.getBooleanExtra("com.google.android.apps.plus.GOOGLE_INTERACTIVE_POST", false)) { String s2 = intent.getStringExtra("com.google.android.apps.plus.CONTENT_URL"); String s3 = intent.getStringExtra("com.google.android.apps.plus.CONTENT_DEEP_LINK_ID"); if(TextUtils.isEmpty(s2) && TextUtils.isEmpty(s3)) { return null; } if(!isThirdPartyPackageSecure()) { return null; } CallToActionData calltoactiondata = CallToActionData.fromExtras(intent.getBundleExtra("com.google.android.apps.plus.CALL_TO_ACTION")); if(calltoactiondata == null) { return null; } bundle.putParcelable("call_to_action", calltoactiondata); if(TextUtils.isEmpty(intent.getStringExtra("com.google.android.apps.plus.SENDER_ID"))) { return null; } } bundle.putSerializable("api_info", mInfo); return bundle; } protected final CharSequence getTitleButton3Text$9aa72f6() { return getResources().getText(R.string.post_share_button_text); } public final OzViews getViewForLogging() { return OzViews.SHARE; } protected final int getViewId() { return R.layout.share_activity; } public final void invalidateMenu() { createTitlebarButtons(R.menu.share_menu); if(android.os.Build.VERSION.SDK_INT >= 11) invalidateOptionsMenu(); } public void onCreate(Bundle bundle) { // TODO } public Dialog onCreateDialog(int i, Bundle bundle) { Dialog dialog = null; switch(i) { case 12763: android.app.AlertDialog.Builder builder4 = new android.app.AlertDialog.Builder(this); builder4.setMessage(R.string.share_connection_error).setPositiveButton(0x104000a, mDialogListener).setCancelable(true); dialog = builder4.create(); break; case 16542: dialog = new ProgressDialog(this); ((ProgressDialog) (dialog)).setMessage(getString(R.string.post_operation_pending)); ((ProgressDialog) (dialog)).setProgressStyle(0); ((ProgressDialog) (dialog)).setCancelable(false); break; case 21305: android.app.AlertDialog.Builder builder5 = new android.app.AlertDialog.Builder(this); builder5.setMessage(R.string.share_incorrect_account).setNeutralButton(0x104000a, mDialogListener).setCancelable(false); dialog = builder5.create(); break; case 22689: android.app.AlertDialog.Builder builder2 = new android.app.AlertDialog.Builder(this); builder2.setMessage(R.string.share_preview_post_error).setNeutralButton(0x104000a, mDialogListener).setCancelable(false); dialog = builder2.create(); break; case 28199: android.app.AlertDialog.Builder builder3 = new android.app.AlertDialog.Builder(this); builder3.setMessage(R.string.share_preview_error).setPositiveButton(0x104000a, mDialogListener).setCancelable(true); dialog = builder3.create(); break; case 29341608: android.app.AlertDialog.Builder builder1 = new android.app.AlertDialog.Builder(this); builder1.setMessage(R.string.location_provider_disabled); builder1.setPositiveButton(R.string.yes, mLocationDialogListener); builder1.setNegativeButton(R.string.no, mLocationDialogListener); dialog = builder1.create(); break; case 30875012: android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(this); builder.setTitle(R.string.post_location_dialog_title); builder.setMessage(R.string.sharebox_location_dialog_message); builder.setNeutralButton(0x104000a, mLocationDialogListener); builder.setCancelable(false); dialog = builder.create(); break; case 2131361854: dialog = ImageUtils.createInsertCameraPhotoDialog(this); break; default: break; } return dialog; } public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.share_menu, menu); return true; } public boolean onOptionsItemSelected(MenuItem menuitem) { boolean flag = true; int i = menuitem.getItemId(); if(i == 0x102002c || i == R.id.menu_discard) mFragment.onDiscard(flag); else if(i == R.id.menu_post) mFragment.post(); else flag = false; return flag; } public boolean onPrepareOptionsMenu(Menu menu) { menu.findItem(R.id.menu_post).setVisible(false); return true; } protected final void onPrepareTitlebarButtons(Menu menu) { int i = 0; while(i < menu.size()) { MenuItem menuitem = menu.getItem(i); boolean flag; if(menuitem.getItemId() == R.id.menu_post) flag = true; else flag = false; menuitem.setVisible(flag); i++; } } public void onSaveInstanceState(Bundle bundle) { super.onSaveInstanceState(bundle); if(mAccount != null) bundle.putParcelable("account", mAccount); if(mInfo != null) bundle.putSerializable("ShareActivity.mInfo", mInfo); } protected final void onTitlebarLabelClick() { finish(); } protected final void recordLaunchEvent() { Bundle bundle; if(isFromThirdPartyApp(getIntent())) { bundle = new Bundle(); bundle.putBoolean("extra_platform_event", true); } else { bundle = null; } PlatformContractUtils.getCallingPackageAnalytics(mInfo); recordUserAction(getAnalyticsInfo(), OzActions.PLATFORM_OPEN_SHAREBOX, bundle); } protected final void showTitlebar(boolean flag, boolean flag1) { super.showTitlebar(flag, false); findViewById(R.id.title_layout).setPadding(getResources().getDimensionPixelOffset(R.dimen.share_title_padding_left), 0, 0, 0); } private final class DialogListener implements android.content.DialogInterface.OnClickListener { public final void onClick(DialogInterface dialoginterface, int i) { if (-3 == i) { dialoginterface.dismiss(); finish(); } else { dialoginterface.dismiss(); } } } private final class LocationDialogListener implements android.content.DialogInterface.OnClickListener { public final void onClick(DialogInterface dialoginterface, int i) { if (-3 == i) { EsAccountsData.saveLocationDialogSeenPreference( ShareActivity.this, mAccount, true); } else if (-2 == i) { mFragment.setLocationChecked(false); } else if (-1 == i) { Intent intent = Intents.getLocationSettingActivityIntent(); startActivity(intent); } } } }