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

Commit 2865ab02 authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

Prototype flag for moving controls

This allows the controls frame to live in either NPV or QSPanel

adb shell settings put system npv_plugin_flag X

where X is:
0 - not show plugin
1 - show in NPV
2 - show in QSPanel

After changing the setting: `adb shell stop && adb shell start`

Test: manual
Change-Id: I5ad248bb3651b42bfbb9bd6e25fbe0db7408a14a
parent 0cfa8916
Loading
Loading
Loading
Loading
+23 −1
Original line number Diff line number Diff line
@@ -28,10 +28,12 @@ import android.metrics.LogMaker;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import android.service.quicksettings.Tile;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.LinearLayout;

import com.android.internal.logging.MetricsLogger;
@@ -49,6 +51,8 @@ import com.android.systemui.qs.customize.QSCustomizer;
import com.android.systemui.qs.external.CustomTile;
import com.android.systemui.settings.BrightnessController;
import com.android.systemui.settings.ToggleSliderView;
import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.statusbar.phone.NPVPluginManager;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
import com.android.systemui.statusbar.policy.BrightnessMirrorController.BrightnessMirrorListener;
import com.android.systemui.tuner.TunerService;
@@ -98,6 +102,10 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
    private BrightnessMirrorController mBrightnessMirrorController;
    private View mDivider;

    private FrameLayout mPluginFrame;
    private final PluginManager mPluginManager;
    private NPVPluginManager mNPVPluginManager;

    public QSPanel(Context context) {
        this(context, null);
    }
@@ -106,9 +114,13 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
        this(context, attrs, null);
    }

    public QSPanel(Context context, AttributeSet attrs, DumpController dumpController) {
        this(context, attrs, dumpController, null);
    }

    @Inject
    public QSPanel(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs,
            DumpController dumpController) {
            DumpController dumpController, PluginManager pluginManager) {
        super(context, attrs);
        mContext = context;

@@ -136,6 +148,15 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
        mBrightnessController = new BrightnessController(getContext(),
                findViewById(R.id.brightness_slider));
        mDumpController = dumpController;
        mPluginManager = pluginManager;
        if (mPluginManager != null && Settings.System.getInt(
                mContext.getContentResolver(), "npv_plugin_flag", 0) == 2) {
            mPluginFrame = (FrameLayout) LayoutInflater.from(mContext).inflate(
                    R.layout.status_bar_expanded_plugin_frame, this, false);
            addView(mPluginFrame);
            mNPVPluginManager = new NPVPluginManager(mPluginFrame, mPluginManager);
        }

    }

    protected void addDivider() {
@@ -377,6 +398,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
        if (mListening) {
            refreshAllTiles();
        }
        if (mNPVPluginManager != null) mNPVPluginManager.setListening(listening);
    }

    public void setListening(boolean listening, boolean expanded) {
+20 −10
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import android.hardware.biometrics.BiometricSourceType;
import android.os.PowerManager;
import android.os.SystemClock;
import android.provider.DeviceConfig;
import android.provider.Settings;
import android.util.AttributeSet;
import android.util.Log;
import android.util.MathUtils;
@@ -530,7 +531,10 @@ public class NotificationPanelView extends PanelView implements
        mQsNavbarScrim = findViewById(R.id.qs_navbar_scrim);
        mLastOrientation = getResources().getConfiguration().orientation;
        mPluginFrame = findViewById(R.id.plugin_frame);
        if (Settings.System.getInt(
                mContext.getContentResolver(), "npv_plugin_flag", 0) == 1) {
            mNPVPluginManager = new NPVPluginManager(mPluginFrame, mPluginManager);
        }


        initBottomArea();
@@ -767,7 +771,7 @@ public class NotificationPanelView extends PanelView implements
            mPluginFrame.setLayoutParams(lp);
        }

        mNPVPluginManager.replaceFrameLayout(mPluginFrame);
        if (mNPVPluginManager != null) mNPVPluginManager.replaceFrameLayout(mPluginFrame);
    }

    private void initBottomArea() {
@@ -797,8 +801,10 @@ public class NotificationPanelView extends PanelView implements
        int oldMaxHeight = mQsMaxExpansionHeight;
        if (mQs != null) {
            mQsMinExpansionHeight = mKeyguardShowing ? 0 : mQs.getQsMinExpansionHeight();
            if (mNPVPluginManager != null) {
                mNPVPluginManager.setYOffset(mQsMinExpansionHeight);
                mQsMinExpansionHeight += mNPVPluginManager.getHeight();
            }
            mQsMaxExpansionHeight = mQs.getDesiredHeight();
            mNotificationStackScroller.setMaxTopPadding(
                    mQsMaxExpansionHeight + mQsNotificationTopPadding);
@@ -1904,9 +1910,11 @@ public class NotificationPanelView extends PanelView implements
                mBarState != StatusBarState.KEYGUARD && (!mQsExpanded
                        || mQsExpansionFromOverscroll));
        updateEmptyShadeView();
        if (mNPVPluginManager != null) {
            mNPVPluginManager.changeVisibility((mBarState != StatusBarState.KEYGUARD)
                    ? View.VISIBLE
                    : View.INVISIBLE);
        }
        mQsNavbarScrim.setVisibility(mBarState == StatusBarState.SHADE && mQsExpanded
                && !mStackScrollerOverscrolling && mQsScrimEnabled
                ? View.VISIBLE
@@ -1964,7 +1972,9 @@ public class NotificationPanelView extends PanelView implements
        float qsExpansionFraction = getQsExpansionFraction();
        mQs.setQsExpansion(qsExpansionFraction, getHeaderTranslation());
        int heightDiff = mQs.getDesiredHeight() - mQs.getQsMinExpansionHeight();
        if (mNPVPluginManager != null) {
            mNPVPluginManager.setExpansion(qsExpansionFraction, getHeaderTranslation(), heightDiff);
        }
        mNotificationStackScroller.setQsExpansionFraction(qsExpansionFraction);
    }

@@ -2385,7 +2395,7 @@ public class NotificationPanelView extends PanelView implements
                appearAmount = mNotificationStackScroller.calculateAppearFractionBypass();
            }
            startHeight = -mQs.getQsMinExpansionHeight();
            startHeight -= mNPVPluginManager.getHeight();
            if (mNPVPluginManager != null) startHeight -= mNPVPluginManager.getHeight();
        }
        float translation = MathUtils.lerp(startHeight, 0,
                Math.min(1.0f, appearAmount))
@@ -2529,7 +2539,7 @@ public class NotificationPanelView extends PanelView implements
        mKeyguardStatusBar.setListening(listening);
        if (mQs == null) return;
        mQs.setListening(listening);
        mNPVPluginManager.setListening(listening);
        if (mNPVPluginManager != null) mNPVPluginManager.setListening(listening);
    }

    @Override