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

Commit b5c651c9 authored by Fan Zhang's avatar Fan Zhang
Browse files

Register most app info related controllers in xml

Bug: 77216595
Test: robotests
Change-Id: I79afa38820b7518d8b3112148802797ebcf6d184
parent 65983f71
Loading
Loading
Loading
Loading
+31 −17
Original line number Diff line number Diff line
@@ -17,9 +17,9 @@

<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:settings="http://schemas.android.com/apk/res-auto"
    android:key="installed_app_detail_settings_screen"
    app:initialExpandedChildrenCount="6">
    settings:initialExpandedChildrenCount="6">

    <com.android.settings.applications.LayoutPreference
        android:key="header_view"
@@ -39,33 +39,38 @@

    <Preference
        android:key="notification_settings"
        android:title="@string/notifications_label" />
        android:title="@string/notifications_label"
        settings:controller="com.android.settings.applications.appinfo.AppNotificationPreferenceController" />

    <com.android.settings.widget.FixedLineSummaryPreference
        android:key="permission_settings"
        android:title="@string/permissions_label"
        android:summary="@string/summary_placeholder"
        app:summaryLineCount="1" />
        settings:summaryLineCount="1"
        settings:controller="com.android.settings.applications.appinfo.AppPermissionPreferenceController" />

    <Preference
        android:key="storage_settings"
        android:title="@string/storage_settings"
        android:summary="@string/summary_placeholder" />
        android:summary="@string/summary_placeholder"
        settings:controller="com.android.settings.applications.appinfo.AppStoragePreferenceController" />

    <com.android.settings.applications.AppDomainsPreference
        android:key="instant_app_launch_supported_domain_urls"
        android:title="@string/app_launch_supported_domain_urls_title"
        android:selectable="true" />
        android:selectable="true"
        settings:controller="com.android.settings.applications.appinfo.InstantAppDomainsPreferenceController" />

    <Preference
        android:key="data_settings"
        android:title="@string/data_usage_summary_title"
        android:summary="@string/summary_placeholder" />
        android:summary="@string/summary_placeholder"
        settings:controller="com.android.settings.applications.appinfo.AppDataUsagePreferenceController" />

    <Preference
        android:key="time_spent_in_app"
        android:title="@string/time_spent_in_app_pref_title"
        app:controller="com.android.settings.applications.appinfo.TimeSpentInAppPreferenceController" />
        settings:controller="com.android.settings.applications.appinfo.TimeSpentInAppPreferenceController" />

    <Preference
        android:key="battery"
@@ -76,7 +81,8 @@
        android:key="preferred_settings"
        android:title="@string/launch_by_default"
        android:summary="@string/summary_placeholder"
        android:selectable="true" />
        android:selectable="true"
        settings:controller="com.android.settings.applications.appinfo.AppOpenByDefaultPreferenceController" />

    <Preference
        android:key="memory"
@@ -113,44 +119,52 @@
    <!-- Advanced apps settings -->
    <PreferenceCategory
        android:key="advanced_app_info"
        android:title="@string/advanced_apps">
        android:title="@string/advanced_apps"
        settings:controller="com.android.settings.applications.appinfo.AdvancedAppInfoPreferenceCategoryController">

        <Preference
            android:key="system_alert_window"
            android:title="@string/draw_overlay"
            android:summary="@string/summary_placeholder" />
            android:summary="@string/summary_placeholder"
            settings:controller="com.android.settings.applications.appinfo.DrawOverlayDetailPreferenceController" />

        <Preference
            android:key="write_settings_apps"
            android:title="@string/write_settings"
            android:summary="@string/summary_placeholder" />
            android:summary="@string/summary_placeholder"
            settings:controller="com.android.settings.applications.appinfo.WriteSystemSettingsPreferenceController" />

        <Preference
            android:key="picture_in_picture"
            android:title="@string/picture_in_picture_app_detail_title"
            android:summary="@string/summary_placeholder" />
            android:summary="@string/summary_placeholder"
            settings:controller="com.android.settings.applications.appinfo.PictureInPictureDetailPreferenceController" />

        <Preference
            android:key="install_other_apps"
            android:title="@string/install_other_apps"
            android:summary="@string/summary_placeholder" />
            android:summary="@string/summary_placeholder"
            settings:controller="com.android.settings.applications.appinfo.ExternalSourceDetailPreferenceController" />

    </PreferenceCategory>

    <!-- App installer info -->
    <PreferenceCategory
        android:key="app_installer"
        android:title="@string/app_install_details_group_title">
        android:title="@string/app_install_details_group_title"
        settings:controller="com.android.settings.applications.appinfo.AppInstallerPreferenceCategoryController">

        <Preference
            android:key="app_info_store"
            android:title="@string/app_install_details_title" />
            android:title="@string/app_install_details_title"
            settings:controller="com.android.settings.applications.appinfo.AppInstallerInfoPreferenceController" />

    </PreferenceCategory>

    <Preference
        android:key="app_version"
        android:selectable="false"
        android:order="9999" />
        android:order="9999"
        settings:controller="com.android.settings.applications.appinfo.AppVersionPreferenceController" />

