summaryrefslogtreecommitdiffstats
path: root/AriesParts/src/com/cyanogenmod/AriesParts/AriesParts.java
diff options
context:
space:
mode:
authorPawit Pornkitprasan <p.pawit@gmail.com>2011-12-16 18:25:56 +0700
committerPawit Pornkitprasan <p.pawit@gmail.com>2011-12-16 18:25:56 +0700
commitf28171d84caf707ad431dcaaa29cef6226f155b3 (patch)
treef11e300452a4b76170cec7fc87b8bfd3db584d1e /AriesParts/src/com/cyanogenmod/AriesParts/AriesParts.java
parentcfa142440bb325dcd6c8d5901f24d5b019a6395d (diff)
downloaddevice_samsung_aries-common-f28171d84caf707ad431dcaaa29cef6226f155b3.zip
device_samsung_aries-common-f28171d84caf707ad431dcaaa29cef6226f155b3.tar.gz
device_samsung_aries-common-f28171d84caf707ad431dcaaa29cef6226f155b3.tar.bz2
Add TV Out support
(backported from ics) Conflicts: device_base.mk init.aries.rc Change-Id: I9f8876bb3e00c4b3508e587aa4e6c5c86570d51e
Diffstat (limited to 'AriesParts/src/com/cyanogenmod/AriesParts/AriesParts.java')
-rw-r--r--AriesParts/src/com/cyanogenmod/AriesParts/AriesParts.java84
1 files changed, 84 insertions, 0 deletions
diff --git a/AriesParts/src/com/cyanogenmod/AriesParts/AriesParts.java b/AriesParts/src/com/cyanogenmod/AriesParts/AriesParts.java
index 103e91b..3d6a68f 100644
--- a/AriesParts/src/com/cyanogenmod/AriesParts/AriesParts.java
+++ b/AriesParts/src/com/cyanogenmod/AriesParts/AriesParts.java
@@ -1,7 +1,14 @@
package com.cyanogenmod.AriesParts;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.hardware.TvOut;
import android.os.Bundle;
+import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
+import android.preference.Preference;
import android.preference.PreferenceActivity;
public class AriesParts extends PreferenceActivity {
@@ -9,10 +16,25 @@ public class AriesParts extends PreferenceActivity {
public static final String KEY_COLOR_TUNING = "color_tuning";
public static final String KEY_BACKLIGHT_TIMEOUT = "backlight_timeout";
public static final String KEY_HSPA = "hspa";
+ public static final String KEY_TVOUT_ENABLE = "tvout_enable";
+ public static final String KEY_TVOUT_SYSTEM = "tvout_system";
private ColorTuningPreference mColorTuning;
private ListPreference mBacklightTimeout;
private ListPreference mHspa;
+ private CheckBoxPreference mTvOutEnable;
+ private ListPreference mTvOutSystem;
+ private TvOut mTvOut;
+
+ private BroadcastReceiver mHeadsetReceiver = new BroadcastReceiver() {
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ int state = intent.getIntExtra("state", 0);
+ updateTvOutEnable(state != 0);
+ }
+
+ };
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -29,6 +51,68 @@ public class AriesParts extends PreferenceActivity {
mHspa = (ListPreference) findPreference(KEY_HSPA);
mHspa.setEnabled(Hspa.isSupported());
mHspa.setOnPreferenceChangeListener(new Hspa(this));
+
+ mTvOut = new TvOut();
+ mTvOutEnable = (CheckBoxPreference) findPreference(KEY_TVOUT_ENABLE);
+ mTvOutEnable.setChecked(mTvOut._isEnabled());
+
+ mTvOutEnable.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ boolean enable = (Boolean) newValue;
+ Intent i = new Intent(AriesParts.this, TvOutService.class);
+ i.putExtra(TvOutService.EXTRA_COMMAND, enable ? TvOutService.COMMAND_ENABLE : TvOutService.COMMAND_DISABLE);
+ startService(i);
+ return true;
+ }
+
+ });
+
+ mTvOutSystem = (ListPreference) findPreference(KEY_TVOUT_SYSTEM);
+ mTvOutSystem.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ if (mTvOut._isEnabled()) {
+ int newSystem = Integer.valueOf((String) newValue);
+ Intent i = new Intent(AriesParts.this, TvOutService.class);
+ i.putExtra(TvOutService.EXTRA_COMMAND, TvOutService.COMMAND_CHANGE_SYSTEM);
+ i.putExtra(TvOutService.EXTRA_SYSTEM, newSystem);
+ startService(i);
+ }
+ return true;
+ }
+
+ });
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ registerReceiver(mHeadsetReceiver, new IntentFilter(Intent.ACTION_HEADSET_PLUG));
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ unregisterReceiver(mHeadsetReceiver);
+ }
+
+ private void updateTvOutEnable(boolean connected) {
+ mTvOutEnable.setEnabled(connected);
+ mTvOutEnable.setSummaryOff(connected ? R.string.tvout_enable_summary : R.string.tvout_enable_summary_nocable);
+
+ if (!connected && mTvOutEnable.isChecked()) {
+ // Disable on unplug (UI)
+ mTvOutEnable.setChecked(false);
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ mTvOut.finalize();
+ super.onDestroy();
}
}