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

Commit 872a248f authored by David van Tonder's avatar David van Tonder Committed by Gerrit Code Review
Browse files

Merge "Re-add auto brightness configuration UI (1/2)" into cm-10.2

parents a0580e4b 62457962
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -349,20 +349,20 @@ public final class PowerManager {

    /**
     * Returns true if the screen auto-brightness adjustment setting should
     * be available in the UI.  This setting is experimental and disabled by default.
     * be available in the UI.
     * @hide
     */
    public static boolean useScreenAutoBrightnessAdjustmentFeature() {
        return SystemProperties.getBoolean("persist.power.useautobrightadj", false);
        return true;
    }

    /**
     * Returns true if the twilight service should be used to adjust screen brightness
     * policy.  This setting is experimental and disabled by default.
     * Returns true if the twilight service should be used to adjust
     * screen brightness policy.
     * @hide
     */
    public static boolean useTwilightAdjustmentFeature() {
        return SystemProperties.getBoolean("persist.power.usetwilightadj", false);
        return true;
    }

    /**
+7 −0
Original line number Diff line number Diff line
@@ -1793,6 +1793,13 @@ public final class Settings {
         */
        public static final String AUTO_BRIGHTNESS_RESPONSIVENESS = "auto_brightness_responsiveness";

        /**
         * Whether to enable adjustment of automatic brightness adjustment
         * to sunrise and sunset.
         * @hide
         */
        public static final String AUTO_BRIGHTNESS_TWILIGHT_ADJUSTMENT = "auto_brightness_twilight_adjustment";

        /**
         * Whether to enable the electron beam animation when turning screen off
         *
+22 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:paddingStart="8dp"
        android:paddingEnd="10dp"
        android:src="@drawable/ic_qs_brightness_auto_off"
        />
@@ -36,4 +37,25 @@
        android:layout_gravity="center_vertical"
        systemui:text="@string/status_bar_settings_auto_brightness_label"
        />
    <View
        android:id="@+id/brightness_setup_button_placeholder"
        android:layout_width="8dp"
        android:layout_height="48dp"
        />
    <ImageView
        android:id="@+id/brightness_setup_button_divider"
        android:src="?android:attr/dividerVertical"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        />
    <ImageView
        android:id="@+id/brightness_setup_button"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_gravity="center_vertical"
        android:scaleType="center"
        android:src="@drawable/ic_qs_settings"
        android:background="?android:attr/selectableItemBackground"
        />
</LinearLayout>
+2 −3
Original line number Diff line number Diff line
@@ -146,9 +146,8 @@
    <style name="BaseBrightnessDialogContainer">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_marginLeft">8dp</item>
        <item name="android:layout_marginRight">8dp</item>
        <item name="android:padding">16dp</item>
        <item name="android:paddingTop">16dp</item>
        <item name="android:paddingBottom">16dp</item>
    </style>
    <style name="BrightnessDialogContainer" parent="@style/BaseBrightnessDialogContainer" />

+6 −71
Original line number Diff line number Diff line
package com.android.systemui.quicksettings;

import android.app.Dialog;
import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Handler;
import android.os.RemoteException;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.view.WindowManagerGlobal;
import android.widget.ImageView;

import com.android.systemui.R;
import com.android.systemui.statusbar.phone.QuickSettingsController;
import com.android.systemui.statusbar.phone.QuickSettingsContainerView;
import com.android.systemui.settings.BrightnessController;
import com.android.systemui.settings.BrightnessController.BrightnessStateChangeCallback;
import com.android.systemui.settings.ToggleSlider;

public class BrightnessTile extends QuickSettingsTile implements BrightnessStateChangeCallback {

    private static final String TAG = "BrightnessTile";

    private final int mBrightnessDialogLongTimeout;
    private Dialog mBrightnessDialog;
    private final Handler mHandler;

    public BrightnessTile(Context context, final QuickSettingsController qsc, Handler handler) {
    public BrightnessTile(Context context, final QuickSettingsController qsc) {
        super(context, qsc);

        mHandler = handler;
        mBrightnessDialogLongTimeout = mContext.getResources().getInteger(R.integer.quick_settings_brightness_dialog_long_timeout);

        mOnClick = new OnClickListener() {

            @Override
            public void onClick(View v) {
                qsc.mBar.collapseAllPanels(true);
@@ -50,7 +31,6 @@ public class BrightnessTile extends QuickSettingsTile implements BrightnessState
        };

        mOnLongClick = new OnLongClickListener() {

            @Override
            public boolean onLongClick(View v) {
                startSettingsActivity(Settings.ACTION_DISPLAY_SETTINGS);
@@ -65,47 +45,10 @@ public class BrightnessTile extends QuickSettingsTile implements BrightnessState
    }

    private void showBrightnessDialog() {
        if (mBrightnessDialog == null) {
            mBrightnessDialog = new Dialog(mContext);
            mBrightnessDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            mBrightnessDialog.setContentView(R.layout.quick_settings_brightness_dialog);
            mBrightnessDialog.setCanceledOnTouchOutside(true);

            new BrightnessController(mContext,
                    (ImageView) mBrightnessDialog.findViewById(R.id.brightness_icon),
                    (ToggleSlider) mBrightnessDialog.findViewById(R.id.brightness_slider));

            mBrightnessDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
            mBrightnessDialog.getWindow().getAttributes().privateFlags |=
                    WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS;
            mBrightnessDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
        }
        if (!mBrightnessDialog.isShowing()) {
            try {
                WindowManagerGlobal.getWindowManagerService().dismissKeyguard();
            } catch (RemoteException e) {
                // Do nothing here
            }
            mBrightnessDialog.show();
            dismissBrightnessDialog(mBrightnessDialogLongTimeout);
        }
    }

    private void dismissBrightnessDialog(int timeout) {
        if (mBrightnessDialog != null) {
            mHandler.postDelayed(mDismissBrightnessDialogRunnable, timeout);
        }
        Intent intent = new Intent(Intent.ACTION_SHOW_BRIGHTNESS_DIALOG);
        mContext.sendBroadcast(intent);
    }

    private final Runnable mDismissBrightnessDialogRunnable = new Runnable() {
        @Override
        public void run() {
            if (mBrightnessDialog != null && mBrightnessDialog.isShowing()) {
                mBrightnessDialog.dismiss();
            }
        };
    };

    @Override
    void onPostCreate() {
        updateTile();
@@ -114,14 +57,6 @@ public class BrightnessTile extends QuickSettingsTile implements BrightnessState

    @Override
    public void updateResources() {
        updateTile();
        // Dismiss dialog before nullifying it.
        mDismissBrightnessDialogRunnable.run();
        mBrightnessDialog = null;
        super.updateResources();
    }

    private void updateTileResources() {
        updateTile();
        super.updateResources();
    }
@@ -144,11 +79,11 @@ public class BrightnessTile extends QuickSettingsTile implements BrightnessState

    @Override
    public void onBrightnessLevelChanged() {
        updateTileResources();
        updateResources();
    }

    @Override
    public void onChangeUri(ContentResolver resolver, Uri uri) {
        updateTileResources();
        updateResources();
    }
}
Loading