OSDN Git Service

Fixing RTL issues with transition and screen pinning.
authorWinson <winsonc@google.com>
Wed, 21 Sep 2016 19:14:16 +0000 (12:14 -0700)
committerWinson Chung <winsonc@google.com>
Thu, 22 Sep 2016 19:47:31 +0000 (19:47 +0000)
Bug: 31367531
Change-Id: Id790293cc5246535d6fb829ec57e4ee640fea1a2

packages/SystemUI/res/layout/recents_task_view.xml
packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java

index 1978a93..c8e5b61 100644 (file)
@@ -30,8 +30,8 @@
         android:id="@+id/lock_to_app_fab"
         android:layout_width="@dimen/recents_lock_to_app_size"
         android:layout_height="@dimen/recents_lock_to_app_size"
-        android:layout_gravity="bottom|right"
-        android:layout_marginRight="15dp"
+        android:layout_gravity="bottom|end"
+        android:layout_marginEnd="15dp"
         android:layout_marginBottom="15dp"
         android:translationZ="4dp"
         android:contentDescription="@string/recents_lock_to_app_button_label"
index ab4c811..a412966 100644 (file)
@@ -205,9 +205,17 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener
     }
 
     public void onConfigurationChanged() {
+        Resources res = mContext.getResources();
         reloadResources();
         mDummyStackView.reloadOnConfigurationChange();
+        // Update the header bar direction directly as it is not attached to anything and does not
+        // layout except in updateHeaderBarLayout()
+        mHeaderBar.setLayoutDirection(res.getConfiguration().getLayoutDirection());
         mHeaderBar.onConfigurationChanged();
+        mHeaderBar.forceLayout();
+        mHeaderBar.measure(
+                MeasureSpec.makeMeasureSpec(mHeaderBar.getMeasuredWidth(), MeasureSpec.EXACTLY),
+                MeasureSpec.makeMeasureSpec(mHeaderBar.getMeasuredHeight(), MeasureSpec.EXACTLY));
     }
 
     /**
@@ -626,6 +634,7 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener
                 synchronized (mHeaderBarLock) {
                     if (mHeaderBar.getMeasuredWidth() != taskViewWidth ||
                             mHeaderBar.getMeasuredHeight() != mTaskBarHeight) {
+                        mHeaderBar.forceLayout();
                         mHeaderBar.measure(
                                 MeasureSpec.makeMeasureSpec(taskViewWidth, MeasureSpec.EXACTLY),
                                 MeasureSpec.makeMeasureSpec(mTaskBarHeight, MeasureSpec.EXACTLY));