Index: blimp/client/core/settings/android/java/src/org/chromium/blimp/core/settings/AboutBlimpPreferences.java |
diff --git a/blimp/client/core/settings/android/java/src/org/chromium/blimp/core/settings/AboutBlimpPreferences.java b/blimp/client/core/settings/android/java/src/org/chromium/blimp/core/settings/AboutBlimpPreferences.java |
deleted file mode 100644 |
index 855991b9ec7a103b928286947c4e306bef2f34b0..0000000000000000000000000000000000000000 |
--- a/blimp/client/core/settings/android/java/src/org/chromium/blimp/core/settings/AboutBlimpPreferences.java |
+++ /dev/null |
@@ -1,302 +0,0 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.blimp.core.settings; |
- |
-import android.app.Activity; |
-import android.content.Context; |
-import android.content.DialogInterface; |
-import android.os.Bundle; |
-import android.preference.ListPreference; |
-import android.preference.Preference; |
-import android.preference.PreferenceFragment; |
-import android.preference.PreferenceScreen; |
-import android.preference.SwitchPreference; |
-import android.support.v7.app.AlertDialog; |
- |
-import org.chromium.base.ContextUtils; |
-import org.chromium.base.ThreadUtils; |
-import org.chromium.base.VisibleForTesting; |
-import org.chromium.base.annotations.CalledByNative; |
-import org.chromium.base.annotations.JNINamespace; |
-import org.chromium.blimp.core.R; |
-import org.chromium.blimp.core.common.PreferencesUtil; |
-import org.chromium.components.signin.ChromeSigninController; |
- |
-/** |
- * Blimp preferences page in embedder. |
- */ |
-@JNINamespace("blimp::client") |
-public class AboutBlimpPreferences extends PreferenceFragment { |
- private static final String PREF_ENGINE_INFO = "blimp_engine_info"; |
- /** |
- * If this fragment is waiting for user sign in. |
- */ |
- @VisibleForTesting |
- protected boolean mWaitForSignIn = false; |
- |
- private static BlimpPreferencesDelegate sPreferencesDelegate; |
- |
- private long mNativeBlimpSettingsAndroid; |
- |
- /** |
- * Attach the blimp setting preferences to a {@link PreferenceFragment}. |
- * And Set the delegate. |
- * @param fragment The fragment that blimp setting attach to. |
- * @param delegate {@link BlimpPreferencesDelegate} implemented by BlimpClientContextImpl. |
- */ |
- public static void addBlimpPreferences( |
- PreferenceFragment fragment, BlimpPreferencesDelegate delegate) { |
- addBlimpPreferences(fragment); |
- setDelegate(delegate); |
- } |
- |
- private static void addBlimpPreferences(PreferenceFragment fragment) { |
- Preference blimpSetting = new Preference(fragment.getActivity()); |
- blimpSetting.setTitle(R.string.blimp_about_blimp_preferences); |
- blimpSetting.setFragment(AboutBlimpPreferences.class.getName()); |
- blimpSetting.setKey(PreferencesUtil.PREF_BLIMP_SWITCH); |
- |
- fragment.getPreferenceScreen().addPreference(blimpSetting); |
- } |
- |
- /** |
- * Set {@link BlimpPreferencesDelegate}. |
- */ |
- @VisibleForTesting |
- protected static void setDelegate(BlimpPreferencesDelegate delegate) { |
- sPreferencesDelegate = delegate; |
- } |
- |
- @Override |
- public void onCreate(Bundle savedInstanceState) { |
- super.onCreate(savedInstanceState); |
- getActivity().setTitle(R.string.blimp_about_blimp_preferences); |
- |
- PreferenceScreen screen = getPreferenceScreen(); |
- if (screen != null) screen.removeAll(); |
- addPreferencesFromResource(R.xml.blimp_preferences); |
- |
- setupBlimpSwitch(); |
- setupAssignerPreferences(); |
- |
- // Initialize native layer must be called after Java loads the prefrences entries from xml |
- // file. |
- initializeNative(); |
- } |
- |
- @Override |
- public void onResume() { |
- super.onResume(); |
- setupBlimpSwitch(); |
- } |
- |
- @Override |
- public void onDestroy() { |
- destroyNative(); |
- super.onDestroy(); |
- } |
- |
- /** |
- * Setup the switch preference for Blimp. |
- */ |
- private void setupBlimpSwitch() { |
- // TODO(xingliu): Use {@link ChromeSwitchPreference} after move this class to Chrome. |
- // http://crbug.com/630675 |
- final SwitchPreference pref = |
- (SwitchPreference) findPreference(PreferencesUtil.PREF_BLIMP_SWITCH); |
- |
- if (!isSignedIn()) pref.setChecked(false); |
- |
- pref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { |
- @Override |
- public boolean onPreferenceChange(Preference preference, Object newValue) { |
- return onBlimpSwitchPreferenceChange((boolean) newValue); |
- } |
- }); |
- } |
- |
- /** |
- * Handles switch preference change. |
- * @param switchValue The new value of the preference. |
- * @return If the new value will be persisted. |
- */ |
- private boolean onBlimpSwitchPreferenceChange(boolean switchValue) { |
- if (switchValue) { |
- if (isSignedIn()) { |
- assert sPreferencesDelegate != null; |
- |
- // If user has signed in and the switch is turned on, start authentication. |
- sPreferencesDelegate.connect(); |
- } else { |
- // If user didn't sign in, show a dialog to let the user sign in. |
- showSignInDialog(); |
- return false; |
- } |
- } |
- return true; |
- } |
- |
- /** |
- * Show sign in dialog, it will show AccountSigninView to let user to sign in. |
- * |
- * If the user signed in after clicking the confirm button, turn on the Blimp switch and connect |
- * to the engine. |
- */ |
- private void showSignInDialog() { |
- final Context context = getActivity(); |
- new AlertDialog.Builder(context) |
- .setTitle(R.string.blimp_sign_in_title) |
- .setMessage(R.string.blimp_sign_in_msg) |
- .setPositiveButton(R.string.blimp_sign_in_btn, |
- new DialogInterface.OnClickListener() { |
- @Override |
- public void onClick(DialogInterface dialog, int which) { |
- startUserSignInFlow(); |
- } |
- }) |
- .create() |
- .show(); |
- } |
- |
- /** |
- * When the user taps on the current assigner, a list of available assigners pops up. |
- * User is allowed to change the assigner which is saved to shared preferences. |
- * A dialog is displayed which prompts the user to restart the application. |
- * |
- * Use {@link PreferencesUtil#getLastUsedAssigner} to retrieve the assigner URL. |
- */ |
- private void setupAssignerPreferences() { |
- final Activity activity = getActivity(); |
- |
- final ListPreference listPreference = |
- (ListPreference) findPreference(PreferencesUtil.PREF_ASSIGNER_URL); |
- |
- // Set to default assigner URL on first time loading this UI. |
- listPreference.setValue(PreferencesUtil.getLastUsedAssigner()); |
- |
- listPreference.setSummary(listPreference.getValue()); |
- |
- listPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { |
- @Override |
- public boolean onPreferenceChange(Preference preference, Object newValue) { |
- String newAssignmentUrl = (String) newValue; |
- listPreference.setSummary(newAssignmentUrl); |
- showRestartDialog(activity, R.string.blimp_assigner_changed_please_restart); |
- return true; |
- } |
- }); |
- } |
- |
- /** |
- * Show restart browser dialog. |
- * @param context The context where we display the restart browser dialog. |
- * @param message The message shown to the user. |
- */ |
- private void showRestartDialog(final Context context, int message) { |
- new AlertDialog.Builder(context) |
- .setTitle(R.string.blimp_restart_blimp) |
- .setMessage(message) |
- .setCancelable(false) |
- .setPositiveButton(R.string.blimp_restart_now, |
- new DialogInterface.OnClickListener() { |
- @Override |
- public void onClick(DialogInterface dialog, int which) { |
- restartBrowser(); |
- } |
- }) |
- .create() |
- .show(); |
- } |
- |
- /** |
- * Restart the browser. |
- */ |
- @VisibleForTesting |
- protected void restartBrowser() { |
- assert sPreferencesDelegate != null; |
- sPreferencesDelegate.getDelegate().restartBrowser(); |
- } |
- |
- /** |
- * Start user sign in flow to let the user pick an existing account or create new account. |
- */ |
- private void startUserSignInFlow() { |
- mWaitForSignIn = true; |
- assert sPreferencesDelegate != null; |
- sPreferencesDelegate.getDelegate().startUserSignInFlow(getActivity()); |
- } |
- |
- private boolean isSignedIn() { |
- return ChromeSigninController.get(ContextUtils.getApplicationContext()).isSignedIn(); |
- } |
- |
- @VisibleForTesting |
- @CalledByNative |
- protected void onSignedOut() { |
- // If user signed out, turn off the switch. We also do a sign in state check in onResume. |
- final SwitchPreference pref = |
- (SwitchPreference) findPreference(PreferencesUtil.PREF_BLIMP_SWITCH); |
- pref.setChecked(false); |
- showRestartDialog(getActivity(), R.string.blimp_sign_out_restart); |
- } |
- |
- @VisibleForTesting |
- @CalledByNative |
- protected void onSignedIn() { |
- // If user came back from sign in flow, turn on the switch and connect to engine. |
- // This logic won't trigger the {@link OnPreferenceChangeListener} call. |
- if (mWaitForSignIn) { |
- final SwitchPreference pref = |
- (SwitchPreference) findPreference(PreferencesUtil.PREF_BLIMP_SWITCH); |
- pref.setChecked(true); |
- |
- assert sPreferencesDelegate != null; |
- sPreferencesDelegate.connect(); |
- mWaitForSignIn = false; |
- } |
- } |
- |
- /** |
- * Setup engine connection info. This entry is not persisted into shared preference. |
- * @param engineInfo The engine IP address if connected to engine, or error string displayed to |
- * the user. |
- */ |
- @CalledByNative |
- private void setEngineInfo(String engineInfo) { |
- ThreadUtils.assertOnUiThread(); |
- |
- Preference pref = findPreference(PREF_ENGINE_INFO); |
- assert pref != null; |
- pref.setSummary(engineInfo); |
- } |
- |
- @VisibleForTesting |
- protected void initializeNative() { |
- mNativeBlimpSettingsAndroid = nativeInit(); |
- assert sPreferencesDelegate != null && mNativeBlimpSettingsAndroid != 0; |
- |
- // Initialize in native code. |
- sPreferencesDelegate.initSettingsPage(this); |
- } |
- |
- @VisibleForTesting |
- protected void destroyNative() { |
- nativeDestroy(mNativeBlimpSettingsAndroid); |
- } |
- |
- @CalledByNative |
- private void clearNativePtr() { |
- mNativeBlimpSettingsAndroid = 0; |
- } |
- |
- @CalledByNative |
- private long getNativePtr() { |
- assert mNativeBlimpSettingsAndroid != 0; |
- return mNativeBlimpSettingsAndroid; |
- } |
- |
- private native long nativeInit(); |
- private native void nativeDestroy(long nativeBlimpSettingsAndroid); |
-} |