OmniGears: Add battery and notification count settings
Change-Id: I1d39c2d941ab260a1365168d506d418c3e876670
diff --git a/res/values/custom_arrays.xml b/res/values/custom_arrays.xml
new file mode 100644
index 0000000..33b909e
--- /dev/null
+++ b/res/values/custom_arrays.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The OmniROM Project
+
+ Parts Copyright (C) 2012-2013 The CyanogenMod Project
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ -->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="entries_status_bar_battery" translatable="false">
+ <item>@string/status_bar_style_icon</item>
+ <item>@string/status_bar_battery_status_percentage</item>
+ <item>@string/status_bar_battery_status_circle</item>
+ <item>@string/status_bar_battery_status_circle_percentage</item>
+ <item>@string/status_bar_style_hidden</item>
+ </string-array>
+
+ <string-array name="values_status_bar_battery" translatable="false">
+ <item>0</item>
+ <item>1</item>
+ <item>2</item>
+ <item>3</item>
+ <item>4</item>
+ </string-array>
+</resources>
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
new file mode 100644
index 0000000..413006b
--- /dev/null
+++ b/res/values/custom_strings.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The OmniROM Project
+
+ Parts Copyright (C) 2012-2013 The CyanogenMod Project
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ -->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="bars_and_menus_settings">Bars and menus</string>
+ <string name="bars_and_menus_category_status_bar_title">Status bar</string>
+ <string name="status_bar_battery_title">Battery style</string>
+ <string name="status_bar_signal_text_title">Signal status style</string>
+ <string name="status_bar_style_icon">Icon</string>
+ <string name="status_bar_style_hidden">Hidden</string>
+ <string name="status_bar_signal_text_show_text">Text</string>
+ <string name="status_bar_battery_status_percentage">Percentage</string>
+ <string name="status_bar_battery_status_circle">Circle</string>
+ <string name="status_bar_battery_status_circle_percentage">Circle with percentage</string>
+ <string name="status_bar_notif_count_title">Show notification count</string>
+ <string name="status_bar_notif_count_summary">Display number of pending notifications</string>
+</resources>
+
diff --git a/res/xml/KEEPME b/res/xml/KEEPME
deleted file mode 100644
index e69de29..0000000
--- a/res/xml/KEEPME
+++ /dev/null
diff --git a/res/xml/bars_and_menus_settings.xml b/res/xml/bars_and_menus_settings.xml
new file mode 100644
index 0000000..243f6cc
--- /dev/null
+++ b/res/xml/bars_and_menus_settings.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The OmniROM Project
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ -->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ android:title="@string/sound_settings"
+ android:key="sound_settings"
+ xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
+
+ <!-- Status bar -->
+ <PreferenceCategory
+ android:key="category_status_bar"
+ android:title="@string/bars_and_menus_category_status_bar_title"/>
+
+ <ListPreference
+ android:key="status_bar_battery"
+ android:dialogTitle="@string/status_bar_battery_title"
+ android:title="@string/status_bar_battery_title"
+ android:entries="@array/entries_status_bar_battery"
+ android:entryValues="@array/values_status_bar_battery" />
+
+ <CheckBoxPreference
+ android:key="status_bar_notif_count"
+ android:title="@string/status_bar_notif_count_title"
+ android:summary="@string/status_bar_notif_count_summary"
+ android:defaultValue="false" />
+
+</PreferenceScreen>
diff --git a/src/org/omnirom/omnigears/BarsAndMenusSettings.java b/src/org/omnirom/omnigears/BarsAndMenusSettings.java
new file mode 100644
index 0000000..94dc7d3
--- /dev/null
+++ b/src/org/omnirom/omnigears/BarsAndMenusSettings.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2013 The OmniROM Project
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package org.omnirom.omnigears;
+
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.Utils;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.BroadcastReceiver;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.preference.CheckBoxPreference;
+import android.preference.ListPreference;
+import android.preference.Preference;
+import android.preference.PreferenceGroup;
+import android.preference.PreferenceScreen;
+import android.provider.MediaStore;
+import android.provider.Settings;
+import android.util.Log;
+
+import java.util.List;
+
+public class BarsAndMenusSettings extends SettingsPreferenceFragment implements
+ Preference.OnPreferenceChangeListener {
+ private static final String TAG = "BarsAndMenusSettings";
+
+ private static final String STATUS_BAR_BATTERY = "status_bar_battery";
+ private static final String STATUS_BAR_NOTIF_COUNT = "status_bar_notif_count";
+
+ private ListPreference mStatusBarBattery;
+ private CheckBoxPreference mStatusBarNotifCount;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.bars_and_menus_settings);
+
+ PreferenceScreen prefSet = getPreferenceScreen();
+ ContentResolver resolver = getActivity().getContentResolver();
+
+ mStatusBarBattery = (ListPreference) prefSet.findPreference(STATUS_BAR_BATTERY);
+ int statusBarBattery = Settings.System.getInt(resolver, Settings.System.STATUS_BAR_BATTERY, 0);
+ mStatusBarBattery.setValue(String.valueOf(statusBarBattery));
+ mStatusBarBattery.setSummary(mStatusBarBattery.getEntry());
+ mStatusBarBattery.setOnPreferenceChangeListener(this);
+
+ mStatusBarNotifCount = (CheckBoxPreference) prefSet.findPreference(STATUS_BAR_NOTIF_COUNT);
+ mStatusBarNotifCount.setChecked(Settings.System.getInt(resolver,
+ Settings.System.STATUS_BAR_NOTIF_COUNT, 0) == 1);
+ mStatusBarNotifCount.setOnPreferenceChangeListener(this);
+
+ }
+
+ @Override
+ public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+ return true;
+ }
+
+ public boolean onPreferenceChange(Preference preference, Object objValue) {
+ ContentResolver resolver = getActivity().getContentResolver();
+ if (preference == mStatusBarBattery) {
+ int statusBarBattery = Integer.valueOf((String) objValue);
+ int index = mStatusBarBattery.findIndexOfValue((String) objValue);
+ Settings.System.putInt(resolver, Settings.System.STATUS_BAR_BATTERY, statusBarBattery);
+ mStatusBarBattery.setSummary(mStatusBarBattery.getEntries()[index]);
+ } else if (preference == mStatusBarNotifCount) {
+ boolean value = (Boolean) objValue;
+ Settings.System.putInt(resolver, Settings.System.STATUS_BAR_NOTIF_COUNT, value ? 1 : 0);
+ } else {
+ return false;
+ }
+
+ return true;
+ }
+}
+
diff --git a/src/org/omnirom/omnigears/KEEPME b/src/org/omnirom/omnigears/KEEPME
deleted file mode 100644
index e69de29..0000000
--- a/src/org/omnirom/omnigears/KEEPME
+++ /dev/null