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

Commit a0758a4d authored by Sam Mortimer's avatar Sam Mortimer Committed by Bruno Martins
Browse files

SystemUI: Network Traffic



Co-authored-by: default avatarBruno Martins <bgcngm@gmail.com>
Co-authored-by: default avatarLuK1337 <priv.luk@gmail.com>
Co-authored-by: default avatarWolfram Liebchen <achalmgucker@googlemail.com>
Change-Id: Ib947832860970a3bccfac70d27a4761f6164d3d5
parent fab583eb
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
<?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");
 * you may not use this file except in compliance with the License.
@@ -19,6 +19,9 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.android.systemui">

    <!-- Network traffic monitor -->
    <uses-permission android:name="android.permission.MAINLINE_NETWORK_STACK" />

    <!-- QS Tiles -->
    <uses-permission android:name="android.permission.MAINLINE_NETWORK_STACK" />
    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
+51 −0
Original line number Diff line number Diff line
@@ -118,6 +118,23 @@
                        android:orientation="horizontal"
                        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>
            </FrameLayout>
        </FrameLayout>
@@ -152,6 +169,23 @@
                android:gravity="center_vertical|end"
                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
                    android:id="@+id/user_switcher_container"
                    android:layout_width="wrap_content"
@@ -184,6 +218,23 @@
            android:gravity="center"
            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.systemui.statusbar.phone.PhoneStatusBarView>
+15 −0
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ import android.view.View;
import com.android.systemui.res.R;
import com.android.systemui.shared.statusbar.phone.BarTransitions;

import org.lineageos.internal.statusbar.NetworkTraffic;

public final class PhoneStatusBarTransitions extends BarTransitions {
    private static final float ICON_ALPHA_WHEN_NOT_OPAQUE = 1;
    private static final float ICON_ALPHA_WHEN_LIGHTS_OUT_BATTERY_CLOCK = 0.5f;
@@ -35,6 +37,7 @@ public final class PhoneStatusBarTransitions extends BarTransitions {
    private boolean mIsHeadsUp;

    private View mStartSide, mStatusIcons, mBattery;
    private NetworkTraffic mNetworkTrafficStart, mNetworkTrafficCenter, mNetworkTrafficEnd;
    private Animator mCurrentAnimation;

    /**
@@ -46,7 +49,13 @@ public final class PhoneStatusBarTransitions extends BarTransitions {
        mIconAlphaWhenOpaque = res.getFraction(R.dimen.status_bar_icon_drawing_alpha, 1, 1);
        mStartSide = statusBarView.findViewById(R.id.status_bar_start_side_except_heads_up);
        mStatusIcons = statusBarView.findViewById(R.id.statusIcons);
        mNetworkTrafficStart = statusBarView.findViewById(R.id.network_traffic_start);
        mNetworkTrafficCenter = statusBarView.findViewById(R.id.network_traffic_center);
        mNetworkTrafficEnd = statusBarView.findViewById(R.id.network_traffic_end);
        mBattery = statusBarView.findViewById(R.id.battery);
        mNetworkTrafficStart.setViewPosition(0);        /* start side display */
        mNetworkTrafficCenter.setViewPosition(1);       /* center display */
        mNetworkTrafficEnd.setViewPosition(2);          /* end side display */
        applyModeBackground(-1, getMode(), false /*animate*/);
        applyMode(getMode(), false /*animate*/);
    }
@@ -115,6 +124,9 @@ public final class PhoneStatusBarTransitions extends BarTransitions {
            anims.playTogether(
                    animateTransitionTo(mStartSide, newStartSideAlpha),
                    animateTransitionTo(mStatusIcons, newStatusIconsAlpha),
                    animateTransitionTo(mNetworkTrafficStart, newStatusIconsAlpha),
                    animateTransitionTo(mNetworkTrafficCenter, newStatusIconsAlpha),
                    animateTransitionTo(mNetworkTrafficEnd, newStatusIconsAlpha),
                    animateTransitionTo(mBattery, newBatteryAlpha)
                    );
            if (isLightsOut(mode)) {
@@ -125,6 +137,9 @@ public final class PhoneStatusBarTransitions extends BarTransitions {
        } else {
            mStartSide.setAlpha(newStartSideAlpha);
            mStatusIcons.setAlpha(newStatusIconsAlpha);
            mNetworkTrafficStart.setAlpha(newStatusIconsAlpha);
            mNetworkTrafficCenter.setAlpha(newStatusIconsAlpha);
            mNetworkTrafficEnd.setAlpha(newStatusIconsAlpha);
            mBattery.setAlpha(newBatteryAlpha);
        }
    }
+10 −0
Original line number Diff line number Diff line
@@ -124,6 +124,8 @@ constructor(
        val leftClock: Clock = view.requireViewById(R.id.clock)
        val centerClock: Clock = view.findViewById(R.id.clock_center)
        val rightClock: Clock = view.findViewById(R.id.clock_right)
        val networkTrafficCenterView = view.findViewById<View>(R.id.network_traffic_holder_center)
        val networkTrafficStartView = view.findViewById<View>(R.id.network_traffic_holder_start)
        val notificationIconsArea = view.requireViewById<View>(R.id.notificationIcons)

        // CollapsedStatusBarFragment doesn't need this
@@ -484,13 +486,19 @@ constructor(
                            // animating, then we can use the baseVis default animation
                            if (animState.isAnimatingChip()) {
                                // Just apply the visibility of the view, but don't animate
                                networkTrafficCenterView.visibility = baseVis.visibility
                                networkTrafficStartView.visibility = baseVis.visibility
                                systemInfoView.visibility = baseVis.visibility
                                // Now apply the animation state, with its animator
                                when (animState) {
                                    AnimatingIn -> {
                                        systemEventChipAnimateIn?.invoke(networkTrafficCenterView)
                                        systemEventChipAnimateIn?.invoke(networkTrafficStartView)
                                        systemEventChipAnimateIn?.invoke(systemInfoView)
                                    }
                                    AnimatingOut -> {
                                        systemEventChipAnimateOut?.invoke(networkTrafficCenterView)
                                        systemEventChipAnimateOut?.invoke(networkTrafficStartView)
                                        systemEventChipAnimateOut?.invoke(systemInfoView)
                                    }
                                    else -> {
@@ -498,6 +506,8 @@ constructor(
                                    }
                                }
                            } else {
                                networkTrafficCenterView.adjustVisibility(baseVis)
                                networkTrafficStartView.adjustVisibility(baseVis)
                                systemInfoView.adjustVisibility(baseVis)
                            }
                        }