</PreferenceScreen>
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ public class DefaultAppSettings extends DashboardFragment {
        workControllers.add(new DefaultWorkBrowserPreferenceController(context));
        controllers.addAll(workControllers);
        controllers.add(new PreferenceCategoryController(
                context, KEY_DEFAULT_WORK_CATEGORY, workControllers));
                context, KEY_DEFAULT_WORK_CATEGORY).setChildren(workControllers));
        controllers.add(new DefaultAssistPreferenceController(context, KEY_ASSIST_VOICE_INPUT,
                false /* showSetting */));
        controllers.add(new DefaultBrowserPreferenceController(context));
+28 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2018 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.
 */

package com.android.settings.applications.appinfo;

import android.content.Context;

import com.android.settings.widget.PreferenceCategoryController;

public class AdvancedAppInfoPreferenceCategoryController extends PreferenceCategoryController {

    public AdvancedAppInfoPreferenceCategoryController(Context context, String key) {
        super(context, key);
    }
}
+2 −8
Original line number Diff line number Diff line
@@ -38,7 +38,6 @@ import com.android.settings.datausage.AppDataUsage;
import com.android.settings.datausage.DataUsageList;
import com.android.settings.datausage.DataUsageUtils;
import com.android.settingslib.AppItem;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume;
@@ -48,16 +47,11 @@ import com.android.settingslib.net.ChartDataLoader;
public class AppDataUsagePreferenceController extends AppInfoPreferenceControllerBase
        implements LoaderManager.LoaderCallbacks<ChartData>, LifecycleObserver, OnResume, OnPause {

    private static final String KEY_DATA = "data_settings";
    private ChartData mChartData;
    private INetworkStatsSession mStatsSession;

    public AppDataUsagePreferenceController(Context context, AppInfoDashboardFragment parent,
            Lifecycle lifecycle) {
        super(context, parent, KEY_DATA);
        if (lifecycle != null) {
            lifecycle.addObserver(this);
        }
    public AppDataUsagePreferenceController(Context context,String key) {
        super(context, key);
    }

    @Override
+74 −56
Original line number Diff line number Diff line
@@ -55,7 +55,6 @@ import com.android.settings.applications.manageapplications.ManageApplications;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.widget.PreferenceCategoryController;
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.applications.AppUtils;
@@ -84,8 +83,10 @@ public class AppInfoDashboardFragment extends DashboardFragment
    private static final String TAG = "AppInfoDashboard";

    // Menu identifiers
    @VisibleForTesting static final int UNINSTALL_ALL_USERS_MENU = 1;
    @VisibleForTesting static final int UNINSTALL_UPDATES = 2;
    @VisibleForTesting
    static final int UNINSTALL_ALL_USERS_MENU = 1;
    @VisibleForTesting
    static final int UNINSTALL_UPDATES = 2;
    static final int INSTALL_INSTANT_APP_MENU = 3;

    // Result code identifiers
@@ -106,8 +107,6 @@ public class AppInfoDashboardFragment extends DashboardFragment
    private static final int DLG_SPECIAL_DISABLE = DLG_BASE + 3;
    static final int DLG_CLEAR_INSTANT_APP = DLG_BASE + 4;

    private static final String KEY_ADVANCED_APP_INFO_CATEGORY = "advanced_app_info";

    public static final String ARG_PACKAGE_NAME = "package";
    public static final String ARG_PACKAGE_UID = "uid";

@@ -156,7 +155,42 @@ public class AppInfoDashboardFragment extends DashboardFragment
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        use(TimeSpentInAppPreferenceController.class).setPackageName(getPackageName());
        final String packageName = getPackageName();
        use(TimeSpentInAppPreferenceController.class).setPackageName(packageName);

        use(AppDataUsagePreferenceController.class).setParentFragment(this);
        final AppInstallerInfoPreferenceController installer =
                use(AppInstallerInfoPreferenceController.class);
        installer.setPackageName(packageName);
        installer.setParentFragment(this);
        use(AppInstallerPreferenceCategoryController.class).setChildren(Arrays.asList(installer));
        use(AppNotificationPreferenceController.class).setParentFragment(this);
        use(AppOpenByDefaultPreferenceController.class).setParentFragment(this);
        use(AppPermissionPreferenceController.class).setParentFragment(this);
        use(AppPermissionPreferenceController.class).setPackageName(packageName);
        use(AppStoragePreferenceController.class).setParentFragment(this);
        use(AppVersionPreferenceController.class).setParentFragment(this);
        use(InstantAppDomainsPreferenceController.class).setParentFragment(this);

        final WriteSystemSettingsPreferenceController writeSystemSettings =
                use(WriteSystemSettingsPreferenceController.class);
        writeSystemSettings.setParentFragment(this);

        final DrawOverlayDetailPreferenceController drawOverlay =
                use(DrawOverlayDetailPreferenceController.class);
        drawOverlay.setParentFragment(this);

        final PictureInPictureDetailPreferenceController pip =
                use(PictureInPictureDetailPreferenceController.class);
        pip.setPackageName(packageName);
        pip.setParentFragment(this);
        final ExternalSourceDetailPreferenceController externalSource =
                use(ExternalSourceDetailPreferenceController.class);
        externalSource.setPackageName(packageName);
        externalSource.setParentFragment(this);

        use(AdvancedAppInfoPreferenceCategoryController.class).setChildren(Arrays.asList(
                writeSystemSettings, drawOverlay, pip, externalSource));
    }

    @Override
@@ -227,16 +261,6 @@ public class AppInfoDashboardFragment extends DashboardFragment
        // when app state changes.
        controllers.add(
                new AppHeaderViewPreferenceController(context, this, packageName, lifecycle));
        controllers.add(new AppStoragePreferenceController(context, this, lifecycle));
        controllers.add(new AppDataUsagePreferenceController(context, this, lifecycle));
        controllers.add(new AppNotificationPreferenceController(context, this));
        controllers.add(new AppOpenByDefaultPreferenceController(context, this));
        controllers.add(new AppPermissionPreferenceController(context, this, packageName));
        controllers.add(new AppVersionPreferenceController(context, this));
        controllers.add(new InstantAppDomainsPreferenceController(context, this));
        final AppInstallerInfoPreferenceController appInstallerInfoPreferenceController =
                new AppInstallerInfoPreferenceController(context, this, packageName);
        controllers.add(appInstallerInfoPreferenceController);
        mAppActionButtonPreferenceController =
                new AppActionButtonPreferenceController(context, this, packageName);
        controllers.add(mAppActionButtonPreferenceController);
@@ -258,23 +282,15 @@ public class AppInfoDashboardFragment extends DashboardFragment
        controllers.add(new DefaultEmergencyShortcutPreferenceController(context, packageName));
        controllers.add(new DefaultSmsShortcutPreferenceController(context, packageName));

        final List<AbstractPreferenceController> advancedAppInfoControllers = new ArrayList<>();
        advancedAppInfoControllers.add(new DrawOverlayDetailPreferenceController(context, this));
        advancedAppInfoControllers.add(new WriteSystemSettingsPreferenceController(context, this));
        advancedAppInfoControllers.add(
                new PictureInPictureDetailPreferenceController(context, this, packageName));
        advancedAppInfoControllers.add(
                new ExternalSourceDetailPreferenceController(context, this, packageName));
        controllers.addAll(advancedAppInfoControllers);
        controllers.add(new PreferenceCategoryController(
                context, KEY_ADVANCED_APP_INFO_CATEGORY, advancedAppInfoControllers));

        controllers.add(new AppInstallerPreferenceCategoryController(
                context, Arrays.asList(appInstallerInfoPreferenceController)));

        return controllers;
    }

    void addToCallbackList(Callback callback) {
        if (callback != null) {
            mCallbacks.add(callback);
        }
    }

    ApplicationsState.AppEntry getAppEntry() {
        return mAppEntry;
    }
@@ -464,8 +480,10 @@ public class AppInfoDashboardFragment extends DashboardFragment
                                        // Disable the app
                                        mMetricsFeatureProvider.action(getContext(),
                                                MetricsEvent.ACTION_SETTINGS_DISABLE_APP);
                                new DisableChanger(AppInfoDashboardFragment.this, mAppEntry.info,
                                        PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER)
                                        new DisableChanger(AppInfoDashboardFragment.this,
                                                mAppEntry.info,
                                                PackageManager
                                                        .COMPONENT_ENABLED_STATE_DISABLED_USER)
                                                .execute((Object) null);
                                    }
                                })
Loading