Merge "Import translations. DO NOT MERGE ANYWHERE" into tm-dev
diff --git a/fill_screens.py b/fill_screens.py
deleted file mode 100755
index a887792..0000000
--- a/fill_screens.py
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/usr/bin/env python2.5
-
-import cgi
-import os
-import shutil
-import sys
-import sqlite3
-
-SCREENS = 5
-COLUMNS = 4
-ROWS = 4
-CELL_SIZE = 110
-
-DIR = "db_files"
-AUTO_FILE = "launcher.db"
-
-APPLICATION_COMPONENTS = [
-  "com.android.calculator2/com.android.calculator2.Calculator",
-  "com.android.providers.downloads.ui/com.android.providers.downloads.ui.DownloadList",
-  "com.android.settings/com.android.settings.Settings",
-  "com.android.mms/com.android.mms.ui.ConversationList",
-  "com.android.contacts/com.android.contacts.activities.PeopleActivity",
-  "com.android.dialer/com.android.dialer.DialtactsActivity"
-]
-
-def usage():
-  print "usage: fill_screens.py -- fills up the launcher db"
-
-
-def make_dir():
-  shutil.rmtree(DIR, True)
-  os.makedirs(DIR)
-
-def pull_file(fn):
-  print "pull_file: " + fn
-  rv = os.system("adb pull"
-    + " /data/data/com.android.launcher/databases/launcher.db"
-    + " " + fn);
-  if rv != 0:
-    print "adb pull failed"
-    sys.exit(1)
-
-def push_file(fn):
-  print "push_file: " + fn
-  rv = os.system("adb push"
-    + " " + fn
-    + " /data/data/com.android.launcher/databases/launcher.db")
-  if rv != 0:
-    print "adb push failed"
-    sys.exit(1)
-
-def process_file(fn):
-  print "process_file: " + fn
-  conn = sqlite3.connect(fn)
-  c = conn.cursor()
-  c.execute("DELETE FROM favorites")
-
-  intentFormat = "#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=%s;end"
-
-  id = 0;
-  for s in range(SCREENS):
-    for x in range(ROWS):
-      for y in range(COLUMNS):
-        id += 1
-        insert = "INSERT into favorites (_id, title, intent, container, screen, cellX, cellY, spanX, spanY, itemType, appWidgetId, iconType) VALUES (%d, '%s', '%s', %d, %d, %d, %d, %d, %d, %d, %d, %d)"
-        insert = insert % (id, "title", "", -100, s, x, y, 1, 1, 2, -1, 0)
-        c.execute(insert)
-        folder_id = id
-
-        for z in range(15):
-          id += 1
-          intent = intentFormat % (APPLICATION_COMPONENTS[id % len(APPLICATION_COMPONENTS)])
-          insert = "INSERT into favorites (_id, title, intent, container, screen, cellX, cellY, spanX, spanY, itemType, appWidgetId, iconType) VALUES (%d, '%s', '%s', %d, %d, %d, %d, %d, %d, %d, %d, %d)"
-          insert = insert % (id, "title", intent, folder_id, 0, 0, 0, 1, 1, 0, -1, 0)
-          c.execute(insert)
-
-  conn.commit()
-  c.close()
-
-def main(argv):
-  if len(argv) == 1:
-    make_dir()
-    pull_file(AUTO_FILE)
-    process_file(AUTO_FILE)
-    push_file(AUTO_FILE)
-  else:
-    usage()
-
-if __name__=="__main__":
-  main(sys.argv)
diff --git a/go/quickstep/res/values-ar/strings.xml b/go/quickstep/res/values-ar/strings.xml
index e05ee5e..7d98184 100644
--- a/go/quickstep/res/values-ar/strings.xml
+++ b/go/quickstep/res/values-ar/strings.xml
@@ -4,7 +4,7 @@
     <string name="app_share_drop_target_label" msgid="5804774105974539508">"مشاركة التطبيق"</string>
     <string name="action_listen" msgid="2370304050784689486">"استماع"</string>
     <string name="action_translate" msgid="8028378961867277746">"‏ترجمة Google"</string>
-    <string name="action_search" msgid="6269564710943755464">"‏عدسة Google"</string>
+    <string name="action_search" msgid="6269564710943755464">"عدسة"</string>
     <string name="dialog_acknowledge" msgid="2804025517675853172">"حسنًا"</string>
     <string name="dialog_cancel" msgid="6464336969134856366">"إلغاء"</string>
     <string name="dialog_settings" msgid="6564397136021186148">"الإعدادات"</string>
diff --git a/quickstep/res/layout/predicted_hotseat_edu.xml b/quickstep/res/layout/predicted_hotseat_edu.xml
index e4e3956..f0c12f1 100644
--- a/quickstep/res/layout/predicted_hotseat_edu.xml
+++ b/quickstep/res/layout/predicted_hotseat_edu.xml
@@ -42,6 +42,7 @@
             android:paddingLeft="@dimen/bottom_sheet_edu_padding"
             android:paddingRight="@dimen/bottom_sheet_edu_padding"
             android:text="@string/hotseat_edu_title_migrate"
+            android:fontFamily="google-sans"
             android:textAlignment="center"
             android:textColor="@android:color/white"
             android:textSize="20sp" />
diff --git a/quickstep/res/values-ru/strings.xml b/quickstep/res/values-ru/strings.xml
index 8deb58e..6b36b5a 100644
--- a/quickstep/res/values-ru/strings.xml
+++ b/quickstep/res/values-ru/strings.xml
@@ -76,8 +76,7 @@
     <string name="allset_title" msgid="5021126669778966707">"Готово!"</string>
     <string name="allset_hint" msgid="2384632994739392447">"Чтобы перейти на главный экран, проведите вверх."</string>
     <string name="allset_description" msgid="6350320429953234580">"Теперь вы можете использовать телефон."</string>
-    <!-- no translation found for allset_description_tablet (7332070270570039247) -->
-    <skip />
+    <string name="allset_description_tablet" msgid="7332070270570039247">"Теперь вы можете использовать планшет."</string>
     <string name="allset_navigation_settings" msgid="4713404605961476027"><annotation id="link">"Системные настройки навигации"</annotation></string>
     <string name="action_share" msgid="2648470652637092375">"Поделиться"</string>
     <string name="action_screenshot" msgid="8171125848358142917">"Скриншот"</string>
diff --git a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java
index 6f0f993..fe24c4b 100644
--- a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java
+++ b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java
@@ -33,6 +33,7 @@
 
 import android.animation.AnimatorSet;
 import android.animation.ValueAnimator;
+import android.app.ActivityManager;
 import android.app.ActivityOptions;
 import android.content.Context;
 import android.content.Intent;
@@ -325,6 +326,7 @@
                             config,
                             ProxyScreenStatusProvider.INSTANCE,
                             getSystemService(DeviceStateManager.class),
+                            getSystemService(ActivityManager.class),
                             getSystemService(SensorManager.class),
                             getMainThreadHandler(),
                             getMainExecutor(),
diff --git a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java
index 7ab59b8..ca0767b 100644
--- a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java
@@ -194,8 +194,7 @@
                         && (flags & FLAG_SCREEN_PINNING_ACTIVE) == 0));
 
         mPropertyHolders.add(new StatePropertyHolder(mControllers.taskbarDragLayerController
-                .getKeyguardBgTaskbar(),
-                flags -> (flags & FLAG_KEYGUARD_VISIBLE) == 0, AnimatedFloat.VALUE, 1, 0));
+                .getKeyguardBgTaskbar(), flags -> (flags & FLAG_KEYGUARD_VISIBLE) == 0));
 
         // Force nav buttons (specifically back button) to be visible during setup wizard.
         boolean isInSetup = !mContext.isUserSetupComplete();
@@ -297,12 +296,14 @@
                 mNavButtonContainer.requestLayout();
             }
 
-            // Animate taskbar background when any of these flags are enabled
-            int flagsToShowBg = FLAG_ONLY_BACK_FOR_BOUNCER_VISIBLE
-                    | FLAG_NOTIFICATION_SHADE_EXPANDED;
+            // Animate taskbar background when either..
+            // notification shade expanded AND not on keyguard
+            // back is visible for bouncer
             mPropertyHolders.add(new StatePropertyHolder(
                     mControllers.taskbarDragLayerController.getNavbarBackgroundAlpha(),
-                    flags -> (flags & flagsToShowBg) != 0, AnimatedFloat.VALUE, 1, 0));
+                    flags -> ((flags & FLAG_NOTIFICATION_SHADE_EXPANDED) != 0
+                                && (flags & FLAG_KEYGUARD_VISIBLE) == 0)
+                            || (flags & FLAG_ONLY_BACK_FOR_BOUNCER_VISIBLE) != 0));
 
             // Rotation button
             RotationButton rotationButton = new RotationButtonImpl(
@@ -816,6 +817,10 @@
             this(alphaProperty, enableCondition, MultiValueAlpha.VALUE, 1, 0);
         }
 
