diff options
author | Steven <stevenharperuk.aosp@gmail.com> | 2012-08-02 19:22:38 +0100 |
---|---|---|
committer | Andrew Dodd <atd7@cornell.edu> | 2012-09-14 18:14:05 -0400 |
commit | e04c67da4bf663d21cd1fa3437e60b96b4a3cc46 (patch) | |
tree | 0f5fe9ffa5ef08588308bbba4f531fdf87584763 | |
parent | 3dba7a1219ac27d06a4349d5bd3a99691b599b8b (diff) | |
download | device_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/
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); } } |