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

Commit b4e13a7a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Adjust optimize page logging timing" into sc-v2-dev

parents 2fa408c1 7fb4cbf0
Loading
Loading
Loading
Loading
+34 −21
Original line number Diff line number Diff line
@@ -270,6 +270,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements

        initHeader();
        if (mEnableTriState) {
            mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
            initPreferenceForTriState(getContext());
            final String packageName = mBatteryOptimizeUtils.getPackageName();
            FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
@@ -286,8 +287,11 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
    public void onPause() {
        super.onPause();
        if (mEnableTriState) {
            Log.d(TAG, "Leave with mode: " + getSelectedPreference());
            mBatteryOptimizeUtils.setAppUsageState(getSelectedPreference());
            final int selectedPreference = getSelectedPreference();

            logMetricCategory(selectedPreference);
            mBatteryOptimizeUtils.setAppUsageState(selectedPreference);
            Log.d(TAG, "Leave with mode: " + selectedPreference);
        }
    }

@@ -461,16 +465,30 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
        updatePreferenceState(mUnrestrictedPreference, selectedKey);
        updatePreferenceState(mOptimizePreference, selectedKey);
        updatePreferenceState(mRestrictedPreference, selectedKey);
    }

    private void updatePreferenceState(RadioButtonPreference preference, String selectedKey) {
        preference.setChecked(selectedKey.equals(preference.getKey()));
    }

    private void logMetricCategory(int selectedKey) {
        if (selectedKey == mOptimizationMode) {
            return;
        }

        // Logs metric.
        int metricCategory = 0;
        if (selectedKey.equals(mUnrestrictedPreference.getKey())) {
        switch (selectedKey) {
            case BatteryOptimizeUtils.MODE_UNRESTRICTED:
                metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_UNRESTRICTED;
        } else if (selectedKey.equals(mOptimizePreference.getKey())) {
                break;
            case BatteryOptimizeUtils.MODE_OPTIMIZED:
                metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED;
        } else if (selectedKey.equals(mRestrictedPreference.getKey())) {
                break;
            case BatteryOptimizeUtils.MODE_RESTRICTED:
                metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_RESTRICTED;
                break;
        }

        if (metricCategory != 0) {
            FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
                    .action(
@@ -483,10 +501,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
        }
    }

    private void updatePreferenceState(RadioButtonPreference preference, String selectedKey) {
        preference.setChecked(selectedKey.equals(preference.getKey()));
    }

    private void onCreateForTriState(String packageName) {
        mUnrestrictedPreference = findPreference(KEY_PREF_UNRESTRICTED);
        mOptimizePreference = findPreference(KEY_PREF_OPTIMIZED);
@@ -498,7 +512,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements

        mBatteryOptimizeUtils = new BatteryOptimizeUtils(
                getContext(), getArguments().getInt(EXTRA_UID), packageName);
        mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
    }

    private int getSelectedPreference() {
+32 −7
Original line number Diff line number Diff line
@@ -792,6 +792,18 @@ public class AdvancedPowerUsageDetailTest {
        assertThat(mOptimizePreference.isChecked()).isTrue();
        assertThat(mRestrictedPreference.isChecked()).isFalse();
        assertThat(mUnrestrictedPreference.isChecked()).isFalse();
    }

    @Test
    public void testOnPause_optimizationModeChanged_logPreference() {
        final int mode = BatteryOptimizeUtils.MODE_RESTRICTED;
        mFragment.mOptimizationMode = mode;
        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(mode);
        mOptimizePreference.setKey(KEY_PREF_OPTIMIZED);

        mFragment.onRadioButtonClicked(mOptimizePreference);
        mFragment.onPause();

        verify(mMetricsFeatureProvider)
                .action(
                        mContext,
@@ -802,6 +814,19 @@ public class AdvancedPowerUsageDetailTest {
                        });
    }

    @Test
    public void testOnPause_optimizationModeIsNotChanged_notInvokeLogging() {
        final int mode = BatteryOptimizeUtils.MODE_OPTIMIZED;
        mFragment.mOptimizationMode = mode;
        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(mode);
        mOptimizePreference.setKey(KEY_PREF_OPTIMIZED);

        mFragment.onRadioButtonClicked(mOptimizePreference);
        mFragment.onPause();

        verifyZeroInteractions(mMetricsFeatureProvider);
    }

    @Test
    public void notifyBackupManager_optimizationModeIsNotChanged_notInvokeDataChanged() {
        final int mode = BatteryOptimizeUtils.MODE_RESTRICTED;