Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8741c048 authored by Doris Ling's avatar Doris Ling
Browse files

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
parent 61a909c6
Loading
Loading
Loading
Loading
+10 −1
Original line number Original line Diff line number Diff line
@@ -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));
    }
    }
+14 −1
Original line number Original line Diff line number Diff line
@@ -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