Merge "[Panlingual] Fix settings crash from rotation." into tm-dev
diff --git a/src/com/android/settings/display/ScreenTimeoutSettings.java b/src/com/android/settings/display/ScreenTimeoutSettings.java
index 20795d7..2fc0164 100644
--- a/src/com/android/settings/display/ScreenTimeoutSettings.java
+++ b/src/com/android/settings/display/ScreenTimeoutSettings.java
@@ -32,14 +32,8 @@
import android.os.PowerManager;
import android.os.UserHandle;
import android.provider.Settings;
-import android.text.SpannableString;
-import android.text.Spanned;
-import android.text.style.ClickableSpan;
import android.util.Log;
-import android.view.View;
-import androidx.annotation.NonNull;
-import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
@@ -95,7 +89,7 @@
RestrictedLockUtils.EnforcedAdmin mAdmin;
@VisibleForTesting
- Preference mDisableOptionsPreference;
+ FooterPreference mDisableOptionsPreference;
@VisibleForTesting
AdaptiveSleepPermissionPreferenceController mAdaptiveSleepPermissionController;
@@ -228,26 +222,13 @@
R.string.admin_disabled_other_options));
final String textMoreDetails = getResources().getString(R.string.admin_more_details);
- final SpannableString spannableString = new SpannableString(
- textDisabledByAdmin + System.lineSeparator()
- + System.lineSeparator() + textMoreDetails);
- final ClickableSpan clickableSpan = new ClickableSpan() {
- @Override
- public void onClick(@NonNull View widget) {
- RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getContext(), mAdmin);
- }
- };
-
- if (textDisabledByAdmin != null && textMoreDetails != null) {
- spannableString.setSpan(clickableSpan, textDisabledByAdmin.length() + 1,
- textDisabledByAdmin.length() + textMoreDetails.length() + 2,
- Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
- }
-
mDisableOptionsPreference = new FooterPreference(getContext());
- mDisableOptionsPreference.setLayoutResource(R.layout.preference_footer);
- mDisableOptionsPreference.setTitle(spannableString);
+ mDisableOptionsPreference.setTitle(textDisabledByAdmin);
mDisableOptionsPreference.setSelectable(false);
+ mDisableOptionsPreference.setLearnMoreText(textMoreDetails);
+ mDisableOptionsPreference.setLearnMoreAction(v -> {
+ RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getContext(), mAdmin);
+ });
mDisableOptionsPreference.setIcon(R.drawable.ic_info_outline_24dp);
// The 'disabled by admin' preference should always be at the end of the setting page.
diff --git a/src/com/android/settings/dream/DreamPickerController.java b/src/com/android/settings/dream/DreamPickerController.java
index 5afc492..c638a97 100644
--- a/src/com/android/settings/dream/DreamPickerController.java
+++ b/src/com/android/settings/dream/DreamPickerController.java
@@ -141,10 +141,9 @@
public void onItemClicked() {
mActiveDream = mDreamInfo;
mBackend.setActiveDream(mDreamInfo.componentName);
- mMetricsFeatureProvider.action(
- mContext,
- SettingsEnums.ACTION_DREAM_SELECT_TYPE,
- mDreamInfo.componentName.flattenToString());
+ mMetricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
+ SettingsEnums.ACTION_DREAM_SELECT_TYPE, SettingsEnums.PAGE_UNKNOWN,
+ mDreamInfo.componentName.flattenToString(), 1);
}
@Override
diff --git a/src/com/android/settings/notification/zen/ZenCustomRuleSettingsBase.java b/src/com/android/settings/notification/zen/ZenCustomRuleSettingsBase.java
index b417e03..12605af 100644
--- a/src/com/android/settings/notification/zen/ZenCustomRuleSettingsBase.java
+++ b/src/com/android/settings/notification/zen/ZenCustomRuleSettingsBase.java
@@ -59,6 +59,10 @@
@Override
public void onResume() {
+ if (!mIsFirstLaunch) {
+ // Rule will be used in updatePreferenceStates() in super.onResume().
+ updateRule();
+ }
super.onResume();
updatePreferences();
}
@@ -66,6 +70,7 @@
@Override
public void onZenModeConfigChanged() {
super.onZenModeConfigChanged();
+ updateRule();
updatePreferences();
updatePreferenceStates();
}
@@ -80,10 +85,6 @@
}
public void updatePreferences() {
- if (!mIsFirstLaunch) {
- updateRule();
- }
-
final PreferenceScreen screen = getPreferenceScreen();
String categoryKey = getPreferenceCategoryKey();
if (categoryKey != null) {
diff --git a/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java b/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
index 41e4429..009ac53 100644
--- a/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
@@ -44,12 +44,12 @@
import android.provider.SearchIndexableResource;
import android.provider.Settings;
-import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.widget.FooterPreference;
import org.junit.Before;
import org.junit.Test;
@@ -86,7 +86,7 @@
AdaptiveSleepBatterySaverPreferenceController mAdaptiveSleepBatterySaverPreferenceController;
@Mock
- Preference mDisableOptionsPreference;
+ FooterPreference mDisableOptionsPreference;
@Mock
private PackageManager mPackageManager;