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

Commit f7edb005 authored by heydabop's avatar heydabop Committed by Roman Birg
Browse files

Add brightness settings to Profiles (1/2)

Change-Id: I7d76b49c134db6b61ed84e33f6897d90a16db630
(cherry picked from commit f5c90803)
parent 9ad27a5f
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2015 The CyanogenMod 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"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical"
              android:gravity="center_horizontal">

    <CheckBox
            android:id="@+id/checkbox"
            android:text="@string/profile_brightness_override_checkbox_label"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="20dip" />

    <SeekBar android:id="@+id/seekbar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:padding="20dip" />

</LinearLayout>
+5 −0
Original line number Diff line number Diff line
@@ -124,6 +124,11 @@
    <string name="profile_lockmode_disabled_summary">Disable lock screen</string>
    <string name="profile_airplanemode_title">Airplane mode</string>

    <string name="profile_brightness_title">Screen brightness</string>

    <string name="profile_brightness_override_summary">Set to %1$d%%</string>
    <string name="profile_brightness_override_checkbox_label">Override brightness</string>

    <!-- Connection override toggles (not all are used at this time ) -->
    <string name="toggleWifi">Wi\u2011Fi</string>
    <string name="toggleWifiAp">Portable Wi\u2011Fi hotspot</string>
+50 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.profiles;
import android.app.Activity;
import android.app.AirplaneModeSettings;
import android.app.AlertDialog;
import android.app.BrightnessSettings;
import android.app.ConnectionSettings;
import android.app.Dialog;
import android.app.Fragment;
@@ -71,6 +72,7 @@ import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.profiles.actions.ItemListAdapter;
import com.android.settings.profiles.actions.item.AirplaneModeItem;
import com.android.settings.profiles.actions.item.AppGroupItem;
import com.android.settings.profiles.actions.item.BrightnessItem;
import com.android.settings.profiles.actions.item.ConnectionOverrideItem;
import com.android.settings.profiles.actions.item.Header;
import com.android.settings.profiles.actions.item.Item;
@@ -208,6 +210,7 @@ public class SetupActionsFragment extends SettingsPreferenceFragment
        mItems.add(new RingModeItem(mProfile.getRingMode()));
        mItems.add(new AirplaneModeItem(mProfile.getAirplaneMode()));
        mItems.add(new LockModeItem(mProfile));
        mItems.add(new BrightnessItem(mProfile.getBrightness()));

        // app groups
        if (SettingsActivity.showAdvancedPreferences(getActivity())) {
@@ -746,6 +749,50 @@ public class SetupActionsFragment extends SettingsPreferenceFragment
        builder.show();
    }

    public void requestBrightnessDialog(final BrightnessSettings brightnessSettings) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle(R.string.profile_brightness_title);

        final LayoutInflater inflater = LayoutInflater.from(getActivity());
        final View view = inflater.inflate(R.layout.dialog_profiles_brightness_override, null);
        final SeekBar seekBar = (SeekBar) view.findViewById(R.id.seekbar);
        final CheckBox override = (CheckBox) view.findViewById(R.id.checkbox);
        override.setChecked(brightnessSettings.isOverride());
        override.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                brightnessSettings.setOverride(isChecked);
                seekBar.setEnabled(isChecked);

                mProfile.setBrightness(brightnessSettings);
                mAdapter.notifyDataSetChanged();
                updateProfile();
            }
        });
        seekBar.setEnabled(brightnessSettings.isOverride());
        seekBar.setMax(255);
        seekBar.setProgress(brightnessSettings.getValue());
        builder.setView(view);
        builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                int value = seekBar.getProgress();
                brightnessSettings.setValue(value);
                mProfile.setBrightness(brightnessSettings);
                mAdapter.notifyDataSetChanged();
                updateProfile();
                dialog.dismiss();
            }
        });
        builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });
        builder.show();
    }

    private void requestProfileName() {
        LayoutInflater inflater = LayoutInflater.from(getActivity());
        View dialogView = inflater.inflate(R.layout.profile_name_dialog, null);
@@ -868,6 +915,9 @@ public class SetupActionsFragment extends SettingsPreferenceFragment
        if (itemAtPosition instanceof AirplaneModeItem) {
            AirplaneModeItem item = (AirplaneModeItem) itemAtPosition;
            requestAirplaneModeDialog(item.getSettings());
        } else if (itemAtPosition instanceof BrightnessItem) {
            BrightnessItem item = (BrightnessItem) itemAtPosition;
            requestBrightnessDialog(item.getSettings());
        } else if (itemAtPosition instanceof LockModeItem) {
            requestLockscreenModeDialog();
        } else if (itemAtPosition instanceof RingModeItem) {
+2 −1
Original line number Diff line number Diff line
@@ -36,7 +36,8 @@ public class ItemListAdapter extends ArrayAdapter<Item> {
        AIRPLANEMODE_ITEM,
        LOCKSCREENMODE_ITEM,
        TRIGGER_ITEM,
        APP_GROUP_ITEM
        APP_GROUP_ITEM,
        BRIGHTNESS_ITEM
    }

    public ItemListAdapter(Context context, List<Item> items) {
+77 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2015 The CyanogenMod 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.
 */
package com.android.settings.profiles.actions.item;

import android.app.BrightnessSettings;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.android.settings.R;
import com.android.settings.profiles.actions.ItemListAdapter;

public class BrightnessItem implements Item {
    BrightnessSettings mSettings;

    public BrightnessItem(BrightnessSettings brightnessSettings) {
        if (brightnessSettings == null) {
            brightnessSettings = new BrightnessSettings();
        }
        mSettings = brightnessSettings;
    }

    @Override
    public ItemListAdapter.RowType getRowType() {
        return ItemListAdapter.RowType.BRIGHTNESS_ITEM;
    }

    @Override
    public boolean isEnabled() {
        return true;
    }

    @Override
    public View getView(LayoutInflater inflater, View convertView, ViewGroup parent) {
        View view;
        if (convertView == null) {
            view = inflater.inflate(R.layout.list_two_line_item, parent, false);
            // Do some initialization
        } else {
            view = convertView;
        }

        TextView text = (TextView) view.findViewById(R.id.title);
        text.setText(R.string.profile_brightness_title);

        Context context = inflater.getContext();
        TextView desc = (TextView) view.findViewById(R.id.summary);
        if (mSettings.isOverride()) {
            desc.setText(context.getResources().getString(
                    R.string.profile_brightness_override_summary,
                    (int)((mSettings.getValue() * 100f)/255)));
        } else {
            desc.setText(context.getString(R.string.profile_action_none));
        }

        return view;
    }

    public BrightnessSettings getSettings() {
        return mSettings;
    }

}