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

Commit d01c81e4 authored by Ivan Chiang's avatar Ivan Chiang
Browse files

Add Media Management Apps activity in Special App Access

Add a settings page to control the permission MANAGE_MEDIA in Special
App Access. Apps can launch it by ACTION_REQUEST_MANAGE_MEDIA.

Test: m -j RunSettingsRoboTests ROBOTEST_FILTER=MediaManagementAppsDetailsTest
Test: m -j RunSettingsRoboTests
Test: manual
Bug: 181112025
Change-Id: Id7587cf179b8c5adbfd6477ca9c2d4a20a9852bb
parent 0c914077
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -3185,6 +3185,33 @@
                       android:value="com.android.settings.applications.appinfo.ManageExternalStorageDetails" />
        </activity>

        <activity
            android:name="Settings$MediaManagementAppsActivity"
            android:exported="true"
            android:label="@string/media_management_apps_title">
            <intent-filter android:priority="1">
                <action android:name="android.settings.REQUEST_MANAGE_MEDIA" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                       android:value="com.android.settings.applications.manageapplications.ManageApplications" />
            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                       android:value="true" />
        </activity>

        <activity
            android:name="Settings$AppMediaManagementAppsActivity"
            android:exported="true"
            android:label="@string/media_management_apps_title">
            <intent-filter android:priority="1">
                <action android:name="android.settings.REQUEST_MANAGE_MEDIA" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="package" />
            </intent-filter>
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                       android:value="com.android.settings.applications.appinfo.MediaManagementAppsDetails" />
        </activity>

        <!-- Keep compatibility with old WebView-picker implementation -->
        <activity-alias android:name=".WebViewImplementation"
                  android:targetActivity="Settings$WebViewAppPickerActivity"
+11 −0
Original line number Diff line number Diff line
@@ -7335,6 +7335,8 @@
    <string name="help_uri_apps_wifi_access" translatable="false"></string>
    <!-- Help URI, manage apps that have access to all files [DO NOT TRANSLATE] -->
    <string name="help_uri_manage_external_storage" translatable="false"></string>
    <!-- Help URI, manage apps that can modify media files [DO NOT TRANSLATE] -->
    <string name="help_uri_media_management_apps" translatable="false"></string>
    <!-- Help URI, Storage [DO NOT TRANSLATE] -->
    <string name="help_uri_storage" translatable="false"></string>
    <!-- Help URI, Accessibility [DO NOT TRANSLATE] -->
@@ -10334,6 +10336,15 @@
    <!-- Label for showing apps that can manage external storage[CHAR LIMIT=45] -->
    <string name="filter_manage_external_storage">Can access all files</string>
    <!-- Media management apps settings title [CHAR LIMIT=40] -->
    <string name="media_management_apps_title">Media management apps</string>
    <!-- Label for a setting which controls whether an app can manage media files [CHAR LIMIT=45] -->
    <string name="media_management_apps_toggle_label">Allow app to manage media files</string>
    <!-- Description for a setting which controls whether an app can manage media files [CHAR LIMIT=NONE] -->
    <string name="media_management_apps_description">If allowed, this app can modify or delete media files on this device or connected storage device without asking you. App must have permission to access files and media.</string>
    <!-- Search keywords for media management apps settings [CHAR_LIMIT=NONE] -->
    <string name="keywords_media_management_apps">Media, File, Management, Manager, Manage, Edit, Editor, App, Application, Program</string>
    <!-- Keyword for VR setting -->
    <string name="keywords_vr_listener">vr virtual reality listener stereo helper service</string>
    <!-- Main settings screen item's title to go into the overlay settings screen [CHAR LIMIT=30] -->
+30 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2021 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
                  android:title="@string/media_management_apps_title">

    <com.android.settings.widget.FilterTouchesSwitchPreference
        android:key="media_management_apps_toggle"
        android:title="@string/media_management_apps_toggle_label" />

    <com.android.settingslib.widget.FooterPreference
        android:key="media_management_apps_description"
        android:title="@string/media_management_apps_description"
        android:selectable="false" />

</PreferenceScreen>
+10 −0
Original line number Diff line number Diff line
@@ -60,6 +60,16 @@
        android:fragment="com.android.settings.notification.zen.ZenAccessSettings"
        settings:controller="com.android.settings.applications.specialaccess.zenaccess.ZenAccessController" />

    <Preference
        android:key="media_management_apps"
        android:title="@string/media_management_apps_title"
        android:fragment="com.android.settings.applications.manageapplications.ManageApplications"
        settings:keywords="@string/keywords_media_management_apps">
        <extra
            android:name="classname"
            android:value="com.android.settings.Settings$MediaManagementAppsActivity" />
    </Preference>

    <Preference
        android:key="write_settings_apps"
        android:title="@string/write_settings"
+2 −0
Original line number Diff line number Diff line
@@ -217,6 +217,8 @@ public class Settings extends SettingsActivity {
    public static class OverlaySettingsActivity extends SettingsActivity { /* empty */ }
    public static class ManageExternalStorageActivity extends SettingsActivity { /* empty */ }
    public static class AppManageExternalStorageActivity extends SettingsActivity { /* empty */ }
    public static class MediaManagementAppsActivity extends SettingsActivity { /* empty */ }
    public static class AppMediaManagementAppsActivity extends SettingsActivity { /* empty */ }
    public static class WriteSettingsActivity extends SettingsActivity { /* empty */ }
    public static class ChangeWifiStateActivity extends SettingsActivity { /* empty */ }
    public static class AppDrawOverlaySettingsActivity extends SettingsActivity { /* empty */ }
Loading