Allow overriding enterprise related strings in Launcher

Test: manual
Bug: 188414133
Bug: 211422509
Bug: 188410712
Change-Id: I75858cdcf2057e7c270da5893cd9a90c6753f182
This commit is contained in:
kholoud mohamed
2021-12-20 16:47:38 +00:00
parent 1d502c295a
commit c76b2035aa
17 changed files with 353 additions and 19 deletions

View File

@@ -15,6 +15,20 @@
*/
package com.android.launcher3.model;
import static android.app.admin.DevicePolicyResources.Strings.Launcher.ALL_APPS_PERSONAL_TAB;
import static android.app.admin.DevicePolicyResources.Strings.Launcher.ALL_APPS_PERSONAL_TAB_ACCESSIBILITY;
import static android.app.admin.DevicePolicyResources.Strings.Launcher.ALL_APPS_WORK_TAB;
import static android.app.admin.DevicePolicyResources.Strings.Launcher.ALL_APPS_WORK_TAB_ACCESSIBILITY;
import static android.app.admin.DevicePolicyResources.Strings.Launcher.DISABLED_BY_ADMIN_MESSAGE;
import static android.app.admin.DevicePolicyResources.Strings.Launcher.WIDGETS_PERSONAL_TAB;
import static android.app.admin.DevicePolicyResources.Strings.Launcher.WIDGETS_WORK_TAB;
import static android.app.admin.DevicePolicyResources.Strings.Launcher.WORK_FOLDER_NAME;
import static android.app.admin.DevicePolicyResources.Strings.Launcher.WORK_PROFILE_EDU;
import static android.app.admin.DevicePolicyResources.Strings.Launcher.WORK_PROFILE_EDU_ACCEPT;
import static android.app.admin.DevicePolicyResources.Strings.Launcher.WORK_PROFILE_ENABLE_BUTTON;
import static android.app.admin.DevicePolicyResources.Strings.Launcher.WORK_PROFILE_PAUSED_DESCRIPTION;
import static android.app.admin.DevicePolicyResources.Strings.Launcher.WORK_PROFILE_PAUSED_TITLE;
import static android.app.admin.DevicePolicyResources.Strings.Launcher.WORK_PROFILE_PAUSE_BUTTON;
import static android.text.format.DateUtils.DAY_IN_MILLIS;
import static android.text.format.DateUtils.formatElapsedTime;
@@ -32,6 +46,7 @@ import static com.android.launcher3.util.Executors.MODEL_EXECUTOR;
import static java.util.stream.Collectors.toCollection;
import android.app.StatsManager;
import android.app.admin.DevicePolicyManager;
import android.app.prediction.AppPredictionContext;
import android.app.prediction.AppPredictionManager;
import android.app.prediction.AppPredictor;
@@ -135,6 +150,42 @@ public class QuickstepModelDelegate extends ModelDelegate {
mActive = true;
}
@Override
@WorkerThread
public void loadStringCache(StringCache cache) {
cache.loadDefaultStrings(mContext);
cache.workProfileEdu = getEnterpriseString(WORK_PROFILE_EDU, cache.workProfileEdu);
cache.workProfileEduAccept = getEnterpriseString(
WORK_PROFILE_EDU_ACCEPT, cache.workProfileEduAccept);
cache.workProfilePausedTitle = getEnterpriseString(
WORK_PROFILE_PAUSED_TITLE, cache.workProfilePausedTitle);
cache.workProfilePausedDescription = getEnterpriseString(
WORK_PROFILE_PAUSED_DESCRIPTION, cache.workProfilePausedDescription);
cache.workProfilePauseButton = getEnterpriseString(
WORK_PROFILE_PAUSE_BUTTON, cache.workProfilePauseButton);
cache.workProfileEnableButton = getEnterpriseString(
WORK_PROFILE_ENABLE_BUTTON, cache.workProfileEnableButton);
cache.allAppsWorkTab = getEnterpriseString(ALL_APPS_WORK_TAB, cache.allAppsWorkTab);
cache.allAppsPersonalTab = getEnterpriseString(
ALL_APPS_PERSONAL_TAB, cache.allAppsPersonalTab);
cache.allAppsWorkTabAccessibility = getEnterpriseString(
ALL_APPS_WORK_TAB_ACCESSIBILITY, cache.allAppsWorkTabAccessibility);
cache.allAppsPersonalTabAccessibility = getEnterpriseString(
ALL_APPS_PERSONAL_TAB_ACCESSIBILITY, cache.allAppsPersonalTabAccessibility);
cache.workFolderName = getEnterpriseString(WORK_FOLDER_NAME, cache.workFolderName);
cache.widgetsWorkTab = getEnterpriseString(WIDGETS_WORK_TAB, cache.widgetsWorkTab);
cache.widgetsPersonalTab = getEnterpriseString(
WIDGETS_PERSONAL_TAB, cache.widgetsPersonalTab);
cache.disabledByAdminMessage = getEnterpriseString(
DISABLED_BY_ADMIN_MESSAGE, cache.disabledByAdminMessage);
}
private String getEnterpriseString(String updatableStringId, String defaultString) {
DevicePolicyManager dpm = mContext.getSystemService(DevicePolicyManager.class);
return dpm.getString(updatableStringId, () -> defaultString);
}
@Override
public void workspaceLoadComplete() {
super.workspaceLoadComplete();