+        StatePropertyHolder(AnimatedFloat animatedFloat, IntPredicate enableCondition) {
+            this(animatedFloat, enableCondition, AnimatedFloat.VALUE, 1, 0);
+        }
+
         <T> StatePropertyHolder(T target, IntPredicate enabledCondition,
                 Property<T, Float> property, float enabledValue, float disabledValue) {
             mEnableCondition = enabledCondition;
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
index 0f3a6ee..5479664 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
@@ -22,6 +22,7 @@
 import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL;
 
 import static com.android.launcher3.AbstractFloatingView.TYPE_ALL;
+import static com.android.launcher3.AbstractFloatingView.TYPE_REBIND_SAFE;
 import static com.android.launcher3.ResourceUtils.getBoolByName;
 import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_FOLDER_OPEN;
 import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED;
@@ -227,6 +228,11 @@
     public void updateDeviceProfile(DeviceProfile dp) {
         mDeviceProfile = dp;
         updateIconSize(getResources());
+
+        AbstractFloatingView.closeAllOpenViewsExcept(this, false, TYPE_REBIND_SAFE);
+        // Reapply fullscreen to take potential new screen size into account.
+        setTaskbarWindowFullscreen(mIsFullscreen);
+
         dispatchDeviceProfileChanged();
     }
 
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java
index e2ab443..9ba4a65 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java
@@ -36,6 +36,7 @@
 import android.view.SurfaceControl;
 import android.view.View;
 import android.view.ViewRootImpl;
+import android.window.SurfaceSyncer;
 
 import androidx.annotation.Nullable;
 
@@ -476,6 +477,7 @@
                 tx.setScale(dragSurface, scale, scale);
                 tx.setAlpha(dragSurface, alpha);
                 tx.apply();
+                tx.close();
             }
         });
         mReturnAnimator.addListener(new AnimatorListenerAdapter() {
@@ -499,12 +501,14 @@
                 maybeOnDragEnd();
                 // Synchronize removing the drag surface with the next draw after calling
                 // maybeOnDragEnd()
-                viewRoot.consumeNextDraw((transaction) -> {
-                    transaction.remove(dragSurface);
-                    transaction.apply();
-                    tx.close();
-                });
-                viewRoot.getView().invalidate();
+                SurfaceControl.Transaction transaction = new SurfaceControl.Transaction();
+                transaction.remove(dragSurface);
+                SurfaceSyncer syncer = new SurfaceSyncer();
+                int syncId = syncer.setupSync(transaction::close);
+                syncer.addToSync(syncId, viewRoot.getView());
+                syncer.addTransactionToSync(syncId, transaction);
+                syncer.markSyncReady(syncId);
+
                 mReturnAnimator = null;
             }
         });
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java
index 494d21e..8e31a74 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java
@@ -19,10 +19,7 @@
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL;
 
-import static com.android.launcher3.util.DisplayController.CHANGE_ACTIVE_SCREEN;
-import static com.android.launcher3.util.DisplayController.CHANGE_DENSITY;
 import static com.android.launcher3.util.DisplayController.CHANGE_NAVIGATION_MODE;
-import static com.android.launcher3.util.DisplayController.CHANGE_SUPPORTED_BOUNDS;
 
 import android.content.ComponentCallbacks;
 import android.content.Context;
@@ -120,19 +117,24 @@
                 int configsRequiringRecreate = ActivityInfo.CONFIG_ASSETS_PATHS
                         | ActivityInfo.CONFIG_LAYOUT_DIRECTION | ActivityInfo.CONFIG_UI_MODE
                         | ActivityInfo.CONFIG_DENSITY | ActivityInfo.CONFIG_SCREEN_SIZE;
-                if ((configDiff & configsRequiringRecreate) != 0) {
-                    if ((configDiff & ActivityInfo.CONFIG_SCREEN_SIZE) != 0 &&
-                            mTaskbarActivityContext != null && dp != null) {
-                        DeviceProfile oldDp = mTaskbarActivityContext.getDeviceProfile();
-                        // Additional check since this callback gets fired multiple times w/o
-                        // screen size changing
-                        if (dp.widthPx != oldDp.widthPx || dp.heightPx != oldDp.heightPx) {
-                            recreateTaskbar();
-                        }
-                    } else {
-                        // Color has changed, recreate taskbar to reload background color & icons.
-                        recreateTaskbar();
+                boolean requiresRecreate = (configDiff & configsRequiringRecreate) != 0;
+                if ((configDiff & ActivityInfo.CONFIG_SCREEN_SIZE) != 0
+                        && mTaskbarActivityContext != null && dp != null) {
+                    // Additional check since this callback gets fired multiple times w/o
+                    // screen size changing, or when simply rotating the device.
+                    DeviceProfile oldDp = mTaskbarActivityContext.getDeviceProfile();
+                    boolean isOrientationChange =
+                            (configDiff & ActivityInfo.CONFIG_ORIENTATION) != 0;
+                    int oldWidth = isOrientationChange ? oldDp.heightPx : oldDp.widthPx;
+                    int oldHeight = isOrientationChange ? oldDp.widthPx : oldDp.heightPx;
+                    if (dp.widthPx == oldWidth && dp.heightPx == oldHeight) {
+                        configDiff &= ~ActivityInfo.CONFIG_SCREEN_SIZE;
+                        requiresRecreate = (configDiff & configsRequiringRecreate) != 0;
                     }
+                }
+
+                if (requiresRecreate) {
+                    recreateTaskbar();
                 } else {
                     // Config change might be handled without re-creating the taskbar
                     if (mTaskbarActivityContext != null) {
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java
index d72c3d2..958598d 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java
@@ -18,6 +18,7 @@
 
 import static com.android.internal.app.AssistUtils.INVOCATION_TYPE_HOME_BUTTON_LONG_PRESS;
 import static com.android.internal.app.AssistUtils.INVOCATION_TYPE_KEY;
+import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SYSTEM_WINDOWS_REASON_RECENTS;
 import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_PINNING;
 
 import android.os.Bundle;
@@ -31,6 +32,7 @@
 import com.android.launcher3.testing.TestProtocol;
 import com.android.quickstep.OverviewCommandHelper;
 import com.android.quickstep.SystemUiProxy;
+import com.android.quickstep.TaskUtils;
 import com.android.quickstep.TouchInteractionService;
 
 import java.io.PrintWriter;
@@ -217,6 +219,7 @@
             return;
         }
         TestLogging.recordEvent(TestProtocol.SEQUENCE_MAIN, "onOverviewToggle");
+        TaskUtils.closeSystemWindowsAsync(CLOSE_SYSTEM_WINDOWS_REASON_RECENTS);
         mService.getOverviewCommandHelper().addCommand(OverviewCommandHelper.TYPE_TOGGLE);
     }
 
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
index 0b537e2..8291475 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
@@ -28,6 +28,7 @@
 import androidx.annotation.LayoutRes;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.core.graphics.ColorUtils;
 
 import com.android.launcher3.BubbleTextView;
 import com.android.launcher3.Insettable;
@@ -35,6 +36,7 @@
 import com.android.launcher3.Utilities;
 import com.android.launcher3.config.FeatureFlags;
 import com.android.launcher3.folder.FolderIcon;
+import com.android.launcher3.icons.ThemedIconDrawable;
 import com.android.launcher3.model.data.FolderInfo;
 import com.android.launcher3.model.data.ItemInfo;
 import com.android.launcher3.model.data.WorkspaceItemInfo;
@@ -43,14 +45,17 @@
 import com.android.launcher3.util.LauncherBindableItemsContainer;
 import com.android.launcher3.views.ActivityContext;
 import com.android.launcher3.views.AllAppsButton;
+import com.android.launcher3.views.DoubleShadowBubbleTextView;
 
 /**
  * Hosts the Taskbar content such as Hotseat and Recent Apps. Drawn on top of other apps.
  */
 public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconParent, Insettable {
 
-    private final int[] mTempOutLocation = new int[2];
+    private static final float TASKBAR_BACKGROUND_LUMINANCE = 0.30f;
+    public int mThemeIconsBackground;
 
+    private final int[] mTempOutLocation = new int[2];
     private final Rect mIconLayoutBounds = new Rect();
     private final int mIconTouchSize;
     private final int mItemMarginLeftRight;
@@ -103,6 +108,8 @@
         // Needed to draw folder leave-behind when opening one.
         setWillNotDraw(false);
 
+        mThemeIconsBackground = calculateThemeIconsBackground();
+
         if (FeatureFlags.ENABLE_ALL_APPS_IN_TASKBAR.get()) {
             mAllAppsButton = new AllAppsButton(context);
             mAllAppsButton.setLayoutParams(
@@ -111,6 +118,21 @@
         }
     }
 
+    private int getColorWithGivenLuminance(int color, float luminance) {
+        float[] colorHSL = new float[3];
+        ColorUtils.colorToHSL(color, colorHSL);
+        colorHSL[2] = luminance;
+        return ColorUtils.HSLToColor(colorHSL);
+    }
+
+    private int calculateThemeIconsBackground() {
+        int color = ThemedIconDrawable.getColors(mContext)[0];
+        if (Utilities.isDarkTheme(mContext)) {
+            return getColorWithGivenLuminance(color, TASKBAR_BACKGROUND_LUMINANCE);
+        }
+        return color;
+    }
+
     protected void init(TaskbarViewController.TaskbarViewCallbacks callbacks) {
         mControllerCallbacks = callbacks;
         mIconClickListener = mControllerCallbacks.getIconOnClickListener();
@@ -219,6 +241,24 @@
             int index = Utilities.isRtl(getResources()) ? 0 : getChildCount();
             addView(mAllAppsButton, index);
         }
+
+        mThemeIconsBackground = calculateThemeIconsBackground();
+        setThemedIconsBackgroundColor(mThemeIconsBackground);
+    }
+
+    /**
+     * Traverse all the child views and change the background of themeIcons
+     **/
+    public void setThemedIconsBackgroundColor(int color) {
+        for (View icon : getIconViews()) {
+            if (icon instanceof DoubleShadowBubbleTextView) {
+                DoubleShadowBubbleTextView textView = ((DoubleShadowBubbleTextView) icon);
+                if (textView.getIcon() != null
+                        && textView.getIcon() instanceof ThemedIconDrawable) {
+                    ((ThemedIconDrawable) textView.getIcon()).changeBackgroundColor(color);
+                }
+            }
+        }
     }
 
     /**
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java
index a89061b..f5c382d 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java
@@ -27,6 +27,7 @@
 import android.view.MotionEvent;
 import android.view.View;
 
+import androidx.core.graphics.ColorUtils;
 import androidx.core.view.OneShotPreDrawListener;
 
 import com.android.launcher3.BubbleTextView;
@@ -37,6 +38,7 @@
 import com.android.launcher3.anim.PendingAnimation;
 import com.android.launcher3.config.FeatureFlags;
 import com.android.launcher3.folder.FolderIcon;
+import com.android.launcher3.icons.ThemedIconDrawable;
 import com.android.launcher3.model.data.ItemInfo;
 import com.android.launcher3.util.ItemInfoMatcher;
 import com.android.launcher3.util.LauncherBindableItemsContainer;
@@ -71,6 +73,9 @@
             this::updateTranslationY);
     private AnimatedFloat mTaskbarNavButtonTranslationY;
 
+    private final AnimatedFloat mThemeIconsBackground = new AnimatedFloat(
+            this::updateIconsBackground);
+
     private final TaskbarModelCallbacks mModelCallbacks;
 
     // Initialized in init.
@@ -81,6 +86,8 @@
     private AnimatorPlaybackController mIconAlignControllerLazy = null;
     private Runnable mOnControllerPreCreateCallback = NO_OP;
 
+    private int mThemeIconsColor;
+
     public TaskbarViewController(TaskbarActivityContext activity, TaskbarView taskbarView) {
         mActivity = activity;
         mTaskbarView = taskbarView;
@@ -93,6 +100,7 @@
         mControllers = controllers;
         mTaskbarView.init(new TaskbarViewCallbacks());
         mTaskbarView.getLayoutParams().height = mActivity.getDeviceProfile().taskbarSize;
+        mThemeIconsColor = ThemedIconDrawable.getColors(mTaskbarView.getContext())[0];
 
         mTaskbarIconScaleForStash.updateValue(1f);
 
@@ -182,6 +190,15 @@
                 + mTaskbarIconTranslationYForStash.value);
     }
 
+    private void updateIconsBackground() {
+        mTaskbarView.setThemedIconsBackgroundColor(
+                ColorUtils.blendARGB(
+                        mThemeIconsColor,
+                        mTaskbarView.mThemeIconsBackground,
+                        mThemeIconsBackground.value
+                ));
+    }
+
     /**
      * Sets the taskbar icon alignment relative to Launcher hotseat icons
      * @param alignmentRatio [0, 1]
@@ -217,6 +234,10 @@
         setter.setFloat(mTaskbarIconTranslationYForHome, VALUE, -offsetY, LINEAR);
         setter.setFloat(mTaskbarNavButtonTranslationY, VALUE, -offsetY, LINEAR);
 
+        if (Utilities.isDarkTheme(mTaskbarView.getContext())) {
+            setter.addFloat(mThemeIconsBackground, VALUE, 0f, 1f, LINEAR);
+        }
+
         int collapsedHeight = mActivity.getDefaultTaskbarWindowHeight();
         int expandedHeight = Math.max(collapsedHeight,
                 mActivity.getDeviceProfile().taskbarSize + offsetY);
diff --git a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContext.java b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContext.java
index 50dfff0..1cdbdb2 100644
--- a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContext.java
+++ b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContext.java
@@ -19,6 +19,7 @@
 import static android.view.KeyEvent.KEYCODE_BACK;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
 
+import static com.android.launcher3.AbstractFloatingView.TYPE_REBIND_SAFE;
 import static com.android.systemui.shared.system.ViewTreeObserverWrapper.InsetsInfo.TOUCHABLE_INSETS_REGION;
 
 import android.content.Context;
@@ -143,6 +144,9 @@
     @Override
     public void updateDeviceProfile(DeviceProfile dp) {
         mDeviceProfile = dp;
+
+        AbstractFloatingView.closeAllOpenViewsExcept(this, false, TYPE_REBIND_SAFE);
+
         dispatchDeviceProfileChanged();
     }
 
diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationCallbacks.java b/quickstep/src/com/android/quickstep/RecentsAnimationCallbacks.java
index b502676..fe31f1d 100644
--- a/quickstep/src/com/android/quickstep/RecentsAnimationCallbacks.java
+++ b/quickstep/src/com/android/quickstep/RecentsAnimationCallbacks.java
@@ -145,6 +145,18 @@
         });
     }
 
+    @BinderThread
+    @Override
+    public boolean onSwitchToScreenshot(Runnable onFinished) {
+        Utilities.postAsyncCallback(MAIN_EXECUTOR.getHandler(), () -> {
+            for (RecentsAnimationListener listener : getListeners()) {
+                if (listener.onSwitchToScreenshot(onFinished)) return;
+            }
+            onFinished.run();
+        });
+        return true;
+    }
+
     private final void onAnimationFinished(RecentsAnimationController controller) {
         Utilities.postAsyncCallback(MAIN_EXECUTOR.getHandler(), () -> {
             for (RecentsAnimationListener listener : getListeners()) {
@@ -180,5 +192,12 @@
          * Callback made when a task started from the recents is ready for an app transition.
          */
         default void onTasksAppeared(@NonNull RemoteAnimationTargetCompat[] appearedTaskTarget) {}
+
+        /**
+         * @return whether this will call onFinished or not (onFinished should only be called once).
+         */
+        default boolean onSwitchToScreenshot(Runnable onFinished) {
+            return false;
+        }
     }
 }
