Merge "Import translations. DO NOT MERGE" into qt-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 8fd0769..5149b9c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -3097,7 +3097,7 @@
<activity android:name=".panel.SettingsPanelActivity"
android:label="@string/settings_panel_title"
- android:theme="@style/Theme.BottomDialog"
+ android:theme="@style/Theme.Panel"
android:documentLaunchMode="always"
android:excludeFromRecents="true"
android:exported="true">
diff --git a/res/drawable-hdpi/ic_live_help.png b/res/drawable-hdpi/ic_live_help.png
deleted file mode 100644
index f3548f6..0000000
--- a/res/drawable-hdpi/ic_live_help.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_live_help.png b/res/drawable-mdpi/ic_live_help.png
deleted file mode 100644
index e958662..0000000
--- a/res/drawable-mdpi/ic_live_help.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_live_help.png b/res/drawable-xhdpi/ic_live_help.png
deleted file mode 100644
index dbbbfed..0000000
--- a/res/drawable-xhdpi/ic_live_help.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_live_help.png b/res/drawable-xxhdpi/ic_live_help.png
deleted file mode 100644
index f2a01fe..0000000
--- a/res/drawable-xxhdpi/ic_live_help.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_live_help.png b/res/drawable-xxxhdpi/ic_live_help.png
deleted file mode 100644
index 00338a0..0000000
--- a/res/drawable-xxxhdpi/ic_live_help.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_feedback_24dp.xml b/res/drawable/ic_feedback_24dp.xml
new file mode 100644
index 0000000..a65f444
--- /dev/null
+++ b/res/drawable/ic_feedback_24dp.xml
@@ -0,0 +1,30 @@
+<!--
+ ~ Copyright (C) 2019 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M20,2H4C2.9,2 2.01,2.9 2.01,4L2,22l4,-4h14c1.1,0 2,-0.9 2,-2V4C22,2.9 21.1,2 20,2zM20,16H6H5.17l-0.59,0.59L4,17.17V4h16V16z"/>
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M11,12h2v2h-2z"/>
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M11,6h2v4h-2z"/>
+</vector>
diff --git a/res/layout/panel_layout.xml b/res/layout/panel_layout.xml
index c697afc..abe8f41 100644
--- a/res/layout/panel_layout.xml
+++ b/res/layout/panel_layout.xml
@@ -34,7 +34,7 @@
android:gravity="center"
android:paddingBottom="24dp"
android:paddingTop="18dp"
- android:textColor="?android:attr/colorPrimary"
+ android:textColor="?android:attr/textColorPrimary"
android:textSize="20sp"/>
<include layout="@layout/horizontal_divider"/>
diff --git a/res/raw/bubbles.mp4 b/res/raw/bubbles.mp4
new file mode 100644
index 0000000..c68ea57
--- /dev/null
+++ b/res/raw/bubbles.mp4
Binary files differ
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2a29f44..57d56ad 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -11092,4 +11092,7 @@
<!-- Warn the user that the phone have emergency call limitation. [CHAR LIMIT=NONE] -->
<string name="wfc_disclaimer_emergency_limitation_desc_text">Emergency calls over Wi\u2011Fi Calling are not supported by your carrier.\nThe device switches automatically to a cellular network to place an emergency call.\nEmergency calls are only possible in areas with cellular coverage.</string>
+
+ <!-- Summary for Wi-Fi calling to explain this feature [CHAR LIMIT=NONE] -->
+ <string name="wifi_calling_summary">Use Wi\u2011Fi for calls to improve quality</string>
</resources>
diff --git a/res/values/themes.xml b/res/values/themes.xml
index d29d78b..8268ce1 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -203,7 +203,7 @@
</style>
<!-- Note that Dialog themes do not set list dividers -->
- <style name="Theme.BottomDialog" parent="@*android:style/Theme.DeviceDefault.Settings.Dialog">
+ <style name="Theme.Panel" parent="@*android:style/Theme.DeviceDefault.Settings.Dialog">
<item name="android:windowBackground">@null</item>
<item name="android:dividerHorizontal">@*android:drawable/list_divider_material</item>
<item name="android:windowNoTitle">true</item>
diff --git a/res/xml/bubble_notification_settings.xml b/res/xml/bubble_notification_settings.xml
index 20783fa..7fba125 100644
--- a/res/xml/bubble_notification_settings.xml
+++ b/res/xml/bubble_notification_settings.xml
@@ -18,6 +18,14 @@
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/bubbles_app_toggle_title"
android:key="bubble_notification_settings">
+
+ <com.android.settings.widget.VideoPreference
+ android:key="bubbles_illustration"
+ android:title="@string/summary_placeholder"
+ settings:animation="@raw/bubbles"
+ settings:controller="com.android.settings.widget.VideoPreferenceController"
+ android:persistent="false" />
+
<!-- Notification bubbles -->
<SwitchPreference
android:key="global_notification_bubbles"
diff --git a/res/xml/mobile_network_settings.xml b/res/xml/mobile_network_settings.xml
index 16484f3..1a9b885 100644
--- a/res/xml/mobile_network_settings.xml
+++ b/res/xml/mobile_network_settings.xml
@@ -83,6 +83,7 @@
<PreferenceScreen
android:key="wifi_calling_key"
android:title="@string/wifi_calling_settings_title"
+ android:summary="@string/wifi_calling_summary"
settings:controller="com.android.settings.network.telephony.WifiCallingPreferenceController" >
<intent android:action="android.intent.action.MAIN"
android:targetPackage="com.android.settings"
diff --git a/res/xml/mobile_network_settings_v2.xml b/res/xml/mobile_network_settings_v2.xml
index 6890a41..cc377bd 100644
--- a/res/xml/mobile_network_settings_v2.xml
+++ b/res/xml/mobile_network_settings_v2.xml
@@ -123,6 +123,7 @@
<PreferenceScreen
android:key="wifi_calling_key"
android:title="@string/wifi_calling_settings_title"
+ android:summary="@string/wifi_calling_summary"
settings:controller="com.android.settings.network.telephony.WifiCallingPreferenceController">
<intent android:action="android.intent.action.MAIN"
android:targetPackage="com.android.settings"
diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java
index 21ef720..8677e22 100644
--- a/src/com/android/settings/password/ChooseLockPassword.java
+++ b/src/com/android/settings/password/ChooseLockPassword.java
@@ -515,7 +515,7 @@
}
}
- private int getStageType() {
+ protected int getStageType() {
return mForFingerprint ? Stage.TYPE_FINGERPRINT :
mForFace ? Stage.TYPE_FACE :
Stage.TYPE_NONE;
diff --git a/src/com/android/settings/password/ChooseLockPattern.java b/src/com/android/settings/password/ChooseLockPattern.java
index 85b9a46..dd5e674 100644
--- a/src/com/android/settings/password/ChooseLockPattern.java
+++ b/src/com/android/settings/password/ChooseLockPattern.java
@@ -185,7 +185,7 @@
// how long we wait to clear a wrong pattern
private static final int WRONG_PATTERN_CLEAR_TIMEOUT_MS = 2000;
- private static final int ID_EMPTY_MESSAGE = -1;
+ protected static final int ID_EMPTY_MESSAGE = -1;
private static final String FRAGMENT_TAG_SAVE_AND_FINISH = "save_and_finish_worker";
diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java
index 72b9fa8..8155a72 100644
--- a/src/com/android/settings/password/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/password/SetupChooseLockGeneric.java
@@ -196,8 +196,14 @@
final String key = preference.getKey();
if (KEY_UNLOCK_SET_DO_LATER.equals(key)) {
// show warning.
- SetupSkipDialog dialog = SetupSkipDialog.newInstance(getActivity().getIntent()
- .getBooleanExtra(SetupSkipDialog.EXTRA_FRP_SUPPORTED, false));
+ SetupSkipDialog dialog = SetupSkipDialog.newInstance(
+ getActivity().getIntent()
+ .getBooleanExtra(SetupSkipDialog.EXTRA_FRP_SUPPORTED, false),
+ /* isPatternMode= */ false,
+ /* isAlphaMode= */ false,
+ /* isFingerprintSupported= */ false,
+ /* isFaceSupported= */ false
+ );
dialog.show(getFragmentManager());
return true;
}
@@ -231,7 +237,7 @@
@Override
protected Intent getBiometricEnrollIntent(Context context) {
- final Intent intent = getBiometricEnrollIntent(context);
+ final Intent intent = super.getBiometricEnrollIntent(context);
SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
return intent;
}
diff --git a/src/com/android/settings/password/SetupChooseLockPassword.java b/src/com/android/settings/password/SetupChooseLockPassword.java
index 213351b..60bb0cd 100644
--- a/src/com/android/settings/password/SetupChooseLockPassword.java
+++ b/src/com/android/settings/password/SetupChooseLockPassword.java
@@ -106,7 +106,16 @@
if (mLeftButtonIsSkip) {
SetupSkipDialog dialog = SetupSkipDialog.newInstance(
getActivity().getIntent()
- .getBooleanExtra(SetupSkipDialog.EXTRA_FRP_SUPPORTED, false));
+ .getBooleanExtra(SetupSkipDialog.EXTRA_FRP_SUPPORTED, false),
+ /* isPatternMode= */ false,
+ mIsAlphaMode,
+ getActivity().getIntent()
+ .getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT,
+ false),
+ getActivity().getIntent()
+ .getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE, false)
+
+ );
dialog.show(getFragmentManager());
return;
}
@@ -132,6 +141,13 @@
}
@Override
+ protected int getStageType() {
+ // Return TYPE_NONE to make generic lock screen launch in Setup wizard flow before
+ // fingerprint and face setup.
+ return Stage.TYPE_NONE;
+ }
+
+ @Override
protected void updateUi() {
super.updateUi();
// Show the skip button during SUW but not during Settings > Biometric Enrollment
diff --git a/src/com/android/settings/password/SetupChooseLockPattern.java b/src/com/android/settings/password/SetupChooseLockPattern.java
index 3a69844..8e59d8c 100644
--- a/src/com/android/settings/password/SetupChooseLockPattern.java
+++ b/src/com/android/settings/password/SetupChooseLockPattern.java
@@ -54,6 +54,15 @@
return SetupChooseLockPatternFragment.class;
}
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ // Show generic pattern title when pattern lock screen launch in Setup wizard flow before
+ // fingerprint and face setup.
+ setTitle(R.string.lockpassword_choose_your_screen_lock_header);
+ }
+
public static class SetupChooseLockPatternFragment extends ChooseLockPatternFragment
implements ChooseLockTypeDialogFragment.OnLockTypeSelectedListener {
@@ -83,7 +92,16 @@
if (mLeftButtonIsSkip) {
SetupSkipDialog dialog = SetupSkipDialog.newInstance(
getActivity().getIntent()
- .getBooleanExtra(SetupSkipDialog.EXTRA_FRP_SUPPORTED, false));
+ .getBooleanExtra(SetupSkipDialog.EXTRA_FRP_SUPPORTED, false),
+ /* isPatternMode= */ true,
+ /* isAlphaMode= */ false,
+ getActivity().getIntent()
+ .getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT,
+ false),
+ getActivity().getIntent()
+ .getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE, false)
+
+ );
dialog.show(getFragmentManager());
return;
}
@@ -116,6 +134,14 @@
} else {
mLeftButtonIsSkip = false;
}
+
+ // Show generic pattern message when pattern lock screen launch in Setup wizard flow
+ // before fingerprint and face setup.
+ if (stage.message == ID_EMPTY_MESSAGE) {
+ mMessageText.setText("");
+ } else {
+ mMessageText.setText(stage.message);
+ }
}
@Override
diff --git a/src/com/android/settings/password/SetupSkipDialog.java b/src/com/android/settings/password/SetupSkipDialog.java
index dc1894e..68f8dd4 100644
--- a/src/com/android/settings/password/SetupSkipDialog.java
+++ b/src/com/android/settings/password/SetupSkipDialog.java
@@ -35,13 +35,22 @@
public static final String EXTRA_FRP_SUPPORTED = ":settings:frp_supported";
private static final String ARG_FRP_SUPPORTED = "frp_supported";
+ // The key indicates type of lock screen is pattern setup.
+ private static final String ARG_LOCK_TYPE_PATTERN = "lock_type_pattern";
+ // The key indicates type of lock screen setup is alphanumeric for password setup.
+ private static final String ARG_LOCK_TYPE_ALPHANUMERIC = "lock_type_alphanumeric";
private static final String TAG_SKIP_DIALOG = "skip_dialog";
public static final int RESULT_SKIP = Activity.RESULT_FIRST_USER + 10;
- public static SetupSkipDialog newInstance(boolean isFrpSupported) {
+ public static SetupSkipDialog newInstance(boolean isFrpSupported, boolean isPatternMode,
+ boolean isAlphanumericMode, boolean isFingerprintSupported, boolean isFaceSupported) {
SetupSkipDialog dialog = new SetupSkipDialog();
Bundle args = new Bundle();
args.putBoolean(ARG_FRP_SUPPORTED, isFrpSupported);
+ args.putBoolean(ARG_LOCK_TYPE_PATTERN, isPatternMode);
+ args.putBoolean(ARG_LOCK_TYPE_ALPHANUMERIC, isAlphanumericMode);
+ args.putBoolean(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, isFingerprintSupported);
+ args.putBoolean(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE, isFaceSupported);
dialog.setArguments(args);
return dialog;
}
@@ -59,13 +68,36 @@
@NonNull
public AlertDialog.Builder onCreateDialogBuilder() {
Bundle args = getArguments();
- return new AlertDialog.Builder(getContext())
- .setPositiveButton(R.string.skip_anyway_button_label, this)
- .setNegativeButton(R.string.go_back_button_label, this)
- .setTitle(R.string.lock_screen_intro_skip_title)
- .setMessage(args.getBoolean(ARG_FRP_SUPPORTED) ?
- R.string.lock_screen_intro_skip_dialog_text_frp :
- R.string.lock_screen_intro_skip_dialog_text);
+ final boolean isFaceSupported =
+ args.getBoolean(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE);
+ final boolean isFingerprintSupported =
+ args.getBoolean(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT);
+ if (isFaceSupported || isFingerprintSupported) {
+ final int titleId;
+
+ if (args.getBoolean(ARG_LOCK_TYPE_PATTERN)) {
+ titleId = R.string.lock_screen_pattern_skip_title;
+ } else {
+ titleId = args.getBoolean(ARG_LOCK_TYPE_ALPHANUMERIC) ?
+ R.string.lock_screen_password_skip_title : R.string.lock_screen_pin_skip_title;
+ }
+
+ return new AlertDialog.Builder(getContext())
+ .setPositiveButton(R.string.skip_lock_screen_dialog_button_label, this)
+ .setNegativeButton(R.string.cancel_lock_screen_dialog_button_label, this)
+ .setTitle(titleId)
+ .setMessage(isFaceSupported ?
+ R.string.face_lock_screen_setup_skip_dialog_text :
+ R.string.fingerprint_lock_screen_setup_skip_dialog_text);
+ } else {
+ return new AlertDialog.Builder(getContext())
+ .setPositiveButton(R.string.skip_anyway_button_label, this)
+ .setNegativeButton(R.string.go_back_button_label, this)
+ .setTitle(R.string.lock_screen_intro_skip_title)
+ .setMessage(args.getBoolean(ARG_FRP_SUPPORTED) ?
+ R.string.lock_screen_intro_skip_dialog_text_frp :
+ R.string.lock_screen_intro_skip_dialog_text);
+ }
}
@Override
diff --git a/src/com/android/settings/sim/SimListDialogFragment.java b/src/com/android/settings/sim/SimListDialogFragment.java
index 1802d65..3b78927 100644
--- a/src/com/android/settings/sim/SimListDialogFragment.java
+++ b/src/com/android/settings/sim/SimListDialogFragment.java
@@ -174,7 +174,7 @@
if (sub == null) {
title.setText(R.string.sim_calls_ask_first_prefs_title);
summary.setText("");
- icon.setImageDrawable(mContext.getDrawable(R.drawable.ic_help));
+ icon.setImageDrawable(mContext.getDrawable(R.drawable.ic_feedback_24dp));
icon.setImageTintList(
Utils.getColorAttr(mContext, android.R.attr.textColorSecondary));
} else {
diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
index f98dc58..dfb59d1 100644
--- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
@@ -1109,6 +1109,10 @@
}
@Override
public void onFinish() {
+ if (mFragment == null || mFragment.getActivity() == null) {
+ Log.d(TAG, "Ignore timeout since activity not exist!");
+ return;
+ }
Log.e(TAG, "Timeout for state:" + mConnectingState);
if (mConnectingState == STATE_ENABLE_WIFI) {
updateConnectingState(STATE_ENABLE_WIFI_FAILED);
diff --git a/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java b/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java
index a769048..f46f68f 100644
--- a/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java
@@ -45,7 +45,8 @@
@Test
public void frpMessages_areShownCorrectly_whenNotSupported() {
- SetupSkipDialog setupSkipDialog = SetupSkipDialog.newInstance(false);
+ SetupSkipDialog setupSkipDialog =
+ SetupSkipDialog.newInstance(false, false, false, false, false);
setupSkipDialog.show(mActivity.getSupportFragmentManager());
AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
@@ -59,7 +60,8 @@
@Test
public void frpMessages_areShownCorrectly_whenSupported() {
- SetupSkipDialog setupSkipDialog = SetupSkipDialog.newInstance(true);
+ SetupSkipDialog setupSkipDialog =
+ SetupSkipDialog.newInstance(true, false, false, false, false);
setupSkipDialog.show(mActivity.getSupportFragmentManager());
AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
@@ -70,4 +72,101 @@
assertThat(mActivity.getString(R.string.lock_screen_intro_skip_dialog_text_frp)).isEqualTo(
shadowAlertDialog.getMessage());
}
+
+ @Test
+ public void dialogMessage_whenSkipPinSetupForFace_shouldShownCorrectly() {
+ SetupSkipDialog setupSkipDialog =
+ SetupSkipDialog.newInstance(true, false, false, false, true);
+ setupSkipDialog.show(mActivity.getSupportFragmentManager());
+
+ AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+ assertThat(alertDialog).isNotNull();
+ ShadowAlertDialogCompat shadowAlertDialog = ShadowAlertDialogCompat.shadowOf(alertDialog);
+ assertThat(mActivity.getString(R.string.lock_screen_pin_skip_title)).isEqualTo(
+ shadowAlertDialog.getTitle());
+
+ assertThat(getSkipDialogMessage(false)).isEqualTo(shadowAlertDialog.getMessage());
+ }
+
+ @Test
+ public void dialogMessage_whenSkipPasswordSetupForFace_shouldShownCorrectly() {
+ SetupSkipDialog setupSkipDialog =
+ SetupSkipDialog.newInstance(true, false, true, false, true);
+ setupSkipDialog.show(mActivity.getSupportFragmentManager());
+
+ AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+ assertThat(alertDialog).isNotNull();
+ ShadowAlertDialogCompat shadowAlertDialog = ShadowAlertDialogCompat.shadowOf(alertDialog);
+ assertThat(mActivity.getString(R.string.lock_screen_password_skip_title)).isEqualTo(
+ shadowAlertDialog.getTitle());
+
+ assertThat(getSkipDialogMessage(false)).isEqualTo(shadowAlertDialog.getMessage());
+ }
+
+ @Test
+ public void dialogMessage_whenSkipPatternSetupForFace_shouldShownCorrectly() {
+ SetupSkipDialog setupSkipDialog =
+ SetupSkipDialog.newInstance(true, true, false, false, true);
+ setupSkipDialog.show(mActivity.getSupportFragmentManager());
+
+ AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+ assertThat(alertDialog).isNotNull();
+ ShadowAlertDialogCompat shadowAlertDialog = ShadowAlertDialogCompat.shadowOf(alertDialog);
+ assertThat(mActivity.getString(R.string.lock_screen_pattern_skip_title)).isEqualTo(
+ shadowAlertDialog.getTitle());
+
+ assertThat(getSkipDialogMessage(false)).isEqualTo(shadowAlertDialog.getMessage());
+ }
+
+ @Test
+ public void dialogMessage_whenSkipPinSetupForFingerprint_shouldShownCorrectly() {
+ SetupSkipDialog setupSkipDialog =
+ SetupSkipDialog.newInstance(true, false, false, true, false);
+ setupSkipDialog.show(mActivity.getSupportFragmentManager());
+
+ AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+ assertThat(alertDialog).isNotNull();
+ ShadowAlertDialogCompat shadowAlertDialog = ShadowAlertDialogCompat.shadowOf(alertDialog);
+ assertThat(mActivity.getString(R.string.lock_screen_pin_skip_title)).isEqualTo(
+ shadowAlertDialog.getTitle());
+
+ assertThat(getSkipDialogMessage(true)).isEqualTo(shadowAlertDialog.getMessage());
+ }
+
+ @Test
+ public void dialogMessage_whenSkipPasswordSetupForFingerprint_shouldShownCorrectly() {
+ SetupSkipDialog setupSkipDialog =
+ SetupSkipDialog.newInstance(true, false, true, true, false);
+ setupSkipDialog.show(mActivity.getSupportFragmentManager());
+
+ AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+ assertThat(alertDialog).isNotNull();
+ ShadowAlertDialogCompat shadowAlertDialog = ShadowAlertDialogCompat.shadowOf(alertDialog);
+ assertThat(mActivity.getString(R.string.lock_screen_password_skip_title)).isEqualTo(
+ shadowAlertDialog.getTitle());
+
+ assertThat(getSkipDialogMessage(true)).isEqualTo(shadowAlertDialog.getMessage());
+ }
+
+ @Test
+ public void dialogMessage_whenSkipPatternSetupForFingerprint_shouldShownCorrectly() {
+ SetupSkipDialog setupSkipDialog =
+ SetupSkipDialog.newInstance(true, true, false, true, false);
+ setupSkipDialog.show(mActivity.getSupportFragmentManager());
+
+ AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+ assertThat(alertDialog).isNotNull();
+ ShadowAlertDialogCompat shadowAlertDialog = ShadowAlertDialogCompat.shadowOf(alertDialog);
+ assertThat(mActivity.getString(R.string.lock_screen_pattern_skip_title)).isEqualTo(
+ shadowAlertDialog.getTitle());
+
+ assertThat(getSkipDialogMessage(true)).isEqualTo(shadowAlertDialog.getMessage());
+ }
+
+ public String getSkipDialogMessage(boolean isFingerprintSupported) {
+ return String.format(
+ mActivity.getString(isFingerprintSupported ?
+ R.string.fingerprint_lock_screen_setup_skip_dialog_text :
+ R.string.face_lock_screen_setup_skip_dialog_text));
+ }
}
diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
index d4ce481..3ffe61a 100644
--- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
@@ -1624,6 +1624,39 @@
}
@Test
+ public void testConnectButton_clickConnectAndBackKey_ignoreTimeoutEvent() {
+ setUpForDisconnectedNetwork();
+ when(mockWifiManager.isWifiEnabled()).thenReturn(true);
+ InOrder inOrder = inOrder(mockButtonsPref);
+ setUpForToast();
+
+ displayAndResume();
+
+ // check connect button exist
+ verifyConnectBtnSetUpAsVisible(inOrder);
+
+ // click connect button
+ mController.connectNetwork();
+
+ // check display button as connecting
+ verify(mockWifiManager, times(1)).connect(anyInt(), any(WifiManager.ActionListener.class));
+ verifyConnectBtnSetUpAsConnecting(inOrder);
+
+ // leave detail page
+ when(mockFragment.getActivity()).thenReturn(null);
+
+ // timeout happened
+ mController.mTimer.onFinish();
+
+ // check connect button visible, be init as default and toast failed message
+ inOrder.verify(mockButtonsPref, never()).setButton3Text(R.string.wifi_connect);
+ inOrder.verify(mockButtonsPref, never()).setButton3Icon(R.drawable.ic_settings_wireless);
+ inOrder.verify(mockButtonsPref, never()).setButton3Enabled(true);
+ inOrder.verify(mockButtonsPref, never()).setButton3Visible(true);
+ assertThat(ShadowToast.shownToastCount()).isEqualTo(0);
+ }
+
+ @Test
public void updateAccessPoint_returnFalseForNothingChanged() {
setUpForDisconnectedNetwork();