From 5620c75c015975103d07a8987913ae39b8d26661 Mon Sep 17 00:00:00 2001 From: Shan Huang Date: Fri, 16 Apr 2021 21:33:39 +0800 Subject: [PATCH 01/10] Updated launcher text shadow values. Also update the way we compute shadow alpha so that it combines both text alpha and shadow color alpha. Test: Manually checked text appearances in launcher. Bug: 185890335 Change-Id: I720a97bbaf21de86a5c446529109ce5b9ac5f6f7 --- res/values/attrs.xml | 3 +- res/values/styles.xml | 9 +++-- .../views/DoubleShadowBubbleTextView.java | 39 +++++++++++++------ 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/res/values/attrs.xml b/res/values/attrs.xml index dbb40d591c..1beb8dd69d 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -79,7 +79,8 @@ - + + diff --git a/src/com/android/launcher3/views/DoubleShadowBubbleTextView.java b/src/com/android/launcher3/views/DoubleShadowBubbleTextView.java index d89e7f81de..a309e6e95e 100644 --- a/src/com/android/launcher3/views/DoubleShadowBubbleTextView.java +++ b/src/com/android/launcher3/views/DoubleShadowBubbleTextView.java @@ -60,7 +60,7 @@ public class DoubleShadowBubbleTextView extends BubbleTextView { // We enhance the shadow by drawing the shadow twice getPaint().setShadowLayer(mShadowInfo.ambientShadowBlur, 0, 0, - setColorAlphaBound(mShadowInfo.ambientShadowColor, alpha)); + getTextShadowColor(mShadowInfo.ambientShadowColor, alpha)); drawWithoutDot(canvas); canvas.save(); @@ -68,8 +68,11 @@ public class DoubleShadowBubbleTextView extends BubbleTextView { getScrollX() + getWidth(), getScrollY() + getHeight()); - getPaint().setShadowLayer(mShadowInfo.keyShadowBlur, 0.0f, mShadowInfo.keyShadowOffset, - setColorAlphaBound(mShadowInfo.keyShadowColor, alpha)); + getPaint().setShadowLayer( + mShadowInfo.keyShadowBlur, + mShadowInfo.keyShadowOffsetX, + mShadowInfo.keyShadowOffsetY, + getTextShadowColor(mShadowInfo.keyShadowColor, alpha)); drawWithoutDot(canvas); canvas.restore(); @@ -81,7 +84,8 @@ public class DoubleShadowBubbleTextView extends BubbleTextView { public final int ambientShadowColor; public final float keyShadowBlur; - public final float keyShadowOffset; + public final float keyShadowOffsetX; + public final float keyShadowOffsetY; public final int keyShadowColor; public ShadowInfo(Context c, AttributeSet attrs, int defStyle) { @@ -89,11 +93,13 @@ public class DoubleShadowBubbleTextView extends BubbleTextView { TypedArray a = c.obtainStyledAttributes( attrs, R.styleable.ShadowInfo, defStyle, 0); - ambientShadowBlur = a.getDimension(R.styleable.ShadowInfo_ambientShadowBlur, 0); + ambientShadowBlur = a.getDimensionPixelSize( + R.styleable.ShadowInfo_ambientShadowBlur, 0); ambientShadowColor = a.getColor(R.styleable.ShadowInfo_ambientShadowColor, 0); - keyShadowBlur = a.getDimension(R.styleable.ShadowInfo_keyShadowBlur, 0); - keyShadowOffset = a.getDimension(R.styleable.ShadowInfo_keyShadowOffset, 0); + keyShadowBlur = a.getDimensionPixelSize(R.styleable.ShadowInfo_keyShadowBlur, 0); + keyShadowOffsetX = a.getDimensionPixelSize(R.styleable.ShadowInfo_keyShadowOffsetX, 0); + keyShadowOffsetY = a.getDimensionPixelSize(R.styleable.ShadowInfo_keyShadowOffsetY, 0); keyShadowColor = a.getColor(R.styleable.ShadowInfo_keyShadowColor, 0); a.recycle(); } @@ -105,17 +111,26 @@ public class DoubleShadowBubbleTextView extends BubbleTextView { if (textAlpha == 0 || (keyShadowAlpha == 0 && ambientShadowAlpha == 0)) { textView.getPaint().clearShadowLayer(); return true; - } else if (ambientShadowAlpha > 0) { + } else if (ambientShadowAlpha > 0 && keyShadowAlpha == 0) { textView.getPaint().setShadowLayer(ambientShadowBlur, 0, 0, - setColorAlphaBound(ambientShadowColor, textAlpha)); + getTextShadowColor(ambientShadowColor, textAlpha)); return true; - } else if (keyShadowAlpha > 0) { - textView.getPaint().setShadowLayer(keyShadowBlur, 0.0f, keyShadowOffset, - setColorAlphaBound(keyShadowColor, textAlpha)); + } else if (keyShadowAlpha > 0 && ambientShadowAlpha == 0) { + textView.getPaint().setShadowLayer( + keyShadowBlur, + keyShadowOffsetX, + keyShadowOffsetY, + getTextShadowColor(keyShadowColor, textAlpha)); return true; } else { return false; } } } + + // Multiplies the alpha of shadowColor by textAlpha. + private static int getTextShadowColor(int shadowColor, int textAlpha) { + return setColorAlphaBound(shadowColor, + Math.round(Color.alpha(shadowColor) * textAlpha / 255f)); + } } From 3417c1d22bef68f6242756e5cb574295de3f8e88 Mon Sep 17 00:00:00 2001 From: Steven Ng Date: Wed, 28 Apr 2021 19:27:40 +0100 Subject: [PATCH 02/10] Remove debugging logs from the full widgets picker Test: None Bug: 185508758 Change-Id: I2958118abc9d4f3778aaf6c3e3df01b0712354dc --- .../android/launcher3/widget/picker/WidgetsFullSheet.java | 5 ----- .../widget/picker/WidgetsRecommendationTableLayout.java | 3 --- 2 files changed, 8 deletions(-) diff --git a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java index 8f5d4dc6ef..b4d48562be 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java +++ b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java @@ -28,7 +28,6 @@ import android.graphics.Rect; import android.os.Process; import android.os.UserHandle; import android.util.AttributeSet; -import android.util.Log; import android.util.Pair; import android.util.SparseArray; import android.view.LayoutInflater; @@ -473,10 +472,6 @@ public class WidgetsFullSheet extends BaseWidgetSheet WidgetsRecommendationTableLayout table = mSearchAndRecommendationViewHolder.mRecommendedWidgetsTable; if (recommendedWidgets.size() > 0) { - // TODO(b/185508758): Revert the following log after debugging. - if (getHeaderViewHeight() == 0) { - Log.d(TAG, "Header view height is 0 when inflating recommended widgets"); - } float maxTableHeight = (mLauncher.getDeviceProfile().availableHeightPx - mTabsHeight - getHeaderViewHeight()) * RECOMMENDATION_TABLE_HEIGHT_RATIO; diff --git a/src/com/android/launcher3/widget/picker/WidgetsRecommendationTableLayout.java b/src/com/android/launcher3/widget/picker/WidgetsRecommendationTableLayout.java index 2d3f1a0188..62ef4ff64e 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsRecommendationTableLayout.java +++ b/src/com/android/launcher3/widget/picker/WidgetsRecommendationTableLayout.java @@ -93,9 +93,6 @@ public final class WidgetsRecommendationTableLayout extends TableLayout { mRecommendationTableMaxHeight = recommendationTableMaxHeight; RecommendationTableData data = fitRecommendedWidgetsToTableSpace(/* previewScale= */ 1f, recommendedWidgets); - // TODO(b/185508758): Revert the following logs after debugging. - Log.d(TAG, "Recommended widgets section max height: " + recommendationTableMaxHeight); - Log.d(TAG, "Recommended widget down scale: " + data.mPreviewScale); bindData(data); } From a6cec336ff6b586fa37867c0b4e17269f01cf043 Mon Sep 17 00:00:00 2001 From: Becky Qiu Date: Wed, 28 Apr 2021 15:20:49 -0700 Subject: [PATCH 03/10] [Overview Sharing] Turn on the feature flag for overview sharing. Bug: 186670923 Test: manual Change-Id: I57514cde11dc3315c8671c286a6963d29cf346e1 --- src/com/android/launcher3/config/FeatureFlags.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java index 7d5ed60019..bad87043ef 100644 --- a/src/com/android/launcher3/config/FeatureFlags.java +++ b/src/com/android/launcher3/config/FeatureFlags.java @@ -151,7 +151,7 @@ public final class FeatureFlags { "ENABLE_OVERVIEW_SHARE", false, "Show Share button in Overview Actions"); public static final BooleanFlag ENABLE_OVERVIEW_SHARING_TO_PEOPLE = getDebugFlag( - "ENABLE_OVERVIEW_SHARING_TO_PEOPLE", false, + "ENABLE_OVERVIEW_SHARING_TO_PEOPLE", true, "Show indicators for content on Overview to share with top people. "); public static final BooleanFlag ENABLE_OVERVIEW_CONTENT_PUSH = getDebugFlag( From 7350b0f47e507f1caa056a89707f05b28a401500 Mon Sep 17 00:00:00 2001 From: thiruram Date: Wed, 28 Apr 2021 17:27:17 -0700 Subject: [PATCH 04/10] Logging ItemInfo.attribute field for LauncherUiChanged atom. Unlike LaucherStaticLayout, LauncherUiChanged atom does not have origin field to write into statsd. This workaround solution will pack attribute value into target_id field and provides backward compatibility too. Bug: 186169419 Test: Manual Change-Id: Ib5344fad08accdd0aac827700c3842b7f102b7dc --- .../android/quickstep/logging/StatsLogCompatManager.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java index 66c24c8bae..3b26108aab 100644 --- a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java +++ b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java @@ -84,6 +84,7 @@ public class StatsLogCompatManager extends StatsLogManager { private static final int FOLDER_HIERARCHY_OFFSET = 100; private static final int SEARCH_RESULT_HIERARCHY_OFFSET = 200; private static final int EXTENDED_CONTAINERS_HIERARCHY_OFFSET = 300; + private static final int ATTRIBUTE_MULTIPLIER = 100; public static final CopyOnWriteArrayList LOGS_CONSUMER = new CopyOnWriteArrayList<>(); @@ -112,7 +113,8 @@ public class StatsLogCompatManager extends StatsLogManager { } SysUiStatsLog.write(SysUiStatsLog.LAUNCHER_SNAPSHOT, LAUNCHER_WORKSPACE_SNAPSHOT.getId() /* event_id */, - info.getItemCase().getNumber() /* target_id */, + info.getAttribute().getNumber() * ATTRIBUTE_MULTIPLIER + + info.getItemCase().getNumber() /* target_id */, instanceId.getId() /* instance_id */, 0 /* uid */, getPackageName(info) /* package_name */, @@ -329,7 +331,8 @@ public class StatsLogCompatManager extends StatsLogManager { null /* launcher extensions, deprecated */, false /* quickstep_enabled, deprecated */, event.getId() /* event_id */, - atomInfo.getItemCase().getNumber() /* target_id */, + atomInfo.getAttribute().getNumber() * ATTRIBUTE_MULTIPLIER + + atomInfo.getItemCase().getNumber() /* target_id */, instanceId.getId() /* instance_id TODO */, 0 /* uid TODO */, getPackageName(atomInfo) /* package_name */, From 3c192b3f7224bbb569ed31474efc3d70037d8512 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Wed, 28 Apr 2021 21:13:46 -0700 Subject: [PATCH 05/10] Fix a couple issues with tracking launch cookies - Fix NPE when there is no running task - Fix issue where we were defaulting to a prediction icon when there was no launch cookie - Don't use a launch cookie when we are launching from a non-workspace item, just fallback to the package name matching in that case Fixes: 186653036 Fixes: 186593373 Test: Swipe up from various apps launched from predictions, also launch an app from all apps and swipe up and ensure it doesn't match a prediction Change-Id: Ie8f5da010c140a5056045ac268d082c80271ab68 --- .../android/launcher3/BaseQuickstepLauncher.java | 13 +++++++++++++ .../com/android/quickstep/AbsSwipeUpHandler.java | 6 ++++-- .../android/quickstep/LauncherSwipeHandlerV2.java | 5 +++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java index 7aae38c7f1..910e473401 100644 --- a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java @@ -443,6 +443,19 @@ public abstract class BaseQuickstepLauncher extends Launcher if (info == null) { return; } + switch (info.container) { + case LauncherSettings.Favorites.CONTAINER_DESKTOP: + case LauncherSettings.Favorites.CONTAINER_HOTSEAT: + // Fall through and continue it's on the workspace (we don't support swiping back + // to other containers like all apps or the hotseat predictions (which can change) + break; + default: + if (info.container >= 0) { + // Also allow swiping to folders + break; + } + return; + } switch (info.itemType) { case LauncherSettings.Favorites.ITEM_TYPE_APPLICATION: case LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT: diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java index 61803aa13b..883b02933e 100644 --- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java @@ -1095,8 +1095,10 @@ public abstract class AbsSwipeUpHandler, final RemoteAnimationTargetCompat runningTaskTarget = mRecentsAnimationTargets != null ? mRecentsAnimationTargets.findTask(mGestureState.getRunningTaskId()) : null; - HomeAnimationFactory homeAnimFactory = createHomeAnimationFactory( - runningTaskTarget.taskInfo.launchCookies, duration); + final ArrayList cookies = runningTaskTarget != null + ? runningTaskTarget.taskInfo.launchCookies + : new ArrayList<>(); + HomeAnimationFactory homeAnimFactory = createHomeAnimationFactory(cookies, duration); mIsSwipingPipToHome = homeAnimFactory.supportSwipePipToHome() && runningTaskTarget != null && runningTaskTarget.taskInfo.pictureInPictureParams != null diff --git a/quickstep/src/com/android/quickstep/LauncherSwipeHandlerV2.java b/quickstep/src/com/android/quickstep/LauncherSwipeHandlerV2.java index dd35d68dcf..2ea34d7f93 100644 --- a/quickstep/src/com/android/quickstep/LauncherSwipeHandlerV2.java +++ b/quickstep/src/com/android/quickstep/LauncherSwipeHandlerV2.java @@ -244,8 +244,9 @@ public class LauncherSwipeHandlerV2 extends return null; } - // Find the associated item info for the launch cookie (if available) - int launchCookieItemId = -1; + // Find the associated item info for the launch cookie (if available), note that predicted + // apps actually have an id of -1, so use another default id here + int launchCookieItemId = -2; for (IBinder cookie : launchCookies) { Integer itemId = ObjectWrapper.unwrap(cookie); if (itemId != null) { From 1777a1be4fe3554ee2bb135c2667b373eaa3dab8 Mon Sep 17 00:00:00 2001 From: Steven Ng Date: Wed, 28 Apr 2021 19:35:22 +0100 Subject: [PATCH 06/10] Use widget picker color surface for WidgetsBottomSheet Test: Launch widgets bottom sheet, search popup to confirm the expected background color is applied. Bug: 183601302 Change-Id: I300a364605e00a0d8046a907a40f4cb797ec161e --- ...ct_primary.xml => widgets_bottom_sheet_background.xml} | 8 ++++---- res/layout/widgets_bottom_sheet.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) rename res/drawable/{top_round_rect_primary.xml => widgets_bottom_sheet_background.xml} (85%) diff --git a/res/drawable/top_round_rect_primary.xml b/res/drawable/widgets_bottom_sheet_background.xml similarity index 85% rename from res/drawable/top_round_rect_primary.xml rename to res/drawable/widgets_bottom_sheet_background.xml index 1caaa026f0..faa414c506 100644 --- a/res/drawable/top_round_rect_primary.xml +++ b/res/drawable/widgets_bottom_sheet_background.xml @@ -1,6 +1,6 @@ - + android:shape="rectangle"> + - + \ No newline at end of file diff --git a/res/layout/widgets_bottom_sheet.xml b/res/layout/widgets_bottom_sheet.xml index 8002d1ddc7..08635c6e60 100644 --- a/res/layout/widgets_bottom_sheet.xml +++ b/res/layout/widgets_bottom_sheet.xml @@ -20,7 +20,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="16dp" - android:background="@drawable/top_round_rect_primary" + android:background="@drawable/widgets_bottom_sheet_background" android:elevation="@dimen/deep_shortcuts_elevation" android:layout_gravity="bottom" android:theme="?attr/widgetsTheme"> From 1140f84b6f3610dce81624bd2e646dbdacbfb487 Mon Sep 17 00:00:00 2001 From: Steven Ng Date: Thu, 29 Apr 2021 17:44:14 +0100 Subject: [PATCH 07/10] Replace conversations widget app icon Test: Open full widgets picker and observe the expected icon for the conversations category. Bug: 184878454 Change-Id: I580b0148d39c8dd004113c8f966135b22165a329 --- .../ic_conversations_widget_category.xml | 46 +++++++++++++++++++ .../widget/picker/WidgetsListHeader.java | 10 +++- 2 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 res/drawable/ic_conversations_widget_category.xml diff --git a/res/drawable/ic_conversations_widget_category.xml b/res/drawable/ic_conversations_widget_category.xml new file mode 100644 index 0000000000..7b13b239ac --- /dev/null +++ b/res/drawable/ic_conversations_widget_category.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + diff --git a/src/com/android/launcher3/widget/picker/WidgetsListHeader.java b/src/com/android/launcher3/widget/picker/WidgetsListHeader.java index ccf3187770..41aa4378f0 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsListHeader.java +++ b/src/com/android/launcher3/widget/picker/WidgetsListHeader.java @@ -35,7 +35,6 @@ import androidx.recyclerview.widget.RecyclerView; import com.android.launcher3.DeviceProfile; import com.android.launcher3.LauncherAppState; import com.android.launcher3.R; -import com.android.launcher3.icons.FastBitmapDrawable; import com.android.launcher3.icons.IconCache.ItemInfoUpdateReceiver; import com.android.launcher3.icons.PlaceHolderIconDrawable; import com.android.launcher3.icons.cache.HandlerRunnable; @@ -174,7 +173,14 @@ public final class WidgetsListHeader extends LinearLayout implements ItemInfoUpd } private void setIcon(PackageItemInfo info) { - FastBitmapDrawable icon = info.newIcon(getContext()); + Drawable icon; + switch (info.category) { + case PackageItemInfo.CONVERSATIONS: + icon = getContext().getDrawable(R.drawable.ic_conversations_widget_category); + break; + default: + icon = info.newIcon(getContext()); + } applyDrawables(icon); mIconDrawable = icon; if (mIconDrawable != null) { From 290679571e3ba3f01d0bf6691ca70114dd5cb14f Mon Sep 17 00:00:00 2001 From: Bob Badour Date: Mon, 26 Apr 2021 16:03:25 -0700 Subject: [PATCH 08/10] [LSC] Add LOCAL_LICENSE_KINDS to packages/apps/Launcher3 Added SPDX-license-identifier-Apache-2.0 to: Android.mk Bug: 68860345 Bug: 151177513 Bug: 151953481 Test: m all Exempt-From-Owner-Approval: janitorial work Change-Id: I68b3eb245ece3476ed1e5a6e08537efb438e5641 Merged-in: Ib2fe11ca0c8937b49323dfb4759a0a8770a5cfa6 Merged-in: I069f0fcd0652dcfd3e9c539e1f9bcb4c9225a10b --- Android.mk | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Android.mk b/Android.mk index 2c595505ff..aff12c5e5f 100644 --- a/Android.mk +++ b/Android.mk @@ -91,6 +91,9 @@ LOCAL_FULL_LIBS_MANIFEST_FILES := $(LOCAL_PATH)/AndroidManifest-common.xml LOCAL_JACK_COVERAGE_INCLUDE_FILTER := com.android.launcher3.* +LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 +LOCAL_LICENSE_CONDITIONS := notice +LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE include $(BUILD_PACKAGE) # @@ -124,6 +127,9 @@ LOCAL_FULL_LIBS_MANIFEST_FILES := \ LOCAL_MANIFEST_FILE := go/AndroidManifest.xml LOCAL_JACK_COVERAGE_INCLUDE_FILTER := com.android.launcher3.* +LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 +LOCAL_LICENSE_CONDITIONS := notice +LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE include $(BUILD_PACKAGE) # @@ -200,6 +206,9 @@ LOCAL_FULL_LIBS_MANIFEST_FILES := \ LOCAL_MANIFEST_FILE := quickstep/AndroidManifest.xml LOCAL_JACK_COVERAGE_INCLUDE_FILTER := com.android.launcher3.* +LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 +LOCAL_LICENSE_CONDITIONS := notice +LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE include $(BUILD_PACKAGE) @@ -250,6 +259,9 @@ LOCAL_FULL_LIBS_MANIFEST_FILES := \ LOCAL_MANIFEST_FILE := quickstep/AndroidManifest.xml LOCAL_JACK_COVERAGE_INCLUDE_FILTER := com.android.launcher3.* +LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 +LOCAL_LICENSE_CONDITIONS := notice +LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE include $(BUILD_PACKAGE) From fdcf8103e00592a40866d005590f646cf875a4e4 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Thu, 29 Apr 2021 19:00:17 +0000 Subject: [PATCH 09/10] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: Ide1f0bfcb4a3a28bcdbc2d0ec830f77de864546f --- quickstep/res/values-ne/strings.xml | 96 ++++++++++------------------- 1 file changed, 32 insertions(+), 64 deletions(-) diff --git a/quickstep/res/values-ne/strings.xml b/quickstep/res/values-ne/strings.xml index 99ad8143e9..f3b1151ef6 100644 --- a/quickstep/res/values-ne/strings.xml +++ b/quickstep/res/values-ne/strings.xml @@ -45,72 +45,40 @@ "सिफारिस गरिएका एपहरू देखाउने सुविधा सक्षम पारिएका छन्" "सिफारिस गरिएका एपहरू देखाउने सुविधा असक्षम पारिएको छ" "पूर्वानुमान गरिएको एप: %1$s" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + "स्क्रिनको सबैभन्दा बायाँ किनाराबाट स्वाइप गर्नुहोस्।" + "स्क्रिनको बायाँ किनाराबाट मध्य भागसम्म स्वाइप गर्नुहोस् अनि औँला उठाउनुहोस्।" + "यत्ति हो! अब दायाँ किनाराबाट स्वाइप गरी हेर्नुहोस्।" + "स्क्रिनको सबैभन्दा दायाँ किनाराबाट स्वाइप गर्नुहोस्।" + "स्क्रिनको दायाँ किनाराबाट मध्य भागसम्म स्वाइप गर्नुहोस् अनि औँला उठाउनुहोस्।" + "तपाईंले \'पछाडि जानुहोस्\' नामक इसारा प्रयोग गर्ने तरिका सिक्नुभयो। अब होम स्क्रिनमा जाने तरिका सिक्नुहोस्।" + "स्क्रिनको फेदको धेरै नजिकसम्म स्वाइप नगर्नुहोस्।" + "\'पछाडि\' नामक इसाराको संवेदनशीलता बदल्न सेटिङमा जानुहोस्" + "पछाडि जान स्वाइप गर्नुहोस्" + "यसअघिको स्क्रिनमा फर्कन स्क्रिनको बायाँ वा दायाँ किनाराबाट मध्य भागसम्म स्वाइप गर्नुहोस्।" + "स्क्रिनको फेदबाट माथितिर स्वाइप गर्नुहोस्।" + "औँला उठाउनुअघि नरोकिनुहोस्।" + "सीधै माथितिर स्वाइप गर्नुहोस्।" + "तपाईंले \'होम स्क्रिनमा जानुहोस्\' नामक इसारा प्रयोग गर्ने तरिका सिक्नुभयो। अब एउटा एपबाट अर्को एपमा जाने तरिका सिक्नुहोस्।" + "होम स्क्रिनमा जान स्वाइप गर्नुहोस्" + "स्क्रिनको फेदबाट माथितिर स्वाइप गर्नुहोस्। यो इसारा प्रयोग गर्दा सधैँ होम स्क्रिन खुल्छ।" + "स्क्रिनको फेदबाट माथितिर स्वाइप गर्नुहोस्।" + "स्क्रिनबाट औँला उठाउनुअघि एपको विन्डोमा केही बेर छोइराख्नुहोस्।" + "सीधै माथितिर स्वाइप गर्नुहोस् अनि रोकिनुहोस्।" + "तपाईंले \'एउटा एपबाट अर्को एपमा जानुहोस्\' नामक इसारा प्रयोग गर्ने तरिका सिक्नुभयो। तपाईं अब आफ्नो फोन चलाउन सक्नुहुन्छ!" + "एउटा एपबाट अर्को एपमा जान स्वाइप गर्नुहोस्" + "स्क्रिनको फेदबाट माथितिर स्वाइप गर्नुहोस्, छोइराख्नुहोस् अनि औँला उठाउनुहोस्।" + "सबै तयार छ" + "अर्को" + "सम्पन्न भयो" + "सेटिङ" + "फेरि प्रयास गर्नुहोस्" + "राम्रो!" + "ट्युटोरियल %1$d/%2$d" "सेयर गर्नुहोस्" "स्क्रिनसट" "यो एप वा तपाईंको सङ्गठनले यो कारबाही गर्ने अनुमति दिँदैन" - - + "नेभिगेसन ट्युटोरियल स्किप गर्ने हो?" "तपाईं पछि %1$s एपमा गई यो ट्युटोरियल भेट्टाउन सक्नुहुन्छ" - - - - + "रद्द गर्नुहोस्" + "स्किप गर्नु…" From 05b59c080fe78236bfab817a8fbd2f383bc1d8fd Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Thu, 29 Apr 2021 13:55:40 -0700 Subject: [PATCH 10/10] Calling pageTransisionEnd only after edgeEffect finishes Bug: 186605795 Test: Presubmit Change-Id: I2b46d0b0a47c68038f300e71ab89bd7e5a5e3895 --- src/com/android/launcher3/PagedView.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index c9cc3721a8..f7de3cac71 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -388,7 +388,8 @@ public abstract class PagedView extends ViewGrou } protected void pageEndTransition() { - if (mIsPageInTransition) { + if (mIsPageInTransition && !mIsBeingDragged && mScroller.isFinished() + && mEdgeGlowLeft.isFinished() && mEdgeGlowRight.isFinished()) { mIsPageInTransition = false; onPageEndTransition(); } @@ -1740,6 +1741,7 @@ public abstract class PagedView extends ViewGrou public void draw(Canvas canvas) { super.draw(canvas); drawEdgeEffect(canvas); + pageEndTransition(); } protected void drawEdgeEffect(Canvas canvas) {