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

Commit 97b87a99 authored by Jason Monk's avatar Jason Monk
Browse files

Add metrics to brightness slider

Had to add a way for BrightnessController to know when its the end
of a touch, so that we don't spam the event logs with intermediate
values.

Added visibility to BrightnessDialog as this is what settings
launches.

Bug: 21528168
Change-Id: Ie214b4ddb0c9f9bbe8c4f182f9c59f229963ebc7
parent 805fc82e
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -37,6 +37,9 @@ public class MetricsLogger implements MetricsConstants {
    public static final int ACTION_ACTIVITY_CHOOSER_PICKED_APP_TARGET = 215;
    public static final int ACTION_ACTIVITY_CHOOSER_PICKED_SERVICE_TARGET = 216;
    public static final int ACTION_ACTIVITY_CHOOSER_PICKED_STANDARD_TARGET = 217;
    public static final int ACTION_BRIGHTNESS = 218;
    public static final int ACTION_BRIGHTNESS_AUTO = 219;
    public static final int BRIGHTNESS_DIALOG = 220;
    // Temporary constants go here, to await migration to MetricsConstants.

    public static void visible(Context context, int category) throws IllegalArgumentException {
+10 −1
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@ import android.os.UserHandle;
import android.provider.Settings;
import android.widget.ImageView;

import com.android.internal.logging.MetricsLogger;

import java.util.ArrayList;

public class BrightnessController implements ToggleSlider.Listener {
@@ -195,12 +197,16 @@ public class BrightnessController implements ToggleSlider.Listener {
    }

    @Override
    public void onChanged(ToggleSlider view, boolean tracking, boolean automatic, int value) {
    public void onChanged(ToggleSlider view, boolean tracking, boolean automatic, int value,
            boolean stopTracking) {
        updateIcon(mAutomatic);
        if (mExternalChange) return;

        if (!mAutomatic) {
            final int val = value + mMinimumBacklight;
            if (stopTracking) {
                MetricsLogger.action(mContext, MetricsLogger.ACTION_BRIGHTNESS, val);
            }
            setBrightness(val);
            if (!tracking) {
                AsyncTask.execute(new Runnable() {
@@ -213,6 +219,9 @@ public class BrightnessController implements ToggleSlider.Listener {
            }
        } else {
            final float adj = value / (BRIGHTNESS_ADJ_RESOLUTION / 2f) - 1;
            if (stopTracking) {
                MetricsLogger.action(mContext, MetricsLogger.ACTION_BRIGHTNESS_AUTO, value);
            }
            setBrightnessAdj(adj);
            if (!tracking) {
                AsyncTask.execute(new Runnable() {
+3 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;

import com.android.internal.logging.MetricsLogger;
import com.android.systemui.R;

/** A dialog that provides controls for adjusting the screen brightness. */
@@ -52,11 +53,13 @@ public class BrightnessDialog extends Activity {
    protected void onStart() {
        super.onStart();
        mBrightnessController.registerCallbacks();
        MetricsLogger.visible(this, MetricsLogger.BRIGHTNESS_DIALOG);
    }

    @Override
    protected void onStop() {
        super.onStop();
        MetricsLogger.hidden(this, MetricsLogger.BRIGHTNESS_DIALOG);
        mBrightnessController.unregisterCallbacks();
    }

+8 −7
Original line number Diff line number Diff line
@@ -35,7 +35,8 @@ import com.android.systemui.statusbar.policy.BrightnessMirrorController;
public class ToggleSlider extends RelativeLayout {
    public interface Listener {
        public void onInit(ToggleSlider v);
        public void onChanged(ToggleSlider v, boolean tracking, boolean checked, int value);
        public void onChanged(ToggleSlider v, boolean tracking, boolean checked, int value,
                boolean stopTracking);
    }

    private Listener mListener;
@@ -143,7 +144,7 @@ public class ToggleSlider extends RelativeLayout {

            if (mListener != null) {
                mListener.onChanged(
                        ToggleSlider.this, mTracking, checked, mSlider.getProgress());
                        ToggleSlider.this, mTracking, checked, mSlider.getProgress(), false);
            }

            if (mMirror != null) {
@@ -157,7 +158,7 @@ public class ToggleSlider extends RelativeLayout {
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            if (mListener != null) {
                mListener.onChanged(
                        ToggleSlider.this, mTracking, mToggle.isChecked(), progress);
                        ToggleSlider.this, mTracking, mToggle.isChecked(), progress, false);
            }
        }

@@ -166,8 +167,8 @@ public class ToggleSlider extends RelativeLayout {
            mTracking = true;

            if (mListener != null) {
                mListener.onChanged(
                        ToggleSlider.this, mTracking, mToggle.isChecked(), mSlider.getProgress());
                mListener.onChanged(ToggleSlider.this, mTracking, mToggle.isChecked(),
                        mSlider.getProgress(), false);
            }

            mToggle.setChecked(false);
@@ -183,8 +184,8 @@ public class ToggleSlider extends RelativeLayout {
            mTracking = false;

            if (mListener != null) {
                mListener.onChanged(
                        ToggleSlider.this, mTracking, mToggle.isChecked(), mSlider.getProgress());
                mListener.onChanged(ToggleSlider.this, mTracking, mToggle.isChecked(),
                        mSlider.getProgress(), true);
            }

            if (mMirrorController != null) {