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

Commit 559bd365 authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Disable managed services special access screens...

... on low ram devices.

- Remove them from the 'Special app access' screen
- Display an error message if an app intents directly to
them

Bug: 35219985
Test: visual, and runtest --path ManagedAccessSettingsLowRamTest.java,
when the device is in low ram mode and when it's not.
Change-Id: Ied919cb248ae56683a00e3492c4737dfd00449ac
parent 49b5de94
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -2511,6 +2511,16 @@
            </intent-filter>
        </activity>

        <activity android:name="Settings$SpecialAccessSettingsActivity"
                  android:taskAffinity="">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                       android:value="com.android.settings.applications.SpecialAccessSettings" />
        </activity>

        <activity android:name="Settings$NotificationAccessSettingsActivity"
                  android:label="@string/manage_notification_access_title"
                  android:taskAffinity="">
+3 −0
Original line number Diff line number Diff line
@@ -8963,4 +8963,7 @@
    <!-- The divider symbol between different parts of the notification header including spaces. not translatable [CHAR LIMIT=3] -->
    <string name="notification_header_divider_symbol_with_spaces" translatable="false">" • "</string>
    <!-- Note displayed when certain features are not available on low ram devices. [CHAR LIMIT=NONE] -->
    <string name="disabled_low_ram_device">This feature is not available on this device</string>
</resources>
+6 −2
Original line number Diff line number Diff line
@@ -70,8 +70,12 @@

    <Preference
        android:key="special_access"
        android:fragment="com.android.settings.applications.SpecialAccessSettings"
        android:title="@string/special_access"
        android:order="20" />
        android:order="20" >
        <intent
            android:action="android.intent.action.MAIN"
            android:targetPackage="com.android.settings"
            android:targetClass="com.android.settings.Settings$SpecialAccessSettingsActivity" />
    </Preference>

</PreferenceScreen>
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
@@ -98,6 +98,7 @@ public class Settings extends SettingsActivity {
    public static class DreamSettingsActivity extends SettingsActivity { /* empty */ }
    public static class NotificationStationActivity extends SettingsActivity { /* empty */ }
    public static class UserSettingsActivity extends SettingsActivity { /* empty */ }
    public static class SpecialAccessSettingsActivity extends SettingsActivity { /* empty */ }
    public static class NotificationAccessSettingsActivity extends SettingsActivity { /* empty */ }
    public static class VrListenersSettingsActivity extends SettingsActivity { /* empty */ }
    public static class PictureInPictureSettingsActivity extends SettingsActivity { /* empty */ }
+20 −0
Original line number Diff line number Diff line
@@ -14,8 +14,11 @@

package com.android.settings.applications;

import android.app.ActivityManager;
import android.content.Context;
import android.os.Bundle;
import android.provider.SearchIndexableResource;
import android.support.v7.preference.Preference;

import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
@@ -31,6 +34,9 @@ public class SpecialAccessSettings extends DashboardFragment {

    private static final String TAG = "SpecialAccessSettings";

    private static final String[] DISABLED_FEATURES_LOW_RAM =
            new String[] {"notification_access", "zen_access", "enabled_vr_listeners"};

    @Override
    protected String getLogTag() {
        return TAG;
@@ -41,6 +47,20 @@ public class SpecialAccessSettings extends DashboardFragment {
        return R.xml.special_access;
    }

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        if (ActivityManager.isLowRamDeviceStatic()) {
            for (String disabledFeature : DISABLED_FEATURES_LOW_RAM) {
                Preference pref = findPreference(disabledFeature);
                if (pref != null) {
                    removePreference(disabledFeature);
                }
            }
        }
    }

    @Override
    protected List<PreferenceController> getPreferenceControllers(Context context) {
        return null;
Loading