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

Commit 82eb8ec5 authored by Marc K's avatar Marc K Committed by Bruno Martins
Browse files

SystemUI: Make battery & clock clickable again in QS

Author: Marc K <morckx@gmail.com>
Date:   Sun Jun 27 14:55:50 2021 +0200

    SystemUI: Make battery & clock clickable again in QuickStatusBarHeader

    Change-Id: I944b1122739754cc704f65039319fb260fcdbf1d

Author: TheScarastic <warabhishek@e.email>
Date:   Thu Oct 27 08:06:56 2022 +0000

    SystemUI: Properly set onclick listener for battery

    Change-Id: I59acae19c382a2995777464ec545c608fcaa00c0

Change-Id: Ia79488995e1500d80a47e41b7c4268f433c558b9
parent 35fc36df
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -18,11 +18,13 @@ import static android.app.StatusBarManager.DISABLE2_QUICK_SETTINGS;
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;

import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.Rect;
import android.os.UserHandle;
import android.provider.AlarmClock;
import android.util.AttributeSet;
import android.util.Pair;
import android.view.DisplayCutout;
@@ -41,6 +43,7 @@ import com.android.settingslib.Utils;
import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.battery.BatteryMeterView;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.statusbar.phone.StatusBarContentInsetsProvider;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager;
@@ -71,6 +74,8 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu
    private TouchAnimator mIconsAlphaAnimator;
    private TouchAnimator mIconsAlphaAnimatorFixed;

    private final ActivityStarter mActivityStarter;

    protected QuickQSPanel mHeaderQsPanel;
    private View mDatePrivacyView;
    private View mDateView;
@@ -118,6 +123,7 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu

    public QuickStatusBarHeader(Context context, AttributeSet attrs) {
        super(context, attrs);
        mActivityStarter = Dependency.get(ActivityStarter.class);
    }

    /**
@@ -149,6 +155,9 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu

        mClockContainer = findViewById(R.id.clock_container);
        mClockView = findViewById(R.id.clock);
        mClockView.setOnClickListener(
                v -> mActivityStarter.postStartActivityDismissingKeyguard(
                        new Intent(AlarmClock.ACTION_SHOW_ALARMS), 0));
        mDatePrivacySeparator = findViewById(R.id.space);
        // Tint for the battery icons are handled in setupHost()
        mBatteryRemainingIcon = findViewById(R.id.batteryRemainingIcon);
@@ -386,10 +395,12 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu
            // Animates the icons and battery indicator from alpha 0 to 1, when the chip is visible
            mIconsAlphaAnimator = mIconsAlphaAnimatorFixed;
            mIconsAlphaAnimator.setPosition(mKeyguardExpansionFraction);
            setBatteryRemainingOnClick(false);
        } else {
            mIconsAlphaAnimator = null;
            mIconContainer.setAlpha(1);
            mBatteryRemainingIcon.setAlpha(1);
            setBatteryRemainingOnClick(true);
        }

    }
@@ -550,6 +561,9 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu

    public void updateEverything() {
        post(() -> setClickable(!mExpanded));
        if (mExpanded) {
            setBatteryRemainingOnClick(true);
        }
    }

    private void setContentMargins(View view, int marginStart, int marginEnd) {
@@ -574,4 +588,16 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu
        mClockView.setClockVisibleByUser(!StatusBarIconController.getIconHideList(
                mContext, newValue).contains("clock"));
    }

    private void setBatteryRemainingOnClick(boolean enable) {
        if (enable) {
            mBatteryRemainingIcon.setOnClickListener(
                    v -> mActivityStarter.postStartActivityDismissingKeyguard(
                            new Intent(Intent.ACTION_POWER_USAGE_SUMMARY), 0));
            mBatteryRemainingIcon.setClickable(true);
        } else {
            mBatteryRemainingIcon.setOnClickListener(null);
            mBatteryRemainingIcon.setClickable(false);
        }
    }
}