diff --git a/quickstep/src/com/android/quickstep/RotationTouchHelper.java b/quickstep/src/com/android/quickstep/RotationTouchHelper.java
index dad5071..f952e0d 100644
--- a/quickstep/src/com/android/quickstep/RotationTouchHelper.java
+++ b/quickstep/src/com/android/quickstep/RotationTouchHelper.java
@@ -22,6 +22,7 @@
 import static com.android.launcher3.util.DisplayController.CHANGE_ALL;
 import static com.android.launcher3.util.DisplayController.CHANGE_NAVIGATION_MODE;
 import static com.android.launcher3.util.DisplayController.CHANGE_ROTATION;
+import static com.android.launcher3.util.DisplayController.CHANGE_SUPPORTED_BOUNDS;
 import static com.android.launcher3.util.DisplayController.NavigationMode.THREE_BUTTONS;
 import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
 
@@ -250,7 +251,8 @@
     }
 
     private void onDisplayInfoChangedInternal(Info info, int flags, boolean forceRegister) {
-        if ((flags & (CHANGE_ROTATION | CHANGE_ACTIVE_SCREEN | CHANGE_NAVIGATION_MODE)) != 0) {
+        if ((flags & (CHANGE_ROTATION | CHANGE_ACTIVE_SCREEN | CHANGE_NAVIGATION_MODE
+                | CHANGE_SUPPORTED_BOUNDS)) != 0) {
             mDisplayRotation = info.rotation;
 
             if (mMode.hasGestures) {
diff --git a/quickstep/src/com/android/quickstep/TaskAnimationManager.java b/quickstep/src/com/android/quickstep/TaskAnimationManager.java
index 57b42f8..4bb2400 100644
--- a/quickstep/src/com/android/quickstep/TaskAnimationManager.java
+++ b/quickstep/src/com/android/quickstep/TaskAnimationManager.java
@@ -203,6 +203,24 @@
                     }
                 }
             }
+
+            @Override
+            public boolean onSwitchToScreenshot(Runnable onFinished) {
+                if (!ENABLE_QUICKSTEP_LIVE_TILE.get() || !activityInterface.isInLiveTileMode()
+                        || activityInterface.getCreatedActivity() == null) {
+                    // No need to switch since tile is already a screenshot.
+                    onFinished.run();
+                } else {
+                    final RecentsView recentsView =
+                            activityInterface.getCreatedActivity().getOverviewPanel();
+                    if (recentsView != null) {
+                        recentsView.switchToScreenshot(onFinished);
+                    } else {
+                        onFinished.run();
+                    }
+                }
+                return true;
+            }
         });
         final long eventTime = gestureState.getSwipeUpStartTimeMs();
         mCallbacks.addListener(gestureState);
diff --git a/quickstep/src/com/android/quickstep/views/FloatingTaskView.java b/quickstep/src/com/android/quickstep/views/FloatingTaskView.java
index fe5e1d0..c13ab02 100644
--- a/quickstep/src/com/android/quickstep/views/FloatingTaskView.java
+++ b/quickstep/src/com/android/quickstep/views/FloatingTaskView.java
@@ -27,6 +27,7 @@
 import com.android.launcher3.anim.PendingAnimation;
 import com.android.launcher3.statemanager.StatefulActivity;
 import com.android.launcher3.touch.PagedOrientationHandler;
+import com.android.launcher3.util.SplitConfigurationOptions;
 import com.android.launcher3.views.BaseDragLayer;
 import com.android.quickstep.util.MultiValueUpdateListener;
 import com.android.quickstep.util.TaskCornerRadius;
@@ -53,6 +54,8 @@
     private final boolean mIsRtl;
     private final FullscreenDrawParams mFullscreenParams;
     private PagedOrientationHandler mOrientationHandler;
+    @SplitConfigurationOptions.StagePosition
+    private int mStagePosition;
 
     public FloatingTaskView(Context context) {
         this(context, null);
@@ -95,6 +98,7 @@
 
         RecentsView recentsView = launcher.getOverviewPanel();
         mOrientationHandler = recentsView.getPagedOrientationHandler();
+        mStagePosition = recentsView.getSplitPlaceholder().getActiveSplitStagePosition();
         mSplitPlaceholderView.setIcon(icon,
                 mContext.getResources().getDimensionPixelSize(R.dimen.split_placeholder_icon_size));
         mSplitPlaceholderView.getIconView().setRotation(mOrientationHandler.getDegreesRotated());
@@ -215,7 +219,7 @@
         transitionAnimator.addUpdateListener(listener);
     }
 
-    public void drawRoundedRect(Canvas canvas, Paint paint) {
+    void drawRoundedRect(Canvas canvas, Paint paint) {
         if (mFullscreenParams == null) {
             return;
         }
@@ -226,12 +230,21 @@
                 paint);
     }
 
