Add metric logs for special cases in Display and Battery page

Bug: 137559984
Test: robotest
Change-Id: I60f6237ac2c533306879f46ee4c25d54002cf0e9
This commit is contained in:
Jason Chiu
2020-03-20 19:02:06 +08:00
parent b3c16d5d4f
commit 26343b82ee
16 changed files with 117 additions and 63 deletions

View File

@@ -107,8 +107,7 @@ public class LockscreenDashboardFragment extends DashboardFragment
KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE);
lifecycle.addObserver(notificationController);
controllers.add(notificationController);
mOwnerInfoPreferenceController =
new OwnerInfoPreferenceController(context, this, lifecycle);
mOwnerInfoPreferenceController = new OwnerInfoPreferenceController(context, this);
controllers.add(mOwnerInfoPreferenceController);
return controllers;
@@ -137,7 +136,7 @@ public class LockscreenDashboardFragment extends DashboardFragment
final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new LockScreenNotificationPreferenceController(context));
controllers.add(new OwnerInfoPreferenceController(
context, null /* fragment */, null /* lifecycle */));
context, null /* fragment */));
return controllers;
}

View File

@@ -17,11 +17,10 @@ package com.android.settings.security;
import android.content.Context;
import android.os.UserHandle;
import android.text.TextUtils;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
import androidx.preference.Preference.OnPreferenceClickListener;
import androidx.preference.PreferenceScreen;
import com.android.internal.widget.LockPatternUtils;
@@ -31,18 +30,19 @@ import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.ObservablePreferenceFragment;
import com.android.settingslib.core.lifecycle.events.OnResume;
public class OwnerInfoPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin, LifecycleObserver, OnResume {
private static final String KEY_OWNER_INFO = "owner_info_settings";
@VisibleForTesting
static final String KEY_OWNER_INFO = "owner_info_settings";
private static final int MY_USER_ID = UserHandle.myUserId();
private final LockPatternUtils mLockPatternUtils;
private final Fragment mParent;
private final ObservablePreferenceFragment mParent;
private RestrictedPreference mOwnerInfoPref;
// Container fragment should implement this in order to show the correct summary
@@ -50,12 +50,12 @@ public class OwnerInfoPreferenceController extends AbstractPreferenceController
void onOwnerInfoUpdated();
}
public OwnerInfoPreferenceController(Context context, Fragment parent, Lifecycle lifecycle ) {
public OwnerInfoPreferenceController(Context context, ObservablePreferenceFragment parent) {
super(context);
mParent = parent;
mLockPatternUtils = new LockPatternUtils(context);
if (lifecycle != null) {
lifecycle.addObserver(this);
if (parent != null) {
parent.getSettingsLifecycle().addObserver(this);
}
}
@@ -80,6 +80,15 @@ public class OwnerInfoPreferenceController extends AbstractPreferenceController
return KEY_OWNER_INFO;
}
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
if (TextUtils.equals(getPreferenceKey(), preference.getKey())) {
OwnerInfoSettings.show(mParent);
return true;
}
return false;
}
public void updateEnableState() {
if (mOwnerInfoPref == null) {
return;
@@ -90,16 +99,6 @@ public class OwnerInfoPreferenceController extends AbstractPreferenceController
} else {
mOwnerInfoPref.setDisabledByAdmin(null);
mOwnerInfoPref.setEnabled(!mLockPatternUtils.isLockScreenDisabled(MY_USER_ID));
if (mOwnerInfoPref.isEnabled()) {
mOwnerInfoPref.setOnPreferenceClickListener(
new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
OwnerInfoSettings.show(mParent);
return true;
}
});
}
}
}

View File

@@ -20,15 +20,12 @@ import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.UserHandle;
import androidx.fragment.app.Fragment;
import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.security.OwnerInfoPreferenceController;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList;
@@ -61,8 +58,7 @@ public class ScreenLockSettings extends DashboardFragment
@Override
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
mLockPatternUtils = new LockPatternUtils(context);
return buildPreferenceControllers(context, this /* parent */, getSettingsLifecycle(),
mLockPatternUtils);
return buildPreferenceControllers(context, this /* parent */, mLockPatternUtils);
}
@Override
@@ -71,7 +67,7 @@ public class ScreenLockSettings extends DashboardFragment
}
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
Fragment parent, Lifecycle lifecycle, LockPatternUtils lockPatternUtils) {
DashboardFragment parent, LockPatternUtils lockPatternUtils) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new PatternVisiblePreferenceController(
context, MY_USER_ID, lockPatternUtils));
@@ -79,11 +75,10 @@ public class ScreenLockSettings extends DashboardFragment
context, MY_USER_ID, lockPatternUtils));
controllers.add(new LockAfterTimeoutPreferenceController(
context, MY_USER_ID, lockPatternUtils));
controllers.add(new OwnerInfoPreferenceController(context, parent, lifecycle));
controllers.add(new OwnerInfoPreferenceController(context, parent));
return controllers;
}
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider(R.xml.screen_lock_settings) {
@@ -91,7 +86,7 @@ public class ScreenLockSettings extends DashboardFragment
public List<AbstractPreferenceController> createPreferenceControllers(
Context context) {
return buildPreferenceControllers(context, null /* parent */,
null /* lifecycle */, new LockPatternUtils(context));
new LockPatternUtils(context));
}
};
}