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

Commit 0762b81b authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Add ability to exclude apps from adjustments

Specifically bundling and summarization

Test: BundleManageAppsPreferenceControllerTest
Test: AdjustmentExcludedAppsPreferenceControllerTest
Test: SummarizationManageAppsPreferenceControllerTest
Flag: android.app.nm_summarization
Flag: android.app.notification_classification_ui
Bug: 390415383
Bug: 377697346
Change-Id: Ica4b77212f4660624bfe12be7e6c9c584cd2c812
parent 17dc54c6
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -56,4 +56,27 @@
        android:key="recs"
        android:title="@*android:string/recs_notification_channel_label"
        settings:controller="com.android.settings.notification.BundleTypePreferenceController"/>

    <PreferenceCategory
        android:key="notification_bundle_excluded_apps_list"
        android:title="@string/notification_excluded_apps"
        settings:controller="com.android.settings.notification.AdjustmentExcludedAppsPreferenceController">
        <com.android.settingslib.widget.TopIntroPreference
            android:key="excluded_description"
            android:title="@string/notification_bundle_excluded_description"/>

        <!-- apps are added here -->

        <Preference
            android:key="notification_bundle_manage_apps"
            android:order="1000"
            android:icon="@drawable/ic_chevron_right_24dp"
            android:title="@string/notification_summarization_manage_excluded_apps"
            settings:controller="com.android.settings.notification.BundleManageAppsPreferenceController"
            android:fragment="com.android.settings.applications.manageapplications.ManageApplications">
            <extra
                android:name="classname"
                android:value="com.android.settings.Settings$NotificationExcludeClassificationActivity"/>
        </Preference>
    </PreferenceCategory>
</PreferenceScreen>
+25 −0
Original line number Diff line number Diff line
@@ -36,4 +36,29 @@
        android:key="global_pref"
        android:title="@string/notification_summarization_main_control_title"
        settings:controller="com.android.settings.notification.SummarizationGlobalPreferenceController" />

    <PreferenceCategory
        android:key="notification_summarization_excluded_apps_list"
        android:title="@string/notification_excluded_apps"
        settings:controller="com.android.settings.notification.AdjustmentExcludedAppsPreferenceController">
        <com.android.settingslib.widget.TopIntroPreference
            android:key="excluded_description"
            android:title="@string/notification_summarization_excluded_description"/>

        <!-- apps are added here -->

        <Preference
            android:key="notification_summarization_manage_apps"
            android:order="1000"
            android:icon="@drawable/ic_chevron_right_24dp"
            android:title="@string/notification_summarization_manage_excluded_apps"
            settings:controller="com.android.settings.notification.SummarizationManageAppsPreferenceController"
            android:fragment="com.android.settings.applications.manageapplications.ManageApplications">
            <extra
                android:name="classname"
                android:value="com.android.settings.Settings$NotificationExcludeSummarizationActivity"/>
        </Preference>
    </PreferenceCategory>