-    public float getFullscreenScaleX() {
-        return mFullscreenParams.mScaleX;
-    }
-
-    public float getFullscreenScaleY() {
-        return mFullscreenParams.mScaleY;
+    /**
+     * When a split is staged, center the icon in the staging area. Accounts for device insets.
+     * @param iconView The icon that should be centered.
+     * @param onScreenRectCenterX The x-center of the on-screen staging area (most of the Rect is
+     *                        offscreen).
+     * @param onScreenRectCenterY The y-center of the on-screen staging area (most of the Rect is
+     *                        offscreen).
+     */
+    void centerIconView(IconView iconView, float onScreenRectCenterX, float onScreenRectCenterY) {
+        FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) iconView.getLayoutParams();
+        mOrientationHandler.updateStagedSplitIconParams(params, onScreenRectCenterX,
+                onScreenRectCenterY, mFullscreenParams.mScaleX, mFullscreenParams.mScaleY,
+                iconView.getDrawableWidth(), iconView.getDrawableHeight(),
+                mActivity.getDeviceProfile(), mStagePosition);
+        iconView.setLayoutParams(params);
     }
 
     private static class SplitOverlayProperties {
diff --git a/quickstep/src/com/android/quickstep/views/SplitPlaceholderView.java b/quickstep/src/com/android/quickstep/views/SplitPlaceholderView.java
index 7444217..28080d4 100644
--- a/quickstep/src/com/android/quickstep/views/SplitPlaceholderView.java
+++ b/quickstep/src/com/android/quickstep/views/SplitPlaceholderView.java
@@ -68,13 +68,7 @@
             // Center the icon view in the visible area.
             getLocalVisibleRect(mTempRect);
             FloatingTaskView parent = (FloatingTaskView) getParent();
-            FrameLayout.LayoutParams params =
-                    (FrameLayout.LayoutParams) mIconView.getLayoutParams();
-            params.leftMargin = Math.round(mTempRect.centerX() / parent.getFullscreenScaleX()
-                    - 1.0f * mIconView.getDrawableWidth() / 2);
-            params.topMargin = Math.round(mTempRect.centerY() / parent.getFullscreenScaleY()
-                    - 1.0f * mIconView.getDrawableHeight() / 2);
-            mIconView.setLayoutParams(params);
+            parent.centerIconView(mIconView, mTempRect.centerX(), mTempRect.centerY());
         }
     }
 
diff --git a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java
index 4529217..9b38853 100644
--- a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java
+++ b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java
@@ -57,6 +57,7 @@
 import com.android.launcher3.testcomponent.TestCommandReceiver;
 import com.android.launcher3.util.Wait;
 import com.android.launcher3.util.rule.FailureWatcher;
+import com.android.launcher3.util.rule.ScreenRecordRule.ScreenRecord;
 import com.android.quickstep.views.RecentsView;
 
 import org.junit.After;
@@ -160,6 +161,7 @@
     // b/143488140
     //@NavigationModeSwitch
     @Test
