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

Commit cc49bc33 authored by Yanting Yang's avatar Yanting Yang Committed by Android (Google) Code Review
Browse files

Merge "Cache label description to improve scrolling of App Info page" into rvc-dev

parents f28c0b6f 48350c92
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -500,6 +500,20 @@ public class ApplicationsState {
        }
    }

    /**
     * To generate and cache the label description.
     *
     * @param entry contain the entries of an app
     */
    public void ensureLabelDescription(AppEntry entry) {
        if (entry.labelDescription != null) {
            return;
        }
        synchronized (entry) {
            entry.ensureLabelDescriptionLocked(mContext);
        }
    }

    public void requestSize(String packageName, int userId) {
        if (DEBUG_LOCKING) Log.v(TAG, "requestSize about to acquire lock...");
        synchronized (mEntriesMap) {
@@ -1524,6 +1538,7 @@ public class ApplicationsState {
        public long size;
        public long internalSize;
        public long externalSize;
        public String labelDescription;

        public boolean mounted;

@@ -1616,6 +1631,24 @@ public class ApplicationsState {
                return "";
            }
        }

        /**
         * Get the label description which distinguishes a personal app from a work app for
         * accessibility purpose. If the app is in a work profile, then add a "work" prefix to the
         * app label.
         *
         * @param context The application context
         */
        public void ensureLabelDescriptionLocked(Context context) {
            final int userId = UserHandle.getUserId(this.info.uid);
            if (UserManager.get(context).isManagedProfile(userId)) {
                this.labelDescription = context.getString(
                        com.android.settingslib.R.string.accessibility_work_profile_app_description,
                        this.label);
            } else {
                this.labelDescription = this.label;
            }
        }
    }

    private static boolean hasFlag(int flags, int flag) {