Merge "The text on toast should be changed when remains 1 time for SIM lock input" into rvc-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index cd738c3..f913b7a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4945,17 +4945,11 @@
<!-- Summary for accessibility shortcut preference for software shortcut type. [CHAR LIMIT=NONE] -->
<string name="accessibility_shortcut_edit_dialog_title_software">Tap accessibility button</string>
<!-- Summary for software shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
- <string name="accessibility_shortcut_edit_dialog_summary_software">Tap the accessibility button <xliff:g id="accessibility_icon" example="[Icon]">%s</xliff:g> at the bottom of your screen</string>
+ <string name="accessibility_shortcut_edit_dialog_summary_software">Tap the accessibility button <xliff:g id="accessibility_icon" example="[Icon]">%s</xliff:g> at the bottom of your screen.\n\nTo switch between features, touch & hold the accessibility button.</string>
<!-- Summary for software shortcut in gesture mode in accessibility edit shortcut dialog while using gesture navigation is enabled. [CHAR LIMIT=NONE] -->
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture">Swipe up from the bottom of the screen with 2 fingers</string>
+ <string name="accessibility_shortcut_edit_dialog_summary_software_gesture">Swipe up from the bottom of the screen with 2 fingers.\n\nTo switch between features, swipe up with 2 fingers and hold.</string>
<!-- Summary for software shortcut in gesture mode in accessibility edit shortcut dialog while using gesture navigation and touch exploration are enabled [CHAR LIMIT=NONE] -->
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback">Swipe up from the bottom of the screen with 3 fingers</string>
- <!-- Summary for software shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
- <string name="accessibility_shortcut_edit_dialog_summary_migration_software">Tap the accessibility button <xliff:g id="accessibility_icon" example="[Icon]">%s</xliff:g> at the bottom of your screen.\n\nTo switch between features, touch & hold the accessibility button.</string>
- <!-- Summary for software shortcut in gesture mode in accessibility edit shortcut dialog while using gesture navigation is enabled. [CHAR LIMIT=NONE] -->
- <string name="accessibility_shortcut_edit_dialog_summary_migration_software_gesture">Swipe up from the bottom of the screen with 2 fingers.\n\nTo switch between features, swipe up with 2 fingers and hold.</string>
- <!-- Summary for software shortcut in gesture mode in accessibility edit shortcut dialog while using gesture navigation and touch exploration are enabled [CHAR LIMIT=NONE] -->
- <string name="accessibility_shortcut_edit_dialog_summary_migration_software_gesture_talkback">Swipe up from the bottom of the screen with 3 fingers.\n\nTo switch between features, swipe up with 3 fingers and hold.</string>
+ <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback">Swipe up from the bottom of the screen with 3 fingers.\n\nTo switch between features, swipe up with 3 fingers and hold.</string>
<!-- Title for hardware shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
<string name="accessibility_shortcut_edit_dialog_title_hardware">Hold volume keys</string>
<!-- Summary for hardware shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
@@ -5149,29 +5143,19 @@
<string name="daltonizer_mode_tritanomaly_summary">Blue-yellow</string>
<!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
- <plurals name="accessibilty_autoclick_preference_subtitle_extremely_short_delay">
- <item quantity="one">Extremely short delay (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> second)</item>
- <item quantity="other">Extremely short delay (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> seconds)</item>
- </plurals>
- <!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
- <plurals name="accessibilty_autoclick_preference_subtitle_very_short_delay">
- <item quantity="one">Very short delay (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> second)</item>
- <item quantity="other">Very short delay (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> seconds)</item>
- </plurals>
- <!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
<plurals name="accessibilty_autoclick_preference_subtitle_short_delay">
- <item quantity="one">Short delay (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> second)</item>
- <item quantity="other">Short delay (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> seconds)</item>
+ <item quantity="one">Short (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> second)</item>
+ <item quantity="other">Short (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> seconds)</item>
+ </plurals>
+ <!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
+ <plurals name="accessibilty_autoclick_preference_subtitle_medium_delay">
+ <item quantity="one">Medium (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> second)</item>
+ <item quantity="other">Medium (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> seconds)</item>
</plurals>
<!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
<plurals name="accessibilty_autoclick_preference_subtitle_long_delay">
- <item quantity="one">Long delay (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> second)</item>
- <item quantity="other">Long delay (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> seconds)</item>
- </plurals>
- <!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
- <plurals name="accessibilty_autoclick_preference_subtitle_very_long_delay">
- <item quantity="one">Very long delay (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> second)</item>
- <item quantity="other">Very long delay (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> seconds)</item>
+ <item quantity="one">Long (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> second)</item>
+ <item quantity="other">Long (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> seconds)</item>
</plurals>
<!-- Summary for autoclick seekbar settings preference when user selected custom item. [CHAR LIMIT=35] -->
@@ -7191,6 +7175,8 @@
<string name="help_url_caption" translatable="false"></string>
<!-- Help URL, Accessibility Timeout [DO NOT TRANSLATE] -->
<string name="help_url_timeout" translatable="false"></string>
+ <!-- Help URL, Accessibility Color Inversion [DO NOT TRANSLATE] -->
+ <string name="help_url_color_inversion" translatable="false"></string>
<string name="help_url_system_dashboard" translatable="false"></string>
<string name="help_url_double_tap_screen" translatable="false"></string>
<string name="help_url_account_detail" translatable="false"></string>
@@ -10671,7 +10657,7 @@
<string name="legacy_navigation_summary">Go back, Home, and switch apps with buttons at the bottom of your screen.</string>
<!-- Search keywords for System Navigation settings. [CHAR_LIMIT=NONE]-->
- <string name="keywords_system_navigation">system navigation, 2 button navigation, 3 button navigation, gesture navigation</string>
+ <string name="keywords_system_navigation">system navigation, 2 button navigation, 3 button navigation, gesture navigation, swipe</string>
<!-- Message for the alert dialog which says that the current default home app does not support gesture navigation. [CHAR LIMIT=NONE] -->
<string name="gesture_not_supported_dialog_message">Not supported by your default home app, <xliff:g id="default_home_app" example="Pixel Launcher">%s</xliff:g></string>
diff --git a/res/xml/gestures.xml b/res/xml/gestures.xml
index a523ec6..c505fc9 100644
--- a/res/xml/gestures.xml
+++ b/res/xml/gestures.xml
@@ -51,7 +51,8 @@
android:key="gesture_system_navigation_input_summary"
android:title="@string/system_navigation_title"
android:fragment="com.android.settings.gestures.SystemNavigationGestureSettings"
- settings:controller="com.android.settings.gestures.SystemNavigationPreferenceController" />
+ settings:controller="com.android.settings.gestures.SystemNavigationPreferenceController"
+ settings:keywords="@string/keywords_system_navigation" />
<Preference
android:key="gesture_tap_screen_input_summary"
diff --git a/src/com/android/settings/accessibility/CaptionAppearanceFragment.java b/src/com/android/settings/accessibility/CaptionAppearanceFragment.java
index 394f50a..6c2b593 100644
--- a/src/com/android/settings/accessibility/CaptionAppearanceFragment.java
+++ b/src/com/android/settings/accessibility/CaptionAppearanceFragment.java
@@ -105,7 +105,7 @@
@Override
public int getMetricsCategory() {
- return SettingsEnums.ACCESSIBILITY_CAPTION_PROPERTIES;
+ return SettingsEnums.ACCESSIBILITY_CAPTION_APPEARANCE;
}
@Override
diff --git a/src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java b/src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java
index 8e5c003..d3fd407 100644
--- a/src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java
+++ b/src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java
@@ -44,7 +44,7 @@
@Override
public int getMetricsCategory() {
- return SettingsEnums.ACCESSIBILITY_CAPTION_PROPERTIES;
+ return SettingsEnums.ACCESSIBILITY_CAPTION_MORE_OPTIONS;
}
@Override
diff --git a/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
index 5e09b2a..6624457 100644
--- a/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
@@ -64,12 +64,10 @@
* Resource ids from which autoclick preference summaries should be derived. The strings have
* placeholder for integer delay value.
*/
- private static final int[] mAutoclickPreferenceSummaries = {
- R.plurals.accessibilty_autoclick_preference_subtitle_extremely_short_delay,
- R.plurals.accessibilty_autoclick_preference_subtitle_very_short_delay,
+ private static final int[] AUTOCLICK_PREFERENCE_SUMMARIES = {
R.plurals.accessibilty_autoclick_preference_subtitle_short_delay,
- R.plurals.accessibilty_autoclick_preference_subtitle_long_delay,
- R.plurals.accessibilty_autoclick_preference_subtitle_very_long_delay
+ R.plurals.accessibilty_autoclick_preference_subtitle_medium_delay,
+ R.plurals.accessibilty_autoclick_preference_subtitle_long_delay
};
/**
@@ -86,7 +84,7 @@
// Only show integer when delay time is 1.
final String decimalFormat = (delaySecond == 1) ? "%.0f" : "%.1f";
- return resources.getQuantityString(mAutoclickPreferenceSummaries[summaryIndex],
+ return resources.getQuantityString(AUTOCLICK_PREFERENCE_SUMMARIES[summaryIndex],
quantity, String.format(decimalFormat, delaySecond));
}
@@ -98,10 +96,10 @@
return 0;
}
if (delay >= MAX_AUTOCLICK_DELAY_MS) {
- return mAutoclickPreferenceSummaries.length - 1;
+ return AUTOCLICK_PREFERENCE_SUMMARIES.length - 1;
}
int delayRange = MAX_AUTOCLICK_DELAY_MS - MIN_AUTOCLICK_DELAY_MS;
- int rangeSize = (delayRange) / (mAutoclickPreferenceSummaries.length - 1);
+ int rangeSize = (delayRange) / (AUTOCLICK_PREFERENCE_SUMMARIES.length - 1);
return (delay - MIN_AUTOCLICK_DELAY_MS) / rangeSize;
}
diff --git a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
index c0ad2ac..833c9f1 100644
--- a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
@@ -114,6 +114,11 @@
}
@Override
+ public int getHelpResource() {
+ return R.string.help_url_color_inversion;
+ }
+
+ @Override
public void onSettingsClicked(ShortcutPreference preference) {
super.onSettingsClicked(preference);
showDialog(DialogEnums.EDIT_SHORTCUT);
diff --git a/src/com/android/settings/applications/RecentAppsPreferenceController.java b/src/com/android/settings/applications/RecentAppsPreferenceController.java
index 28a88a2..69a68ef 100644
--- a/src/com/android/settings/applications/RecentAppsPreferenceController.java
+++ b/src/com/android/settings/applications/RecentAppsPreferenceController.java
@@ -17,7 +17,6 @@
package com.android.settings.applications;
import android.app.Application;
-import android.app.settings.SettingsEnums;
import android.app.usage.UsageStats;
import android.content.Context;
import android.icu.text.RelativeDateTimeFormatter;
@@ -98,12 +97,12 @@
.setHeaderTitleRes(R.string.recent_app_category_title)
.setHeaderDetailsClickListener((View v) -> {
mMetricsFeatureProvider.logClickedPreference(mRecentAppsPreference,
- SettingsEnums.SETTINGS_APP_NOTIF_CATEGORY);
+ getMetricsCategory());
new SubSettingLauncher(mContext)
.setDestination(ManageApplications.class.getName())
.setArguments(null /* arguments */)
.setTitleRes(R.string.application_info_label)
- .setSourceMetricsCategory(SettingsEnums.SETTINGS_APP_NOTIF_CATEGORY)
+ .setSourceMetricsCategory(getMetricsCategory())
.launch();
});
}
@@ -166,11 +165,10 @@
RelativeDateTimeFormatter.Style.SHORT))
.setOnClickListener(v -> {
mMetricsFeatureProvider.logClickedPreference(mRecentAppsPreference,
- SettingsEnums.SETTINGS_APP_NOTIF_CATEGORY);
+ getMetricsCategory());
AppInfoBase.startAppInfoFragment(AppInfoDashboardFragment.class,
R.string.application_info_label, pkgName, appEntry.info.uid,
- mHost, 1001 /*RequestCode*/,
- SettingsEnums.SETTINGS_APP_NOTIF_CATEGORY);
+ mHost, 1001 /*RequestCode*/, getMetricsCategory());
})
.build();
}
diff --git a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java
index b5ccd73..d8ec848 100644
--- a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java
+++ b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java
@@ -46,7 +46,6 @@
import androidx.preference.SwitchPreference;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -202,8 +201,7 @@
pref.setSummary(item.getDescription());
pref.setEnabled(item.isEnabled());
pref.setOnPreferenceClickListener(preference -> {
- mMetricsFeatureProvider.logClickedPreference(preference,
- preference.getExtras().getInt(DashboardFragment.CATEGORY));
+ mMetricsFeatureProvider.logClickedPreference(preference, getMetricsCategory());
final UserHandle user = item.getUser();
mContext.startActivityAsUser(item.getLaunchIntent(mContext), user);
return true;
diff --git a/src/com/android/settings/core/BasePreferenceController.java b/src/com/android/settings/core/BasePreferenceController.java
index 1985a99..c90fe48 100644
--- a/src/com/android/settings/core/BasePreferenceController.java
+++ b/src/com/android/settings/core/BasePreferenceController.java
@@ -124,6 +124,7 @@
private boolean mIsForWork;
@Nullable
private UserHandle mWorkProfileUser;
+ private int mMetricsCategory;
/**
* Instantiate a controller as specified controller type and user-defined key.
@@ -398,12 +399,28 @@
* This won't block UI thread however has similar side effect. Please use it if you
* want to avoid janky animation(i.e. new preference is added in the middle of page).
*
- * This music be used in {@link BasePreferenceController}
+ * This must be used in {@link BasePreferenceController}
*/
public interface UiBlocker {
}
/**
+ * Set the metrics category of the parent fragment.
+ *
+ * Called by DashboardFragment#onAttach
+ */
+ public void setMetricsCategory(int metricsCategory) {
+ mMetricsCategory = metricsCategory;
+ }
+
+ /**
+ * @return the metrics category of the parent fragment.
+ */
+ protected int getMetricsCategory() {
+ return mMetricsCategory;
+ }
+
+ /**
* @return Non-{@code null} {@link UserHandle} when a work profile is enabled.
* Otherwise {@code null}.
*/
diff --git a/src/com/android/settings/core/TogglePreferenceController.java b/src/com/android/settings/core/TogglePreferenceController.java
index 7abe6e0..5a2a8b7 100644
--- a/src/com/android/settings/core/TogglePreferenceController.java
+++ b/src/com/android/settings/core/TogglePreferenceController.java
@@ -18,8 +18,10 @@
import androidx.preference.Preference;
import androidx.preference.TwoStatePreference;
+import com.android.settings.overlay.FeatureFactory;
import com.android.settings.slices.SliceData;
import com.android.settings.widget.MasterSwitchPreference;
+import com.android.settings.widget.TwoStateButtonPreference;
/**
* Abstract class that consolidates logic for updating toggle controllers.
@@ -54,6 +56,8 @@
((TwoStatePreference) preference).setChecked(isChecked());
} else if (preference instanceof MasterSwitchPreference) {
((MasterSwitchPreference) preference).setChecked(isChecked());
+ } else if (preference instanceof TwoStateButtonPreference) {
+ ((TwoStateButtonPreference) preference).setChecked(isChecked());
} else {
refreshSummary(preference);
}
@@ -61,6 +65,12 @@
@Override
public final boolean onPreferenceChange(Preference preference, Object newValue) {
+ // TwoStatePreference is a regular preference and can be handled by DashboardFragment
+ if (preference instanceof MasterSwitchPreference
+ || preference instanceof TwoStateButtonPreference) {
+ FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
+ .logClickedPreference(preference, getMetricsCategory());
+ }
return setChecked((boolean) newValue);
}
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index d121195..c70d841 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -113,6 +113,14 @@
}
});
+ // Set metrics category for BasePreferenceController.
+ final int metricCategory = getMetricsCategory();
+ mControllers.forEach(controller -> {
+ if (controller instanceof BasePreferenceController) {
+ ((BasePreferenceController) controller).setMetricsCategory(metricCategory);
+ }
+ });
+
mPlaceholderPreferenceController =
new DashboardTilePlaceholderPreferenceController(context);
mControllers.add(mPlaceholderPreferenceController);
diff --git a/src/com/android/settings/display/DarkUIPreferenceController.java b/src/com/android/settings/display/DarkUIPreferenceController.java
index c2da56a..98d9a69 100644
--- a/src/com/android/settings/display/DarkUIPreferenceController.java
+++ b/src/com/android/settings/display/DarkUIPreferenceController.java
@@ -17,7 +17,6 @@
package com.android.settings.display;
import android.app.UiModeManager;
-import android.app.settings.SettingsEnums;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -33,8 +32,6 @@
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -49,7 +46,6 @@
@VisibleForTesting
Preference mPreference;
- private final MetricsFeatureProvider mMetricsFeatureProvider;
private UiModeManager mUiModeManager;
private PowerManager mPowerManager;
private Context mContext;
@@ -68,7 +64,6 @@
mContext = context;
mUiModeManager = context.getSystemService(UiModeManager.class);
mPowerManager = context.getSystemService(PowerManager.class);
- mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
}
@Override
@@ -91,7 +86,6 @@
@Override
public boolean setChecked(boolean isChecked) {
- mMetricsFeatureProvider.logClickedPreference(mPreference, SettingsEnums.DISPLAY);
final boolean dialogSeen =
Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.DARK_MODE_DIALOG_SEEN, 0) == DIALOG_SEEN;
diff --git a/src/com/android/settings/display/NightDisplayActivationPreferenceController.java b/src/com/android/settings/display/NightDisplayActivationPreferenceController.java
index f68df50..4b1e295 100644
--- a/src/com/android/settings/display/NightDisplayActivationPreferenceController.java
+++ b/src/com/android/settings/display/NightDisplayActivationPreferenceController.java
@@ -16,7 +16,6 @@
package com.android.settings.display;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.hardware.display.ColorDisplayManager;
import android.text.TextUtils;
@@ -50,8 +49,7 @@
@Override
public void onClick(View v) {
mButtonTriggered = true;
- mMetricsFeatureProvider.logClickedPreference(mPreference,
- SettingsEnums.NIGHT_DISPLAY_SETTINGS);
+ mMetricsFeatureProvider.logClickedPreference(mPreference, getMetricsCategory());
mColorDisplayManager.setNightDisplayActivated(
!mColorDisplayManager.isNightDisplayActivated());
updateStateInternal();
diff --git a/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceController.java b/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceController.java
index 622f2e2..74b029f 100644
--- a/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceController.java
+++ b/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceController.java
@@ -16,7 +16,6 @@
package com.android.settings.display.darkmode;
import android.app.UiModeManager;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.res.Configuration;
import android.os.PowerManager;
@@ -136,8 +135,7 @@
private final View.OnClickListener mListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
- mMetricsFeatureProvider.logClickedPreference(mPreference,
- SettingsEnums.DARK_UI_SETTINGS);
+ mMetricsFeatureProvider.logClickedPreference(mPreference, getMetricsCategory());
final boolean active = (mContext.getResources().getConfiguration().uiMode
& Configuration.UI_MODE_NIGHT_YES) != 0;
mUiModeManager.setNightModeActivated(!active);
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java
index fff6523..a089abc 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java
@@ -16,21 +16,17 @@
package com.android.settings.fuelgauge.batterysaver;
-import android.app.settings.SettingsEnums;
import android.content.ContentResolver;
import android.content.Context;
import android.net.Uri;
import android.os.PowerManager;
import android.provider.SettingsSlicesContract;
-import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.fuelgauge.BatterySaverReceiver;
-import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.TwoStateButtonPreference;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -45,13 +41,11 @@
private final BatterySaverReceiver mBatterySaverReceiver;
private final PowerManager mPowerManager;
- private final MetricsFeatureProvider mMetricsFeatureProvider;
private TwoStateButtonPreference mPreference;
public BatterySaverButtonPreferenceController(Context context, String key) {
super(context, key);
- mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
mBatterySaverReceiver = new BatterySaverReceiver(context);
mBatterySaverReceiver.setBatterySaverListener(this);
@@ -100,22 +94,12 @@
@Override
public boolean setChecked(boolean stateOn) {
- mMetricsFeatureProvider.logClickedPreference(mPreference,
- SettingsEnums.FUELGAUGE_BATTERY_SAVER);
// This screen already shows a warning, so we don't need another warning.
return BatterySaverUtils.setPowerSaveMode(mContext, stateOn,
false /* needFirstTimeWarning */);
}
@Override
- public void updateState(Preference preference) {
- super.updateState(preference);
- if (mPreference != null) {
- mPreference.setChecked(isChecked());
- }
- }
-
- @Override
public void onPowerSaveModeChanged() {
final boolean isChecked = isChecked();
if (mPreference != null && mPreference.isChecked() != isChecked) {
diff --git a/src/com/android/settings/network/telephony/TelephonyConstants.java b/src/com/android/settings/network/telephony/TelephonyConstants.java
index 2a2613c..78a177e 100644
--- a/src/com/android/settings/network/telephony/TelephonyConstants.java
+++ b/src/com/android/settings/network/telephony/TelephonyConstants.java
@@ -16,7 +16,6 @@
package com.android.settings.network.telephony;
-
import android.telephony.TelephonyManager;
/**
@@ -210,6 +209,12 @@
* Copied from {@link android.telephony.RadioAccessFamily}
*/
public static class RadioAccessFamily {
+ /**
+ * TODO: get rid of RAF definition in RadioAccessFamily and
+ * use {@link TelephonyManager.NetworkTypeBitMask}
+ * TODO: public definition {@link TelephonyManager.NetworkTypeBitMask} is long.
+ * TODO: Convert from int * to long everywhere including HAL definitions.
+ */
// 2G
public static final int RAF_UNKNOWN = (int) TelephonyManager.NETWORK_TYPE_BITMASK_UNKNOWN;
public static final int RAF_GSM = (int) TelephonyManager.NETWORK_TYPE_BITMASK_GSM;
@@ -245,9 +250,7 @@
public static final int WCDMA = HS | RAF_UMTS;
// 4G
public static final int LTE = RAF_LTE | RAF_LTE_CA;
-
// 5G
public static final int NR = RAF_NR;
-
}
}
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index bba9001..581f202 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -1304,9 +1304,7 @@
final List<String> keys = super.getNonIndexableKeys(context);
final WifiManager wifiManager = context.getSystemService(WifiManager.class);
- final List<AccessPoint> accessPoints = WifiSavedConfigUtils.getAllConfigs(
- context, wifiManager);
- if (accessPoints == null || accessPoints.size() <= 0) {
+ if (WifiSavedConfigUtils.getAllConfigsCount(context, wifiManager) == 0) {
keys.add(PREF_KEY_SAVED_NETWORKS);
}
diff --git a/src/com/android/settings/wifi/WifiSettings2.java b/src/com/android/settings/wifi/WifiSettings2.java
index 1098c01..e791df8 100644
--- a/src/com/android/settings/wifi/WifiSettings2.java
+++ b/src/com/android/settings/wifi/WifiSettings2.java
@@ -76,6 +76,7 @@
import com.android.settingslib.search.Indexable;
import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.wifi.LongPressWifiEntryPreference;
+import com.android.settingslib.wifi.WifiSavedConfigUtils;
import com.android.wifitrackerlib.WifiEntry;
import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
import com.android.wifitrackerlib.WifiPickerTracker;
@@ -1027,7 +1028,22 @@
};
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
- new BaseSearchIndexProvider(R.xml.wifi_settings2);
+ new BaseSearchIndexProvider(R.xml.wifi_settings2) {
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ final List<String> keys = super.getNonIndexableKeys(context);
+
+ final WifiManager wifiManager = context.getSystemService(WifiManager.class);
+ if (WifiSavedConfigUtils.getAllConfigsCount(context, wifiManager) == 0) {
+ keys.add(PREF_KEY_SAVED_NETWORKS);
+ }
+
+ if (!DataUsageUtils.hasWifiRadio(context)) {
+ keys.add(PREF_KEY_DATA_USAGE);
+ }
+ return keys;
+ }
+ };
private class WifiEntryConnectCallback implements ConnectCallback {
final WifiEntry mConnectWifiEntry;
diff --git a/tests/robotests/src/com/android/settings/core/BasePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/core/BasePreferenceControllerTest.java
index fc18f60..0707c2c 100644
--- a/tests/robotests/src/com/android/settings/core/BasePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/core/BasePreferenceControllerTest.java
@@ -28,6 +28,7 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import android.app.settings.SettingsEnums;
import android.content.Context;
import androidx.preference.Preference;
@@ -205,6 +206,15 @@
assertThat(keys).isEmpty();
}
+ @Test
+ public void getMetricsCategory_metricsCategoryIsSet_shouldReturnTheSameCategory() {
+ mPreferenceController.setMetricsCategory(SettingsEnums.DISPLAY);
+
+ final int category = mPreferenceController.getMetricsCategory();
+
+ assertThat(category).isEqualTo(SettingsEnums.DISPLAY);
+ }
+
private class FakeBasePreferenceController extends BasePreferenceController {
private int mAvailable;