+    @ScreenRecord // b/223278795
     public void goToOverviewFromHome() {
         mDevice.pressHome();
         assertTrue("Fallback Launcher not visible", mDevice.wait(Until.hasObject(By.pkg(
diff --git a/res/color-v31/overview_scrim_dark.xml b/res/color-v31/overview_scrim_dark.xml
index 2ab8ecd..487b9f8 100644
--- a/res/color-v31/overview_scrim_dark.xml
+++ b/res/color-v31/overview_scrim_dark.xml
@@ -14,5 +14,5 @@
      limitations under the License.
 -->
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-  <item android:color="@android:color/system_neutral1_500" android:lStar="35" />
+  <item android:color="@android:color/system_neutral1_500" android:lStar="15" />
 </selector>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 1418297..ea87e20 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -37,10 +37,8 @@
     <string name="widget_dims_format" msgid="2370757736025621599">"%1$d × %2$d"</string>
     <string name="widget_accessible_dims_format" msgid="3640149169885301790">"%1$d wide by %2$d high"</string>
     <string name="widget_preview_context_description" msgid="9045841361655787574">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> widget"</string>
-    <!-- no translation found for add_item_request_drag_hint (8730547755622776606) -->
-    <skip />
-    <!-- no translation found for add_to_home_screen (9168649446635919791) -->
-    <skip />
+    <string name="add_item_request_drag_hint" msgid="8730547755622776606">"Touch and hold the widget to move it around the home screen"</string>
+    <string name="add_to_home_screen" msgid="9168649446635919791">"Add to home screen"</string>
     <string name="added_to_home_screen_accessibility_text" msgid="4451545765448884415">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> widget added to home screen"</string>
     <string name="widgets_count" msgid="6467746476364652096">"{count,plural, =1{# widget}other{# widgets}}"</string>
     <string name="shortcuts_count" msgid="8471715556199592381">"{count,plural, =1{# shortcut}other{# shortcuts}}"</string>
@@ -54,8 +52,7 @@
     <string name="widgets_full_sheet_work_tab" msgid="3767150027110633765">"Work"</string>
     <string name="widget_category_conversations" msgid="8894438636213590446">"Conversations"</string>
     <string name="widget_education_header" msgid="4874760613775913787">"Useful info at your fingertips"</string>
-    <!-- no translation found for widget_education_content (1731667670753497052) -->
-    <skip />
+    <string name="widget_education_content" msgid="1731667670753497052">"To get info without opening apps, you can add widgets to your home screen"</string>
     <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tap to change widget settings"</string>
     <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string>
     <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Change widget settings"</string>
@@ -68,8 +65,7 @@
     <string name="notifications_header" msgid="1404149926117359025">"Notifications"</string>
     <string name="long_press_shortcut_to_add" msgid="5405328730817637737">"Touch &amp; hold to move a shortcut."</string>
     <string name="long_accessible_way_to_add_shortcut" msgid="2199537273817090740">"Double-tap &amp; hold to move a shortcut or use custom actions."</string>
-    <!-- no translation found for out_of_space (6455557115204099579) -->
-    <skip />
+    <string name="out_of_space" msgid="6455557115204099579">"No room on this home screen"</string>
     <string name="hotseat_out_of_space" msgid="7448809638125333693">"No more room in the Favourites tray"</string>
     <string name="all_apps_button_label" msgid="8130441508702294465">"Apps list"</string>
     <string name="all_apps_search_results" msgid="5889367432531296759">"Search results"</string>
@@ -83,14 +79,10 @@
     <string name="pin_prediction" msgid="4196423321649756498">"Pin prediction"</string>
     <string name="permlab_install_shortcut" msgid="5632423390354674437">"install shortcuts"</string>
     <string name="permdesc_install_shortcut" msgid="923466509822011139">"Allows an app to add shortcuts without user intervention."</string>
-    <!-- no translation found for permlab_read_settings (5136500343007704955) -->
-    <skip />
-    <!-- no translation found for permdesc_read_settings (4208061150510996676) -->
-    <skip />
-    <!-- no translation found for permlab_write_settings (4820028712156303762) -->
-    <skip />
-    <!-- no translation found for permdesc_write_settings (726859348127868466) -->
-    <skip />
+    <string name="permlab_read_settings" msgid="5136500343007704955">"read Home settings and shortcuts"</string>
+    <string name="permdesc_read_settings" msgid="4208061150510996676">"Allows the app to read the settings and shortcuts in Home."</string>
+    <string name="permlab_write_settings" msgid="4820028712156303762">"write Home settings and shortcuts"</string>
+    <string name="permdesc_write_settings" msgid="726859348127868466">"Allows the app to change the settings and shortcuts in Home."</string>
     <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> is not allowed to make phone calls"</string>
     <string name="gadget_error_text" msgid="740356548025791839">"Can\'t load widget"</string>
     <string name="gadget_setup_text" msgid="8348374825537681407">"Widget settings"</string>
@@ -113,8 +105,7 @@
     <string name="styles_wallpaper_button_text" msgid="8216961355289236794">"Wallpaper &amp; style"</string>
     <string name="settings_button_text" msgid="8873672322605444408">"Home settings"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Disabled by your admin"</string>
-    <!-- no translation found for allow_rotation_title (7222049633713050106) -->
-    <skip />
+    <string name="allow_rotation_title" msgid="7222049633713050106">"Allow home screen rotation"</string>
     <string name="allow_rotation_desc" msgid="8662546029078692509">"When phone is rotated"</string>
     <string name="notification_dots_title" msgid="9062440428204120317">"Notification dots"</string>
     <string name="notification_dots_desc_on" msgid="1679848116452218908">"On"</string>
@@ -123,8 +114,7 @@
     <string name="msg_missing_notification_access" msgid="281113995110910548">"To show Notification Dots, turn on app notifications for <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="title_change_settings" msgid="1376365968844349552">"Change settings"</string>
     <string name="notification_dots_service_title" msgid="4284221181793592871">"Show notification dots"</string>
-    <!-- no translation found for auto_add_shortcuts_label (4926805029653694105) -->
-    <skip />
+    <string name="auto_add_shortcuts_label" msgid="4926805029653694105">"Add app icons to home screen"</string>
     <string name="auto_add_shortcuts_description" msgid="7117251166066978730">"For new apps"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Unknown"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Remove"</string>
@@ -136,8 +126,7 @@
     <string name="app_waiting_download_title" msgid="7053938513995617849">"<xliff:g id="NAME">%1$s</xliff:g> waiting to install"</string>
     <string name="widgets_list" msgid="796804551140113767">"Widgets list"</string>
     <string name="widgets_list_closed" msgid="6141506579418771922">"Widgets list closed"</string>
-    <!-- no translation found for action_add_to_workspace (215894119683164916) -->
-    <skip />
+    <string name="action_add_to_workspace" msgid="215894119683164916">"Add to home screen"</string>
     <string name="action_move_here" msgid="2170188780612570250">"Move item here"</string>
     <string name="item_added_to_workspace" msgid="4211073925752213539">"Item added to home screen"</string>
     <string name="item_removed" msgid="851119963877842327">"Item removed"</string>
@@ -152,8 +141,7 @@
     <string name="added_to_folder" msgid="4793259502305558003">"Item added to folder"</string>
     <string name="create_folder_with" msgid="4050141361160214248">"Create folder with: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="folder_created" msgid="6409794597405184510">"Folder created"</string>
-    <!-- no translation found for action_move_to_workspace (39528912300293768) -->
-    <skip />
+    <string name="action_move_to_workspace" msgid="39528912300293768">"Move to home screen"</string>
     <string name="action_resize" msgid="1802976324781771067">"Re-size"</string>
     <string name="action_increase_width" msgid="8773715375078513326">"Increase width"</string>
     <string name="action_increase_height" msgid="459390020612501122">"Increase height"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 1418297..ea87e20 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -37,10 +37,8 @@
     <string name="widget_dims_format" msgid="2370757736025621599">"%1$d × %2$d"</string>
     <string name="widget_accessible_dims_format" msgid="3640149169885301790">"%1$d wide by %2$d high"</string>
     <string name="widget_preview_context_description" msgid="9045841361655787574">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> widget"</string>
-    <!-- no translation found for add_item_request_drag_hint (8730547755622776606) -->
-    <skip />
-    <!-- no translation found for add_to_home_screen (9168649446635919791) -->
-    <skip />
+    <string name="add_item_request_drag_hint" msgid="8730547755622776606">"Touch and hold the widget to move it around the home screen"</string>
+    <string name="add_to_home_screen" msgid="9168649446635919791">"Add to home screen"</string>
     <string name="added_to_home_screen_accessibility_text" msgid="4451545765448884415">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> widget added to home screen"</string>
     <string name="widgets_count" msgid="6467746476364652096">"{count,plural, =1{# widget}other{# widgets}}"</string>
     <string name="shortcuts_count" msgid="8471715556199592381">"{count,plural, =1{# shortcut}other{# shortcuts}}"</string>
@@ -54,8 +52,7 @@
     <string name="widgets_full_sheet_work_tab" msgid="3767150027110633765">"Work"</string>
     <string name="widget_category_conversations" msgid="8894438636213590446">"Conversations"</string>
     <string name="widget_education_header" msgid="4874760613775913787">"Useful info at your fingertips"</string>
-    <!-- no translation found for widget_education_content (1731667670753497052) -->
-    <skip />
+    <string name="widget_education_content" msgid="1731667670753497052">"To get info without opening apps, you can add widgets to your home screen"</string>
     <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tap to change widget settings"</string>
     <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string>
     <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Change widget settings"</string>
@@ -68,8 +65,7 @@
     <string name="notifications_header" msgid="1404149926117359025">"Notifications"</string>
     <string name="long_press_shortcut_to_add" msgid="5405328730817637737">"Touch &amp; hold to move a shortcut."</string>
     <string name="long_accessible_way_to_add_shortcut" msgid="2199537273817090740">"Double-tap &amp; hold to move a shortcut or use custom actions."</string>
-    <!-- no translation found for out_of_space (6455557115204099579) -->
-    <skip />
+    <string name="out_of_space" msgid="6455557115204099579">"No room on this home screen"</string>
     <string name="hotseat_out_of_space" msgid="7448809638125333693">"No more room in the Favourites tray"</string>
     <string name="all_apps_button_label" msgid="8130441508702294465">"Apps list"</string>
     <string name="all_apps_search_results" msgid="5889367432531296759">"Search results"</string>
@@ -83,14 +79,10 @@
     <string name="pin_prediction" msgid="4196423321649756498">"Pin prediction"</string>
     <string name="permlab_install_shortcut" msgid="5632423390354674437">"install shortcuts"</string>
     <string name="permdesc_install_shortcut" msgid="923466509822011139">"Allows an app to add shortcuts without user intervention."</string>
-    <!-- no translation found for permlab_read_settings (5136500343007704955) -->
-    <skip />
-    <!-- no translation found for permdesc_read_settings (4208061150510996676) -->
-    <skip />
-    <!-- no translation found for permlab_write_settings (4820028712156303762) -->
-    <skip />
-    <!-- no translation found for permdesc_write_settings (726859348127868466) -->
-    <skip />
+    <string name="permlab_read_settings" msgid="5136500343007704955">"read Home settings and shortcuts"</string>
+    <string name="permdesc_read_settings" msgid="4208061150510996676">"Allows the app to read the settings and shortcuts in Home."</string>
+    <string name="permlab_write_settings" msgid="4820028712156303762">"write Home settings and shortcuts"</string>
+    <string name="permdesc_write_settings" msgid="726859348127868466">"Allows the app to change the settings and shortcuts in Home."</string>
     <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> is not allowed to make phone calls"</string>
     <string name="gadget_error_text" msgid="740356548025791839">"Can\'t load widget"</string>
     <string name="gadget_setup_text" msgid="8348374825537681407">"Widget settings"</string>
@@ -113,8 +105,7 @@
     <string name="styles_wallpaper_button_text" msgid="8216961355289236794">"Wallpaper &amp; style"</string>
     <string name="settings_button_text" msgid="8873672322605444408">"Home settings"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Disabled by your admin"</string>
-    <!-- no translation found for allow_rotation_title (7222049633713050106) -->
-    <skip />
+    <string name="allow_rotation_title" msgid="7222049633713050106">"Allow home screen rotation"</string>
     <string name="allow_rotation_desc" msgid="8662546029078692509">"When phone is rotated"</string>
     <string name="notification_dots_title" msgid="9062440428204120317">"Notification dots"</string>
     <string name="notification_dots_desc_on" msgid="1679848116452218908">"On"</string>
@@ -123,8 +114,7 @@
     <string name="msg_missing_notification_access" msgid="281113995110910548">"To show Notification Dots, turn on app notifications for <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="title_change_settings" msgid="1376365968844349552">"Change settings"</string>
     <string name="notification_dots_service_title" msgid="4284221181793592871">"Show notification dots"</string>
-    <!-- no translation found for auto_add_shortcuts_label (4926805029653694105) -->
-    <skip />
+    <string name="auto_add_shortcuts_label" msgid="4926805029653694105">"Add app icons to home screen"</string>
     <string name="auto_add_shortcuts_description" msgid="7117251166066978730">"For new apps"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Unknown"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Remove"</string>
@@ -136,8 +126,7 @@
     <string name="app_waiting_download_title" msgid="7053938513995617849">"<xliff:g id="NAME">%1$s</xliff:g> waiting to install"</string>
     <string name="widgets_list" msgid="796804551140113767">"Widgets list"</string>
     <string name="widgets_list_closed" msgid="6141506579418771922">"Widgets list closed"</string>
-    <!-- no translation found for action_add_to_workspace (215894119683164916) -->
-    <skip />
+    <string name="action_add_to_workspace" msgid="215894119683164916">"Add to home screen"</string>
     <string name="action_move_here" msgid="2170188780612570250">"Move item here"</string>
     <string name="item_added_to_workspace" msgid="4211073925752213539">"Item added to home screen"</string>
     <string name="item_removed" msgid="851119963877842327">"Item removed"</string>
@@ -152,8 +141,7 @@
     <string name="added_to_folder" msgid="4793259502305558003">"Item added to folder"</string>
     <string name="create_folder_with" msgid="4050141361160214248">"Create folder with: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="folder_created" msgid="6409794597405184510">"Folder created"</string>
-    <!-- no translation found for action_move_to_workspace (39528912300293768) -->
-    <skip />
+    <string name="action_move_to_workspace" msgid="39528912300293768">"Move to home screen"</string>
     <string name="action_resize" msgid="1802976324781771067">"Re-size"</string>
     <string name="action_increase_width" msgid="8773715375078513326">"Increase width"</string>
     <string name="action_increase_height" msgid="459390020612501122">"Increase height"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 1418297..ea87e20 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -37,10 +37,8 @@
     <string name="widget_dims_format" msgid="2370757736025621599">"%1$d × %2$d"</string>
     <string name="widget_accessible_dims_format" msgid="3640149169885301790">"%1$d wide by %2$d high"</string>
     <string name="widget_preview_context_description" msgid="9045841361655787574">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> widget"</string>
-    <!-- no translation found for add_item_request_drag_hint (8730547755622776606) -->
-    <skip />
-    <!-- no translation found for add_to_home_screen (9168649446635919791) -->
-    <skip />
+    <string name="add_item_request_drag_hint" msgid="8730547755622776606">"Touch and hold the widget to move it around the home screen"</string>
+    <string name="add_to_home_screen" msgid="9168649446635919791">"Add to home screen"</string>
     <string name="added_to_home_screen_accessibility_text" msgid="4451545765448884415">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> widget added to home screen"</string>
     <string name="widgets_count" msgid="6467746476364652096">"{count,plural, =1{# widget}other{# widgets}}"</string>
     <string name="shortcuts_count" msgid="8471715556199592381">"{count,plural, =1{# shortcut}other{# shortcuts}}"</string>
@@ -54,8 +52,7 @@
     <string name="widgets_full_sheet_work_tab" msgid="3767150027110633765">"Work"</string>
     <string name="widget_category_conversations" msgid="8894438636213590446">"Conversations"</string>
     <string name="widget_education_header" msgid="4874760613775913787">"Useful info at your fingertips"</string>
-    <!-- no translation found for widget_education_content (1731667670753497052) -->
-    <skip />
+    <string name="widget_education_content" msgid="1731667670753497052">"To get info without opening apps, you can add widgets to your home screen"</string>
     <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tap to change widget settings"</string>
     <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string>
     <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Change widget settings"</string>
@@ -68,8 +65,7 @@
     <string name="notifications_header" msgid="1404149926117359025">"Notifications"</string>
     <string name="long_press_shortcut_to_add" msgid="5405328730817637737">"Touch &amp; hold to move a shortcut."</string>
     <string name="long_accessible_way_to_add_shortcut" msgid="2199537273817090740">"Double-tap &amp; hold to move a shortcut or use custom actions."</string>
-    <!-- no translation found for out_of_space (6455557115204099579) -->
-    <skip />
+    <string name="out_of_space" msgid="6455557115204099579">"No room on this home screen"</string>
     <string name="hotseat_out_of_space" msgid="7448809638125333693">"No more room in the Favourites tray"</string>
     <string name="all_apps_button_label" msgid="8130441508702294465">"Apps list"</string>
     <string name="all_apps_search_results" msgid="5889367432531296759">"Search results"</string>
@@ -83,14 +79,10 @@
     <string name="pin_prediction" msgid="4196423321649756498">"Pin prediction"</string>
     <string name="permlab_install_shortcut" msgid="5632423390354674437">"install shortcuts"</string>
     <string name="permdesc_install_shortcut" msgid="923466509822011139">"Allows an app to add shortcuts without user intervention."</string>
-    <!-- no translation found for permlab_read_settings (5136500343007704955) -->
-    <skip />
-    <!-- no translation found for permdesc_read_settings (4208061150510996676) -->
-    <skip />
-    <!-- no translation found for permlab_write_settings (4820028712156303762) -->
-    <skip />
-    <!-- no translation found for permdesc_write_settings (726859348127868466) -->
-    <skip />
+    <string name="permlab_read_settings" msgid="5136500343007704955">"read Home settings and shortcuts"</string>
+    <string name="permdesc_read_settings" msgid="4208061150510996676">"Allows the app to read the settings and shortcuts in Home."</string>
+    <string name="permlab_write_settings" msgid="4820028712156303762">"write Home settings and shortcuts"</string>
+    <string name="permdesc_write_settings" msgid="726859348127868466">"Allows the app to change the settings and shortcuts in Home."</string>
     <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> is not allowed to make phone calls"</string>
     <string name="gadget_error_text" msgid="740356548025791839">"Can\'t load widget"</string>
     <string name="gadget_setup_text" msgid="8348374825537681407">"Widget settings"</string>
@@ -113,8 +105,7 @@
     <string name="styles_wallpaper_button_text" msgid="8216961355289236794">"Wallpaper &amp; style"</string>
     <string name="settings_button_text" msgid="8873672322605444408">"Home settings"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Disabled by your admin"</string>
-    <!-- no translation found for allow_rotation_title (7222049633713050106) -->
-    <skip />
+    <string name="allow_rotation_title" msgid="7222049633713050106">"Allow home screen rotation"</string>
     <string name="allow_rotation_desc" msgid="8662546029078692509">"When phone is rotated"</string>
     <string name="notification_dots_title" msgid="9062440428204120317">"Notification dots"</string>
     <string name="notification_dots_desc_on" msgid="1679848116452218908">"On"</string>
@@ -123,8 +114,7 @@
     <string name="msg_missing_notification_access" msgid="281113995110910548">"To show Notification Dots, turn on app notifications for <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="title_change_settings" msgid="1376365968844349552">"Change settings"</string>
     <string name="notification_dots_service_title" msgid="4284221181793592871">"Show notification dots"</string>
-    <!-- no translation found for auto_add_shortcuts_label (4926805029653694105) -->
-    <skip />
+    <string name="auto_add_shortcuts_label" msgid="4926805029653694105">"Add app icons to home screen"</string>
     <string name="auto_add_shortcuts_description" msgid="7117251166066978730">"For new apps"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Unknown"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Remove"</string>
@@ -136,8 +126,7 @@
     <string name="app_waiting_download_title" msgid="7053938513995617849">"<xliff:g id="NAME">%1$s</xliff:g> waiting to install"</string>
     <string name="widgets_list" msgid="796804551140113767">"Widgets list"</string>
     <string name="widgets_list_closed" msgid="6141506579418771922">"Widgets list closed"</string>
-    <!-- no translation found for action_add_to_workspace (215894119683164916) -->
-    <skip />
+    <string name="action_add_to_workspace" msgid="215894119683164916">"Add to home screen"</string>
     <string name="action_move_here" msgid="2170188780612570250">"Move item here"</string>
     <string name="item_added_to_workspace" msgid="4211073925752213539">"Item added to home screen"</string>
     <string name="item_removed" msgid="851119963877842327">"Item removed"</string>
@@ -152,8 +141,7 @@
     <string name="added_to_folder" msgid="4793259502305558003">"Item added to folder"</string>
     <string name="create_folder_with" msgid="4050141361160214248">"Create folder with: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="folder_created" msgid="6409794597405184510">"Folder created"</string>
-    <!-- no translation found for action_move_to_workspace (39528912300293768) -->
-    <skip />
+    <string name="action_move_to_workspace" msgid="39528912300293768">"Move to home screen"</string>
     <string name="action_resize" msgid="1802976324781771067">"Re-size"</string>
     <string name="action_increase_width" msgid="8773715375078513326">"Increase width"</string>
     <string name="action_increase_height" msgid="459390020612501122">"Increase height"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 1418297..ea87e20 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -37,10 +37,8 @@
     <string name="widget_dims_format" msgid="2370757736025621599">"%1$d × %2$d"</string>
     <string name="widget_accessible_dims_format" msgid="3640149169885301790">"%1$d wide by %2$d high"</string>
     <string name="widget_preview_context_description" msgid="9045841361655787574">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> widget"</string>
-    <!-- no translation found for add_item_request_drag_hint (8730547755622776606) -->
-    <skip />
-    <!-- no translation found for add_to_home_screen (9168649446635919791) -->
-    <skip />
+    <string name="add_item_request_drag_hint" msgid="8730547755622776606">"Touch and hold the widget to move it around the home screen"</string>
+    <string name="add_to_home_screen" msgid="9168649446635919791">"Add to home screen"</string>
     <string name="added_to_home_screen_accessibility_text" msgid="4451545765448884415">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> widget added to home screen"</string>
     <string name="widgets_count" msgid="6467746476364652096">"{count,plural, =1{# widget}other{# widgets}}"</string>
     <string name="shortcuts_count" msgid="8471715556199592381">"{count,plural, =1{# shortcut}other{# shortcuts}}"</string>
@@ -54,8 +52,7 @@
     <string name="widgets_full_sheet_work_tab" msgid="3767150027110633765">"Work"</string>
     <string name="widget_category_conversations" msgid="8894438636213590446">"Conversations"</string>
     <string name="widget_education_header" msgid="4874760613775913787">"Useful info at your fingertips"</string>
-    <!-- no translation found for widget_education_content (1731667670753497052) -->
-    <skip />
+    <string name="widget_education_content" msgid="1731667670753497052">"To get info without opening apps, you can add widgets to your home screen"</string>
     <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tap to change widget settings"</string>
     <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string>
     <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Change widget settings"</string>
@@ -68,8 +65,7 @@
     <string name="notifications_header" msgid="1404149926117359025">"Notifications"</string>
     <string name="long_press_shortcut_to_add" msgid="5405328730817637737">"Touch &amp; hold to move a shortcut."</string>
     <string name="long_accessible_way_to_add_shortcut" msgid="2199537273817090740">"Double-tap &amp; hold to move a shortcut or use custom actions."</string>
-    <!-- no translation found for out_of_space (6455557115204099579) -->
-    <skip />
+    <string name="out_of_space" msgid="6455557115204099579">"No room on this home screen"</string>
     <string name="hotseat_out_of_space" msgid="7448809638125333693">"No more room in the Favourites tray"</string>
     <string name="all_apps_button_label" msgid="8130441508702294465">"Apps list"</string>
     <string name="all_apps_search_results" msgid="5889367432531296759">"Search results"</string>
@@ -83,14 +79,10 @@
     <string name="pin_prediction" msgid="4196423321649756498">"Pin prediction"</string>
     <string name="permlab_install_shortcut" msgid="5632423390354674437">"install shortcuts"</string>
     <string name="permdesc_install_shortcut" msgid="923466509822011139">"Allows an app to add shortcuts without user intervention."</string>
-    <!-- no translation found for permlab_read_settings (5136500343007704955) -->
-    <skip />
-    <!-- no translation found for permdesc_read_settings (4208061150510996676) -->
-    <skip />
-    <!-- no translation found for permlab_write_settings (4820028712156303762) -->
-    <skip />
-    <!-- no translation found for permdesc_write_settings (726859348127868466) -->
-    <skip />
+    <string name="permlab_read_settings" msgid="5136500343007704955">"read Home settings and shortcuts"</string>
+    <string name="permdesc_read_settings" msgid="4208061150510996676">"Allows the app to read the settings and shortcuts in Home."</string>
+    <string name="permlab_write_settings" msgid="4820028712156303762">"write Home settings and shortcuts"</string>
+    <string name="permdesc_write_settings" msgid="726859348127868466">"Allows the app to change the settings and shortcuts in Home."</string>
     <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> is not allowed to make phone calls"</string>
     <string name="gadget_error_text" msgid="740356548025791839">"Can\'t load widget"</string>
     <string name="gadget_setup_text" msgid="8348374825537681407">"Widget settings"</string>
@@ -113,8 +105,7 @@
     <string name="styles_wallpaper_button_text" msgid="8216961355289236794">"Wallpaper &amp; style"</string>
     <string name="settings_button_text" msgid="8873672322605444408">"Home settings"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Disabled by your admin"</string>
-    <!-- no translation found for allow_rotation_title (7222049633713050106) -->
-    <skip />
+    <string name="allow_rotation_title" msgid="7222049633713050106">"Allow home screen rotation"</string>
     <string name="allow_rotation_desc" msgid="8662546029078692509">"When phone is rotated"</string>
     <string name="notification_dots_title" msgid="9062440428204120317">"Notification dots"</string>
     <string name="notification_dots_desc_on" msgid="1679848116452218908">"On"</string>
@@ -123,8 +114,7 @@
     <string name="msg_missing_notification_access" msgid="281113995110910548">"To show Notification Dots, turn on app notifications for <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="title_change_settings" msgid="1376365968844349552">"Change settings"</string>
     <string name="notification_dots_service_title" msgid="4284221181793592871">"Show notification dots"</string>
-    <!-- no translation found for auto_add_shortcuts_label (4926805029653694105) -->
-    <skip />
+    <string name="auto_add_shortcuts_label" msgid="4926805029653694105">"Add app icons to home screen"</string>
     <string name="auto_add_shortcuts_description" msgid="7117251166066978730">"For new apps"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Unknown"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Remove"</string>
@@ -136,8 +126,7 @@
     <string name="app_waiting_download_title" msgid="7053938513995617849">"<xliff:g id="NAME">%1$s</xliff:g> waiting to install"</string>
     <string name="widgets_list" msgid="796804551140113767">"Widgets list"</string>
     <string name="widgets_list_closed" msgid="6141506579418771922">"Widgets list closed"</string>
-    <!-- no translation found for action_add_to_workspace (215894119683164916) -->
-    <skip />
+    <string name="action_add_to_workspace" msgid="215894119683164916">"Add to home screen"</string>
     <string name="action_move_here" msgid="2170188780612570250">"Move item here"</string>
     <string name="item_added_to_workspace" msgid="4211073925752213539">"Item added to home screen"</string>
     <string name="item_removed" msgid="851119963877842327">"Item removed"</string>
@@ -152,8 +141,7 @@
     <string name="added_to_folder" msgid="4793259502305558003">"Item added to folder"</string>
     <string name="create_folder_with" msgid="4050141361160214248">"Create folder with: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="folder_created" msgid="6409794597405184510">"Folder created"</string>
-    <!-- no translation found for action_move_to_workspace (39528912300293768) -->
-    <skip />
+    <string name="action_move_to_workspace" msgid="39528912300293768">"Move to home screen"</string>
     <string name="action_resize" msgid="1802976324781771067">"Re-size"</string>
     <string name="action_increase_width" msgid="8773715375078513326">"Increase width"</string>
     <string name="action_increase_height" msgid="459390020612501122">"Increase height"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index c4314d3..dcb1da2 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -37,10 +37,8 @@
     <string name="widget_dims_format" msgid="2370757736025621599">"%1$d × %2$d"</string>
     <string name="widget_accessible_dims_format" msgid="3640149169885301790">"Ені: %1$d, биіктігі: %2$d"</string>
     <string name="widget_preview_context_description" msgid="9045841361655787574">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> виджеті"</string>
-    <!-- no translation found for add_item_request_drag_hint (8730547755622776606) -->
-    <skip />
-    <!-- no translation found for add_to_home_screen (9168649446635919791) -->
-    <skip />
+    <string name="add_item_request_drag_hint" msgid="8730547755622776606">"Негізгі экран бойынша жылжыту үшін виджетті басып ұстаңыз."</string>
+    <string name="add_to_home_screen" msgid="9168649446635919791">"Негізгі экранға қосу"</string>
     <string name="added_to_home_screen_accessibility_text" msgid="4451545765448884415">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> виджеті негізгі экранға енгізілді."</string>
     <string name="widgets_count" msgid="6467746476364652096">"{count,plural, =1{# виджет}other{# виджет}}"</string>
     <string name="shortcuts_count" msgid="8471715556199592381">"{count,plural, =1{# таңбаша}other{# таңбаша}}"</string>
@@ -54,8 +52,7 @@
     <string name="widgets_full_sheet_work_tab" msgid="3767150027110633765">"Жұмыс виджеттері"</string>
     <string name="widget_category_conversations" msgid="8894438636213590446">"Әңгімелер"</string>
     <string name="widget_education_header" msgid="4874760613775913787">"Саусақпен түртсеңіз болғаны – пайдалы ақпарат көз алдыңызда"</string>
-    <!-- no translation found for widget_education_content (1731667670753497052) -->
-    <skip />
+    <string name="widget_education_content" msgid="1731667670753497052">"Қолданбаларды ашпай-ақ ақпарат алу үшін негізгі экранға тиісті виджеттерді қосыңыз."</string>
     <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Виджет параметрлерін өзгерту үшін түртіңіз."</string>
     <string name="widget_education_close_button" msgid="8676165703104836580">"Түсінікті"</string>
     <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Виджет параметрлерін өзгерту"</string>
@@ -68,8 +65,7 @@
     <string name="notifications_header" msgid="1404149926117359025">"Хабарландырулар"</string>
     <string name="long_press_shortcut_to_add" msgid="5405328730817637737">"Таңбашаны жылжыту үшін басып тұрыңыз."</string>
     <string name="long_accessible_way_to_add_shortcut" msgid="2199537273817090740">"Таңбашаны жылжыту үшін екі рет түртіңіз де, ұстап тұрыңыз немесе арнаулы әрекеттерді пайдаланыңыз."</string>
-    <!-- no translation found for out_of_space (6455557115204099579) -->
-    <skip />
+    <string name="out_of_space" msgid="6455557115204099579">"Негізгі экранда бос орын қалмады."</string>
     <string name="hotseat_out_of_space" msgid="7448809638125333693">"Қалаулылар науасында орын қалмады"</string>
     <string name="all_apps_button_label" msgid="8130441508702294465">"Қолданбалар тізімі"</string>
     <string name="all_apps_search_results" msgid="5889367432531296759">"Іздеу нәтижелері"</string>
@@ -83,14 +79,10 @@
     <string name="pin_prediction" msgid="4196423321649756498">"Болжанған қолданбаны бекіту"</string>
     <string name="permlab_install_shortcut" msgid="5632423390354674437">"таңбаша орнату"</string>
     <string name="permdesc_install_shortcut" msgid="923466509822011139">"Қолданбаға пайдаланушының қатысуынсыз төте пернелерді қосу мүмкіндігін береді."</string>
-    <!-- no translation found for permlab_read_settings (5136500343007704955) -->
-    <skip />
-    <!-- no translation found for permdesc_read_settings (4208061150510996676) -->
-    <skip />
-    <!-- no translation found for permlab_write_settings (4820028712156303762) -->
-    <skip />
-    <!-- no translation found for permdesc_write_settings (726859348127868466) -->
-    <skip />
+    <string name="permlab_read_settings" msgid="5136500343007704955">"негізгі экран параметрлері мен таңбашаларын оқу"</string>
+    <string name="permdesc_read_settings" msgid="4208061150510996676">"Қолданбаға негізгі экрандағы параметрлер мен таңбашаларды оқуға мүмкіндік береді."</string>
+    <string name="permlab_write_settings" msgid="4820028712156303762">"негізгі экран параметрлері мен таңбашаларын жазу"</string>
+    <string name="permdesc_write_settings" msgid="726859348127868466">"Қолданбаға негізгі экрандағы параметрлер мен таңбашаларды өзгертуге мүмкіндік береді."</string>
     <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> арқылы телефон қоңырауларын соғуға рұқсат етілмеген"</string>
     <string name="gadget_error_text" msgid="740356548025791839">"Виджетті жүктеу мүмкін емес."</string>
     <string name="gadget_setup_text" msgid="8348374825537681407">"Виджет параметрлері"</string>
@@ -113,8 +105,7 @@
     <string name="styles_wallpaper_button_text" msgid="8216961355289236794">"Тұсқағаз және стиль"</string>
     <string name="settings_button_text" msgid="8873672322605444408">"Негізгі экран параметрлері"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Әкімші өшірді"</string>
-    <!-- no translation found for allow_rotation_title (7222049633713050106) -->
-    <skip />
+    <string name="allow_rotation_title" msgid="7222049633713050106">"Негізгі экранды бұруға рұқсат ету"</string>
     <string name="allow_rotation_desc" msgid="8662546029078692509">"Телефон бұрылғанда"</string>
     <string name="notification_dots_title" msgid="9062440428204120317">"Хабарландыру белгілері"</string>
     <string name="notification_dots_desc_on" msgid="1679848116452218908">"Қосулы"</string>
@@ -123,8 +114,7 @@
     <string name="msg_missing_notification_access" msgid="281113995110910548">"Хабарландыру белгілерін көрсету үшін <xliff:g id="NAME">%1$s</xliff:g> қолданбасының қолданба хабарландыруларын қосыңыз"</string>
     <string name="title_change_settings" msgid="1376365968844349552">"Параметрлерді өзгерту"</string>
     <string name="notification_dots_service_title" msgid="4284221181793592871">"Хабарландыру белгілерін көрсету"</string>
-    <!-- no translation found for auto_add_shortcuts_label (4926805029653694105) -->
-    <skip />
+    <string name="auto_add_shortcuts_label" msgid="4926805029653694105">"Қолданба белгішелерін негізгі экранға қосу"</string>
     <string name="auto_add_shortcuts_description" msgid="7117251166066978730">"Жаңа қолданбаларға арналған"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Белгісіз"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Алып тастау"</string>
@@ -136,8 +126,7 @@
     <string name="app_waiting_download_title" msgid="7053938513995617849">"<xliff:g id="NAME">%1$s</xliff:g> орнату күтілуде"</string>
     <string name="widgets_list" msgid="796804551140113767">"Виджеттер тізімі"</string>
     <string name="widgets_list_closed" msgid="6141506579418771922">"Видджеттер тізімі жабылды"</string>
-    <!-- no translation found for action_add_to_workspace (215894119683164916) -->
-    <skip />
+    <string name="action_add_to_workspace" msgid="215894119683164916">"Негізгі экранға қосу"</string>
     <string name="action_move_here" msgid="2170188780612570250">"Элементті мұнда жылжыту"</string>
     <string name="item_added_to_workspace" msgid="4211073925752213539">"Элемент негізгі экранға қосылды"</string>
     <string name="item_removed" msgid="851119963877842327">"Элемент жойылды"</string>
@@ -152,8 +141,7 @@
     <string name="added_to_folder" msgid="4793259502305558003">"Элемент қалтаға қосылды"</string>
     <string name="create_folder_with" msgid="4050141361160214248">"Мына бар қалтаны жасау: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="folder_created" msgid="6409794597405184510">"Қалта жасалды"</string>
-    <!-- no translation found for action_move_to_workspace (39528912300293768) -->
-    <skip />
+    <string name="action_move_to_workspace" msgid="39528912300293768">"Негізгі экранға жылжыту"</string>
     <string name="action_resize" msgid="1802976324781771067">"Өлшемін өзгерту"</string>
     <string name="action_increase_width" msgid="8773715375078513326">"Енін арттыру"</string>
     <string name="action_increase_height" msgid="459390020612501122">"Биіктігін арттыру"</string>
diff --git a/src/com/android/launcher3/AbstractFloatingView.java b/src/com/android/launcher3/AbstractFloatingView.java
index e75348c..ceb38d0 100644
--- a/src/com/android/launcher3/AbstractFloatingView.java
+++ b/src/com/android/launcher3/AbstractFloatingView.java
@@ -103,7 +103,7 @@
     public static final int TYPE_REBIND_SAFE = TYPE_WIDGETS_FULL_SHEET
             | TYPE_WIDGETS_BOTTOM_SHEET | TYPE_ON_BOARD_POPUP | TYPE_DISCOVERY_BOUNCE
             | TYPE_ALL_APPS_EDU | TYPE_ICON_SURFACE | TYPE_WIDGETS_EDUCATION_DIALOG
-            | TYPE_TASKBAR_EDUCATION_DIALOG;
+            | TYPE_TASKBAR_EDUCATION_DIALOG | TYPE_TASKBAR_ALL_APPS;
 
     // Usually we show the back button when a floating view is open. Instead, hide for these types.
     public static final int TYPE_HIDE_BACK_BUTTON = TYPE_ON_BOARD_POPUP | TYPE_DISCOVERY_BOUNCE
diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java
index 3bc0f6d..74ec7ee 100644
--- a/src/com/android/launcher3/BubbleTextView.java
+++ b/src/com/android/launcher3/BubbleTextView.java
@@ -55,7 +55,6 @@
 import com.android.launcher3.dot.DotInfo;
 import com.android.launcher3.dragndrop.DraggableView;
 import com.android.launcher3.folder.FolderIcon;
-import com.android.launcher3.graphics.IconPalette;
 import com.android.launcher3.graphics.IconShape;
 import com.android.launcher3.graphics.PreloadIconDrawable;
 import com.android.launcher3.icons.DotRenderer;
@@ -378,8 +377,7 @@
             flags |= FLAG_NO_BADGE;
         }
         FastBitmapDrawable iconDrawable = info.newIcon(getContext(), flags);
-        mDotParams.color = IconPalette.getMutedColor(iconDrawable.getIconColor(), 0.54f);
-
+        mDotParams.color = iconDrawable.getIconColor();
         setIcon(iconDrawable);
         applyLabel(info);
     }
diff --git a/src/com/android/launcher3/graphics/IconPalette.java b/src/com/android/launcher3/graphics/IconPalette.java
index 3d4a100..778b32a 100644
--- a/src/com/android/launcher3/graphics/IconPalette.java
+++ b/src/com/android/launcher3/graphics/IconPalette.java
@@ -16,18 +16,16 @@
 
 package com.android.launcher3.graphics;
 
-import static com.android.launcher3.icons.GraphicsUtils.setColorAlphaBound;
-
 import android.app.Notification;
 import android.content.Context;
 import android.graphics.Color;
 import android.util.Log;
 
+import androidx.core.graphics.ColorUtils;
+
 import com.android.launcher3.R;
 import com.android.launcher3.util.Themes;
 
-import androidx.core.graphics.ColorUtils;
-
 /**
  * Contains colors based on the dominant color of an icon.
  */
@@ -147,9 +145,4 @@
         }
         return ColorUtils.LABToColor(low, a, b);
     }
-
-    public static int getMutedColor(int color, float whiteScrimAlpha) {
-        int whiteScrim = setColorAlphaBound(Color.WHITE, (int) (255 * whiteScrimAlpha));
-        return ColorUtils.compositeColors(whiteScrim, color);
-    }
 }
