Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5953db10 authored by kaiyiz's avatar kaiyiz Committed by Linux Build Service Account
Browse files

SystemUI: Fix crash issue when slide brightnesslevel in status bar

Getting panel holder by panel_holder in dual sim mode causes a crash.

Get panel holder by msim_panel_holder in dual sim mode and by panel_holder
in single sim mode. Move brightness mirror to front of behind scrim to
avoid it being covered by behind scrim.

CRs-Fixed: 737868

Change-Id: Id3021f879a416525804de5f786a522f4f23dc6f8
parent 6f8568af
Loading
Loading
Loading
Loading
+16 −16
Original line number Diff line number Diff line
@@ -28,22 +28,6 @@
    android:fitsSystemWindows="true"
    android:descendantFocusability="afterDescendants">

    <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:paddingLeft="@dimen/notification_side_padding"
            android:paddingRight="@dimen/notification_side_padding"
            android:visibility="gone">
        <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" />
        </FrameLayout>
    </FrameLayout>

    <com.android.systemui.statusbar.BackDropView
            android:id="@+id/backdrop"
            android:layout_width="match_parent"
@@ -69,6 +53,22 @@
        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:paddingLeft="@dimen/notification_side_padding"
            android:paddingRight="@dimen/notification_side_padding"
            android:visibility="gone">
        <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" />
        </FrameLayout>
    </FrameLayout>

    <com.android.systemui.statusbar.phone.PanelHolder
        android:id="@+id/msim_panel_holder"
        android:layout_width="match_parent"
+10 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import com.android.systemui.statusbar.ScrimView;
import com.android.systemui.statusbar.phone.PhoneStatusBar;
import com.android.systemui.statusbar.phone.StatusBarWindowView;

import android.telephony.TelephonyManager;
import android.view.View;
import android.view.ViewPropertyAnimator;
import android.widget.FrameLayout;
@@ -41,8 +42,12 @@ public class BrightnessMirrorController {
    public BrightnessMirrorController(StatusBarWindowView statusBarWindow) {
        mScrimBehind = (ScrimView) statusBarWindow.findViewById(R.id.scrim_behind);
        mBrightnessMirror = statusBarWindow.findViewById(R.id.brightness_mirror);
        if (isMSim()) {
            mPanelHolder = statusBarWindow.findViewById(R.id.msim_panel_holder);
        } else {
            mPanelHolder = statusBarWindow.findViewById(R.id.panel_holder);
        }
    }

    public void showMirror() {
        mBrightnessMirror.setVisibility(View.VISIBLE);
@@ -103,4 +108,8 @@ public class BrightnessMirrorController {
        mBrightnessMirror.setPadding(padding, mBrightnessMirror.getPaddingTop(),
                padding, mBrightnessMirror.getPaddingBottom());
    }

    boolean isMSim() {
        return (TelephonyManager.getDefault().getPhoneCount() > 1);
    }
}