/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package com.linkbubble.ui; import android.app.AlertDialog; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; import com.linkbubble.Constant; import com.linkbubble.MainApplication; import com.linkbubble.R; import com.linkbubble.util.Analytics; import com.linkbubble.util.CrashTracking; import com.linkbubble.util.Util; /* * This class exists solely because Android's PreferenceScreen implementation doesn't do anything * when the Up button is touched, and we need to go back in that case given our use of the Up button. */ public class SettingsHelpActivity extends AppCompatPreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_settings_help); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setTitle(R.string.preference_help_title); setSupportActionBar(toolbar); toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); return true; } return super.onOptionsItemSelected(item); } @Override public void finish() { super.finish(); overridePendingTransition(R.anim.activity_close_enter, R.anim.activity_close_exit); } static public class SettingsHelpFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences_help); PreferenceScreen rootPreferenceScreen = (PreferenceScreen) findPreference("preference_help_root"); findPreference("preference_credits").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { showCreditsDialog(); return true; } }); findPreference("preference_osl").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { showOpenSourceLicensesDialog(); return true; } }); findPreference("preference_show_welcome_message").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { MainApplication.openLink(getActivity(), Constant.WELCOME_MESSAGE_URL, Analytics.OPENED_URL_FROM_SETTINGS); return true; } }); findPreference("preference_privacy_policy").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { MainApplication.openLink(getActivity(), Constant.PRIVACY_POLICY_URL, Analytics.OPENED_URL_FROM_SETTINGS); return true; } }); findPreference("preference_terms_of_service").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { MainApplication.openLink(getActivity(), Constant.TERMS_OF_SERVICE_URL, Analytics.OPENED_URL_FROM_SETTINGS); return true; } }); } private static int TAPS_TO_FORCE_A_CRASH = 7; private int mForceCrashCountdown = TAPS_TO_FORCE_A_CRASH; Toast mForceCrashToast; void showCreditsDialog() { final View layout = View.inflate(getActivity(), R.layout.view_credits, null); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setNegativeButton(android.R.string.ok, null); builder.setView(layout); builder.setTitle(R.string.credits_title); AlertDialog alertDialog = builder.create(); alertDialog.setIcon(Util.getAlertIcon(getActivity())); Util.showThemedDialog(alertDialog); } private void showOpenSourceLicensesDialog() { WebView webView = new WebView(getActivity()); webView.loadUrl("file:///android_asset/open_source_licenses.html"); webView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url){ Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); startActivity(i); return true; } }); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setIcon(Util.getAlertIcon(getActivity())); builder.setNegativeButton(R.string.action_ok, null); builder.setView(webView); builder.setTitle(R.string.preference_osl_title); AlertDialog alertDialog = builder.create(); Util.showThemedDialog(alertDialog); } } }