summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven <stevenharperuk.aosp@gmail.com>2012-08-02 19:22:38 +0100
committerAndrew Dodd <atd7@cornell.edu>2012-09-14 18:14:05 -0400
commite04c67da4bf663d21cd1fa3437e60b96b4a3cc46 (patch)
tree0f5fe9ffa5ef08588308bbba4f531fdf87584763
parent3dba7a1219ac27d06a4349d5bd3a99691b599b8b (diff)
downloaddevice_samsung_n7000-e04c67da4bf663d21cd1fa3437e60b96b4a3cc46.zip
device_samsung_n7000-e04c67da4bf663d21cd1fa3437e60b96b4a3cc46.tar.gz
device_samsung_n7000-e04c67da4bf663d21cd1fa3437e60b96b4a3cc46.tar.bz2
Add Dock USB Audio Support for Samsung Car / Desk Docks 2 of 2
This adds a new Tab in the GalaxyS2Settings.apk called Dock There is a new section in this for Dock Audio. A new Checkbox sets the users preference to route the Dock Audio On Startup or when the checkbox is changed, an intent is fired This intent is recieved by the services/java/com/android/server/WiredAccessoryObserver.java See 1 of 2 http://review.cyanogenmod.com/#/c/20586/
-rw-r--r--DeviceSettings/res/values/strings.xml5
-rw-r--r--DeviceSettings/res/xml/dock_preferences.xml13
-rw-r--r--DeviceSettings/src/com/cyanogenmod/settings/device/DeviceSettings.java3
-rw-r--r--DeviceSettings/src/com/cyanogenmod/settings/device/DockFragmentActivity.java75
-rw-r--r--DeviceSettings/src/com/cyanogenmod/settings/device/Startup.java1
5 files changed, 97 insertions, 0 deletions
diff --git a/DeviceSettings/res/values/strings.xml b/DeviceSettings/res/values/strings.xml
index be525f1..43d1dbf 100644
--- a/DeviceSettings/res/values/strings.xml
+++ b/DeviceSettings/res/values/strings.xml
@@ -39,4 +39,9 @@
<string name="category_radio_title">Radio</string>
<string name="hspa_title_head">HSPA</string>
<string name="hspa_summary_head">Enable HSDPA/HSUPA</string>
+
+ <string name="category_dock_title">Dock</string>
+ <string name="dockaudio_subcat_title">DOCK AUDIO</string>
+ <string name="use_dock_audio_title_head">Use Dock USB Audio</string>
+ <string name="use_dock_audio_summary_head">Use the passive audio out on the dock</string>
</resources>
diff --git a/DeviceSettings/res/xml/dock_preferences.xml b/DeviceSettings/res/xml/dock_preferences.xml
new file mode 100644
index 0000000..5f5fdf4
--- /dev/null
+++ b/DeviceSettings/res/xml/dock_preferences.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+ <PreferenceCategory
+ android:title="@string/dockaudio_subcat_title">
+ <!-- Use Dock Audio -->
+ <CheckBoxPreference
+ android:key="dock_audio"
+ android:title="@string/use_dock_audio_title_head"
+ android:summary="@string/use_dock_audio_summary_head"
+ />
+ </PreferenceCategory>
+</PreferenceScreen>
+
diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/DeviceSettings.java b/DeviceSettings/src/com/cyanogenmod/settings/device/DeviceSettings.java
index a60d9e8..e60cd0c 100644
--- a/DeviceSettings/src/com/cyanogenmod/settings/device/DeviceSettings.java
+++ b/DeviceSettings/src/com/cyanogenmod/settings/device/DeviceSettings.java
@@ -47,6 +47,7 @@ public class DeviceSettings extends FragmentActivity {
public static final String KEY_TOUCHKEY_LIGHT = "touchkey_light";
public static final String KEY_TOUCHKEY_TIMEOUT = "touchkey_timeout";
public static final String KEY_VIBRATOR_INTENSITY = "vibrator_intensity";
+ public static final String KEY_USE_DOCK_AUDIO = "dock_audio";
ViewPager mViewPager;
TabsAdapter mTabsAdapter;
@@ -73,6 +74,8 @@ public class DeviceSettings extends FragmentActivity {
SensorsFragmentActivity.class, null);
mTabsAdapter.addTab(bar.newTab().setText(R.string.category_haptic_title),
HapticFragmentActivity.class, null);
+ mTabsAdapter.addTab(bar.newTab().setText(R.string.category_dock_title),
+ DockFragmentActivity.class, null);
if (savedInstanceState != null) {
bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/DockFragmentActivity.java b/DeviceSettings/src/com/cyanogenmod/settings/device/DockFragmentActivity.java
new file mode 100644
index 0000000..541d90b
--- /dev/null
+++ b/DeviceSettings/src/com/cyanogenmod/settings/device/DockFragmentActivity.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2012 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.cyanogenmod.settings.device;
+
+import android.app.ActivityManagerNative;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.preference.CheckBoxPreference;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceFragment;
+import android.preference.PreferenceManager;
+import android.preference.PreferenceScreen;
+import android.util.Log;
+
+import com.cyanogenmod.settings.device.R;
+
+public class DockFragmentActivity extends PreferenceFragment {
+
+ private static final String PREF_ENABLED = "1";
+ private static final String TAG = "GalaxyS2Parts_General";
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ addPreferencesFromResource(R.xml.dock_preferences);
+ PreferenceScreen prefSet = getPreferenceScreen();
+
+ }
+
+ @Override
+ public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+
+ String boxValue;
+ String key = preference.getKey();
+
+ Log.w(TAG, "key: " + key);
+
+ if (key.compareTo(DeviceSettings.KEY_USE_DOCK_AUDIO) == 0) {
+ boxValue = (((CheckBoxPreference)preference).isChecked() ? "1" : "0");
+ Intent i = new Intent("com.cyanogenmod.settings.SamsungDock");
+ i.putExtra("data", boxValue);
+ ActivityManagerNative.broadcastStickyIntent(i, null);
+ }
+
+ return true;
+ }
+
+ public static void restore(Context context) {
+ SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
+ boolean dockAudio = sharedPrefs.getBoolean(DeviceSettings.KEY_USE_DOCK_AUDIO, false);
+ Intent i = new Intent("com.cyanogenmod.settings.SamsungDock");
+ i.putExtra("data", (dockAudio? "1" : "0"));
+ ActivityManagerNative.broadcastStickyIntent(i, null);
+
+ }
+
+}
diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/Startup.java b/DeviceSettings/src/com/cyanogenmod/settings/device/Startup.java
index cb3624a..a207ac8 100644
--- a/DeviceSettings/src/com/cyanogenmod/settings/device/Startup.java
+++ b/DeviceSettings/src/com/cyanogenmod/settings/device/Startup.java
@@ -33,6 +33,7 @@ public class Startup extends BroadcastReceiver {
VibratorIntensity.restore(context);
SensorsFragmentActivity.restore(context);
TouchkeyTimeout.restore(context);
+ DockFragmentActivity.restore(context);
}
}