Merge "Forwarding touch events from TouchInteractionService to Launcher when launcher window is visible" into ub-launcher3-master
diff --git a/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java b/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java
index 20abdc7..a48a65c 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java
@@ -45,7 +45,9 @@
}
public static void onWorkspaceLongPress(Launcher launcher) {
- PopupMenu menu = new PopupMenu(launcher, launcher.getWorkspace().getPageIndicator());
+ PopupMenu menu = new PopupMenu(launcher.getApplicationContext(),
+ launcher.getWorkspace().getPageIndicator());
+
menu.getMenu().add(R.string.wallpaper_button_text).setOnMenuItemClickListener((i) -> {
launcher.onClickWallpaperPicker(null);
return true;
diff --git a/quickstep/src/com/android/quickstep/NavBarSwipeInteractionHandler.java b/quickstep/src/com/android/quickstep/NavBarSwipeInteractionHandler.java
index af82fe9..4c3a9ad 100644
--- a/quickstep/src/com/android/quickstep/NavBarSwipeInteractionHandler.java
+++ b/quickstep/src/com/android/quickstep/NavBarSwipeInteractionHandler.java
@@ -62,7 +62,8 @@
private static final long RECENTS_VIEW_VISIBILITY_DELAY = 120;
private static final long RECENTS_VIEW_VISIBILITY_DURATION = 150;
- private static final long DEFAULT_SWIPE_DURATION = 200;
+ private static final long MAX_SWIPE_DURATION = 200;
+ private static final long MIN_SWIPE_DURATION = 80;
// Ideal velocity for a smooth transition
private static final float PIXEL_PER_MS = 2f;
@@ -128,8 +129,8 @@
new Handler().postDelayed(() -> mStateCallback.setState(STATE_RECENTS_DELAY_COMPLETE),
RECENTS_VIEW_VISIBILITY_DELAY);
- long duration = Math.min(DEFAULT_SWIPE_DURATION,
- Math.max((long) (-mCurrentDisplacement / PIXEL_PER_MS), 0));
+ long duration = Math.min(MAX_SWIPE_DURATION,
+ Math.max((long) (-mCurrentDisplacement / PIXEL_PER_MS), MIN_SWIPE_DURATION));
if (mCurrentShift.getCurrentAnimation() != null) {
ObjectAnimator anim = mCurrentShift.getCurrentAnimation();
long theirDuration = anim.getDuration() - anim.getCurrentPlayTime();
@@ -264,7 +265,7 @@
float flingThreshold = res.getDimension(R.dimen.quickstep_fling_threshold_velocity);
boolean isFling = Math.abs(endVelocity) > flingThreshold;
- long duration = DEFAULT_SWIPE_DURATION;
+ long duration = MAX_SWIPE_DURATION;
final float endShift;
if (!isFling) {
endShift = mCurrentShift.value >= MIN_PROGRESS_FOR_OVERVIEW ? 1 : 0;
diff --git a/quickstep/src/com/android/quickstep/RecentsView.java b/quickstep/src/com/android/quickstep/RecentsView.java
index ba88f99..34ed7f1 100644
--- a/quickstep/src/com/android/quickstep/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/RecentsView.java
@@ -48,6 +48,11 @@
/** A circular curve of x from 0 to 1, where 0 is the center of the screen and 1 is the edge. */
private static final TimeInterpolator CURVE_INTERPOLATOR
= x -> (float) (1 - Math.sqrt(1 - Math.pow(x, 2)));
+ /**
+ * The alpha of a black scrim on a page in the carousel as it leaves the screen.
+ * In the resting position of the carousel, the adjacent pages have about half this scrim.
+ */
+ private static final float MAX_PAGE_SCRIM_ALPHA = 0.8f;
private boolean mOverviewStateEnabled;
private boolean mTaskStackListenerRegistered;
@@ -181,8 +186,8 @@
}
@Override
- public void scrollTo(int x, int y) {
- super.scrollTo(x, y);
+ public void computeScroll() {
+ super.computeScroll();
updateCurveProperties();
}
@@ -212,6 +217,10 @@
// Make sure the biggest card (i.e. the one in front) shows on top of the adjacent ones.
page.setTranslationZ(scale);
page.setTranslationX((screenCenter - pageCenter) * curveInterpolation * CURVE_FACTOR);
+ if (page instanceof TaskView) {
+ TaskThumbnailView thumbnail = ((TaskView) page).getThumbnail();
+ thumbnail.setDimAlpha(1 - curveInterpolation * MAX_PAGE_SCRIM_ALPHA);
+ }
}
}
}
diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java
index 1d7a9f1..7b220d8 100644
--- a/quickstep/src/com/android/quickstep/TouchInteractionService.java
+++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java
@@ -103,6 +103,7 @@
private int mActivePointerId = INVALID_POINTER_ID;
private VelocityTracker mVelocityTracker;
private int mTouchSlop;
+ private float mStartDisplacement;
private NavBarSwipeInteractionHandler mInteractionHandler;
private ISystemUiProxy mISystemUiProxy;
@@ -207,11 +208,12 @@
float displacement = ev.getY(pointerIndex) - mDownPos.y;
if (mInteractionHandler == null) {
if (Math.abs(displacement) >= mTouchSlop) {
+ mStartDisplacement = Math.signum(displacement) * mTouchSlop;
startTouchTracking();
}
} else {
// Move
- mInteractionHandler.updateDisplacement(displacement);
+ mInteractionHandler.updateDisplacement(displacement - mStartDisplacement);
}
break;
}
diff --git a/res/drawable/ic_corp.xml b/res/drawable/ic_corp.xml
new file mode 100644
index 0000000..48f5007
--- /dev/null
+++ b/res/drawable/ic_corp.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:pathData="M20,6h-4V4c0,-1.11 -0.89,-2 -2,-2h-4C8.89,2 8,2.89 8,4v2H4C2.89,6 2.01,6.89 2.01,8L2,19c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2V8C22,6.89 21.11,6 20,6zM12,15c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2s2,0.9 2,2S13.1,15 12,15zM14,6h-4V4h4V6z"
+ android:fillColor="?android:attr/textColorHint"/>
+</vector>
\ No newline at end of file
diff --git a/res/layout/work_tab_footer.xml b/res/layout/work_tab_footer.xml
new file mode 100644
index 0000000..48578d7
--- /dev/null
+++ b/res/layout/work_tab_footer.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingBottom="@dimen/all_apps_work_profile_tab_footer_bottom_padding"
+ android:paddingLeft="@dimen/dynamic_grid_cell_padding_x"
+ android:paddingRight="@dimen/dynamic_grid_cell_padding_x"
+ android:paddingTop="@dimen/all_apps_work_profile_tab_footer_top_padding">
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <Switch
+ android:id="@+id/work_mode_toggle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:theme="@style/WorkModeSwitchTheme"/>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignBaseline="@id/work_mode_toggle"
+ android:layout_alignParentLeft="true"
+ android:ellipsize="end"
+ android:fontFamily="roboto-regular"
+ android:lines="1"
+ android:text="@string/work_profile_toggle_label"
+ android:textColor="?android:attr/textColorTertiary"
+ android:textSize="16sp"/>
+
+ </RelativeLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:paddingTop="8dp">
+
+ <ImageView
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:src="@drawable/ic_corp"/>
+
+ <TextView
+ android:id="@+id/managed_by_label"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:ellipsize="end"
+ android:lines="1"
+ android:paddingLeft="12dp"
+ android:textColor="?android:attr/textColorHint"
+ android:textSize="13sp"/>
+ </LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 5a776a6..f5cd04b 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> kortpaaie en <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> kennisgewings vir <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Maak toe"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Kennisgewing is toegemaak"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Persoonlik"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Werk"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Werkprofiel"</string>
</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 5225dba..462c91d 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> አቋራጮች እና <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> ማሳወቂያዎች ለ<xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"አሰናብት"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"ማሳወቂያ ተሰናብቷል"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"የግል"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"ሥራ"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"የሥራ መገለጫ"</string>
</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index dddb6fa..5628cde 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> üçün <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> qısayol və <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> bildiriş"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Rədd edin"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Bildiriş rədd edildi"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Şəxsi"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"İş"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"İş profili"</string>
</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 4fa86d2..1778ce7 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"Prečice (<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g>) i obaveštenja (<xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g>) za <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Odbaci"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Obaveštenje je odbačeno"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Lične"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Poslovne"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Profil za Work"</string>
</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index b062b88..63b39ab 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -54,7 +54,7 @@
<string name="permdesc_read_settings" msgid="5833423719057558387">"Dopušta aplikaciji čitanje postavki i prečica na početnom ekranu."</string>
<string name="permlab_write_settings" msgid="3574213698004620587">"zapisuj postavke na početnom ekranu i prečice"</string>
<string name="permdesc_write_settings" msgid="5440712911516509985">"Dopušta aplikaciji promjenu postavki i prečica na početnom ekranu."</string>
- <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> nema dozvolu da uspostavlja telefonske pozive"</string>
+ <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> nema odobrenje da uspostavlja telefonske pozive"</string>
<string name="gadget_error_text" msgid="6081085226050792095">"Problem pri učitavanju dodatka"</string>
<string name="gadget_setup_text" msgid="8274003207686040488">"Postavljanje"</string>
<string name="uninstall_system_app_text" msgid="4172046090762920660">"Ovo je sistemska aplikacija i ne može se deinstalirati."</string>
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"Za aplikaciju <xliff:g id="APP_NAME">%3$s</xliff:g> broj prečica je <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g>, a broj obavještenja je <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Odbaci"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Obavještenje je odbačeno"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Lične"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Poslovne"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Radni profil"</string>
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 7cd71c2..8156751 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"Zkratky (<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g>) a oznámení (<xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g>) aplikace <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Zavřít"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Oznámení bylo zavřeno"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Osobní"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Pracovní"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Pracovní profil"</string>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index cdb255d..e41449d 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> συντομεύσεις και <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> ειδοποιήσεις για την εφαρμογή <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Παράβλεψη"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Η ειδοποίηση παραβλέφθηκε"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Προσωπικές"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Εργασίας"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Προφίλ εργασίας"</string>
</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index afd6757..4430e84 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> shortcuts and <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> notifications for <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Dismiss"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Notification dismissed"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Personal"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Work"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Work profile"</string>
</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index afd6757..4430e84 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> shortcuts and <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> notifications for <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Dismiss"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Notification dismissed"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Personal"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Work"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Work profile"</string>
</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index afd6757..4430e84 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> shortcuts and <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> notifications for <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Dismiss"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Notification dismissed"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Personal"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Work"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Work profile"</string>
</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 05f1e06..62e2c31e 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> accesos directos y <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> notificaciones de <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Descartar"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Se descartó la notificación"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Personales"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Laborales"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Perfil de trabajo"</string>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index e7e1cf8..812acff 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> accesos directos y <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> notificaciones de <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Ignorar"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Notificación ignorada"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Personal"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Trabajo"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Perfil de trabajo"</string>
</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 68478de..28ea856 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> aplikazioaren <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> lasterbide eta <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> jakinarazpen"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Baztertu"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Baztertu egin da jakinarazpena"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Pertsonalak"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Lanekoak"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Laneko profila"</string>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 8051b85..b6f6b1e 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -28,9 +28,9 @@
<string name="safemode_widget_error" msgid="4863470563535682004">"ابزارکها در حالت ایمن غیرفعال هستند"</string>
<string name="shortcut_not_available" msgid="2536503539825726397">"میانبر دردسترس نیست"</string>
<string name="home_screen" msgid="806512411299847073">"صفحه اصلی"</string>
- <string name="custom_actions" msgid="3747508247759093328">"عملکردهای سفارشی"</string>
+ <string name="custom_actions" msgid="3747508247759093328">"کنشهای سفارشی"</string>
<string name="long_press_widget_to_add" msgid="7699152356777458215">"برای انتخاب ابزارک لمس کنید و نگه دارید."</string>
- <string name="long_accessible_way_to_add" msgid="4289502106628154155">"برای انتخاب یک ابزارک، دو ضربه سریع بزنید و نگهدارید یا از اقدامات سفارشی استفاده کنید."</string>
+ <string name="long_accessible_way_to_add" msgid="4289502106628154155">"برای انتخاب یک ابزارک، دو ضربه سریع بزنید و نگهدارید یا از کنشهای سفارشی استفاده کنید."</string>
<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="add_item_request_drag_hint" msgid="5899764264480397019">"برای قرار دادن بهصورت دستی لمس کنید و بکشید"</string>
@@ -129,4 +129,8 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> میانبر و <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> اعلان برای <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"رد کردن"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"اعلان رد شد"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"شخصی"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"محل کار"</string>
+ <!-- no translation found for work_profile_toggle_label (3081029915775481146) -->
+ <skip />
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 5e05bbe..7c8955b 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -33,7 +33,7 @@
<string name="long_accessible_way_to_add" msgid="4289502106628154155">"Valitse widget tai käytä muokattuja toimintoja kaksoisnapauttamalla ja painamalla kohdetta pitkään."</string>
<string name="widget_dims_format" msgid="2370757736025621599">"%1$d × %2$d"</string>
<string name="widget_accessible_dims_format" msgid="3640149169885301790">"Leveys: %1$d, korkeus: %2$d"</string>
- <string name="add_item_request_drag_hint" msgid="5899764264480397019">"Sijoita manuaalisesti koskettamalla pitkään."</string>
+ <string name="add_item_request_drag_hint" msgid="5899764264480397019">"Sijoita manuaalisesti koskettamalla pitkään"</string>
<string name="place_automatically" msgid="8064208734425456485">"Lisää automaattisesti"</string>
<string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Hae sovelluksia"</string>
<string name="all_apps_loading_message" msgid="5813968043155271636">"Ladataan sovelluksia…"</string>
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g>: <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> pikakuvaketta ja <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> ilmoitusta"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Hylkää"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Ilmoitus hylätty"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Henkilökohtaiset"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Työsovellukset"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Työprofiili"</string>
</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index da403a0..6162902 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> raccourcis et <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> notifications pour <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Ignorer"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Notification ignorée"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Personnel"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Travail"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Profil professionnel"</string>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index bc98cd2..a118d2b 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> raccourcis et <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> notifications pour <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Ignorer"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Notification ignorée"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Personnelles"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Professionnelles"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Profil professionnel"</string>
</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 54f9604..c8fa5cc 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> atallos e <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> notificacións para a aplicación <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Ignorar"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Ignorouse a notificación"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Persoal"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Traballo"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Perfil de traballo"</string>
</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 9734781..40a566e 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -129,4 +129,6 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> માટે <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> શૉર્ટકટ અને <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> સૂચનાઓ"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"છોડી દો"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"સૂચના છોડી દીધી"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"મનગમતી ઍપ"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"કાર્યાલયની ઍપ"</string>
</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 2387404..dfa1547 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -72,7 +72,7 @@
<string name="widget_button_text" msgid="2880537293434387943">"शॉर्टकट"</string>
<string name="wallpaper_button_text" msgid="8404103075899945851">"वॉलपेपर"</string>
<string name="settings_button_text" msgid="8873672322605444408">"होम पेज की सेटिंग"</string>
- <string name="msg_disabled_by_admin" msgid="6898038085516271325">"आपके व्यवस्थापक द्वारा अक्षम"</string>
+ <string name="msg_disabled_by_admin" msgid="6898038085516271325">"आपके एडमिन ने बंद किया हुआ है"</string>
<string name="accessibility_action_overview" msgid="6257665857640347026">"खास जानकारी"</string>
<string name="allow_rotation_title" msgid="7728578836261442095">"होमस्क्रीन घुमाने की अनुमति दें"</string>
<string name="allow_rotation_desc" msgid="8662546029078692509">"फ़ोन घुुमाए जाने पर"</string>
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> के लिए <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> शॉर्टकट और <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> सूचनाएं हैं"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"खारिज करें"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"सूचना को खारिज किया गया"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"निजी ऐप"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"काम से जुड़े ऐप"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"कार्य प्रोफ़ाइल"</string>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index a22a4ce..41f1949 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> scorciatoie e <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> notifiche relative a <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Ignora"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Notifica ignorata"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Personali"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Lavoro"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Profilo di lavoro"</string>
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index d7905b4..f2656f9 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> קיצורי דרך ו-<xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> הודעות של <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"סגור"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"ההודעה נסגרה"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"אישיות"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"עבודה"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"פרופיל עבודה"</string>
</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 115b752..2afed0a 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> қолданбасының <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> таңбашасы мен <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> хабарландыруы"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Бас тарту"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Хабарландырудан бас тартылды"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Жеке"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Жұмыс"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Жұмыс профилі"</string>
</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 4156a21..e19b42e 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -129,4 +129,6 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> ಗಾಗಿ <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> ಶಾರ್ಟ್ಕಟ್ಗಳು ಮತ್ತು <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> ಅಧಿಸೂಚನೆಗಳು"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"ವಜಾಗೊಳಿಸಿ"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"ಅಧಿಸೂಚನೆಯನ್ನು ವಜಾಗೊಳಿಸಲಾಗಿದೆ"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"ವೈಯಕ್ತಿಕ"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"ಕೆಲಸ"</string>
</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 0808214..2cf9be2 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> колдонмосу үчүн <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> кыска жол жана <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> эскертме бар"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Этибарга албоо"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Эскертме көз жаздымда калтырылды"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Жеке колдонмолор"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Жумуш колдонмолору"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Жумуш профили"</string>
</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 299fc45..102176c 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -129,4 +129,6 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> ആപ്പിനായുള്ള <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> കുറുക്കുവഴികളും <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> അറിയിപ്പുകളും"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"നിരസിക്കുക"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"അറിയിപ്പ് നിരസിച്ചു"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"വ്യക്തിപരം"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"ജോലി"</string>
</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index ca9a402..7b98bce 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -98,7 +98,7 @@
<string name="abandoned_promises_title" msgid="7096178467971716750">"हा अॅप इंस्टॉल केलेला नाही"</string>
<string name="abandoned_promise_explanation" msgid="3990027586878167529">"या चिन्हासाठी अॅप इंस्टॉल केलेला नाही. आपण ते काढू शकता किंवा अॅपचा शोध घेऊ शकता आणि त्यास व्यक्तिचलितपणे इंस्टॉल करू शकता."</string>
<string name="app_downloading_title" msgid="8336702962104482644">"<xliff:g id="NAME">%1$s</xliff:g> डाउनलोड होत आहे , <xliff:g id="PROGRESS">%2$s</xliff:g> पूर्ण झाले"</string>
- <string name="app_waiting_download_title" msgid="7053938513995617849">"<xliff:g id="NAME">%1$s</xliff:g> इंस्टॉल करण्याची प्रतिक्षा करीत आहे"</string>
+ <string name="app_waiting_download_title" msgid="7053938513995617849">"<xliff:g id="NAME">%1$s</xliff:g> इंस्टॉल करण्याची प्रतिक्षा करत आहे"</string>
<string name="widgets_bottom_sheet_title" msgid="2904559530954183366">"<xliff:g id="NAME">%1$s</xliff:g> विजेट"</string>
<string name="action_add_to_workspace" msgid="8902165848117513641">"होम स्क्रीनवर जोडा"</string>
<string name="action_move_here" msgid="2170188780612570250">"आयटम येथे हलवा"</string>
@@ -129,4 +129,6 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g>साठी <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> शॉर्टकट आणि <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> सूचना"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"डिसमिस करा"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"सूचना डिसमिस केली"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"वैयक्तिक"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"कार्यालय"</string>
</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 0b2e0d5..621fe60 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> အတွက် ဖြတ်လမ်းလင့်ခ် <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> နှင့် အကြောင်းကြားချက် <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> ခု"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"ပယ်ရန်"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"အသိပေးချက်ကို ဖယ်ထုတ်ပြီးပါပြီ"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"ကိုယ်ပိုင်"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"အလုပ်"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"အလုပ်ပရိုဖိုင်"</string>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 0a6276b..7c76c14 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> snarveier og <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> varsler for <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Avvis"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Varselet ble avvist"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Personlig"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Jobb"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Jobbprofil"</string>
</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 41e43a7..930fb00 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -129,4 +129,6 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> का <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> सर्टकट र <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> सूचनाहरू"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"खारेज गर्नुहोस्"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"सूचना खारेज गरियो"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"व्यक्तिगत"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"कार्यसम्बन्धी"</string>
</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 525f2f6..4156009 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -129,4 +129,6 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> ਲਈ <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> ਸ਼ਾਰਟਕੱਟ ਅਤੇ <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> ਸੂਚਨਾਵਾਂ"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"ਖਾਰਜ ਕਰੋ"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"ਸੂਚਨਾ ਖਾਰਜ ਕੀਤੀ ਗਈ"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"ਨਿੱਜੀ"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"ਕਾਰਜ-ਸਥਾਨ"</string>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 2a01d04..2f548f8 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"Skróty (<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g>) i powiadomienia (<xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g>) aplikacji <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Odrzuć"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Powiadomienie odrzucone"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Osobiste"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Praca"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Profil do pracy"</string>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index ee4bf08..294425d 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -72,7 +72,7 @@
<string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
<string name="wallpaper_button_text" msgid="8404103075899945851">"Imagens de fundo"</string>
<string name="settings_button_text" msgid="8873672322605444408">"Definições da página inicial"</string>
- <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Desativada pelo administrador"</string>
+ <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Desativada pelo gestor"</string>
<string name="accessibility_action_overview" msgid="6257665857640347026">"Vista geral"</string>
<string name="allow_rotation_title" msgid="7728578836261442095">"Permitir rotação do ecrã principal"</string>
<string name="allow_rotation_desc" msgid="8662546029078692509">"Quando o telemóvel é rodado"</string>
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> atalhos e <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> notificações para a aplicação <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Ignorar"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Notificação ignorada"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Pessoal"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Trabalho"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Perfil de trabalho"</string>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index b550f6f..07970f7 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> atalhos e <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> notificações para o app <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Dispensar"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Notificação dispensada"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Pessoais"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Comerciais"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Perfil de trabalho"</string>
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 9cf1cc6..00cea3c 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> comenzi rapide și <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> notificări pentru <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Închideți"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Notificare închisă"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Personale"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Profesionale"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Profil de serviciu"</string>
</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 349b7ca..16ee89f 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> සඳහා කෙටි මං <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g>ක් සහ දැනුම්දීම් <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g>ක්"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"ඉවතලන්න"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"දැනුම්දීම ඉවතලන ලදී"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"පුද්ගලික"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"කාර්යාලය"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"කාර්යාල පැතිකඩ"</string>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index f40366f..d4a2f9f 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"Пречице (<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g>) и обавештења (<xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g>) за <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Одбаци"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Обавештење је одбачено"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Личне"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Пословне"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Профил за Work"</string>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index ff6b4e8..ee5f798 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> har <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> genvägar och <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> aviseringar"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Ignorera"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Aviseringen togs bort"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Privat"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Arbete"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Jobbprofil"</string>
</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 402f3a6..438ac21 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -66,8 +66,8 @@
<skip />
<string name="workspace_new_page" msgid="257366611030256142">"Ukurasa mpya wa skrini ya kwanza"</string>
<string name="folder_opened" msgid="94695026776264709">"Folda imefunguliwa, <xliff:g id="WIDTH">%1$d</xliff:g> kwa <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
- <string name="folder_tap_to_close" msgid="4625795376335528256">"Gonga ili ufunge folda"</string>
- <string name="folder_tap_to_rename" msgid="4017685068016979677">"Gonga ili ubadilishe jina"</string>
+ <string name="folder_tap_to_close" msgid="4625795376335528256">"Gusa ili ufunge folda"</string>
+ <string name="folder_tap_to_rename" msgid="4017685068016979677">"Gusa ili ubadilishe jina"</string>
<string name="folder_closed" msgid="4100806530910930934">"Folda imefungwa"</string>
<string name="folder_renamed" msgid="1794088362165669656">"Folda imebadilishwa jina kuwa <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="folder_name_format" msgid="6629239338071103179">"Folda: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -131,4 +131,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"Njia <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> za mkato na arifa <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> za <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Ondoa"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Arifa imeondolewa"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Binafsi"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Kazini"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Wasifu wa kazini"</string>
</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 5d72030..f8101bb 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -129,4 +129,6 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> பயன்பாட்டிற்கான <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> குறுக்குவழிகளும் <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> அறிவிப்புகளும் உள்ளன"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"நிராகரி"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"அறிவிப்பு நிராகரிக்கப்பட்டது"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"தனிப்பட்டவை"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"பணி"</string>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 08f1575..046650c 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"Ярлики (<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g>) і сповіщення (<xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g>) додатка <xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Закрити"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Сповіщення закрито"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Особисті додатки"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Робочі додатки"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Робочий профіль"</string>
</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 99b8c80..860b132 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -129,4 +129,6 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> کے <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> شارٹ کٹس اور <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> اطلاعات"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"برخاست کریں"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"اطلاع مسترد ہو گئی"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"ذاتی"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"دفتری"</string>
</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 5167670..e288b56 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="APP_NAME">%3$s</xliff:g> ilovasi uchun <xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> ta yorliq va <xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> ta bildirishnoma"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Yopish"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Bildirishnoma yopildi"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Shaxsiy"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Ishchi"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Ishchi profil"</string>
</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 35fa1c7..908b0c1 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -129,4 +129,7 @@
<string name="shortcuts_menu_with_notifications_description" msgid="8985659504915468840">"<xliff:g id="NUMBER_OF_SHORTCUTS">%1$d</xliff:g> izinqamuleli nezaziso ezingu-<xliff:g id="NUMBER_OF_NOTIFICATIONS">%2$d</xliff:g> ze-<xliff:g id="APP_NAME">%3$s</xliff:g>"</string>
<string name="action_dismiss_notification" msgid="5909461085055959187">"Cashisa"</string>
<string name="notification_dismissed" msgid="6002233469409822874">"Isaziso sicashisiwe"</string>
+ <string name="all_apps_personal_tab" msgid="4190252696685155002">"Okomuntu siqu"</string>
+ <string name="all_apps_work_tab" msgid="4884822796154055118">"Umsebenzi"</string>
+ <string name="work_profile_toggle_label" msgid="3081029915775481146">"Iphrofayela yomsebenzi"</string>
</resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index b44a31e..42fee80 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -40,4 +40,6 @@
<color name="all_apps_bg_hand_fill">#E5E5E5</color>
<color name="all_apps_bg_hand_fill_dark">#9AA0A6</color>
+
+ <color name="work_profile_color">#FF6D00</color>
</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 266e0b0..e7f45c2 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -94,6 +94,8 @@
<dimen name="all_apps_tabs_indicator_height">2dp</dimen>
<dimen name="all_apps_header_top_padding">36dp</dimen>
<dimen name="all_apps_prediction_row_divider_height">17dp</dimen>
+ <dimen name="all_apps_work_profile_tab_footer_top_padding">16dp</dimen>
+ <dimen name="all_apps_work_profile_tab_footer_bottom_padding">20dp</dimen>
<!-- Search bar in All Apps -->
<dimen name="all_apps_header_max_elevation">3dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index fdd4d8d..cbba9a2 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -324,4 +324,7 @@
<!-- Label of tab to indicate work apps -->
<string name="all_apps_work_tab">Work</string>
+ <!-- Label of the work mode toggle -->
+ <string name="work_profile_toggle_label">Work profile</string>
+
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 8cc4743..c714841 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -168,4 +168,8 @@
<item name="android:colorControlHighlight">#DFE1E5</item>
<item name="android:colorForeground">@color/all_apps_bg_hand_fill_dark</item>
</style>
+
+ <style name="WorkModeSwitchTheme" parent="@style/LauncherTheme">
+ <item name="android:colorAccent">@color/work_profile_color</item>
+ </style>
</resources>
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index b7986da..44b64d9 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -1969,7 +1969,8 @@
final ShortcutInfo shortcut = (ShortcutInfo) tag;
if (shortcut.isDisabled()) {
- if ((shortcut.runtimeStatusFlags &
+ final int disabledFlags = shortcut.runtimeStatusFlags & ShortcutInfo.FLAG_DISABLED_MASK;
+ if ((disabledFlags &
~FLAG_DISABLED_SUSPENDED &
~FLAG_DISABLED_QUIET_USER) == 0) {
// If the app is only disabled because of the above flags, launch activity anyway.
diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java
index 2bb95cb..a6c1e6e 100644
--- a/src/com/android/launcher3/allapps/AllAppsContainerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java
@@ -85,6 +85,7 @@
private InterceptingViewPager mViewPager;
private ViewGroup mHeader;
private FloatingHeaderHandler mFloatingHeaderHandler;
+ private TabsPagerAdapter mTabsPagerAdapter;
private SpannableStringBuilder mSearchQueryBuilder = null;
@@ -93,6 +94,7 @@
private TransformingTouchDelegate mTouchDelegate;
private boolean mUsingTabs;
+ private boolean mHasPredictions = false;
private final HashMap<ComponentKey, AppInfo> mComponentToAppMap = new HashMap<>();
@@ -120,8 +122,8 @@
addView(mTouchFeedbackView, size, size);
mAH = new AdapterHolder[2];
- mAH[AdapterHolder.MAIN] = new AdapterHolder();
- mAH[AdapterHolder.WORK] = new AdapterHolder();
+ mAH[AdapterHolder.MAIN] = new AdapterHolder(false /* isWork */);
+ mAH[AdapterHolder.WORK] = new AdapterHolder(true /* isWork */);
}
@Override
@@ -436,7 +438,9 @@
setupWorkProfileTabs();
setupHeader();
} else {
+ mTabsPagerAdapter = null;
mAH[AdapterHolder.MAIN].setup(findViewById(R.id.apps_list_view), null);
+ mAH[AdapterHolder.WORK].recyclerView = null;
if (FeatureFlags.ALL_APPS_PREDICTION_ROW_VIEW) {
setupHeader();
} else {
@@ -479,8 +483,11 @@
}
private void setupWorkProfileTabs() {
+ if (mTabsPagerAdapter != null) {
+ return;
+ }
final SlidingTabStrip tabs = findViewById(R.id.tabs);
- mViewPager.setAdapter(new TabsPagerAdapter());
+ mViewPager.setAdapter(mTabsPagerAdapter = new TabsPagerAdapter());
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
boolean mVisible = true;
@@ -524,6 +531,11 @@
mFloatingHeaderHandler.getContentView().setPredictedApps(apps);
}
mAH[AdapterHolder.MAIN].appsList.setPredictedApps(apps);
+ boolean hasPredictions = !apps.isEmpty();
+ if (mHasPredictions != hasPredictions) {
+ mHasPredictions = hasPredictions;
+ setupHeader();
+ }
}
public AppInfo findApp(ComponentKeyMapper<AppInfo> mapper) {
@@ -543,9 +555,12 @@
}
private void setupHeader() {
+ if (mFloatingHeaderHandler == null) {
+ return;
+ }
mHeader.setVisibility(View.VISIBLE);
- int contentHeight = mLauncher.getDeviceProfile().allAppsCellHeightPx;
- if (!mUsingTabs) {
+ int contentHeight = mHasPredictions ? mLauncher.getDeviceProfile().allAppsCellHeightPx : 0;
+ if (mHasPredictions && !mUsingTabs) {
contentHeight += getResources()
.getDimensionPixelSize(R.dimen.all_apps_prediction_row_divider_height);
}
@@ -556,7 +571,7 @@
mComponentToAppMap, mNumPredictedAppsPerRow);
int padding = contentHeight;
- if (!mUsingTabs) {
+ if (mHasPredictions && !mUsingTabs) {
padding += mHeader.getPaddingTop() + mHeader.getPaddingBottom();
}
for (int i = 0; i < mAH.length; i++) {
@@ -627,8 +642,8 @@
AllAppsRecyclerView recyclerView;
boolean verticalFadingEdge;
- AdapterHolder() {
- appsList = new AlphabeticalAppsList(mLauncher, mComponentToAppMap);
+ AdapterHolder(boolean isWork) {
+ appsList = new AlphabeticalAppsList(mLauncher, mComponentToAppMap, isWork);
adapter = new AllAppsGridAdapter(mLauncher, appsList, mLauncher,
AllAppsContainerView.this, true);
appsList.setAdapter(adapter);
diff --git a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
index ac8d367..da4d9f0 100644
--- a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
+++ b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
@@ -18,6 +18,7 @@
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
+import android.os.UserHandle;
import android.support.animation.DynamicAnimation;
import android.support.animation.SpringAnimation;
import android.support.v4.view.accessibility.AccessibilityEventCompat;
@@ -32,6 +33,7 @@
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
+import android.widget.Switch;
import android.widget.TextView;
import com.android.launcher3.AppInfo;
@@ -41,6 +43,7 @@
import com.android.launcher3.Utilities;
import com.android.launcher3.allapps.AlphabeticalAppsList.AdapterItem;
import com.android.launcher3.anim.SpringAnimationHandler;
+import com.android.launcher3.compat.UserManagerCompat;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.discovery.AppDiscoveryAppInfo;
import com.android.launcher3.discovery.AppDiscoveryItemView;
@@ -68,14 +71,15 @@
// but differ in enough attributes to require different view types
// A divider that separates the apps list and the search market button
- public static final int VIEW_TYPE_SEARCH_MARKET_DIVIDER = 1 << 5;
+ public static final int VIEW_TYPE_ALL_APPS_DIVIDER = 1 << 5;
// The divider that separates prediction icons from the app list
public static final int VIEW_TYPE_PREDICTION_DIVIDER = 1 << 6;
public static final int VIEW_TYPE_APPS_LOADING_DIVIDER = 1 << 7;
public static final int VIEW_TYPE_DISCOVERY_ITEM = 1 << 8;
+ public static final int VIEW_TYPE_WORK_TAB_FOOTER = 1 << 9;
// Common view type masks
- public static final int VIEW_TYPE_MASK_DIVIDER = VIEW_TYPE_SEARCH_MARKET_DIVIDER
+ public static final int VIEW_TYPE_MASK_DIVIDER = VIEW_TYPE_ALL_APPS_DIVIDER
| VIEW_TYPE_PREDICTION_DIVIDER;
public static final int VIEW_TYPE_MASK_ICON = VIEW_TYPE_ICON
| VIEW_TYPE_PREDICTION_ICON;
@@ -182,8 +186,8 @@
if (isIconViewType(mApps.getAdapterItems().get(position).viewType)) {
return 1;
} else {
- // Section breaks span the full width
- return mAppsPerRow;
+ // Section breaks span the full width
+ return mAppsPerRow;
}
}
}
@@ -323,9 +327,13 @@
R.layout.all_apps_discovery_loading_divider, parent, false);
return new ViewHolder(loadingDividerView);
case VIEW_TYPE_PREDICTION_DIVIDER:
- case VIEW_TYPE_SEARCH_MARKET_DIVIDER:
+ case VIEW_TYPE_ALL_APPS_DIVIDER:
return new ViewHolder(mLayoutInflater.inflate(
R.layout.all_apps_divider, parent, false));
+ case VIEW_TYPE_WORK_TAB_FOOTER:
+ View footer = mLayoutInflater.inflate(R.layout.work_tab_footer, parent, false);
+ // TODO: Implement the work mode toggle logic here.
+ return new ViewHolder(footer);
default:
throw new RuntimeException("Unexpected view type");
}
@@ -367,9 +375,17 @@
holder.itemView.findViewById(R.id.loadingProgressBar).setVisibility(visLoading);
holder.itemView.findViewById(R.id.loadedDivider).setVisibility(visLoaded);
break;
- case VIEW_TYPE_SEARCH_MARKET_DIVIDER:
+ case VIEW_TYPE_ALL_APPS_DIVIDER:
// nothing to do
break;
+ case VIEW_TYPE_WORK_TAB_FOOTER:
+ Switch workModeToggle = holder.itemView.findViewById(R.id.work_mode_toggle);
+ workModeToggle.setChecked(!isAnyProfileQuietModeEnabled());
+
+ TextView textView = holder.itemView.findViewById(R.id.managed_by_label);
+ // TODO: Configure the textview properly.
+ textView.setText("Managed by your company");
+ break;
}
if (mBindViewCallback != null) {
mBindViewCallback.onBindView(holder);
@@ -537,4 +553,15 @@
return factor;
}
}
+
+ private boolean isAnyProfileQuietModeEnabled() {
+ UserManagerCompat userManager = UserManagerCompat.getInstance(mLauncher);
+ List<UserHandle> userProfiles = userManager.getUserProfiles();
+ for (UserHandle userProfile : userProfiles) {
+ if (userManager.isQuietModeEnabled(userProfile)) {
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
index 09357f7..5789b67 100644
--- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
@@ -143,7 +143,7 @@
RecyclerView.RecycledViewPool pool = getRecycledViewPool();
int approxRows = (int) Math.ceil(grid.availableHeightPx / grid.allAppsIconSizePx);
pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_EMPTY_SEARCH, 1);
- pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET_DIVIDER, 1);
+ pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_ALL_APPS_DIVIDER, 1);
pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET, 1);
pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_ICON, approxRows * mNumAppsPerRow);
pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_PREDICTION_ICON, mNumAppsPerRow);
@@ -167,7 +167,7 @@
putSameHeightFor(adapter, widthMeasureSpec, heightMeasureSpec,
AllAppsGridAdapter.VIEW_TYPE_PREDICTION_DIVIDER,
- AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET_DIVIDER);
+ AllAppsGridAdapter.VIEW_TYPE_ALL_APPS_DIVIDER);
putSameHeightFor(adapter, widthMeasureSpec, heightMeasureSpec,
AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET);
putSameHeightFor(adapter, widthMeasureSpec, heightMeasureSpec,
diff --git a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
index 7cf2d95..12715cb 100644
--- a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
+++ b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
@@ -140,9 +140,9 @@
return item;
}
- public static AdapterItem asMarketDivider(int pos) {
+ public static AdapterItem asAllAppsDivider(int pos) {
AdapterItem item = new AdapterItem();
- item.viewType = AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET_DIVIDER;
+ item.viewType = AllAppsGridAdapter.VIEW_TYPE_ALL_APPS_DIVIDER;
item.position = pos;
return item;
}
@@ -160,6 +160,13 @@
item.position = pos;
return item;
}
+
+ public static AdapterItem asWorkTabFooter(int pos) {
+ AdapterItem item = new AdapterItem();
+ item.viewType = AllAppsGridAdapter.VIEW_TYPE_WORK_TAB_FOOTER;
+ item.position = pos;
+ return item;
+ }
}
private final Launcher mLauncher;
@@ -179,6 +186,8 @@
// The set of predicted apps resolved from the component names and the current set of apps
private final List<AppInfo> mPredictedApps = new ArrayList<>();
private final List<AppDiscoveryAppInfo> mDiscoveredApps = new ArrayList<>();
+ // Is it the work profile app list.
+ private final boolean mIsWork;
// The of ordered component names as a result of a search query
private ArrayList<ComponentKey> mSearchResults;
@@ -191,11 +200,16 @@
private int mNumAppRowsInAdapter;
private ItemInfoMatcher mItemFilter;
- public AlphabeticalAppsList(Context context, HashMap<ComponentKey, AppInfo> componentToAppMap) {
+ public AlphabeticalAppsList(
+ Context context,
+ HashMap<ComponentKey,
+ AppInfo> componentToAppMap,
+ boolean isWork) {
mComponentToAppMap = componentToAppMap;
mLauncher = Launcher.getLauncher(context);
mIndexer = new AlphabeticIndexCompat(context);
mAppNameComparator = new AppInfoComparator(context);
+ mIsWork = isWork;
}
public void updateItemFilter(ItemInfoMatcher itemFilter) {
@@ -545,7 +559,7 @@
if (hasNoFilteredResults()) {
mAdapterItems.add(AdapterItem.asEmptySearch(position++));
} else {
- mAdapterItems.add(AdapterItem.asMarketDivider(position++));
+ mAdapterItems.add(AdapterItem.asAllAppsDivider(position++));
}
mAdapterItems.add(AdapterItem.asMarketSearch(position++));
}
@@ -604,6 +618,12 @@
break;
}
}
+
+ // Add the work profile footer if required.
+ if (mIsWork) {
+ mAdapterItems.add(AdapterItem.asAllAppsDivider(position++));
+ mAdapterItems.add(AdapterItem.asWorkTabFooter(position++));
+ }
}
public boolean isAppDiscoveryRunning() {
diff --git a/src/com/android/launcher3/allapps/FloatingHeaderHandler.java b/src/com/android/launcher3/allapps/FloatingHeaderHandler.java
index 0b39b7d..c4b533b 100644
--- a/src/com/android/launcher3/allapps/FloatingHeaderHandler.java
+++ b/src/com/android/launcher3/allapps/FloatingHeaderHandler.java
@@ -160,7 +160,13 @@
private void apply() {
int uncappedTranslationY = mTranslationY;
mTranslationY = Math.max(mTranslationY, -mMaxTranslation);
- mPredictionRow.setTranslationY(uncappedTranslationY);
+ if (mTranslationY != uncappedTranslationY) {
+ // we hide it completely if already capped (for opening search anim)
+ mPredictionRow.setVisibility(View.INVISIBLE);
+ } else {
+ mPredictionRow.setVisibility(View.VISIBLE);
+ mPredictionRow.setTranslationY(uncappedTranslationY);
+ }
mTabLayout.setTranslationY(mTranslationY);
mDivider.setTranslationY(mTopOnlyMode ? uncappedTranslationY : mTranslationY);
mClip.top = mMaxTranslation + mTranslationY;
diff --git a/src/com/android/launcher3/allapps/PredictionRowView.java b/src/com/android/launcher3/allapps/PredictionRowView.java
index 45ef6c1..ea91770 100644
--- a/src/com/android/launcher3/allapps/PredictionRowView.java
+++ b/src/com/android/launcher3/allapps/PredictionRowView.java
@@ -68,7 +68,10 @@
* Sets the number of apps per row.
*/
public void setNumAppsPerRow(int numPredictedAppsPerRow) {
- mNumPredictedAppsPerRow = numPredictedAppsPerRow;
+ if (mNumPredictedAppsPerRow != numPredictedAppsPerRow) {
+ mNumPredictedAppsPerRow = numPredictedAppsPerRow;
+ onAppsUpdated();
+ }
}
/**
diff --git a/src/com/android/launcher3/views/SlidingTabStrip.java b/src/com/android/launcher3/views/SlidingTabStrip.java
index 45c6261..c2ef41b 100644
--- a/src/com/android/launcher3/views/SlidingTabStrip.java
+++ b/src/com/android/launcher3/views/SlidingTabStrip.java
@@ -34,7 +34,7 @@
private int mSelectedIndicatorHeight;
private int mIndicatorLeft = -1;
private int mIndicatorRight = -1;
- private int mSelectedPosition = -1;
+ private int mSelectedPosition = 0;
private float mSelectionOffset;
public SlidingTabStrip(@NonNull Context context, @Nullable AttributeSet attrs) {
@@ -63,8 +63,8 @@
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
- updateTabTextColor(0);
- updateIndicatorPosition(0, 0);
+ updateTabTextColor(mSelectedPosition);
+ updateIndicatorPosition(mSelectedPosition, 0);
}
private void updateIndicatorPosition() {