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

Commit 7075c8a1 authored by Yanting Yang's avatar Yanting Yang Committed by Automerger Merge Worker
Browse files

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

Change-Id: Ifbcbe82ff6474f589ce8738c5bc72990ee845b78
parents 594cdbbf cc49bc33
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) {