diff options
author | heydabop <heydabop@gmail.com> | 2015-03-31 14:59:03 -0500 |
---|---|---|
committer | Adnan Begovic <adnan@cyngn.com> | 2015-10-26 16:11:15 -0700 |
commit | 2676b7b1d2cd4aa73bb76a6a033a26fad27e3d1a (patch) | |
tree | b9a05c21fa0a64dddb631bf692e63d7a72eb2491 /src/com/android/settings/profiles | |
parent | 9ac1e31e2f15b2d00e1eceff0537becfe2a655e3 (diff) | |
download | packages_apps_Settings-2676b7b1d2cd4aa73bb76a6a033a26fad27e3d1a.zip packages_apps_Settings-2676b7b1d2cd4aa73bb76a6a033a26fad27e3d1a.tar.gz packages_apps_Settings-2676b7b1d2cd4aa73bb76a6a033a26fad27e3d1a.tar.bz2 |
Add brightness settings to Profiles (1/2)
Change-Id: I7d76b49c134db6b61ed84e33f6897d90a16db630
(cherry picked from commit f5c90803094bd4432fd181ae8189b1d5718b44a7)
Diffstat (limited to 'src/com/android/settings/profiles')
3 files changed, 129 insertions, 1 deletions
diff --git a/src/com/android/settings/profiles/SetupActionsFragment.java b/src/com/android/settings/profiles/SetupActionsFragment.java index 6f3edb2..baa901e 100644 --- a/src/com/android/settings/profiles/SetupActionsFragment.java +++ b/src/com/android/settings/profiles/SetupActionsFragment.java @@ -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; @@ -67,6 +68,7 @@ import com.android.settings.cyanogenmod.DeviceUtils; 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.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; @@ -204,6 +206,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())); mAdapter.notifyDataSetChanged(); } @@ -710,6 +713,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); @@ -801,6 +848,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) { diff --git a/src/com/android/settings/profiles/actions/ItemListAdapter.java b/src/com/android/settings/profiles/actions/ItemListAdapter.java index 793f28b..5da7532 100644 --- a/src/com/android/settings/profiles/actions/ItemListAdapter.java +++ b/src/com/android/settings/profiles/actions/ItemListAdapter.java @@ -35,7 +35,8 @@ public class ItemListAdapter extends ArrayAdapter<Item> { RINGMODE_ITEM, AIRPLANEMODE_ITEM, LOCKSCREENMODE_ITEM, - TRIGGER_ITEM + TRIGGER_ITEM, + BRIGHTNESS_ITEM } public ItemListAdapter(Context context, List<Item> items) { diff --git a/src/com/android/settings/profiles/actions/item/BrightnessItem.java b/src/com/android/settings/profiles/actions/item/BrightnessItem.java new file mode 100644 index 0000000..2792eff --- /dev/null +++ b/src/com/android/settings/profiles/actions/item/BrightnessItem.java @@ -0,0 +1,77 @@ +/* + * 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; + } + +} |