diff --git a/src/com/android/launcher3/settings/NotificationDotsPreference.java b/src/com/android/launcher3/settings/NotificationDotsPreference.java
index 0ee2744..f2a052d 100644
--- a/src/com/android/launcher3/settings/NotificationDotsPreference.java
+++ b/src/com/android/launcher3/settings/NotificationDotsPreference.java
@@ -89,7 +89,8 @@
         // Update intent
         Bundle extras = new Bundle();
         extras.putString(EXTRA_FRAGMENT_ARG_KEY, "notification_badging");
-        setIntent(new Intent("android.settings.NOTIFICATION_SETTINGS")
+
+        setIntent(new Intent("android.settings.SETTINGS_EMBED_DEEP_LINK_ACTIVITY")
                 .putExtra(EXTRA_SHOW_FRAGMENT_ARGS, extras));
     }
 
diff --git a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
index 4fcba18..88a4d66 100644
--- a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
+++ b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
@@ -399,7 +399,8 @@
         // In fake land/seascape, the placeholder always needs to go to the "top" of the device,
         // which is the same bounds as 0 rotation.
         int width = dp.widthPx;
-        out.set(0, 0, width, placeholderHeight);
+        int insetThickness = dp.getInsets().top;
+        out.set(0, 0, width, placeholderHeight + insetThickness);
         out.inset(placeholderInset, 0);
 
         // Adjust the top to account for content off screen. This will help to animate the view in
