summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJason Chiu <chiujason@google.com>2020-04-07 06:33:30 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-04-07 06:33:30 +0000
commit4edb83b260d6a8e396b34bbfe338e80c16066d65 (patch)
tree9240b8f2ab53a5d396bfcc9905097c7dbfbcedf3 /src
parentdfa6cf0d057de80f6947821717fb1128538841f2 (diff)
parent819abf7f87edf84a25b3ae677a039291cd6a9960 (diff)
downloadpackages_apps_Settings-4edb83b260d6a8e396b34bbfe338e80c16066d65.tar.gz
packages_apps_Settings-4edb83b260d6a8e396b34bbfe338e80c16066d65.tar.bz2
packages_apps_Settings-4edb83b260d6a8e396b34bbfe338e80c16066d65.zip
Merge "Refine metrics log in infrastructure" into rvc-dev
Diffstat (limited to 'src')
-rw-r--r--src/com/android/settings/applications/RecentAppsPreferenceController.java10
-rw-r--r--src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java4
-rw-r--r--src/com/android/settings/core/BasePreferenceController.java19
-rw-r--r--src/com/android/settings/core/TogglePreferenceController.java10
-rw-r--r--src/com/android/settings/dashboard/DashboardFragment.java8
-rw-r--r--src/com/android/settings/display/DarkUIPreferenceController.java6
-rw-r--r--src/com/android/settings/display/NightDisplayActivationPreferenceController.java4
-rw-r--r--src/com/android/settings/display/darkmode/DarkModeActivationPreferenceController.java4
-rw-r--r--src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java16
9 files changed, 43 insertions, 38 deletions
diff --git a/src/com/android/settings/applications/RecentAppsPreferenceController.java b/src/com/android/settings/applications/RecentAppsPreferenceController.java
index 28a88a200f..69a68ef9e7 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 @@ public class RecentAppsPreferenceController extends BasePreferenceController
.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 @@ public class RecentAppsPreferenceController extends BasePreferenceController
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 b5ccd73fef..d8ec8489cd 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.PreferenceScreen;
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 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle
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 1985a998d8..c90fe48bc9 100644
--- a/src/com/android/settings/core/BasePreferenceController.java
+++ b/src/com/android/settings/core/BasePreferenceController.java
@@ -124,6 +124,7 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl
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 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl
* 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 7abe6e09fc..5a2a8b70e5 100644
--- a/src/com/android/settings/core/TogglePreferenceController.java
+++ b/src/com/android/settings/core/TogglePreferenceController.java
@@ -18,8 +18,10 @@ import android.content.Context;
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 @@ public abstract class TogglePreferenceController extends BasePreferenceControlle
((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 @@ public abstract class TogglePreferenceController extends BasePreferenceControlle
@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 d1211953d6..c70d841997 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -113,6 +113,14 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
}
});
+ // 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 c2da56aaa8..98d9a69ea7 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 androidx.preference.PreferenceScreen;
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 @@ public class DarkUIPreferenceController extends TogglePreferenceController imple
@VisibleForTesting
Preference mPreference;
- private final MetricsFeatureProvider mMetricsFeatureProvider;
private UiModeManager mUiModeManager;
private PowerManager mPowerManager;
private Context mContext;
@@ -68,7 +64,6 @@ public class DarkUIPreferenceController extends TogglePreferenceController imple
mContext = context;
mUiModeManager = context.getSystemService(UiModeManager.class);
mPowerManager = context.getSystemService(PowerManager.class);
- mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
}
@Override
@@ -91,7 +86,6 @@ public class DarkUIPreferenceController extends TogglePreferenceController imple
@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 f68df50390..4b1e295445 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 @@ public class NightDisplayActivationPreferenceController extends TogglePreference
@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 622f2e2cf4..74b029fc3b 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 @@ public class DarkModeActivationPreferenceController extends BasePreferenceContro
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 fff6523a39..a089abc8c2 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 @@ public class BatterySaverButtonPreferenceController extends
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 @@ public class BatterySaverButtonPreferenceController extends
@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) {