diff options
Diffstat (limited to 'DeviceSettings/src/com/cyanogenmod/settings/device/AudioFragmentActivity.java')
-rw-r--r-- | DeviceSettings/src/com/cyanogenmod/settings/device/AudioFragmentActivity.java | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/AudioFragmentActivity.java b/DeviceSettings/src/com/cyanogenmod/settings/device/AudioFragmentActivity.java new file mode 100644 index 0000000..807a3b0 --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/AudioFragmentActivity.java @@ -0,0 +1,101 @@ +/* +* 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.res.Resources; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.os.UserHandle; +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 AudioFragmentActivity extends PreferenceFragment { + + private static final String PREF_ENABLED = "1"; + private static final String TAG = "DeviceSettings_Audio"; + public static final String KEY_INCALL_TUNING = "incall_tuning"; + public static final String KEY_AUDIOOUT_TUNING = "audioout_tuning"; + + private static boolean sIncallTuning; + private static boolean sAudioOutTuning; + private IncallAudio mIncallTuning; + private AudioOut mAudioOutTuning; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + addPreferencesFromResource(R.xml.audio_preferences); + PreferenceScreen prefSet = getPreferenceScreen(); + + Resources res = getResources(); + sIncallTuning = res.getBoolean(R.bool.has_incall_audio_tuning); + sAudioOutTuning = res.getBoolean(R.bool.has_output_audio_tuning); + + if(sIncallTuning){ + mIncallTuning = (IncallAudio) findPreference(KEY_INCALL_TUNING); + if(mIncallTuning.isSupported("earpiece") || mIncallTuning.isSupported("headphone") || + mIncallTuning.isSupported("speaker") || mIncallTuning.isSupported("bt")) + mIncallTuning.setEnabled(true); + else + mIncallTuning.setEnabled(false); + } + + if(sAudioOutTuning){ + mAudioOutTuning = (AudioOut) findPreference(KEY_AUDIOOUT_TUNING); + if(mAudioOutTuning.isSupported("headphone") || mAudioOutTuning.isSupported("speaker")) + mAudioOutTuning.setEnabled(true); + else + mAudioOutTuning.setEnabled(false); + } + } + + @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, UserHandle.USER_ALL); + } + 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, UserHandle.USER_ALL); + } +} |