Reland "Handle uiMode changes in QuickstepLauncher"

- Added uiMode in handled configChanges for QuickstepLauncher, NexusLauncherActivity
- RecentsActivity will be handled separately in b/382072029
- This avoids Launcher from being recreated when swithching from an app in driving mode (e.g. Maps), which causes massive jank
- Launcher layout is unaffected when driving mode changes, so a recreation is unnecessary
- When Light/dark mode changes, BaseActivity.updateTheme will still causes activity to be recreated. Launcher will mark a boolean in saved staete so next recreate will restore previous state even if state has FLAG_DISABLE_RESTORE (e.g. Overview), similar to the existing check that force restore when UI_MODE changes

Relanded changes: /q/submissionid:27627108-b/339747262

Fix: 339747262
Test: Swtich from driving mode app to another or home in 1p and 3p laucnher
Test: Switch light/dark mode and Launcher is updated correctly and stay in previous state
Flag: EXEMPT bugfix
Change-Id: I5a62b1bcd19eed9d232f30db94aa0e032f4541bd
diff --git a/src/com/android/launcher3/BaseDraggingActivity.java b/src/com/android/launcher3/BaseDraggingActivity.java
index 50e78ac..3b93cf4 100644
--- a/src/com/android/launcher3/BaseDraggingActivity.java
+++ b/src/com/android/launcher3/BaseDraggingActivity.java
@@ -80,12 +80,16 @@
         updateTheme();
     }
 
-    protected void updateTheme() {
+    private void updateTheme() {
         if (mThemeRes != Themes.getActivityThemeRes(this)) {
-            recreate();
+            recreateToUpdateTheme();
         }
     }
 
+    protected void recreateToUpdateTheme() {
+        recreate();
+    }
+
     @Override
     public void onActionModeStarted(ActionMode mode) {
         super.onActionModeStarted(mode);