Merge "Log when settings slice is requested/updated." into pi-dev am: 1400734315
am: d820a38820
Change-Id: I9cf169cdca75fdc2b693ad2bf6ab214a796cbec2
This commit is contained in:
@@ -32,10 +32,13 @@ import android.os.Handler;
|
||||
import android.provider.SettingsSlicesContract;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.util.Pair;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.core.SliderPreferenceController;
|
||||
import com.android.settings.core.TogglePreferenceController;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
|
||||
import androidx.slice.core.SliceHints;
|
||||
|
||||
@@ -92,7 +95,7 @@ public class SliceBroadcastReceiver extends BroadcastReceiver {
|
||||
}
|
||||
|
||||
if (!controller.isAvailable()) {
|
||||
Log.d(TAG, "Can't update " + key + " since the setting is unavailable");
|
||||
Log.w(TAG, "Can't update " + key + " since the setting is unavailable");
|
||||
updateUri(context, key, isPlatformSlice);
|
||||
}
|
||||
|
||||
@@ -100,7 +103,9 @@ public class SliceBroadcastReceiver extends BroadcastReceiver {
|
||||
// so that it's automatically broadcast to any slice.
|
||||
final TogglePreferenceController toggleController = (TogglePreferenceController) controller;
|
||||
final boolean currentValue = toggleController.isChecked();
|
||||
toggleController.setChecked(!currentValue);
|
||||
final boolean newValue = !currentValue;
|
||||
toggleController.setChecked(newValue);
|
||||
logSliceValueChange(context, key, newValue ? 1 : 0);
|
||||
updateUri(context, key, isPlatformSlice);
|
||||
}
|
||||
|
||||
@@ -129,6 +134,20 @@ public class SliceBroadcastReceiver extends BroadcastReceiver {
|
||||
}
|
||||
|
||||
sliderController.setSliderPosition(newPosition);
|
||||
logSliceValueChange(context, key, newPosition);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log Slice value update events into MetricsFeatureProvider. The logging schema generally
|
||||
* follows the pattern in SharedPreferenceLogger.
|
||||
*/
|
||||
private void logSliceValueChange(Context context, String sliceKey, int newValue) {
|
||||
final Pair<Integer, Object> namePair = Pair.create(
|
||||
MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME, sliceKey);
|
||||
final Pair<Integer, Object> valuePair = Pair.create(
|
||||
MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_INT_VALUE, newValue);
|
||||
FeatureFactory.getFactory(context).getMetricsFeatureProvider()
|
||||
.action(context, MetricsEvent.ACTION_SETTINGS_SLICE_CHANGED, namePair, valuePair);
|
||||
}
|
||||
|
||||
private BasePreferenceController getPreferenceController(Context context, String key) {
|
||||
|
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.settings.slices;
|
||||
|
||||
import static androidx.slice.builders.ListBuilder.ICON_IMAGE;
|
||||
import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
|
||||
import static com.android.settings.core.BasePreferenceController.DISABLED_FOR_USER;
|
||||
import static com.android.settings.core.BasePreferenceController.DISABLED_UNSUPPORTED;
|
||||
@@ -23,8 +24,6 @@ import static com.android.settings.core.BasePreferenceController.UNAVAILABLE_UNK
|
||||
import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_KEY;
|
||||
import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_PLATFORM_DEFINED;
|
||||
|
||||
import static androidx.slice.builders.ListBuilder.ICON_IMAGE;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
@@ -37,17 +36,19 @@ import android.text.TextUtils;
|
||||
import android.util.Pair;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SubSettings;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.core.SliderPreferenceController;
|
||||
import com.android.settings.core.TogglePreferenceController;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.search.DatabaseIndexingUtils;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.builders.SliceAction;
|
||||
import androidx.slice.builders.ListBuilder;
|
||||
import androidx.slice.builders.SliceAction;
|
||||
|
||||
|
||||
/**
|
||||
@@ -67,7 +68,12 @@ public class SliceBuilderUtils {
|
||||
*/
|
||||
public static Slice buildSlice(Context context, SliceData sliceData) {
|
||||
final BasePreferenceController controller = getPreferenceController(context, sliceData);
|
||||
|
||||
final Pair<Integer, Object> sliceNamePair =
|
||||
Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME, sliceData.getKey());
|
||||
// Log Slice requests using the same schema as SharedPreferenceLogger (but with a different
|
||||
// action name).
|
||||
FeatureFactory.getFactory(context).getMetricsFeatureProvider()
|
||||
.action(context, MetricsEvent.ACTION_SETTINGS_SLICE_REQUESTED, sliceNamePair);
|
||||
if (!controller.isAvailable()) {
|
||||
return buildUnavailableSlice(context, sliceData, controller);
|
||||
}
|
||||
|
Reference in New Issue
Block a user