Add preference click metric logs for some special cases
Bug: 137559984 Test: visual, robotest Change-Id: If8624b49abcd0000487065160ce4a7ba861f234c
This commit is contained in:
@@ -34,7 +34,7 @@
|
|||||||
settings:searchable="false"/>
|
settings:searchable="false"/>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="configure_settings"
|
android:key="configure_wifi_settings"
|
||||||
android:title="@string/wifi_configure_settings_preference_title"
|
android:title="@string/wifi_configure_settings_preference_title"
|
||||||
settings:allowDividerAbove="true"
|
settings:allowDividerAbove="true"
|
||||||
android:fragment="com.android.settings.wifi.ConfigureWifiSettings"/>
|
android:fragment="com.android.settings.wifi.ConfigureWifiSettings"/>
|
||||||
|
@@ -32,7 +32,7 @@
|
|||||||
android:layout="@layout/preference_category_no_label"/>
|
android:layout="@layout/preference_category_no_label"/>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="configure_settings"
|
android:key="configure_wifi_settings"
|
||||||
android:title="@string/wifi_configure_settings_preference_title"
|
android:title="@string/wifi_configure_settings_preference_title"
|
||||||
settings:allowDividerAbove="true"
|
settings:allowDividerAbove="true"
|
||||||
android:fragment="com.android.settings.wifi.ConfigureWifiSettings"/>
|
android:fragment="com.android.settings.wifi.ConfigureWifiSettings"/>
|
||||||
|
@@ -23,7 +23,6 @@ import android.content.Context;
|
|||||||
import android.icu.text.RelativeDateTimeFormatter;
|
import android.icu.text.RelativeDateTimeFormatter;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.util.IconDrawableFactory;
|
import android.util.IconDrawableFactory;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@@ -37,7 +36,9 @@ import com.android.settings.applications.appinfo.AppInfoDashboardFragment;
|
|||||||
import com.android.settings.applications.manageapplications.ManageApplications;
|
import com.android.settings.applications.manageapplications.ManageApplications;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.core.SubSettingLauncher;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.applications.ApplicationsState;
|
import com.android.settingslib.applications.ApplicationsState;
|
||||||
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
import com.android.settingslib.utils.StringUtil;
|
import com.android.settingslib.utils.StringUtil;
|
||||||
import com.android.settingslib.widget.AppEntitiesHeaderController;
|
import com.android.settingslib.widget.AppEntitiesHeaderController;
|
||||||
import com.android.settingslib.widget.AppEntityInfo;
|
import com.android.settingslib.widget.AppEntityInfo;
|
||||||
@@ -65,6 +66,7 @@ public class RecentAppsPreferenceController extends BasePreferenceController
|
|||||||
private final ApplicationsState mApplicationsState;
|
private final ApplicationsState mApplicationsState;
|
||||||
private final int mUserId;
|
private final int mUserId;
|
||||||
private final IconDrawableFactory mIconDrawableFactory;
|
private final IconDrawableFactory mIconDrawableFactory;
|
||||||
|
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||||
|
|
||||||
private Fragment mHost;
|
private Fragment mHost;
|
||||||
private List<UsageStats> mRecentApps;
|
private List<UsageStats> mRecentApps;
|
||||||
@@ -75,6 +77,7 @@ public class RecentAppsPreferenceController extends BasePreferenceController
|
|||||||
(Application) mContext.getApplicationContext());
|
(Application) mContext.getApplicationContext());
|
||||||
mUserId = UserHandle.myUserId();
|
mUserId = UserHandle.myUserId();
|
||||||
mIconDrawableFactory = IconDrawableFactory.newInstance(mContext);
|
mIconDrawableFactory = IconDrawableFactory.newInstance(mContext);
|
||||||
|
mMetricsFeatureProvider = FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFragment(Fragment fragment) {
|
public void setFragment(Fragment fragment) {
|
||||||
@@ -96,6 +99,8 @@ public class RecentAppsPreferenceController extends BasePreferenceController
|
|||||||
mAppEntitiesController = AppEntitiesHeaderController.newInstance(mContext, view)
|
mAppEntitiesController = AppEntitiesHeaderController.newInstance(mContext, view)
|
||||||
.setHeaderTitleRes(R.string.recent_app_category_title)
|
.setHeaderTitleRes(R.string.recent_app_category_title)
|
||||||
.setHeaderDetailsClickListener((View v) -> {
|
.setHeaderDetailsClickListener((View v) -> {
|
||||||
|
mMetricsFeatureProvider.logClickedPreference(mRecentAppsPreference,
|
||||||
|
SettingsEnums.SETTINGS_APP_NOTIF_CATEGORY);
|
||||||
new SubSettingLauncher(mContext)
|
new SubSettingLauncher(mContext)
|
||||||
.setDestination(ManageApplications.class.getName())
|
.setDestination(ManageApplications.class.getName())
|
||||||
.setArguments(null /* arguments */)
|
.setArguments(null /* arguments */)
|
||||||
@@ -161,11 +166,14 @@ public class RecentAppsPreferenceController extends BasePreferenceController
|
|||||||
.setSummary(StringUtil.formatRelativeTime(mContext,
|
.setSummary(StringUtil.formatRelativeTime(mContext,
|
||||||
System.currentTimeMillis() - stat.getLastTimeUsed(), false,
|
System.currentTimeMillis() - stat.getLastTimeUsed(), false,
|
||||||
RelativeDateTimeFormatter.Style.SHORT))
|
RelativeDateTimeFormatter.Style.SHORT))
|
||||||
.setOnClickListener(v ->
|
.setOnClickListener(v -> {
|
||||||
AppInfoBase.startAppInfoFragment(AppInfoDashboardFragment.class,
|
mMetricsFeatureProvider.logClickedPreference(mRecentAppsPreference,
|
||||||
R.string.application_info_label, pkgName, appEntry.info.uid,
|
SettingsEnums.SETTINGS_APP_NOTIF_CATEGORY);
|
||||||
mHost, 1001 /*RequestCode*/,
|
AppInfoBase.startAppInfoFragment(AppInfoDashboardFragment.class,
|
||||||
SettingsEnums.SETTINGS_APP_NOTIF_CATEGORY))
|
R.string.application_info_label, pkgName, appEntry.info.uid,
|
||||||
|
mHost, 1001 /*RequestCode*/,
|
||||||
|
SettingsEnums.SETTINGS_APP_NOTIF_CATEGORY);
|
||||||
|
})
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -46,6 +46,9 @@ import androidx.preference.PreferenceScreen;
|
|||||||
import androidx.preference.SwitchPreference;
|
import androidx.preference.SwitchPreference;
|
||||||
|
|
||||||
import com.android.settings.core.BasePreferenceController;
|
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;
|
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnStart;
|
import com.android.settingslib.core.lifecycle.events.OnStart;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnStop;
|
import com.android.settingslib.core.lifecycle.events.OnStop;
|
||||||
@@ -71,6 +74,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle
|
|||||||
private final UserManager mUm;
|
private final UserManager mUm;
|
||||||
private final PackageManager mPackageManager;
|
private final PackageManager mPackageManager;
|
||||||
private final IPackageManager mIPackageManager;
|
private final IPackageManager mIPackageManager;
|
||||||
|
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||||
/**
|
/**
|
||||||
* Internal collection of device admin info objects for all profiles associated with the current
|
* Internal collection of device admin info objects for all profiles associated with the current
|
||||||
* user.
|
* user.
|
||||||
@@ -102,6 +106,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle
|
|||||||
mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
||||||
mPackageManager = mContext.getPackageManager();
|
mPackageManager = mContext.getPackageManager();
|
||||||
mIPackageManager = AppGlobals.getPackageManager();
|
mIPackageManager = AppGlobals.getPackageManager();
|
||||||
|
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -197,6 +202,8 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle
|
|||||||
pref.setSummary(item.getDescription());
|
pref.setSummary(item.getDescription());
|
||||||
pref.setEnabled(item.isEnabled());
|
pref.setEnabled(item.isEnabled());
|
||||||
pref.setOnPreferenceClickListener(preference -> {
|
pref.setOnPreferenceClickListener(preference -> {
|
||||||
|
mMetricsFeatureProvider.logClickedPreference(preference,
|
||||||
|
pref.getExtras().getInt(DashboardFragment.CATEGORY));
|
||||||
final UserHandle user = item.getUser();
|
final UserHandle user = item.getUser();
|
||||||
mContext.startActivityAsUser(item.getLaunchIntent(mContext), user);
|
mContext.startActivityAsUser(item.getLaunchIntent(mContext), user);
|
||||||
return true;
|
return true;
|
||||||
|
@@ -35,6 +35,8 @@ public class AvailableMediaBluetoothDeviceUpdater extends BluetoothDeviceUpdater
|
|||||||
private static final String TAG = "AvailableMediaBluetoothDeviceUpdater";
|
private static final String TAG = "AvailableMediaBluetoothDeviceUpdater";
|
||||||
private static final boolean DBG = false;
|
private static final boolean DBG = false;
|
||||||
|
|
||||||
|
private static final String PREF_KEY = "available_media_bt";
|
||||||
|
|
||||||
private final AudioManager mAudioManager;
|
private final AudioManager mAudioManager;
|
||||||
|
|
||||||
public AvailableMediaBluetoothDeviceUpdater(Context context, DashboardFragment fragment,
|
public AvailableMediaBluetoothDeviceUpdater(Context context, DashboardFragment fragment,
|
||||||
@@ -97,9 +99,14 @@ public class AvailableMediaBluetoothDeviceUpdater extends BluetoothDeviceUpdater
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
|
mMetricsFeatureProvider.logClickedPreference(preference, mFragment.getMetricsCategory());
|
||||||
final CachedBluetoothDevice device = ((BluetoothDevicePreference) preference)
|
final CachedBluetoothDevice device = ((BluetoothDevicePreference) preference)
|
||||||
.getBluetoothDevice();
|
.getBluetoothDevice();
|
||||||
return device.setActive();
|
return device.setActive();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getPreferenceKey() {
|
||||||
|
return PREF_KEY;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -28,12 +28,14 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.connecteddevice.DevicePreferenceCallback;
|
import com.android.settings.connecteddevice.DevicePreferenceCallback;
|
||||||
import com.android.settings.core.SubSettingLauncher;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.widget.GearPreference;
|
import com.android.settings.widget.GearPreference;
|
||||||
import com.android.settingslib.bluetooth.BluetoothCallback;
|
import com.android.settingslib.bluetooth.BluetoothCallback;
|
||||||
import com.android.settingslib.bluetooth.BluetoothDeviceFilter;
|
import com.android.settingslib.bluetooth.BluetoothDeviceFilter;
|
||||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||||
import com.android.settingslib.bluetooth.LocalBluetoothManager;
|
import com.android.settingslib.bluetooth.LocalBluetoothManager;
|
||||||
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
|
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
|
||||||
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -52,6 +54,7 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
|
|||||||
private static final String TAG = "BluetoothDeviceUpdater";
|
private static final String TAG = "BluetoothDeviceUpdater";
|
||||||
private static final boolean DBG = false;
|
private static final boolean DBG = false;
|
||||||
|
|
||||||
|
protected final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||||
protected final DevicePreferenceCallback mDevicePreferenceCallback;
|
protected final DevicePreferenceCallback mDevicePreferenceCallback;
|
||||||
protected final Map<BluetoothDevice, Preference> mPreferenceMap;
|
protected final Map<BluetoothDevice, Preference> mPreferenceMap;
|
||||||
protected Context mPrefContext;
|
protected Context mPrefContext;
|
||||||
@@ -76,6 +79,8 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
|
|||||||
mDevicePreferenceCallback = devicePreferenceCallback;
|
mDevicePreferenceCallback = devicePreferenceCallback;
|
||||||
mPreferenceMap = new HashMap<>();
|
mPreferenceMap = new HashMap<>();
|
||||||
mLocalManager = localManager;
|
mLocalManager = localManager;
|
||||||
|
mMetricsFeatureProvider = FeatureFactory.getFactory(mFragment.getContext())
|
||||||
|
.getMetricsFeatureProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -206,6 +211,11 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
|
|||||||
*/
|
*/
|
||||||
public abstract boolean isFilterMatched(CachedBluetoothDevice cachedBluetoothDevice);
|
public abstract boolean isFilterMatched(CachedBluetoothDevice cachedBluetoothDevice);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a preference key for logging
|
||||||
|
*/
|
||||||
|
protected abstract String getPreferenceKey();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update whether to show {@link CachedBluetoothDevice} in the list.
|
* Update whether to show {@link CachedBluetoothDevice} in the list.
|
||||||
*/
|
*/
|
||||||
@@ -228,6 +238,7 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
|
|||||||
new BluetoothDevicePreference(mPrefContext, cachedDevice,
|
new BluetoothDevicePreference(mPrefContext, cachedDevice,
|
||||||
true /* showDeviceWithoutNames */,
|
true /* showDeviceWithoutNames */,
|
||||||
BluetoothDevicePreference.SortType.TYPE_DEFAULT);
|
BluetoothDevicePreference.SortType.TYPE_DEFAULT);
|
||||||
|
btPreference.setKey(getPreferenceKey());
|
||||||
btPreference.setOnGearClickListener(mDeviceProfilesListener);
|
btPreference.setOnGearClickListener(mDeviceProfilesListener);
|
||||||
if (this instanceof Preference.OnPreferenceClickListener) {
|
if (this instanceof Preference.OnPreferenceClickListener) {
|
||||||
btPreference.setOnPreferenceClickListener(
|
btPreference.setOnPreferenceClickListener(
|
||||||
@@ -264,6 +275,7 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
|
|||||||
* {@link SubSettingLauncher} to launch {@link BluetoothDeviceDetailsFragment}
|
* {@link SubSettingLauncher} to launch {@link BluetoothDeviceDetailsFragment}
|
||||||
*/
|
*/
|
||||||
protected void launchDeviceDetails(Preference preference) {
|
protected void launchDeviceDetails(Preference preference) {
|
||||||
|
mMetricsFeatureProvider.logClickedPreference(preference, mFragment.getMetricsCategory());
|
||||||
final CachedBluetoothDevice device =
|
final CachedBluetoothDevice device =
|
||||||
((BluetoothDevicePreference) preference).getBluetoothDevice();
|
((BluetoothDevicePreference) preference).getBluetoothDevice();
|
||||||
if (device == null) {
|
if (device == null) {
|
||||||
|
@@ -35,6 +35,8 @@ public class ConnectedBluetoothDeviceUpdater extends BluetoothDeviceUpdater {
|
|||||||
private static final String TAG = "ConnBluetoothDeviceUpdater";
|
private static final String TAG = "ConnBluetoothDeviceUpdater";
|
||||||
private static final boolean DBG = false;
|
private static final boolean DBG = false;
|
||||||
|
|
||||||
|
private static final String PREF_KEY = "connected_bt";
|
||||||
|
|
||||||
private final AudioManager mAudioManager;
|
private final AudioManager mAudioManager;
|
||||||
|
|
||||||
public ConnectedBluetoothDeviceUpdater(Context context, DashboardFragment fragment,
|
public ConnectedBluetoothDeviceUpdater(Context context, DashboardFragment fragment,
|
||||||
@@ -111,4 +113,9 @@ public class ConnectedBluetoothDeviceUpdater extends BluetoothDeviceUpdater {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getPreferenceKey() {
|
||||||
|
return PREF_KEY;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -30,9 +30,12 @@ import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
|||||||
*/
|
*/
|
||||||
public class SavedBluetoothDeviceUpdater extends BluetoothDeviceUpdater
|
public class SavedBluetoothDeviceUpdater extends BluetoothDeviceUpdater
|
||||||
implements Preference.OnPreferenceClickListener {
|
implements Preference.OnPreferenceClickListener {
|
||||||
|
|
||||||
private static final String TAG = "SavedBluetoothDeviceUpdater";
|
private static final String TAG = "SavedBluetoothDeviceUpdater";
|
||||||
private static final boolean DBG = false;
|
private static final boolean DBG = false;
|
||||||
|
|
||||||
|
private static final String PREF_KEY = "saved_bt";
|
||||||
|
|
||||||
public SavedBluetoothDeviceUpdater(Context context, DashboardFragment fragment,
|
public SavedBluetoothDeviceUpdater(Context context, DashboardFragment fragment,
|
||||||
DevicePreferenceCallback devicePreferenceCallback) {
|
DevicePreferenceCallback devicePreferenceCallback) {
|
||||||
super(context, fragment, devicePreferenceCallback);
|
super(context, fragment, devicePreferenceCallback);
|
||||||
@@ -51,9 +54,15 @@ public class SavedBluetoothDeviceUpdater extends BluetoothDeviceUpdater
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
|
mMetricsFeatureProvider.logClickedPreference(preference, mFragment.getMetricsCategory());
|
||||||
final CachedBluetoothDevice device = ((BluetoothDevicePreference) preference)
|
final CachedBluetoothDevice device = ((BluetoothDevicePreference) preference)
|
||||||
.getBluetoothDevice();
|
.getBluetoothDevice();
|
||||||
device.connect(true);
|
device.connect(true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getPreferenceKey() {
|
||||||
|
return PREF_KEY;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -29,11 +29,18 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.connecteddevice.DevicePreferenceCallback;
|
import com.android.settings.connecteddevice.DevicePreferenceCallback;
|
||||||
import com.android.settings.core.SubSettingLauncher;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controller to maintain connected usb device
|
* Controller to maintain connected usb device
|
||||||
*/
|
*/
|
||||||
public class ConnectedUsbDeviceUpdater {
|
public class ConnectedUsbDeviceUpdater {
|
||||||
|
|
||||||
|
private static final String PREF_KEY = "connected_usb";
|
||||||
|
|
||||||
|
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||||
|
|
||||||
private DashboardFragment mFragment;
|
private DashboardFragment mFragment;
|
||||||
private UsbBackend mUsbBackend;
|
private UsbBackend mUsbBackend;
|
||||||
private DevicePreferenceCallback mDevicePreferenceCallback;
|
private DevicePreferenceCallback mDevicePreferenceCallback;
|
||||||
@@ -67,6 +74,8 @@ public class ConnectedUsbDeviceUpdater {
|
|||||||
mUsbBackend = usbBackend;
|
mUsbBackend = usbBackend;
|
||||||
mUsbReceiver = new UsbConnectionBroadcastReceiver(context,
|
mUsbReceiver = new UsbConnectionBroadcastReceiver(context,
|
||||||
mUsbConnectionListener, mUsbBackend);
|
mUsbConnectionListener, mUsbBackend);
|
||||||
|
mMetricsFeatureProvider = FeatureFactory.getFactory(mFragment.getContext())
|
||||||
|
.getMetricsFeatureProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registerCallback() {
|
public void registerCallback() {
|
||||||
@@ -82,7 +91,9 @@ public class ConnectedUsbDeviceUpdater {
|
|||||||
mUsbPreference = new Preference(context, null /* AttributeSet */);
|
mUsbPreference = new Preference(context, null /* AttributeSet */);
|
||||||
mUsbPreference.setTitle(R.string.usb_pref);
|
mUsbPreference.setTitle(R.string.usb_pref);
|
||||||
mUsbPreference.setIcon(R.drawable.ic_usb);
|
mUsbPreference.setIcon(R.drawable.ic_usb);
|
||||||
|
mUsbPreference.setKey(PREF_KEY);
|
||||||
mUsbPreference.setOnPreferenceClickListener((Preference p) -> {
|
mUsbPreference.setOnPreferenceClickListener((Preference p) -> {
|
||||||
|
mMetricsFeatureProvider.logClickedPreference(p, mFragment.getMetricsCategory());
|
||||||
// New version - uses a separate screen.
|
// New version - uses a separate screen.
|
||||||
new SubSettingLauncher(mFragment.getContext())
|
new SubSettingLauncher(mFragment.getContext())
|
||||||
.setDestination(UsbDetailsFragment.class.getName())
|
.setDestination(UsbDetailsFragment.class.getName())
|
||||||
|
@@ -150,12 +150,15 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements
|
|||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceTreeClick(Preference preference) {
|
public boolean onPreferenceTreeClick(Preference preference) {
|
||||||
if (preference == mBillingCycle) {
|
if (preference == mBillingCycle) {
|
||||||
|
writePreferenceClickMetric(preference);
|
||||||
CycleEditorFragment.show(this);
|
CycleEditorFragment.show(this);
|
||||||
return true;
|
return true;
|
||||||
} else if (preference == mDataWarning) {
|
} else if (preference == mDataWarning) {
|
||||||
|
writePreferenceClickMetric(preference);
|
||||||
BytesEditorFragment.show(this, false);
|
BytesEditorFragment.show(this, false);
|
||||||
return true;
|
return true;
|
||||||
} else if (preference == mDataLimit) {
|
} else if (preference == mDataLimit) {
|
||||||
|
writePreferenceClickMetric(preference);
|
||||||
BytesEditorFragment.show(this, true);
|
BytesEditorFragment.show(this, true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -27,22 +27,25 @@ import android.telephony.SubscriptionInfo;
|
|||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
import android.telephony.euicc.EuiccManager;
|
import android.telephony.euicc.EuiccManager;
|
||||||
|
|
||||||
import com.android.settings.R;
|
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
|
||||||
import com.android.settings.network.telephony.MobileNetworkActivity;
|
|
||||||
import com.android.settings.network.telephony.MobileNetworkUtils;
|
|
||||||
import com.android.settings.widget.AddPreference;
|
|
||||||
import com.android.settingslib.Utils;
|
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import androidx.lifecycle.Lifecycle;
|
import androidx.lifecycle.Lifecycle;
|
||||||
import androidx.lifecycle.LifecycleObserver;
|
import androidx.lifecycle.LifecycleObserver;
|
||||||
import androidx.lifecycle.OnLifecycleEvent;
|
import androidx.lifecycle.OnLifecycleEvent;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
|
import com.android.settings.network.telephony.MobileNetworkActivity;
|
||||||
|
import com.android.settings.network.telephony.MobileNetworkUtils;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
|
import com.android.settings.widget.AddPreference;
|
||||||
|
import com.android.settingslib.Utils;
|
||||||
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class MobileNetworkSummaryController extends AbstractPreferenceController implements
|
public class MobileNetworkSummaryController extends AbstractPreferenceController implements
|
||||||
SubscriptionsChangeListener.SubscriptionsChangeListenerClient, LifecycleObserver,
|
SubscriptionsChangeListener.SubscriptionsChangeListenerClient, LifecycleObserver,
|
||||||
PreferenceControllerMixin {
|
PreferenceControllerMixin {
|
||||||
@@ -50,6 +53,8 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
|
|||||||
|
|
||||||
private static final String KEY = "mobile_network_list";
|
private static final String KEY = "mobile_network_list";
|
||||||
|
|
||||||
|
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||||
|
|
||||||
private SubscriptionManager mSubscriptionManager;
|
private SubscriptionManager mSubscriptionManager;
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
private SubscriptionsChangeListener mChangeListener;
|
private SubscriptionsChangeListener mChangeListener;
|
||||||
@@ -72,6 +77,7 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
|
|||||||
*/
|
*/
|
||||||
public MobileNetworkSummaryController(Context context, Lifecycle lifecycle) {
|
public MobileNetworkSummaryController(Context context, Lifecycle lifecycle) {
|
||||||
super(context);
|
super(context);
|
||||||
|
mMetricsFeatureProvider = FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
|
||||||
mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
|
mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
|
||||||
mUserManager = context.getSystemService(UserManager.class);
|
mUserManager = context.getSystemService(UserManager.class);
|
||||||
if (lifecycle != null) {
|
if (lifecycle != null) {
|
||||||
@@ -146,6 +152,8 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
|
|||||||
if (subs.isEmpty()) {
|
if (subs.isEmpty()) {
|
||||||
if (MobileNetworkUtils.showEuiccSettings(mContext)) {
|
if (MobileNetworkUtils.showEuiccSettings(mContext)) {
|
||||||
mPreference.setOnPreferenceClickListener((Preference pref) -> {
|
mPreference.setOnPreferenceClickListener((Preference pref) -> {
|
||||||
|
mMetricsFeatureProvider.logClickedPreference(pref,
|
||||||
|
pref.getExtras().getInt(DashboardFragment.CATEGORY));
|
||||||
startAddSimFlow();
|
startAddSimFlow();
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
@@ -157,11 +165,17 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
|
|||||||
// supported.
|
// supported.
|
||||||
if (MobileNetworkUtils.showEuiccSettings(mContext)) {
|
if (MobileNetworkUtils.showEuiccSettings(mContext)) {
|
||||||
mPreference.setAddWidgetEnabled(!mChangeListener.isAirplaneModeOn());
|
mPreference.setAddWidgetEnabled(!mChangeListener.isAirplaneModeOn());
|
||||||
mPreference.setOnAddClickListener(p -> startAddSimFlow());
|
mPreference.setOnAddClickListener(p -> {
|
||||||
|
mMetricsFeatureProvider.logClickedPreference(p,
|
||||||
|
p.getExtras().getInt(DashboardFragment.CATEGORY));
|
||||||
|
startAddSimFlow();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (subs.size() == 1) {
|
if (subs.size() == 1) {
|
||||||
mPreference.setOnPreferenceClickListener((Preference pref) -> {
|
mPreference.setOnPreferenceClickListener((Preference pref) -> {
|
||||||
|
mMetricsFeatureProvider.logClickedPreference(pref,
|
||||||
|
pref.getExtras().getInt(DashboardFragment.CATEGORY));
|
||||||
final SubscriptionInfo info = subs.get(0);
|
final SubscriptionInfo info = subs.get(0);
|
||||||
final int subId = info.getSubscriptionId();
|
final int subId = info.getSubscriptionId();
|
||||||
if (!info.isEmbedded() && !mSubscriptionManager.isActiveSubscriptionId(subId)
|
if (!info.isEmbedded() && !mSubscriptionManager.isActiveSubscriptionId(subId)
|
||||||
|
@@ -85,6 +85,7 @@ public class MobilePlanPreferenceController extends AbstractPreferenceController
|
|||||||
if (mHost != null && KEY_MANAGE_MOBILE_PLAN.equals(preference.getKey())) {
|
if (mHost != null && KEY_MANAGE_MOBILE_PLAN.equals(preference.getKey())) {
|
||||||
mMobilePlanDialogMessage = null;
|
mMobilePlanDialogMessage = null;
|
||||||
onManageMobilePlanClick();
|
onManageMobilePlanClick();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@@ -133,6 +133,7 @@ public class ConfigureNotificationSettings extends DashboardFragment implements
|
|||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceTreeClick(Preference preference) {
|
public boolean onPreferenceTreeClick(Preference preference) {
|
||||||
if (preference instanceof RingtonePreference) {
|
if (preference instanceof RingtonePreference) {
|
||||||
|
writePreferenceClickMetric(preference);
|
||||||
mRequestPreference = (RingtonePreference) preference;
|
mRequestPreference = (RingtonePreference) preference;
|
||||||
mRequestPreference.onPrepareRingtonePickerIntent(mRequestPreference.getIntent());
|
mRequestPreference.onPrepareRingtonePickerIntent(mRequestPreference.getIntent());
|
||||||
getActivity().startActivityForResultAsUser(
|
getActivity().startActivityForResultAsUser(
|
||||||
|
@@ -27,6 +27,7 @@ import androidx.preference.Preference;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.notification.SettingsEnableZenModeDialog;
|
import com.android.settings.notification.SettingsEnableZenModeDialog;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.widget.LayoutPreference;
|
import com.android.settingslib.widget.LayoutPreference;
|
||||||
@@ -65,23 +66,22 @@ public class ZenModeButtonPreferenceController extends AbstractZenModePreference
|
|||||||
mZenButtonOn = ((LayoutPreference) preference)
|
mZenButtonOn = ((LayoutPreference) preference)
|
||||||
.findViewById(R.id.zen_mode_settings_turn_on_button);
|
.findViewById(R.id.zen_mode_settings_turn_on_button);
|
||||||
mZenButtonOn.setFocusableInTouchMode(true);
|
mZenButtonOn.setFocusableInTouchMode(true);
|
||||||
updateZenButtonOnClickListener();
|
updateZenButtonOnClickListener(preference);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (null == mZenButtonOff) {
|
if (null == mZenButtonOff) {
|
||||||
mZenButtonOff = ((LayoutPreference) preference)
|
mZenButtonOff = ((LayoutPreference) preference)
|
||||||
.findViewById(R.id.zen_mode_settings_turn_off_button);
|
.findViewById(R.id.zen_mode_settings_turn_off_button);
|
||||||
mZenButtonOff.setOnClickListener(v -> {
|
mZenButtonOff.setOnClickListener(v -> {
|
||||||
mMetricsFeatureProvider.action(mContext,
|
writeMetrics(preference, false);
|
||||||
SettingsEnums.ACTION_ZEN_TOGGLE_DND_BUTTON, false);
|
|
||||||
mBackend.setZenMode(Settings.Global.ZEN_MODE_OFF);
|
mBackend.setZenMode(Settings.Global.ZEN_MODE_OFF);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
updateButtons();
|
updateButtons(preference);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateButtons() {
|
private void updateButtons(Preference preference) {
|
||||||
switch (getZenMode()) {
|
switch (getZenMode()) {
|
||||||
case Settings.Global.ZEN_MODE_ALARMS:
|
case Settings.Global.ZEN_MODE_ALARMS:
|
||||||
case Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS:
|
case Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS:
|
||||||
@@ -93,35 +93,39 @@ public class ZenModeButtonPreferenceController extends AbstractZenModePreference
|
|||||||
case Settings.Global.ZEN_MODE_OFF:
|
case Settings.Global.ZEN_MODE_OFF:
|
||||||
default:
|
default:
|
||||||
mZenButtonOff.setVisibility(View.GONE);
|
mZenButtonOff.setVisibility(View.GONE);
|
||||||
updateZenButtonOnClickListener();
|
updateZenButtonOnClickListener(preference);
|
||||||
mZenButtonOn.setVisibility(View.VISIBLE);
|
mZenButtonOn.setVisibility(View.VISIBLE);
|
||||||
mZenButtonOn.requestFocus();
|
mZenButtonOn.requestFocus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateZenButtonOnClickListener() {
|
private void updateZenButtonOnClickListener(Preference preference) {
|
||||||
int zenDuration = getZenDuration();
|
int zenDuration = getZenDuration();
|
||||||
switch (zenDuration) {
|
switch (zenDuration) {
|
||||||
case Settings.Secure.ZEN_DURATION_PROMPT:
|
case Settings.Secure.ZEN_DURATION_PROMPT:
|
||||||
mZenButtonOn.setOnClickListener(v -> {
|
mZenButtonOn.setOnClickListener(v -> {
|
||||||
mMetricsFeatureProvider.action(mContext,
|
writeMetrics(preference, true);
|
||||||
SettingsEnums.ACTION_ZEN_TOGGLE_DND_BUTTON, false);
|
|
||||||
new SettingsEnableZenModeDialog().show(mFragment, TAG);
|
new SettingsEnableZenModeDialog().show(mFragment, TAG);
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case Settings.Secure.ZEN_DURATION_FOREVER:
|
case Settings.Secure.ZEN_DURATION_FOREVER:
|
||||||
mZenButtonOn.setOnClickListener(v -> {
|
mZenButtonOn.setOnClickListener(v -> {
|
||||||
mMetricsFeatureProvider.action(mContext,
|
writeMetrics(preference, true);
|
||||||
SettingsEnums.ACTION_ZEN_TOGGLE_DND_BUTTON, false);
|
|
||||||
mBackend.setZenMode(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
|
mBackend.setZenMode(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
mZenButtonOn.setOnClickListener(v -> {
|
mZenButtonOn.setOnClickListener(v -> {
|
||||||
mMetricsFeatureProvider.action(mContext,
|
writeMetrics(preference, true);
|
||||||
SettingsEnums.ACTION_ZEN_TOGGLE_DND_BUTTON, false);
|
|
||||||
mBackend.setZenModeForDuration(zenDuration);
|
mBackend.setZenModeForDuration(zenDuration);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void writeMetrics(Preference preference, boolean buttonOn) {
|
||||||
|
mMetricsFeatureProvider.logClickedPreference(preference,
|
||||||
|
preference.getExtras().getInt(DashboardFragment.CATEGORY));
|
||||||
|
mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ZEN_TOGGLE_DND_BUTTON,
|
||||||
|
buttonOn);
|
||||||
|
}
|
||||||
}
|
}
|
@@ -28,6 +28,7 @@ import android.provider.Contacts;
|
|||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
|
|
||||||
public class ZenModeStarredContactsPreferenceController extends
|
public class ZenModeStarredContactsPreferenceController extends
|
||||||
@@ -89,6 +90,8 @@ public class ZenModeStarredContactsPreferenceController extends
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
|
mMetricsFeatureProvider.logClickedPreference(preference,
|
||||||
|
preference.getExtras().getInt(DashboardFragment.CATEGORY));
|
||||||
if (mStarredContactsIntent.resolveActivity(mPackageManager) != null) {
|
if (mStarredContactsIntent.resolveActivity(mPackageManager) != null) {
|
||||||
mContext.startActivity(mStarredContactsIntent);
|
mContext.startActivity(mStarredContactsIntent);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -118,7 +118,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
|||||||
private static final String PREF_KEY_EMPTY_WIFI_LIST = "wifi_empty_list";
|
private static final String PREF_KEY_EMPTY_WIFI_LIST = "wifi_empty_list";
|
||||||
private static final String PREF_KEY_CONNECTED_ACCESS_POINTS = "connected_access_point";
|
private static final String PREF_KEY_CONNECTED_ACCESS_POINTS = "connected_access_point";
|
||||||
private static final String PREF_KEY_ACCESS_POINTS = "access_points";
|
private static final String PREF_KEY_ACCESS_POINTS = "access_points";
|
||||||
private static final String PREF_KEY_CONFIGURE_WIFI_SETTINGS = "configure_settings";
|
private static final String PREF_KEY_CONFIGURE_WIFI_SETTINGS = "configure_wifi_settings";
|
||||||
private static final String PREF_KEY_SAVED_NETWORKS = "saved_networks";
|
private static final String PREF_KEY_SAVED_NETWORKS = "saved_networks";
|
||||||
private static final String PREF_KEY_STATUS_MESSAGE = "wifi_status_message";
|
private static final String PREF_KEY_STATUS_MESSAGE = "wifi_status_message";
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
@@ -120,7 +120,7 @@ public class WifiSettings2 extends RestrictedSettingsFragment
|
|||||||
// TODO(b/70983952): Rename these to use WifiEntry instead of AccessPoint.
|
// TODO(b/70983952): Rename these to use WifiEntry instead of AccessPoint.
|
||||||
private static final String PREF_KEY_CONNECTED_ACCESS_POINTS = "connected_access_point";
|
private static final String PREF_KEY_CONNECTED_ACCESS_POINTS = "connected_access_point";
|
||||||
private static final String PREF_KEY_ACCESS_POINTS = "access_points";
|
private static final String PREF_KEY_ACCESS_POINTS = "access_points";
|
||||||
private static final String PREF_KEY_CONFIGURE_WIFI_SETTINGS = "configure_settings";
|
private static final String PREF_KEY_CONFIGURE_WIFI_SETTINGS = "configure_wifi_settings";
|
||||||
private static final String PREF_KEY_SAVED_NETWORKS = "saved_networks";
|
private static final String PREF_KEY_SAVED_NETWORKS = "saved_networks";
|
||||||
private static final String PREF_KEY_STATUS_MESSAGE = "wifi_status_message";
|
private static final String PREF_KEY_STATUS_MESSAGE = "wifi_status_message";
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -1111,7 +1111,7 @@ public class WifiSettings2 extends RestrictedSettingsFragment
|
|||||||
.launch();
|
.launch();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Helper method to return whether an WifiEntry is disabled due to a wrong password */
|
/** Helper method to return whether a WifiEntry is disabled due to a wrong password */
|
||||||
private static boolean isDisabledByWrongPassword(WifiEntry wifiEntry) {
|
private static boolean isDisabledByWrongPassword(WifiEntry wifiEntry) {
|
||||||
WifiConfiguration config = wifiEntry.getWifiConfiguration();
|
WifiConfiguration config = wifiEntry.getWifiConfiguration();
|
||||||
if (config == null) {
|
if (config == null) {
|
||||||
|
@@ -82,7 +82,7 @@ public class BluetoothDeviceUpdaterTest {
|
|||||||
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
|
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
|
||||||
private BluetoothDevicePreference mPreference;
|
private BluetoothDevicePreference mPreference;
|
||||||
private ShadowBluetoothAdapter mShadowBluetoothAdapter;
|
private ShadowBluetoothAdapter mShadowBluetoothAdapter;
|
||||||
private List<CachedBluetoothDevice> mCachedDevices = new ArrayList<CachedBluetoothDevice>();
|
private List<CachedBluetoothDevice> mCachedDevices = new ArrayList<>();
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
@@ -104,11 +104,16 @@ public class BluetoothDeviceUpdaterTest {
|
|||||||
mBluetoothDeviceUpdater =
|
mBluetoothDeviceUpdater =
|
||||||
new BluetoothDeviceUpdater(mDashboardFragment, mDevicePreferenceCallback,
|
new BluetoothDeviceUpdater(mDashboardFragment, mDevicePreferenceCallback,
|
||||||
mLocalManager) {
|
mLocalManager) {
|
||||||
@Override
|
@Override
|
||||||
public boolean isFilterMatched(CachedBluetoothDevice cachedBluetoothDevice) {
|
public boolean isFilterMatched(CachedBluetoothDevice cachedBluetoothDevice) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
@Override
|
||||||
|
protected String getPreferenceKey() {
|
||||||
|
return "test_bt";
|
||||||
|
}
|
||||||
|
};
|
||||||
mBluetoothDeviceUpdater.setPrefContext(mContext);
|
mBluetoothDeviceUpdater.setPrefContext(mContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user