@@ -412,6 +413,19 @@
     }
 
     @Override
+    public void updateStagedSplitIconParams(FrameLayout.LayoutParams out, float onScreenRectCenterX,
+            float onScreenRectCenterY, float fullscreenScaleX, float fullscreenScaleY,
+            int drawableWidth, int drawableHeight, DeviceProfile dp,
+            @StagePosition int stagePosition) {
+        float inset = dp.getInsets().top;
+        out.leftMargin = Math.round(onScreenRectCenterX / fullscreenScaleX
+                - 1.0f * drawableWidth / 2);
+        out.topMargin = Math.round((onScreenRectCenterY + (inset / 2f)) / fullscreenScaleY
+                - 1.0f * drawableHeight / 2);
+
+    }
+
+    @Override
     public void getFinalSplitPlaceholderBounds(int splitDividerSize, DeviceProfile dp,
             @StagePosition int stagePosition, Rect out1, Rect out2) {
         // In fake land/seascape, the window bounds are always top and bottom half
diff --git a/src/com/android/launcher3/touch/PagedOrientationHandler.java b/src/com/android/launcher3/touch/PagedOrientationHandler.java
index 850eaaf..510a728 100644
--- a/src/com/android/launcher3/touch/PagedOrientationHandler.java
+++ b/src/com/android/launcher3/touch/PagedOrientationHandler.java
@@ -116,6 +116,25 @@
             DeviceProfile dp, @StagePosition int stagePosition, Rect out);
 
     /**
+     * Centers an icon in the split staging area, accounting for insets.
+     * @param out The LayoutParams of the icon that needs to be centered.
+     * @param onScreenRectCenterX The x-center of the on-screen staging area (most of the Rect is
+     *                        offscreen).
+     * @param onScreenRectCenterY The y-center of the on-screen staging area (most of the Rect is
+     *                        offscreen).
+     * @param fullscreenScaleX A x-scaling factor used to convert coordinates back into pixels.
+     * @param fullscreenScaleY A y-scaling factor used to convert coordinates back into pixels.
+     * @param drawableWidth The icon's drawable (final) width.
+     * @param drawableHeight The icon's drawable (final) height.
+     * @param dp The device profile, used to report rotation and hardware insets.
+     * @param stagePosition 0 if the staging area is pinned to top/left, 1 for bottom/right.
+     */
+    void updateStagedSplitIconParams(FrameLayout.LayoutParams out, float onScreenRectCenterX,
+            float onScreenRectCenterY, float fullscreenScaleX, float fullscreenScaleY,
+            int drawableWidth, int drawableHeight, DeviceProfile dp,
+            @StagePosition int stagePosition);
+
+    /**
      * @param splitDividerSize height of split screen drag handle in portrait, width in landscape
      * @param stagePosition the split position option (top/left, bottom/right) of the first
      *                           task selected for entering split
diff --git a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
index d132901..d88656c 100644
--- a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
+++ b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
@@ -440,7 +440,14 @@
             DeviceProfile dp, @StagePosition int stagePosition, Rect out) {
         int screenWidth = dp.widthPx;
         int screenHeight = dp.heightPx;
-        out.set(0, 0, screenWidth, placeholderHeight);
+        boolean pinToRight = stagePosition == STAGE_POSITION_BOTTOM_OR_RIGHT;
+        int insetThickness;
+        if (!dp.isLandscape) {
+            insetThickness = dp.getInsets().top;
+        } else {
+            insetThickness = pinToRight ? dp.getInsets().right : dp.getInsets().left;
+        }
+        out.set(0, 0, screenWidth, placeholderHeight + insetThickness);
         if (!dp.isLandscape) {
             // portrait, phone or tablet - spans width of screen, nothing else to do
             out.inset(placeholderInset, 0);
@@ -454,7 +461,6 @@
         }
 
         // Now we rotate the portrait rect depending on what side we want pinned
-        boolean pinToRight = stagePosition == STAGE_POSITION_BOTTOM_OR_RIGHT;
 
         float postRotateScale = (float) screenHeight / screenWidth;
         mTmpMatrix.reset();
@@ -481,6 +487,33 @@
     }
 
     @Override
+    public void updateStagedSplitIconParams(FrameLayout.LayoutParams out, float onScreenRectCenterX,
+            float onScreenRectCenterY, float fullscreenScaleX, float fullscreenScaleY,
+            int drawableWidth, int drawableHeight, DeviceProfile dp,
+            @StagePosition int stagePosition) {
+        boolean pinToRight = stagePosition == STAGE_POSITION_BOTTOM_OR_RIGHT;
+        if (!dp.isLandscape) {
+            float inset = dp.getInsets().top;
+            out.leftMargin = Math.round(onScreenRectCenterX / fullscreenScaleX
+                    - 1.0f * drawableWidth / 2);
+            out.topMargin = Math.round((onScreenRectCenterY + (inset / 2f)) / fullscreenScaleY
+                    - 1.0f * drawableHeight / 2);
+        } else {
+            if (pinToRight) {
+                float inset = dp.getInsets().right;
+                out.leftMargin = Math.round((onScreenRectCenterX - (inset / 2f)) / fullscreenScaleX
+                        - 1.0f * drawableWidth / 2);
+            } else {
+                float inset = dp.getInsets().left;
+                out.leftMargin = Math.round((onScreenRectCenterX + (inset / 2f)) / fullscreenScaleX
+                        - 1.0f * drawableWidth / 2);
+            }
+            out.topMargin = Math.round(onScreenRectCenterY / fullscreenScaleY
+                    - 1.0f * drawableHeight / 2);
+        }
+    }
+
+    @Override
     public void getFinalSplitPlaceholderBounds(int splitDividerSize, DeviceProfile dp,
             @StagePosition int stagePosition, Rect out1, Rect out2) {
         int screenHeight = dp.heightPx;