OSDN Git Service

Fixed a few issues with status bar density changes
authorSelim Cinek <cinek@google.com>
Sun, 10 Apr 2016 04:24:45 +0000 (21:24 -0700)
committerSelim Cinek <cinek@google.com>
Mon, 18 Apr 2016 22:10:36 +0000 (15:10 -0700)
Reinflated the brightnessmirror to have the propper layouting.
Also fixed the height of the heads up scrim.

Bug: 26844819
Change-Id: Idb24dbd40f071a2a722c59cc202ae46c5ace2da8

packages/SystemUI/res/layout/brightness_mirror.xml [new file with mode: 0644]
packages/SystemUI/res/layout/super_status_bar.xml
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java

diff --git a/packages/SystemUI/res/layout/brightness_mirror.xml b/packages/SystemUI/res/layout/brightness_mirror.xml
new file mode 100644 (file)
index 0000000..bbaff6a
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2016 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
+  -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/brightness_mirror"
+    android:layout_width="@dimen/notification_panel_width"
+    android:layout_height="wrap_content"
+    android:layout_gravity="@integer/notification_panel_layout_gravity"
+    android:visibility="invisible">
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@drawable/brightness_mirror_background"
+        android:elevation="2dp">
+        <include layout="@layout/quick_settings_brightness_dialog"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"/>
+    </FrameLayout>
+</FrameLayout>
index 7c4ce15..285a8ec 100644 (file)
         android:layout_width="match_parent"
         android:layout_height="@dimen/status_bar_height" />
 
-    <FrameLayout android:id="@+id/brightness_mirror"
-                 android:layout_width="@dimen/notification_panel_width"
-                 android:layout_height="wrap_content"
-                 android:layout_gravity="@integer/notification_panel_layout_gravity"
-                 android:visibility="invisible">
-        <FrameLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:elevation="2dp"
-                android:background="@drawable/brightness_mirror_background">
-            <include layout="@layout/quick_settings_brightness_dialog"
-                     android:layout_width="match_parent"
-                     android:layout_height="wrap_content" />
-        </FrameLayout>
-    </FrameLayout>
+    <include layout="@layout/brightness_mirror" />
 
     <ViewStub android:id="@+id/fullscreen_user_switcher_stub"
               android:layout="@layout/car_fullscreen_user_switcher"
index 82806fd..67f2042 100644 (file)
@@ -953,6 +953,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
     @Override
     protected void reInflateViews() {
         super.reInflateViews();
+        mScrimController.reInflateViews();
+        mBrightnessMirrorController.reInflate();
         inflateDismissView();
         updateClearAll();
         inflateEmptyShadeView();
index 3eda320..490fd40 100644 (file)
@@ -24,6 +24,7 @@ import android.content.Context;
 import android.graphics.Color;
 import android.graphics.Rect;
 import android.view.View;
+import android.view.ViewGroup;
 import android.view.ViewTreeObserver;
 import android.view.animation.DecelerateInterpolator;
 import android.view.animation.Interpolator;
@@ -519,4 +520,11 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
     public void setScrimBehindChangeRunnable(Runnable changeRunnable) {
         mScrimBehind.setChangeRunnable(changeRunnable);
     }
+
+    public void reInflateViews() {
+        ViewGroup.LayoutParams layoutParams = mHeadsUpScrim.getLayoutParams();
+        layoutParams.height = mHeadsUpScrim.getResources().getDimensionPixelSize(
+                R.dimen.heads_up_scrim_height);
+        mHeadsUpScrim.setLayoutParams(layoutParams);
+    }
 }
index ab34768..30af7fb 100644 (file)
@@ -16,6 +16,7 @@
 
 package com.android.systemui.statusbar.policy;
 
+import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewPropertyAnimator;
 import android.widget.FrameLayout;
@@ -33,12 +34,14 @@ public class BrightnessMirrorController {
     public long TRANSITION_DURATION_OUT = 150;
     public long TRANSITION_DURATION_IN = 200;
 
+    private final StatusBarWindowView mStatusBarWindow;
     private final ScrimView mScrimBehind;
-    private final View mBrightnessMirror;
     private final View mNotificationPanel;
     private final int[] mInt2Cache = new int[2];
+    private View mBrightnessMirror;
 
     public BrightnessMirrorController(StatusBarWindowView statusBarWindow) {
+        mStatusBarWindow = statusBarWindow;
         mScrimBehind = (ScrimView) statusBarWindow.findViewById(R.id.scrim_behind);
         mBrightnessMirror = statusBarWindow.findViewById(R.id.brightness_mirror);
         mNotificationPanel = statusBarWindow.findViewById(R.id.notification_panel);
@@ -56,11 +59,11 @@ public class BrightnessMirrorController {
         inAnimation(mNotificationPanel.animate())
                 .withLayer()
                 .withEndAction(new Runnable() {
-            @Override
-            public void run() {
-                mBrightnessMirror.setVisibility(View.INVISIBLE);
-            }
-        });
+                    @Override
+                    public void run() {
+                        mBrightnessMirror.setVisibility(View.INVISIBLE);
+                    }
+                });
     }
 
     private ViewPropertyAnimator outAnimation(ViewPropertyAnimator a) {
@@ -104,4 +107,12 @@ public class BrightnessMirrorController {
                 R.integer.notification_panel_layout_gravity);
         mBrightnessMirror.setLayoutParams(lp);
     }
+
+    public void reInflate() {
+        int index = mStatusBarWindow.indexOfChild(mBrightnessMirror);
+        mStatusBarWindow.removeView(mBrightnessMirror);
+        mBrightnessMirror = LayoutInflater.from(mBrightnessMirror.getContext()).inflate(
+                R.layout.brightness_mirror, mStatusBarWindow, false);
+        mStatusBarWindow.addView(mBrightnessMirror, index);
+    }
 }