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

Commit 70046cf0 authored by Romain Hunault's avatar Romain Hunault 💻
Browse files

Merge branch 'pie-clean-top-bar' into 'v1-pie'

Pie clean top bar

See merge request e/os/android_frameworks_base!84
parents a89e4bbb 7e502ac8
Loading
Loading
Loading
Loading
+32 −30
Original line number Diff line number Diff line
@@ -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"
@@ -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>
+10 −18
Original line number Diff line number Diff line
@@ -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"
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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"
+1 −1
Original line number Diff line number Diff line
@@ -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>
+58 −8
Original line number Diff line number Diff line
@@ -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;
@@ -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);
    }
@@ -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