Merge "Fix custom buttons with translated string" into udc-d1-dev

This commit is contained in:
Brandon Dayauon
2023-06-29 22:15:38 +00:00
committed by Android (Google) Code Review
6 changed files with 53 additions and 13 deletions
+1
View File
@@ -3053,6 +3053,7 @@ public class Launcher extends StatefulActivity<LauncherState>
@Override
public void bindStringCache(StringCache cache) {
mStringCache = cache;
mAppsView.updateWorkUI();
}
@Override
@@ -16,6 +16,8 @@
package com.android.launcher3.allapps;
import static com.android.launcher3.allapps.ActivityAllAppsContainerView.AdapterHolder.SEARCH;
import static com.android.launcher3.allapps.BaseAllAppsAdapter.VIEW_TYPE_WORK_DISABLED_CARD;
import static com.android.launcher3.allapps.BaseAllAppsAdapter.VIEW_TYPE_WORK_EDU_CARD;
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ALLAPPS_COUNT;
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ALLAPPS_TAP_ON_PERSONAL_TAB;
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ALLAPPS_TAP_ON_WORK_TAB;
@@ -77,6 +79,7 @@ import com.android.launcher3.keyboard.FocusedItemDecorator;
import com.android.launcher3.model.StringCache;
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.testing.shared.TestProtocol;
import com.android.launcher3.util.Executors;
import com.android.launcher3.util.ItemInfoMatcher;
import com.android.launcher3.util.Themes;
import com.android.launcher3.views.ActivityContext;
@@ -1110,6 +1113,30 @@ public class ActivityAllAppsContainerView<T extends Context & ActivityContext>
return view.getGlobalVisibleRect(new Rect());
}
/** Called in Launcher#bindStringCache() to update the UI when cache is updated. */
public void updateWorkUI() {
setDeviceManagementResources();
if (mWorkManager.getWorkModeSwitch() != null) {
mWorkManager.getWorkModeSwitch().updateStringFromCache();
}
inflateWorkCardsIfNeeded();
}
private void inflateWorkCardsIfNeeded() {
AllAppsRecyclerView workRV = mAH.get(AdapterHolder.WORK).mRecyclerView;
if (workRV != null) {
for (int i = 0; i < workRV.getChildCount(); i++) {
View currentView = workRV.getChildAt(i);
int currentItemViewType = workRV.getChildViewHolder(currentView).getItemViewType();
if (currentItemViewType == VIEW_TYPE_WORK_EDU_CARD) {
((WorkEduCard) currentView).updateStringFromCache();
} else if (currentItemViewType == VIEW_TYPE_WORK_DISABLED_CARD) {
((WorkPausedCard) currentView).updateStringFromCache();
}
}
}
}
@VisibleForTesting
public boolean isPersonalTabVisible() {
return isDescendantViewVisible(R.id.tab_personal);
@@ -76,11 +76,7 @@ public class WorkEduCard extends FrameLayout implements
super.onFinishInflate();
findViewById(R.id.action_btn).setOnClickListener(this);
StringCache cache = mActivityContext.getStringCache();
if (cache != null) {
TextView title = findViewById(R.id.work_apps_paused_title);
title.setText(cache.workProfileEdu);
}
updateStringFromCache();
}
@Override
@@ -121,4 +117,12 @@ public class WorkEduCard extends FrameLayout implements
public void setPosition(int position) {
mPosition = position;
}
public void updateStringFromCache() {
StringCache cache = mActivityContext.getStringCache();
if (cache != null) {
TextView title = findViewById(R.id.work_apps_paused_title);
title.setText(cache.workProfileEdu);
}
}
}
@@ -92,10 +92,7 @@ public class WorkModeSwitch extends LinearLayout implements Insettable,
}
setInsets(mActivityContext.getDeviceProfile().getInsets());
StringCache cache = mActivityContext.getStringCache();
if (cache != null) {
mTextView.setText(cache.workProfilePauseButton);
}
updateStringFromCache();
getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);
}
@@ -213,4 +210,11 @@ public class WorkModeSwitch extends LinearLayout implements Insettable,
public int getScrollThreshold() {
return mScrollThreshold;
}
public void updateStringFromCache(){
StringCache cache = mActivityContext.getStringCache();
if (cache != null) {
mTextView.setText(cache.workProfilePauseButton);
}
}
}
@@ -57,6 +57,10 @@ public class WorkPausedCard extends LinearLayout implements View.OnClickListener
mBtn = findViewById(R.id.enable_work_apps);
mBtn.setOnClickListener(this);
updateStringFromCache();
}
public void updateStringFromCache() {
StringCache cache = mActivityContext.getStringCache();
if (cache != null) {
setWorkProfilePausedResources(cache);
@@ -312,7 +312,8 @@ public abstract class BaseLauncherBinder {
currentScreenIds, pendingTasks, workspaceItemCount, isBindSync);
}, mUiExecutor);
mCallbacks.bindStringCache(mBgDataModel.stringCache.clone());
StringCache cacheClone = mBgDataModel.stringCache.clone();
executeCallbacksTask(c -> c.bindStringCache(cacheClone), pendingExecutor);
}
private void bindWorkspaceItems(
@@ -440,9 +441,8 @@ public abstract class BaseLauncherBinder {
.resumeModelPush(FLAG_LOADER_RUNNING);
});
for (Callbacks cb : mCallbacksList) {
cb.bindStringCache(mBgDataModel.stringCache.clone());
}
StringCache cacheClone = mBgDataModel.stringCache.clone();
executeCallbacksTask(c -> c.bindStringCache(cacheClone), mUiExecutor);
}
private void bindWorkspaceItems(final ArrayList<ItemInfo> workspaceItems) {