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

Commit 24f18436 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Move bugreport storage enabling into OS.

It's convoluted to enable/disable bugreport storage based on the
"power menu" shortcut, and it's frustrating for dogfooders to have
to manually cycle this setting once to enable the provider.

So move the enable/disable logic directly into the OS, toggle it
when the broader DEVELOPMENT_SETTINGS_ENABLED changes, and update
to match state at device boot.

Test: builds, boots
Bug: 32540478
Change-Id: I8721dfbfc1dc2e19adb9cb5588f6b35f2872da9d
parent 36952523
Loading
Loading
Loading
Loading
+0 −15
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.settings.development;

import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.UserManager;
import android.provider.Settings;
import android.support.annotation.VisibleForTesting;
@@ -28,7 +27,6 @@ import android.support.v7.preference.PreferenceScreen;

import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.development.DeveloperOptionsPreferenceController;
import com.android.settingslib.wrapper.PackageManagerWrapper;

public class BugReportInPowerPreferenceController extends
        DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener,
@@ -36,22 +34,17 @@ public class BugReportInPowerPreferenceController extends

    private static final String KEY_BUGREPORT_IN_POWER = "bugreport_in_power";

    @VisibleForTesting
    static final ComponentName COMPONENT_NAME = new ComponentName("com.android.shell",
            "com.android.shell.BugreportStorageProvider");
    @VisibleForTesting
    static int SETTING_VALUE_ON = 1;
    @VisibleForTesting
    static int SETTING_VALUE_OFF = 0;

    private final PackageManagerWrapper mPackageManager;
    private final UserManager mUserManager;
    private SwitchPreference mPreference;

    public BugReportInPowerPreferenceController(Context context) {
        super(context);
        mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
        mPackageManager = new PackageManagerWrapper(context.getPackageManager());
    }

    @Override
@@ -77,7 +70,6 @@ public class BugReportInPowerPreferenceController extends
        Settings.Secure.putInt(mContext.getContentResolver(),
                Settings.Global.BUGREPORT_IN_POWER_MENU,
                isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
        setBugreportStorageProviderStatus(isEnabled);
        return true;
    }

@@ -97,13 +89,6 @@ public class BugReportInPowerPreferenceController extends
    protected void onDeveloperOptionsSwitchDisabled() {
        Settings.Secure.putInt(mContext.getContentResolver(),
                Settings.Global.BUGREPORT_IN_POWER_MENU, SETTING_VALUE_OFF);
        setBugreportStorageProviderStatus(false);
        mPreference.setChecked(false);
    }

    private void setBugreportStorageProviderStatus(boolean isEnabled) {
        mPackageManager.setComponentEnabledSetting(COMPONENT_NAME,
                isEnabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
                        : PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0 /* flags */);
    }
}
+0 −12
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.settings.development;

import static com.android.settings.development.BugReportInPowerPreferenceController.COMPONENT_NAME;
import static com.android.settings.development.BugReportInPowerPreferenceController
        .SETTING_VALUE_OFF;
import static com.android.settings.development.BugReportInPowerPreferenceController
@@ -30,7 +29,6 @@ import static org.mockito.Mockito.when;

import android.content.ContentResolver;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.UserManager;
import android.provider.Settings;
import android.support.v14.preference.SwitchPreference;
@@ -38,7 +36,6 @@ import android.support.v7.preference.PreferenceScreen;

import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.wrapper.PackageManagerWrapper;

import org.junit.Before;
import org.junit.Test;
@@ -59,8 +56,6 @@ public class BugReportInPowerPreferenceControllerTest {
    @Mock
    private UserManager mUserManager;
    @Mock
    private PackageManagerWrapper mPackageManager;
    @Mock
    private Context mContext;
    @Mock
    private SwitchPreference mPreference;
@@ -76,7 +71,6 @@ public class BugReportInPowerPreferenceControllerTest {
        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
        mController = new BugReportInPowerPreferenceController(mContext);
        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
        ReflectionHelpers.setField(mController, "mPackageManager", mPackageManager);
    }

    @Test
@@ -113,8 +107,6 @@ public class BugReportInPowerPreferenceControllerTest {
                Settings.Global.BUGREPORT_IN_POWER_MENU, -1 /* default */);

        assertThat(mode).isEqualTo(SETTING_VALUE_OFF);
        verify(mPackageManager).setComponentEnabledSetting(COMPONENT_NAME,
                PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0 /* flags */);
    }

    @Test
@@ -127,8 +119,6 @@ public class BugReportInPowerPreferenceControllerTest {
                Settings.Global.BUGREPORT_IN_POWER_MENU, -1 /* default */);

        assertThat(mode).isEqualTo(SETTING_VALUE_ON);
        verify(mPackageManager).setComponentEnabledSetting(COMPONENT_NAME,
                PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0 /* flags */);
    }


@@ -167,7 +157,5 @@ public class BugReportInPowerPreferenceControllerTest {

        assertThat(mode).isEqualTo(SETTING_VALUE_OFF);
        verify(mPreference).setChecked(false);
        verify(mPackageManager).setComponentEnabledSetting(COMPONENT_NAME,
                PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0 /* flags */);
    }
}