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

Change-Id: I0ed8db63daeb647a7a7012156b25e579e3b6881d
This commit is contained in:
Yanting Yang
2020-05-27 05:47:48 +00:00
committed by Automerger Merge Worker

View File

@@ -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) {