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

Commit 1679b368 authored by Winson Chung's avatar Winson Chung
Browse files

Adding brightness dialog to quick settings.

Change-Id: I81f640138057c26320d41f70c7f47a518fc1bd4a
parent e641b6a9
Loading
Loading
Loading
Loading
+37 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2012 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="16dp">

    <ImageView
        android:id="@+id/brightness_icon"
        style="@style/SystemBarPanelSettingsIcon"
        android:src="@drawable/ic_sysbar_brightness"
        />
    <com.android.systemui.statusbar.policy.ToggleSlider
        android:id="@+id/brightness_slider"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:layout_marginRight="2dp"
        systemui:text="@string/status_bar_settings_auto_brightness_label"
        />
</LinearLayout>
+4 −0
Original line number Diff line number Diff line
@@ -433,6 +433,10 @@
    <string name="quick_settings_wifi_display_label">Wifi Display</string>
    <!-- QuickSettings: Wifi display [CHAR LIMIT=NONE] -->
    <string name="quick_settings_wifi_display_no_connection_label">No Wifi Display Connection</string>
    <!-- QuickSettings: Brightness dialog title [CHAR LIMIT=NONE] -->
    <string name="quick_settings_brightness_dialog_title">Brightness</string>
    <!-- QuickSettings: Brightness dialog auto brightness button [CHAR LIMIT=NONE] -->
    <string name="quick_settings_brightness_dialog_auto_brightness_label">AUTO</string>

    <!-- Wifi display: Scan button text [CHAR LIMIT=15] -->
    <string name="wifi_display_scan">Scan</string>
+37 −4
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.CursorLoader;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.Loader;
@@ -36,6 +37,7 @@ import android.provider.ContactsContract;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -47,8 +49,10 @@ import com.android.systemui.R;
import com.android.systemui.statusbar.phone.QuickSettingsModel.State;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.BluetoothController;
import com.android.systemui.statusbar.policy.BrightnessController;
import com.android.systemui.statusbar.policy.LocationController;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.ToggleSlider;

import java.util.ArrayList;
import java.util.Comparator;
@@ -68,6 +72,9 @@ class QuickSettings {
    private WifiDisplayStatus mWifiDisplayStatus;
    private WifiDisplayListAdapter mWifiDisplayListAdapter;
    
    private BrightnessController mBrightnessController;
    private Dialog mBrightnessDialog;

    private CursorLoader mUserInfoLoader;

    // The set of QuickSettingsTiles that have dynamic spans (and need to be updated on
@@ -160,9 +167,9 @@ class QuickSettings {
        startSettingsActivity(intent);
    }
    private void startSettingsActivity(Intent intent) {
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        mContext.startActivity(intent);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        mBar.collapseAllPanels(true);
        mContext.startActivity(intent);

    }

@@ -328,7 +335,9 @@ class QuickSettings {
        brightnessTile.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startSettingsActivity(android.provider.Settings.ACTION_DISPLAY_SETTINGS);
                // startSettingsActivity(android.provider.Settings.ACTION_DISPLAY_SETTINGS);
                mBar.collapseAllPanels(true);
                showBrightnessDialog();
            }
        });
        parent.addView(brightnessTile);
@@ -362,8 +371,8 @@ class QuickSettings {
        wifiDisplayTile.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showWifiDisplayDialog();
                mBar.collapseAllPanels(true);
                showWifiDisplayDialog();
            }
        });
        mModel.addWifiDisplayTile(wifiDisplayTile, new QuickSettingsModel.RefreshCallback() {
@@ -405,6 +414,30 @@ class QuickSettings {
        mContainerView.requestLayout();
    }
    
    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);
        
            mBrightnessController = new BrightnessController(mContext,
                    (ToggleSlider) mBrightnessDialog.findViewById(R.id.brightness_slider));
            mBrightnessDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
                @Override
                public void onDismiss(DialogInterface dialog) {
                    mBrightnessController = null;
                }
            });
            
            mBrightnessDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
            mBrightnessDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
        }
        if (!mBrightnessDialog.isShowing()) {
            mBrightnessDialog.show();
        }
    }

    // Wifi Display
    private void showWifiDisplayDialog() {
        mDisplayManager.scanWifiDisplays();