Loading packages/SystemUI/res/layout/keyguard_status_bar.xml +32 −30 Original line number Diff line number Diff line Loading @@ -26,34 +26,51 @@ android:gravity="center_vertical" > <LinearLayout <RelativeLayout android:id="@+id/status_icon_area" android:layout_width="wrap_content" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentEnd="true" android:gravity="center_vertical|end" > <FrameLayout android:id="@+id/system_icons_container" android:layout_width="0dp" android:layout_alignParentStart="true" android:gravity="center_vertical|start" > <com.android.keyguard.CarrierText android:id="@+id/keyguard_carrier_text" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="@dimen/system_icons_super_container_margin_start" android:gravity="center_vertical|end" android:paddingEnd="@dimen/system_icons_keyguard_padding_end" > <include layout="@layout/system_icons" /> </FrameLayout> android:layout_marginStart="@dimen/keyguard_carrier_text_margin" android:gravity="center_vertical" android:ellipsize="marquee" android:textDirection="locale" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="?attr/wallpaperTextColorSecondary" android:singleLine="true" systemui:showMissingSim="true" systemui:showAirplaneMode="true" /> <com.android.systemui.statusbar.phone.MultiUserSwitch android:id="@+id/multi_user_switch" android:layout_width="@dimen/multi_user_switch_width_keyguard" android:layout_height="match_parent" android:background="@drawable/ripple_drawable" android:layout_marginEnd="@dimen/multi_user_switch_keyguard_margin"> android:layout_alignParentRight="true" android:layout_marginRight="@dimen/multi_user_switch_keyguard_margin"> <ImageView android:id="@+id/multi_user_avatar" android:layout_width="@dimen/multi_user_avatar_keyguard_size" android:layout_height="@dimen/multi_user_avatar_keyguard_size" android:layout_gravity="center" android:scaleType="centerInside"/> </com.android.systemui.statusbar.phone.MultiUserSwitch> </LinearLayout> <FrameLayout android:id="@+id/system_icons_container" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:layout_toRightOf="@id/keyguard_carrier_text" android:layout_toLeftOf="@id/multi_user_switch" android:gravity="center_vertical|end" android:paddingEnd="@dimen/system_icons_keyguard_padding_end" > <include layout="@layout/system_icons" /> </FrameLayout> </RelativeLayout> <Space android:id="@+id/cutout_space_view" Loading @@ -62,19 +79,4 @@ android:gravity="center" android:visibility="gone" /> <com.android.keyguard.CarrierText android:id="@+id/keyguard_carrier_text" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginStart="@dimen/keyguard_carrier_text_margin" android:layout_toStartOf="@id/system_icons_container" android:gravity="center_vertical" android:ellipsize="marquee" android:textDirection="locale" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="?attr/wallpaperTextColorSecondary" android:singleLine="true" systemui:showMissingSim="true" systemui:showAirplaneMode="true" /> </com.android.systemui.statusbar.phone.KeyguardStatusBarView> packages/SystemUI/res/layout/status_bar.xml +10 −18 Original line number Diff line number Diff line Loading @@ -87,19 +87,22 @@ android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:visibility="gone" android:orientation="horizontal" android:clipChildren="false"/> <com.android.keyguard.AlphaOptimizedLinearLayout android:id="@+id/system_icon_area" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal" android:gravity="center_vertical|start" > <include layout="@layout/system_icons" /> </com.android.keyguard.AlphaOptimizedLinearLayout> </LinearLayout> </FrameLayout> <!-- Space should cover the notch (if it exists) and let other views lay out around it --> <android.widget.Space android:id="@+id/cutout_space_view" android:layout_width="0dp" android:layout_height="match_parent" android:gravity="center_horizontal|center_vertical" /> <com.android.systemui.statusbar.LineageStatusBarItemHolder android:id="@+id/network_traffic_holder" Loading @@ -116,17 +119,6 @@ android:gravity="center_vertical|start" /> </com.android.systemui.statusbar.LineageStatusBarItemHolder> <com.android.keyguard.AlphaOptimizedLinearLayout android:id="@+id/system_icon_area" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal" android:gravity="center_vertical|end" > <include layout="@layout/system_icons" /> </com.android.keyguard.AlphaOptimizedLinearLayout> </LinearLayout> <com.android.keyguard.AlphaOptimizedLinearLayout Loading packages/SystemUI/res/layout/system_icons.xml +2 −2 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ android:layout_weight="1" android:layout_height="match_parent" android:paddingEnd="@dimen/signal_cluster_battery_padding" android:gravity="center_vertical" android:gravity="center_vertical | start" android:orientation="horizontal"/> <com.android.systemui.BatteryMeterView android:id="@+id/battery" Loading packages/SystemUI/res/values/config.xml +1 −1 Original line number Diff line number Diff line Loading @@ -313,7 +313,7 @@ <bool name="enable_safety_warning">true</bool> <!-- Whether to show operator name in the status bar --> <bool name="config_showOperatorNameInStatusBar">false</bool> <bool name="config_showOperatorNameInStatusBar">true</bool> <!-- Duration of the full carrier network change icon animation. --> <integer name="carrier_network_change_anim_time">3000</integer> Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ClockController.java +58 −8 Original line number Diff line number Diff line Loading @@ -17,18 +17,27 @@ package com.android.systemui.statusbar.phone; import android.util.Log; import android.util.DisplayMetrics; import android.util.Pair; import android.view.View; import android.view.WindowInsets; import android.view.DisplayCutout; import android.graphics.Rect; import java.util.List; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.policy.Clock; import com.android.systemui.tuner.TunerService; import com.android.systemui.util.leak.RotationUtils; public class ClockController implements TunerService.Tunable { private static final String TAG = "ClockController"; private int mCutoutLocation = -1; private static final int CLOCK_POSITION_RIGHT = 0; private static final int CLOCK_POSITION_CENTER = 1; private static final int CLOCK_POSITION_LEFT = 2; Loading @@ -38,19 +47,26 @@ public class ClockController implements TunerService.Tunable { private Clock mActiveClock, mCenterClock, mLeftClock, mRightClock; private View mCenterClockLayout, mRightClockLayout; private int mClockPosition = CLOCK_POSITION_LEFT; private int mClockPosition = CLOCK_POSITION_CENTER; private boolean mBlackListed = false; private DisplayCutout mDisplayCutout; private View mStatusBar; public ClockController(View statusBar) { mCenterClock = statusBar.findViewById(R.id.clock_center); mLeftClock = statusBar.findViewById(R.id.clock); mRightClock = statusBar.findViewById(R.id.clock_right); mCenterClockLayout = statusBar.findViewById(R.id.center_clock_layout); mRightClockLayout = statusBar.findViewById(R.id.right_clock_layout); mStatusBar = statusBar; mActiveClock = mLeftClock; statusBar.setOnApplyWindowInsetsListener(new android.view.View.OnApplyWindowInsetsListener(){ public WindowInsets onApplyWindowInsets (View v, WindowInsets insets){ updateActiveClock(); return insets; } }); Dependency.get(TunerService.class).addTunable(this, StatusBarIconController.ICON_BLACKLIST, CLOCK_POSITION); } Loading @@ -59,15 +75,49 @@ public class ClockController implements TunerService.Tunable { switch (mClockPosition) { case CLOCK_POSITION_RIGHT: return mRightClock; case CLOCK_POSITION_CENTER: return mCenterClock; case CLOCK_POSITION_LEFT: default: return mLeftClock; case CLOCK_POSITION_CENTER: default: if(mCutoutLocation == 1) return mRightClock; return mCenterClock; } } private void updateActiveClock() { if(mStatusBar instanceof PhoneStatusBarView) mDisplayCutout = ((PhoneStatusBarView)mStatusBar).getRootWindowInsets().getDisplayCutout(); else { mDisplayCutout = ((StatusBarWindowView)mStatusBar).getRootWindowInsets().getDisplayCutout(); } DisplayMetrics metrics = new DisplayMetrics(); mStatusBar.getDisplay().getMetrics(metrics); int middle = metrics.widthPixels/2; Pair<Integer, Integer> margins = null; if (mDisplayCutout != null) { List<Rect> bounding = mDisplayCutout.getBoundingRects(); for (int i=0; i<bounding.size(); i++) { int left = bounding.get(i).left; int right = bounding.get(i).right; int top = bounding.get(i).top; int bottom = bounding.get(i).bottom; if(left >0 && right >0){ margins = new Pair<Integer, Integer>(left, right); break; } } } if(margins == null) mCutoutLocation = -1; else if(margins.first < middle && margins.second > middle) mCutoutLocation = 1; else if(margins.first < middle) mCutoutLocation = 0; else mCutoutLocation = 2; mActiveClock.setClockVisibleByUser(false); mActiveClock = getClock(); mActiveClock.setClockVisibleByUser(true); Loading Loading
packages/SystemUI/res/layout/keyguard_status_bar.xml +32 −30 Original line number Diff line number Diff line Loading @@ -26,34 +26,51 @@ android:gravity="center_vertical" > <LinearLayout <RelativeLayout android:id="@+id/status_icon_area" android:layout_width="wrap_content" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentEnd="true" android:gravity="center_vertical|end" > <FrameLayout android:id="@+id/system_icons_container" android:layout_width="0dp" android:layout_alignParentStart="true" android:gravity="center_vertical|start" > <com.android.keyguard.CarrierText android:id="@+id/keyguard_carrier_text" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="@dimen/system_icons_super_container_margin_start" android:gravity="center_vertical|end" android:paddingEnd="@dimen/system_icons_keyguard_padding_end" > <include layout="@layout/system_icons" /> </FrameLayout> android:layout_marginStart="@dimen/keyguard_carrier_text_margin" android:gravity="center_vertical" android:ellipsize="marquee" android:textDirection="locale" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="?attr/wallpaperTextColorSecondary" android:singleLine="true" systemui:showMissingSim="true" systemui:showAirplaneMode="true" /> <com.android.systemui.statusbar.phone.MultiUserSwitch android:id="@+id/multi_user_switch" android:layout_width="@dimen/multi_user_switch_width_keyguard" android:layout_height="match_parent" android:background="@drawable/ripple_drawable" android:layout_marginEnd="@dimen/multi_user_switch_keyguard_margin"> android:layout_alignParentRight="true" android:layout_marginRight="@dimen/multi_user_switch_keyguard_margin"> <ImageView android:id="@+id/multi_user_avatar" android:layout_width="@dimen/multi_user_avatar_keyguard_size" android:layout_height="@dimen/multi_user_avatar_keyguard_size" android:layout_gravity="center" android:scaleType="centerInside"/> </com.android.systemui.statusbar.phone.MultiUserSwitch> </LinearLayout> <FrameLayout android:id="@+id/system_icons_container" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:layout_toRightOf="@id/keyguard_carrier_text" android:layout_toLeftOf="@id/multi_user_switch" android:gravity="center_vertical|end" android:paddingEnd="@dimen/system_icons_keyguard_padding_end" > <include layout="@layout/system_icons" /> </FrameLayout> </RelativeLayout> <Space android:id="@+id/cutout_space_view" Loading @@ -62,19 +79,4 @@ android:gravity="center" android:visibility="gone" /> <com.android.keyguard.CarrierText android:id="@+id/keyguard_carrier_text" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginStart="@dimen/keyguard_carrier_text_margin" android:layout_toStartOf="@id/system_icons_container" android:gravity="center_vertical" android:ellipsize="marquee" android:textDirection="locale" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="?attr/wallpaperTextColorSecondary" android:singleLine="true" systemui:showMissingSim="true" systemui:showAirplaneMode="true" /> </com.android.systemui.statusbar.phone.KeyguardStatusBarView>
packages/SystemUI/res/layout/status_bar.xml +10 −18 Original line number Diff line number Diff line Loading @@ -87,19 +87,22 @@ android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:visibility="gone" android:orientation="horizontal" android:clipChildren="false"/> <com.android.keyguard.AlphaOptimizedLinearLayout android:id="@+id/system_icon_area" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal" android:gravity="center_vertical|start" > <include layout="@layout/system_icons" /> </com.android.keyguard.AlphaOptimizedLinearLayout> </LinearLayout> </FrameLayout> <!-- Space should cover the notch (if it exists) and let other views lay out around it --> <android.widget.Space android:id="@+id/cutout_space_view" android:layout_width="0dp" android:layout_height="match_parent" android:gravity="center_horizontal|center_vertical" /> <com.android.systemui.statusbar.LineageStatusBarItemHolder android:id="@+id/network_traffic_holder" Loading @@ -116,17 +119,6 @@ android:gravity="center_vertical|start" /> </com.android.systemui.statusbar.LineageStatusBarItemHolder> <com.android.keyguard.AlphaOptimizedLinearLayout android:id="@+id/system_icon_area" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal" android:gravity="center_vertical|end" > <include layout="@layout/system_icons" /> </com.android.keyguard.AlphaOptimizedLinearLayout> </LinearLayout> <com.android.keyguard.AlphaOptimizedLinearLayout Loading
packages/SystemUI/res/layout/system_icons.xml +2 −2 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ android:layout_weight="1" android:layout_height="match_parent" android:paddingEnd="@dimen/signal_cluster_battery_padding" android:gravity="center_vertical" android:gravity="center_vertical | start" android:orientation="horizontal"/> <com.android.systemui.BatteryMeterView android:id="@+id/battery" Loading
packages/SystemUI/res/values/config.xml +1 −1 Original line number Diff line number Diff line Loading @@ -313,7 +313,7 @@ <bool name="enable_safety_warning">true</bool> <!-- Whether to show operator name in the status bar --> <bool name="config_showOperatorNameInStatusBar">false</bool> <bool name="config_showOperatorNameInStatusBar">true</bool> <!-- Duration of the full carrier network change icon animation. --> <integer name="carrier_network_change_anim_time">3000</integer> Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ClockController.java +58 −8 Original line number Diff line number Diff line Loading @@ -17,18 +17,27 @@ package com.android.systemui.statusbar.phone; import android.util.Log; import android.util.DisplayMetrics; import android.util.Pair; import android.view.View; import android.view.WindowInsets; import android.view.DisplayCutout; import android.graphics.Rect; import java.util.List; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.policy.Clock; import com.android.systemui.tuner.TunerService; import com.android.systemui.util.leak.RotationUtils; public class ClockController implements TunerService.Tunable { private static final String TAG = "ClockController"; private int mCutoutLocation = -1; private static final int CLOCK_POSITION_RIGHT = 0; private static final int CLOCK_POSITION_CENTER = 1; private static final int CLOCK_POSITION_LEFT = 2; Loading @@ -38,19 +47,26 @@ public class ClockController implements TunerService.Tunable { private Clock mActiveClock, mCenterClock, mLeftClock, mRightClock; private View mCenterClockLayout, mRightClockLayout; private int mClockPosition = CLOCK_POSITION_LEFT; private int mClockPosition = CLOCK_POSITION_CENTER; private boolean mBlackListed = false; private DisplayCutout mDisplayCutout; private View mStatusBar; public ClockController(View statusBar) { mCenterClock = statusBar.findViewById(R.id.clock_center); mLeftClock = statusBar.findViewById(R.id.clock); mRightClock = statusBar.findViewById(R.id.clock_right); mCenterClockLayout = statusBar.findViewById(R.id.center_clock_layout); mRightClockLayout = statusBar.findViewById(R.id.right_clock_layout); mStatusBar = statusBar; mActiveClock = mLeftClock; statusBar.setOnApplyWindowInsetsListener(new android.view.View.OnApplyWindowInsetsListener(){ public WindowInsets onApplyWindowInsets (View v, WindowInsets insets){ updateActiveClock(); return insets; } }); Dependency.get(TunerService.class).addTunable(this, StatusBarIconController.ICON_BLACKLIST, CLOCK_POSITION); } Loading @@ -59,15 +75,49 @@ public class ClockController implements TunerService.Tunable { switch (mClockPosition) { case CLOCK_POSITION_RIGHT: return mRightClock; case CLOCK_POSITION_CENTER: return mCenterClock; case CLOCK_POSITION_LEFT: default: return mLeftClock; case CLOCK_POSITION_CENTER: default: if(mCutoutLocation == 1) return mRightClock; return mCenterClock; } } private void updateActiveClock() { if(mStatusBar instanceof PhoneStatusBarView) mDisplayCutout = ((PhoneStatusBarView)mStatusBar).getRootWindowInsets().getDisplayCutout(); else { mDisplayCutout = ((StatusBarWindowView)mStatusBar).getRootWindowInsets().getDisplayCutout(); } DisplayMetrics metrics = new DisplayMetrics(); mStatusBar.getDisplay().getMetrics(metrics); int middle = metrics.widthPixels/2; Pair<Integer, Integer> margins = null; if (mDisplayCutout != null) { List<Rect> bounding = mDisplayCutout.getBoundingRects(); for (int i=0; i<bounding.size(); i++) { int left = bounding.get(i).left; int right = bounding.get(i).right; int top = bounding.get(i).top; int bottom = bounding.get(i).bottom; if(left >0 && right >0){ margins = new Pair<Integer, Integer>(left, right); break; } } } if(margins == null) mCutoutLocation = -1; else if(margins.first < middle && margins.second > middle) mCutoutLocation = 1; else if(margins.first < middle) mCutoutLocation = 0; else mCutoutLocation = 2; mActiveClock.setClockVisibleByUser(false); mActiveClock = getClock(); mActiveClock.setClockVisibleByUser(true); Loading