/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.activity.setting; import android.app.Dialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.content.pm.PackageInfo; import android.net.Uri; import android.os.Bundle; import android.preference.Preference; import com.galaxy.meetup.client.android.Intents; import com.galaxy.meetup.client.android.R; 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.util.EsLog; /** * * @author sihai * */ public class AboutSettingsActivity extends BaseSettingsActivity implements OnClickListener { private static final Uri PRIVACY = Uri.parse("http://m.google.com/app/plus/serviceurl?type=privacy"); private static final Uri TERMS = Uri.parse("http://m.google.com/app/plus/serviceurl?type=tos"); private static String sLicenseKey; private static String sNetworkStatsKey; private static String sNetworkTransactionsKey; private static String sPrivacyKey; private static String sRemoveAccountKey; private static String sTermsKey; public AboutSettingsActivity() { } public void onClick(DialogInterface dialoginterface, int i) { if(-1 == i) { Intent intent = Intents.getHostNavigationActivityIntent(this, getAccount()); intent.putExtra("sign_out", true); intent.setFlags(0x4000000); startActivity(intent); finish(); } } public void onCreate(Bundle bundle) { super.onCreate(bundle); if(sLicenseKey == null) { sLicenseKey = getString(R.string.license_preference_key); sPrivacyKey = getString(R.string.privacy_policy_preference_key); sTermsKey = getString(R.string.terms_of_service_preference_key); sRemoveAccountKey = getString(R.string.remove_account_preference_key); sNetworkTransactionsKey = getString(R.string.network_transactions_preference_key); sNetworkStatsKey = getString(R.string.network_stats_preference_key); } if(EsLog.ENABLE_DOGFOOD_FEATURES) addPreferencesFromResource(R.xml.network_stats_preferences); addPreferencesFromResource(R.xml.about_preferences); final EsAccount account; try { PackageInfo packageinfo = getPackageManager().getPackageInfo(getPackageName(), 0); findPreference("build_version").setSummary(packageinfo.versionName); } catch(android.content.pm.PackageManager.NameNotFoundException namenotfoundexception) { findPreference("build_version").setSummary("?"); } account = getAccount(); if(EsLog.ENABLE_DOGFOOD_FEATURES) { findPreference(sNetworkTransactionsKey).setOnPreferenceClickListener(new android.preference.Preference.OnPreferenceClickListener() { public final boolean onPreferenceClick(Preference preference) { Intent intent = Intents.getNetworkRequestsIntent(AboutSettingsActivity.this, account); startActivity(intent); return true; } }); findPreference(sNetworkStatsKey).setOnPreferenceClickListener(new android.preference.Preference.OnPreferenceClickListener() { public final boolean onPreferenceClick(Preference preference) { Intent intent = Intents.getNetworkStatisticsIntent(AboutSettingsActivity.this, account); startActivity(intent); return true; } }); } findPreference(sLicenseKey).setOnPreferenceClickListener(new android.preference.Preference.OnPreferenceClickListener() { public final boolean onPreferenceClick(Preference preference) { Intent intent = Intents.getLicenseActivityIntent(AboutSettingsActivity.this); startActivity(intent); return true; } }); findPreference(sPrivacyKey).setOnPreferenceClickListener(new android.preference.Preference.OnPreferenceClickListener() { public final boolean onPreferenceClick(Preference preference) { startExternalActivity(new Intent("android.intent.action.VIEW", AboutSettingsActivity.PRIVACY)); return true; } }); findPreference(sTermsKey).setOnPreferenceClickListener(new android.preference.Preference.OnPreferenceClickListener() { public final boolean onPreferenceClick(Preference preference) { EsAccount esaccount = getAccount(); if(esaccount != null) { android.content.Context context = getBaseContext(); OzViews ozviews = OzViews.getViewForLogging(context); EsAnalytics.recordActionEvent(context, esaccount, OzActions.SETTINGS_TOS, ozviews); } startExternalActivity(new Intent("android.intent.action.VIEW", AboutSettingsActivity.TERMS)); return true; } }); findPreference(sRemoveAccountKey).setOnPreferenceClickListener(new android.preference.Preference.OnPreferenceClickListener() { public final boolean onPreferenceClick(Preference preference) { showDialog(0); return true; } }); } public Dialog onCreateDialog(int i, Bundle bundle) { Dialog dialog = null; if(0 == i) { android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(this); builder.setTitle(R.string.preferences_remove_account_title); builder.setMessage(R.string.preferences_remove_account_dialog_message); builder.setPositiveButton(R.string.ok, this); builder.setNegativeButton(R.string.cancel, this); dialog = builder.create(); } return dialog; } }