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

This commit is contained in:
Yanting Yang
2020-05-27 05:37:35 +00:00
committed by Android (Google) Code Review

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