Loading packages/SystemUI/LineageManifest.xml +4 −1 Original line number Original line Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?> <!-- <!-- /* /* * Copyright (c) 2017 The LineageOS Project * Copyright (c) 2017-2020 The LineageOS Project * * * Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License. Loading @@ -19,6 +19,9 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.systemui"> package="com.android.systemui"> <!-- Network traffic monitor --> <uses-permission android:name="android.permission.MAINLINE_NETWORK_STACK" /> <!-- QS Tiles --> <!-- QS Tiles --> <uses-permission android:name="android.permission.MAINLINE_NETWORK_STACK" /> <uses-permission android:name="android.permission.MAINLINE_NETWORK_STACK" /> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> Loading packages/SystemUI/res/layout/status_bar.xml +51 −0 Original line number Original line Diff line number Diff line Loading @@ -118,6 +118,23 @@ android:orientation="horizontal" android:orientation="horizontal" android:clipChildren="false"/> android:clipChildren="false"/> <com.android.systemui.statusbar.LineageStatusBarItemHolder android:id="@+id/network_traffic_holder_start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layoutDirection="ltr" android:gravity="center" android:paddingStart="4dp"> <org.lineageos.internal.statusbar.NetworkTraffic android:id="@+id/network_traffic_start" android:layout_width="wrap_content" android:layout_height="match_parent" android:maxLines="2" android:gravity="center" /> </com.android.systemui.statusbar.LineageStatusBarItemHolder> </LinearLayout> </LinearLayout> </FrameLayout> </FrameLayout> </FrameLayout> </FrameLayout> Loading Loading @@ -152,6 +169,23 @@ android:gravity="center_vertical|end" android:gravity="center_vertical|end" android:clipChildren="false"> android:clipChildren="false"> <com.android.systemui.statusbar.LineageStatusBarItemHolder android:id="@+id/network_traffic_holder_end" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layoutDirection="ltr" android:gravity="center" android:paddingLeft="2dp"> <org.lineageos.internal.statusbar.NetworkTraffic android:id="@+id/network_traffic_end" android:layout_width="wrap_content" android:layout_height="match_parent" android:maxLines="2" android:gravity="center" /> </com.android.systemui.statusbar.LineageStatusBarItemHolder> <include <include android:id="@+id/user_switcher_container" android:id="@+id/user_switcher_container" android:layout_width="wrap_content" android:layout_width="wrap_content" Loading Loading @@ -184,6 +218,23 @@ android:gravity="center" android:gravity="center" android:visibility="gone" android:visibility="gone" /> /> <com.android.systemui.statusbar.LineageStatusBarItemHolder android:id="@+id/network_traffic_holder_center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layoutDirection="ltr" android:gravity="center"> <org.lineageos.internal.statusbar.NetworkTraffic android:id="@+id/network_traffic_center" android:layout_width="wrap_content" android:layout_height="match_parent" android:maxLines="2" android:gravity="center" /> </com.android.systemui.statusbar.LineageStatusBarItemHolder> </com.android.keyguard.AlphaOptimizedLinearLayout> </com.android.keyguard.AlphaOptimizedLinearLayout> </com.android.systemui.statusbar.phone.PhoneStatusBarView> </com.android.systemui.statusbar.phone.PhoneStatusBarView> packages/SystemUI/src/com/android/systemui/navigationbar/gestural/DisplayBackGestureHandler.kt +4 −0 Original line number Original line Diff line number Diff line Loading @@ -48,6 +48,8 @@ interface DisplayBackGestureHandler { fun setIsLeftPanel(isLeft: Boolean) fun setIsLeftPanel(isLeft: Boolean) fun setLongSwipeEnabled(enabled: Boolean) fun setBatchingEnabled(enabled: Boolean) fun setBatchingEnabled(enabled: Boolean) fun pilferPointers() fun pilferPointers() Loading Loading @@ -134,6 +136,8 @@ constructor( override fun setIsLeftPanel(isLeft: Boolean) = edgeBackPlugin.setIsLeftPanel(isLeft) override fun setIsLeftPanel(isLeft: Boolean) = edgeBackPlugin.setIsLeftPanel(isLeft) override fun setLongSwipeEnabled(enabled: Boolean) = edgeBackPlugin.setLongSwipeEnabled(enabled) override fun setBatchingEnabled(enabled: Boolean) = override fun setBatchingEnabled(enabled: Boolean) = inputEventReceiver.setBatchingEnabled(enabled) inputEventReceiver.setBatchingEnabled(enabled) Loading packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java +10 −1 Original line number Original line Diff line number Diff line Loading @@ -929,7 +929,16 @@ public class EdgeBackGestureHandler { } } private void updateLongSwipeWidth() { private void updateLongSwipeWidth() { if (mIsEnabled && mEdgeBackPlugin != null) { if (!mIsEnabled) { return; } if (DesktopExperienceFlags.ENABLE_MULTIDISPLAY_TRACKPAD_BACK_GESTURE.isTrue()) { for (DisplayBackGestureHandler displayBackGestureHandler : mDisplayBackGestureHandlers.values()) { displayBackGestureHandler.setLongSwipeEnabled(mIsLongSwipeEnabled); } } else if (mEdgeBackPlugin != null) { mEdgeBackPlugin.setLongSwipeEnabled(mIsLongSwipeEnabled); mEdgeBackPlugin.setLongSwipeEnabled(mIsLongSwipeEnabled); } } } } Loading packages/SystemUI/src/com/android/systemui/statusbar/LineageStatusBarItemHolder.java 0 → 100644 +148 −0 Original line number Original line Diff line number Diff line /** * Copyright (C) 2018 The LineageOS 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. */ package com.android.systemui.statusbar; import android.content.Context; import android.graphics.Rect; import android.util.AttributeSet; import android.view.View; import android.widget.RelativeLayout; import com.android.systemui.Dependency; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; import com.android.systemui.res.R; import org.lineageos.internal.statusbar.LineageStatusBarItem; import java.util.ArrayList; public class LineageStatusBarItemHolder extends RelativeLayout implements LineageStatusBarItem.Manager { private static final String TAG = "LineageStatusBarItemHolder"; private ArrayList<LineageStatusBarItem.DarkReceiver> mDarkReceivers = new ArrayList<LineageStatusBarItem.DarkReceiver>(); private ArrayList<LineageStatusBarItem.VisibilityReceiver> mVisibilityReceivers = new ArrayList<LineageStatusBarItem.VisibilityReceiver>(); private ArrayList<Rect> mLastAreas; private float mLastDarkIntensity; private int mLastTint; private boolean mItemHolderIsVisible; private Context mContext; public LineageStatusBarItemHolder(Context context) { this(context, null); } public LineageStatusBarItemHolder(Context context, AttributeSet attrs) { this(context, attrs, 0); } public LineageStatusBarItemHolder(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mContext = context; mItemHolderIsVisible = false; } @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); setOnSystemUiVisibilityChangeListener(mSystemUiVisibilityChangeListener); updateStatusBarVisibility(getSystemUiVisibility()); Dependency.get(DarkIconDispatcher.class).addDarkReceiver(mDarkReceiver); } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); setOnSystemUiVisibilityChangeListener(null); Dependency.get(DarkIconDispatcher.class).removeDarkReceiver(mDarkReceiver); } // Propagate systemui tint updates to registered receivers. private DarkReceiver mDarkReceiver = new DarkReceiver() { @Override public void onDarkChanged(ArrayList<Rect> areas, float darkIntensity, int tint) { mLastAreas = areas; mLastDarkIntensity = darkIntensity; mLastTint = tint; for (LineageStatusBarItem.DarkReceiver r : mDarkReceivers) { r.onDarkChanged(areas, darkIntensity, tint); } } }; // Collect and propagate item holder visibility to // registered receivers. // // We watch both our own view visibility and systemui visibility. // Latest change in either direction wins (and has been observed // thus far to always be correct). @Override public void onVisibilityAggregated(boolean isVisible) { super.onVisibilityAggregated(isVisible); updateVisibilityReceivers(isVisible); } private View.OnSystemUiVisibilityChangeListener mSystemUiVisibilityChangeListener = new View.OnSystemUiVisibilityChangeListener() { @Override public void onSystemUiVisibilityChange(int visibility) { updateStatusBarVisibility(visibility); } }; private void updateStatusBarVisibility(int visibility) { final boolean isVisible = (visibility & SYSTEM_UI_FLAG_FULLSCREEN) == 0 || (visibility & SYSTEM_UI_FLAG_LOW_PROFILE) != 0; updateVisibilityReceivers(isVisible); } private void updateVisibilityReceivers(boolean isVisible) { if (isVisible == mItemHolderIsVisible) { return; } mItemHolderIsVisible = isVisible; for (LineageStatusBarItem.VisibilityReceiver r : mVisibilityReceivers) { r.onVisibilityChanged(mItemHolderIsVisible); } } // LineageStatusBarItem.Manager methods public void addDarkReceiver(LineageStatusBarItem.DarkReceiver darkReceiver) { darkReceiver.setFillColors( mContext.getColor(R.color.dark_mode_icon_color_dual_tone_fill), mContext.getColor(R.color.light_mode_icon_color_dual_tone_fill)); mDarkReceivers.add(darkReceiver); darkReceiver.onDarkChanged(mLastAreas, mLastDarkIntensity, mLastTint); } public void addVisibilityReceiver(LineageStatusBarItem.VisibilityReceiver visibilityReceiver) { mVisibilityReceivers.add(visibilityReceiver); visibilityReceiver.onVisibilityChanged(mItemHolderIsVisible); } } Loading
packages/SystemUI/LineageManifest.xml +4 −1 Original line number Original line Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?> <!-- <!-- /* /* * Copyright (c) 2017 The LineageOS Project * Copyright (c) 2017-2020 The LineageOS Project * * * Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License. Loading @@ -19,6 +19,9 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.systemui"> package="com.android.systemui"> <!-- Network traffic monitor --> <uses-permission android:name="android.permission.MAINLINE_NETWORK_STACK" /> <!-- QS Tiles --> <!-- QS Tiles --> <uses-permission android:name="android.permission.MAINLINE_NETWORK_STACK" /> <uses-permission android:name="android.permission.MAINLINE_NETWORK_STACK" /> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> Loading
packages/SystemUI/res/layout/status_bar.xml +51 −0 Original line number Original line Diff line number Diff line Loading @@ -118,6 +118,23 @@ android:orientation="horizontal" android:orientation="horizontal" android:clipChildren="false"/> android:clipChildren="false"/> <com.android.systemui.statusbar.LineageStatusBarItemHolder android:id="@+id/network_traffic_holder_start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layoutDirection="ltr" android:gravity="center" android:paddingStart="4dp"> <org.lineageos.internal.statusbar.NetworkTraffic android:id="@+id/network_traffic_start" android:layout_width="wrap_content" android:layout_height="match_parent" android:maxLines="2" android:gravity="center" /> </com.android.systemui.statusbar.LineageStatusBarItemHolder> </LinearLayout> </LinearLayout> </FrameLayout> </FrameLayout> </FrameLayout> </FrameLayout> Loading Loading @@ -152,6 +169,23 @@ android:gravity="center_vertical|end" android:gravity="center_vertical|end" android:clipChildren="false"> android:clipChildren="false"> <com.android.systemui.statusbar.LineageStatusBarItemHolder android:id="@+id/network_traffic_holder_end" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layoutDirection="ltr" android:gravity="center" android:paddingLeft="2dp"> <org.lineageos.internal.statusbar.NetworkTraffic android:id="@+id/network_traffic_end" android:layout_width="wrap_content" android:layout_height="match_parent" android:maxLines="2" android:gravity="center" /> </com.android.systemui.statusbar.LineageStatusBarItemHolder> <include <include android:id="@+id/user_switcher_container" android:id="@+id/user_switcher_container" android:layout_width="wrap_content" android:layout_width="wrap_content" Loading Loading @@ -184,6 +218,23 @@ android:gravity="center" android:gravity="center" android:visibility="gone" android:visibility="gone" /> /> <com.android.systemui.statusbar.LineageStatusBarItemHolder android:id="@+id/network_traffic_holder_center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layoutDirection="ltr" android:gravity="center"> <org.lineageos.internal.statusbar.NetworkTraffic android:id="@+id/network_traffic_center" android:layout_width="wrap_content" android:layout_height="match_parent" android:maxLines="2" android:gravity="center" /> </com.android.systemui.statusbar.LineageStatusBarItemHolder> </com.android.keyguard.AlphaOptimizedLinearLayout> </com.android.keyguard.AlphaOptimizedLinearLayout> </com.android.systemui.statusbar.phone.PhoneStatusBarView> </com.android.systemui.statusbar.phone.PhoneStatusBarView>
packages/SystemUI/src/com/android/systemui/navigationbar/gestural/DisplayBackGestureHandler.kt +4 −0 Original line number Original line Diff line number Diff line Loading @@ -48,6 +48,8 @@ interface DisplayBackGestureHandler { fun setIsLeftPanel(isLeft: Boolean) fun setIsLeftPanel(isLeft: Boolean) fun setLongSwipeEnabled(enabled: Boolean) fun setBatchingEnabled(enabled: Boolean) fun setBatchingEnabled(enabled: Boolean) fun pilferPointers() fun pilferPointers() Loading Loading @@ -134,6 +136,8 @@ constructor( override fun setIsLeftPanel(isLeft: Boolean) = edgeBackPlugin.setIsLeftPanel(isLeft) override fun setIsLeftPanel(isLeft: Boolean) = edgeBackPlugin.setIsLeftPanel(isLeft) override fun setLongSwipeEnabled(enabled: Boolean) = edgeBackPlugin.setLongSwipeEnabled(enabled) override fun setBatchingEnabled(enabled: Boolean) = override fun setBatchingEnabled(enabled: Boolean) = inputEventReceiver.setBatchingEnabled(enabled) inputEventReceiver.setBatchingEnabled(enabled) Loading
packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java +10 −1 Original line number Original line Diff line number Diff line Loading @@ -929,7 +929,16 @@ public class EdgeBackGestureHandler { } } private void updateLongSwipeWidth() { private void updateLongSwipeWidth() { if (mIsEnabled && mEdgeBackPlugin != null) { if (!mIsEnabled) { return; } if (DesktopExperienceFlags.ENABLE_MULTIDISPLAY_TRACKPAD_BACK_GESTURE.isTrue()) { for (DisplayBackGestureHandler displayBackGestureHandler : mDisplayBackGestureHandlers.values()) { displayBackGestureHandler.setLongSwipeEnabled(mIsLongSwipeEnabled); } } else if (mEdgeBackPlugin != null) { mEdgeBackPlugin.setLongSwipeEnabled(mIsLongSwipeEnabled); mEdgeBackPlugin.setLongSwipeEnabled(mIsLongSwipeEnabled); } } } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/LineageStatusBarItemHolder.java 0 → 100644 +148 −0 Original line number Original line Diff line number Diff line /** * Copyright (C) 2018 The LineageOS 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. */ package com.android.systemui.statusbar; import android.content.Context; import android.graphics.Rect; import android.util.AttributeSet; import android.view.View; import android.widget.RelativeLayout; import com.android.systemui.Dependency; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; import com.android.systemui.res.R; import org.lineageos.internal.statusbar.LineageStatusBarItem; import java.util.ArrayList; public class LineageStatusBarItemHolder extends RelativeLayout implements LineageStatusBarItem.Manager { private static final String TAG = "LineageStatusBarItemHolder"; private ArrayList<LineageStatusBarItem.DarkReceiver> mDarkReceivers = new ArrayList<LineageStatusBarItem.DarkReceiver>(); private ArrayList<LineageStatusBarItem.VisibilityReceiver> mVisibilityReceivers = new ArrayList<LineageStatusBarItem.VisibilityReceiver>(); private ArrayList<Rect> mLastAreas; private float mLastDarkIntensity; private int mLastTint; private boolean mItemHolderIsVisible; private Context mContext; public LineageStatusBarItemHolder(Context context) { this(context, null); } public LineageStatusBarItemHolder(Context context, AttributeSet attrs) { this(context, attrs, 0); } public LineageStatusBarItemHolder(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mContext = context; mItemHolderIsVisible = false; } @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); setOnSystemUiVisibilityChangeListener(mSystemUiVisibilityChangeListener); updateStatusBarVisibility(getSystemUiVisibility()); Dependency.get(DarkIconDispatcher.class).addDarkReceiver(mDarkReceiver); } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); setOnSystemUiVisibilityChangeListener(null); Dependency.get(DarkIconDispatcher.class).removeDarkReceiver(mDarkReceiver); } // Propagate systemui tint updates to registered receivers. private DarkReceiver mDarkReceiver = new DarkReceiver() { @Override public void onDarkChanged(ArrayList<Rect> areas, float darkIntensity, int tint) { mLastAreas = areas; mLastDarkIntensity = darkIntensity; mLastTint = tint; for (LineageStatusBarItem.DarkReceiver r : mDarkReceivers) { r.onDarkChanged(areas, darkIntensity, tint); } } }; // Collect and propagate item holder visibility to // registered receivers. // // We watch both our own view visibility and systemui visibility. // Latest change in either direction wins (and has been observed // thus far to always be correct). @Override public void onVisibilityAggregated(boolean isVisible) { super.onVisibilityAggregated(isVisible); updateVisibilityReceivers(isVisible); } private View.OnSystemUiVisibilityChangeListener mSystemUiVisibilityChangeListener = new View.OnSystemUiVisibilityChangeListener() { @Override public void onSystemUiVisibilityChange(int visibility) { updateStatusBarVisibility(visibility); } }; private void updateStatusBarVisibility(int visibility) { final boolean isVisible = (visibility & SYSTEM_UI_FLAG_FULLSCREEN) == 0 || (visibility & SYSTEM_UI_FLAG_LOW_PROFILE) != 0; updateVisibilityReceivers(isVisible); } private void updateVisibilityReceivers(boolean isVisible) { if (isVisible == mItemHolderIsVisible) { return; } mItemHolderIsVisible = isVisible; for (LineageStatusBarItem.VisibilityReceiver r : mVisibilityReceivers) { r.onVisibilityChanged(mItemHolderIsVisible); } } // LineageStatusBarItem.Manager methods public void addDarkReceiver(LineageStatusBarItem.DarkReceiver darkReceiver) { darkReceiver.setFillColors( mContext.getColor(R.color.dark_mode_icon_color_dual_tone_fill), mContext.getColor(R.color.light_mode_icon_color_dual_tone_fill)); mDarkReceivers.add(darkReceiver); darkReceiver.onDarkChanged(mLastAreas, mLastDarkIntensity, mLastTint); } public void addVisibilityReceiver(LineageStatusBarItem.VisibilityReceiver visibilityReceiver) { mVisibilityReceivers.add(visibilityReceiver); visibilityReceiver.onVisibilityChanged(mItemHolderIsVisible); } }