Add log when the advanced button is clicked.

- register the advanced button expand listener and add the metrics log
when it is clicked.

Fixes: 70930626
Test: make RunSettingsRoboTests

Change-Id: Ife4af4bd4a0a8534cf9ba63949660a810b09446a
This commit is contained in:
Doris Ling
2018-08-27 14:11:55 -07:00
parent 61a909c662
commit 8741c04821
2 changed files with 24 additions and 2 deletions

View File

@@ -27,9 +27,11 @@ import android.util.Log;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceManager; import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.SettingsPreferenceFragment; import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerListHelper; import com.android.settings.core.PreferenceControllerListHelper;
@@ -53,7 +55,7 @@ import java.util.Set;
*/ */
public abstract class DashboardFragment extends SettingsPreferenceFragment public abstract class DashboardFragment extends SettingsPreferenceFragment
implements SettingsBaseActivity.CategoryListener, Indexable, implements SettingsBaseActivity.CategoryListener, Indexable,
SummaryLoader.SummaryConsumer { SummaryLoader.SummaryConsumer, PreferenceGroup.OnExpandButtonClickListener {
private static final String TAG = "DashboardFragment"; private static final String TAG = "DashboardFragment";
private final Map<Class, List<AbstractPreferenceController>> mPreferenceControllers = private final Map<Class, List<AbstractPreferenceController>> mPreferenceControllers =
@@ -207,6 +209,12 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
@Override @Override
protected abstract int getPreferenceScreenResId(); protected abstract int getPreferenceScreenResId();
@Override
public void onExpandButtonClick() {
mMetricsFeatureProvider.actionWithSource(getContext(), getMetricsCategory(),
MetricsEvent.ACTION_SETTINGS_ADVANCED_BUTTON_EXPAND);
}
protected boolean shouldForceRoundedIcon() { protected boolean shouldForceRoundedIcon() {
return false; return false;
} }
@@ -268,6 +276,7 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
} }
addPreferencesFromResource(resId); addPreferencesFromResource(resId);
final PreferenceScreen screen = getPreferenceScreen(); final PreferenceScreen screen = getPreferenceScreen();
screen.setOnExpandButtonClickListener(this);
mPreferenceControllers.values().stream().flatMap(Collection::stream).forEach( mPreferenceControllers.values().stream().flatMap(Collection::stream).forEach(
controller -> controller.displayPreference(screen)); controller -> controller.displayPreference(screen));
} }

View File

@@ -33,10 +33,12 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceManager; import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.instrumentation.VisibilityLoggerMixin; import com.android.settingslib.core.instrumentation.VisibilityLoggerMixin;
import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.Tile; import com.android.settingslib.drawer.Tile;
@@ -177,6 +179,17 @@ public class DashboardFragmentTest {
verify(mockController2).getPreferenceKey(); verify(mockController2).getPreferenceKey();
} }
@Test
public void onExpandButtonClick_shouldLogAdvancedButtonExpand() {
final MetricsFeatureProvider metricsFeatureProvider
= mFakeFeatureFactory.getMetricsFeatureProvider();
mTestFragment.onExpandButtonClick();
verify(metricsFeatureProvider).actionWithSource(
RuntimeEnvironment.application, MetricsEvent.DASHBOARD_CONTAINER,
MetricsEvent.ACTION_SETTINGS_ADVANCED_BUTTON_EXPAND);
}
public static class TestPreferenceController extends AbstractPreferenceController public static class TestPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin { implements PreferenceControllerMixin {
@@ -230,7 +243,7 @@ public class DashboardFragmentTest {
@Override @Override
public int getMetricsCategory() { public int getMetricsCategory() {
return 0; return MetricsEvent.DASHBOARD_CONTAINER;
} }
@Override @Override