</PreferenceScreen>
+2 −0
Original line number Diff line number Diff line
@@ -358,6 +358,8 @@ public class Settings extends SettingsActivity {
    public static class AppBubbleNotificationSettingsActivity extends SettingsActivity { /* empty */ }
    public static class NotificationAssistantSettingsActivity extends SettingsActivity{ /* empty */ }
    public static class NotificationAppListActivity extends SettingsActivity { /* empty */ }
    public static class NotificationExcludeSummarizationActivity extends SettingsActivity { /* empty */ }
    public static class NotificationExcludeClassificationActivity extends SettingsActivity { /* empty */ }
    /** Activity to manage Cloned Apps page */
    public static class ClonedAppsListActivity extends SettingsActivity { /* empty */ }
    /** Activity to manage Aspect Ratio app list page */
+2 −0
Original line number Diff line number Diff line
@@ -270,6 +270,8 @@ public class ManageApplications extends InstrumentedFragment
    public static final int LIST_TYPE_NFC_TAG_APPS = 18;
    public static final int LIST_TYPE_TURN_SCREEN_ON = 19;
    public static final int LIST_TYPE_USER_ASPECT_RATIO_APPS = 20;
    public static final int LIST_TYPE_NOTIFICATION_EXCLUDE_SUMMARIZATION = 21;
    public static final int LIST_TYPE_NOTIFICATION_EXCLUDE_CLASSIFICATION = 22;

    // List types that should show instant apps.
    public static final Set<Integer> LIST_TYPES_WITH_INSTANT = new ArraySet<>(Arrays.asList(
+10 −1
Original line number Diff line number Diff line
@@ -31,6 +31,8 @@ import com.android.settings.Settings.ManageExternalSourcesActivity
import com.android.settings.Settings.ManageExternalStorageActivity
import com.android.settings.Settings.MediaManagementAppsActivity
import com.android.settings.Settings.NotificationAppListActivity
import com.android.settings.Settings.NotificationExcludeClassificationActivity
import com.android.settings.Settings.NotificationExcludeSummarizationActivity
import com.android.settings.Settings.NotificationReviewPermissionsActivity
import com.android.settings.Settings.OverlaySettingsActivity
import com.android.settings.Settings.StorageUseActivity
@@ -44,6 +46,8 @@ import com.android.settings.applications.manageapplications.ManageApplications.L
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_USER_ASPECT_RATIO_APPS
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_BATTERY_OPTIMIZATION
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_CLONED_APPS
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_NOTIFICATION_EXCLUDE_CLASSIFICATION
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_NOTIFICATION_EXCLUDE_SUMMARIZATION
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_GAMES
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_HIGH_POWER
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_LONG_BACKGROUND_TASKS
@@ -99,6 +103,9 @@ object ManageApplicationsUtil {
        ChangeNfcTagAppsActivity::class to LIST_TYPE_NFC_TAG_APPS,
        TurnScreenOnSettingsActivity::class to LIST_TYPE_TURN_SCREEN_ON,
        UserAspectRatioAppListActivity::class to LIST_TYPE_USER_ASPECT_RATIO_APPS,
        NotificationExcludeSummarizationActivity::class to LIST_TYPE_NOTIFICATION_EXCLUDE_SUMMARIZATION,
        NotificationExcludeClassificationActivity::class to LIST_TYPE_NOTIFICATION_EXCLUDE_CLASSIFICATION,

    )

    @JvmField
@@ -117,7 +124,7 @@ object ManageApplicationsUtil {
            LIST_TYPE_MEDIA_MANAGEMENT_APPS -> MediaManagementAppsAppListProvider.getAppListRoute()
            LIST_TYPE_ALARMS_AND_REMINDERS -> AlarmsAndRemindersAppListProvider.getAppListRoute()
            LIST_TYPE_WIFI_ACCESS -> WifiControlAppListProvider.getAppListRoute()
            LIST_TYPE_NOTIFICATION -> AppListNotificationsPageProvider.name
            LIST_TYPE_NOTIFICATION -> AppListNotificationsPageProvider.AllApps.name
            LIST_TYPE_APPS_LOCALE -> AppLanguagesPageProvider.name
            LIST_TYPE_MAIN -> AllAppListPageProvider.name
            LIST_TYPE_NFC_TAG_APPS -> NfcTagAppsSettingsProvider.getAppListRoute()
@@ -128,6 +135,8 @@ object ManageApplicationsUtil {
            //LIST_TYPE_STORAGE -> StorageAppListPageProvider.Apps.name
            //LIST_TYPE_GAMES -> StorageAppListPageProvider.Games.name
            LIST_TYPE_BATTERY_OPTIMIZATION -> BatteryOptimizationModeAppListPageProvider.name
            LIST_TYPE_NOTIFICATION_EXCLUDE_SUMMARIZATION -> AppListNotificationsPageProvider.ExcludeSummarization.name
            LIST_TYPE_NOTIFICATION_EXCLUDE_CLASSIFICATION -> AppListNotificationsPageProvider.ExcludeClassification.name
            else -> null
        }
    }
Loading