diff options
Diffstat (limited to 'src/org/codeaurora/gallery3d/video/SettingsActivity.java')
-rwxr-xr-x | src/org/codeaurora/gallery3d/video/SettingsActivity.java | 271 |
1 files changed, 165 insertions, 106 deletions
diff --git a/src/org/codeaurora/gallery3d/video/SettingsActivity.java b/src/org/codeaurora/gallery3d/video/SettingsActivity.java index 450f10d7c..200c48813 100755 --- a/src/org/codeaurora/gallery3d/video/SettingsActivity.java +++ b/src/org/codeaurora/gallery3d/video/SettingsActivity.java @@ -3,6 +3,7 @@ package org.codeaurora.gallery3d.video; import android.app.ActionBar; import android.app.Activity; import android.content.ContentResolver; +import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.database.Cursor; @@ -18,6 +19,7 @@ import android.preference.PreferenceCategory; import android.preference.RingtonePreference; import android.preference.PreferenceScreen; import android.provider.ContactsContract; +import android.provider.Settings.System; import android.provider.Telephony; import android.telephony.TelephonyManager; import android.text.method.DigitsKeyListener; @@ -30,26 +32,38 @@ import java.util.ArrayList; public class SettingsActivity extends PreferenceActivity { - public static final String PREFERENCE_RTP_MINPORT = "rtp_min_port"; - public static final String PREFERENCE_RTP_MAXPORT = "rtp_max_port"; - public static final String PREFERENCE_RTCP_MINPORT = "rtcp_min_port"; - public static final String PREFERENCE_RTCP_MAXPORT = "rtcp_max_port"; - public static final String PREFERENCE_BUFFER_SIZE = "buffer_size"; - public static final String PREFERENCE_APN = "apn"; + private static final String LOG_TAG = "SettingsActivity"; + public static final String PREFERENCE_RTP_MINPORT = "rtp_min_port"; + public static final String PREFERENCE_RTP_MAXPORT = "rtp_max_port"; + private static final String PREFERENCE_KEEP_ALIVE_INTERVAL_SECOND = "keep_alive_interval_second"; + private static final String PREFERENCE_CACHE_MIN_SIZE = "cache_min_size"; + private static final String PREFERENCE_CACHE_MAX_SIZE = "cache_max_size"; + public static final String PREFERENCE_BUFFER_SIZE = "buffer_size"; + public static final String PREFERENCE_APN = "apn"; + private static final String PACKAGE_NAME = "com.android.settings"; + + private static final int DEFAULT_RTP_MINPORT = 8192; + private static final int DEFAULT_RTP_MAXPORT = 65535; + private static final int DEFAULT_CACHE_MIN_SIZE = 4 * 1024 * 1024; + private static final int DEFAULT_CACHE_MAX_SIZE = 20 * 1024 * 1024; + private static final int DEFAULT_KEEP_ALIVE_INTERVAL_SECOND = 15; + + private static final int RTP_MIN_PORT = 1; + private static final int RTP_MAX_PORT = 2; + private static final int BUFFER_SIZE = 3; + + private SharedPreferences mPref; private EditTextPreference mRtpMinPort; private EditTextPreference mRtpMaxPort; - private EditTextPreference mRtcpMinPort; - private EditTextPreference mRtcpMaxPort; private EditTextPreference mBufferSize; - private PreferenceScreen mApn; - private CheckBoxPreference mRepeat; - - private static final int SELECT_APN = 1; - public static final String PREFERRED_APN_URI = "content://telephony/carriers/preferapn"; - private static final Uri PREFERAPN_URI = Uri.parse(PREFERRED_APN_URI); - private static final int ID_INDEX = 0; - private static final int NAME_INDEX = 1; + private PreferenceScreen mApn; + + private static final int SELECT_APN = 1; + public static final String PREFERRED_APN_URI = "content://telephony/carriers/preferapn"; + private static final Uri PREFERAPN_URI = Uri.parse(PREFERRED_APN_URI); + private static final int COLUMN_ID_INDEX = 0; + private static final int NAME_INDEX = 1; private boolean mUseNvOperatorForEhrpd = SystemProperties.getBoolean( "persist.radio.use_nv_for_ehrpd", false); @@ -59,111 +73,43 @@ public class SettingsActivity extends PreferenceActivity { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.rtsp_settings_preferences); - SharedPreferences mPref; mPref = getPreferenceScreen().getSharedPreferences(); - String rtpMinport = mPref.getString(PREFERENCE_RTP_MINPORT, "8192"); - String rtpMaxport = mPref.getString(PREFERENCE_RTP_MAXPORT, "65535"); - String rtcpMinport = mPref.getString(PREFERENCE_RTCP_MAXPORT, null); - String rtcpMaxport = mPref.getString(PREFERENCE_RTCP_MAXPORT, null); - String bufferSize = mPref.getString(PREFERENCE_BUFFER_SIZE, null); - mRtpMinPort = (EditTextPreference) findPreference(PREFERENCE_RTP_MINPORT); - mRtpMinPort.getEditText().setKeyListener(DigitsKeyListener.getInstance("0123456789")); - mRtpMinPort.setSummary(rtpMinport); - mRtpMinPort.setText(rtpMinport); - mRtpMinPort.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - public boolean onPreferenceChange(Preference preference, Object newValue) { - final String summary = newValue.toString(); - mRtpMinPort.setSummary(summary); - Log.d("rtsp", "z66 summary = " + summary); - android.provider.Settings.System.putString(getContentResolver(), - "streaming_min_udp_port", summary); - return true; - } - }); - mRtpMaxPort = (EditTextPreference) findPreference(PREFERENCE_RTP_MAXPORT); - mRtpMaxPort.getEditText().setKeyListener(DigitsKeyListener.getInstance("0123456789")); - mRtpMaxPort.setSummary(rtpMaxport); - mRtpMaxPort.setText(rtpMaxport); - mRtpMaxPort.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - public boolean onPreferenceChange(Preference preference, Object newValue) { - final String summary = newValue.toString(); - mRtpMaxPort.setSummary(summary); - Log.w("rtsp", "z82 summary = " + summary); - android.provider.Settings.System.putString(getContentResolver(), - "streaming_max_udp_port", summary); - return true; - } - }); - mRtcpMinPort = (EditTextPreference) findPreference(PREFERENCE_RTCP_MINPORT); - mRtcpMinPort.getEditText().setKeyListener(DigitsKeyListener.getInstance("0123456789")); - mRtcpMinPort.setSummary(rtcpMinport); - mRtcpMinPort.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - public boolean onPreferenceChange(Preference preference, Object newValue) { - final String summary = newValue.toString(); - mRtcpMinPort.setSummary(summary); - return true; - } - }); - mRtcpMaxPort = (EditTextPreference) findPreference(PREFERENCE_RTCP_MAXPORT); - mRtcpMaxPort.getEditText().setKeyListener(DigitsKeyListener.getInstance("0123456789")); - mRtcpMaxPort.setSummary(rtcpMaxport); - mRtcpMaxPort.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - public boolean onPreferenceChange(Preference preference, Object newValue) { - final String summary = newValue.toString(); - mRtcpMaxPort.setSummary(summary); - return true; - } - }); - mBufferSize = (EditTextPreference) findPreference(PREFERENCE_BUFFER_SIZE); - mBufferSize.getEditText().setKeyListener(DigitsKeyListener.getInstance("0123456789")); - mBufferSize.setSummary(bufferSize); - mBufferSize.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - public boolean onPreferenceChange(Preference preference, Object newValue) { - final String summary = newValue.toString(); - mBufferSize.setSummary(summary); - return true; - } - }); - mApn = (PreferenceScreen) findPreference(PREFERENCE_APN); - mApn.setSummary(getDefaultApnName()); - mApn.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { - public boolean onPreferenceClick(Preference preference) { - Intent intent = new Intent(); - intent.setClassName("com.android.settings", "com.android.settings.ApnSettings"); - startActivityForResult(intent, SELECT_APN); - return true; - } - }); + + setPreferenceListener(RTP_MIN_PORT, mRtpMinPort); + setPreferenceListener(RTP_MAX_PORT, mRtpMaxPort); + setPreferenceListener(BUFFER_SIZE, mBufferSize); + setApnListener(); ActionBar ab = getActionBar(); ab.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); ab.setDisplayHomeAsUpEnabled(true); ab.setTitle(R.string.setting); } - - private String getDefaultApnName() { - + + private String getApnKey() { // to find default key String key = null; - String name = null; Cursor cursor = getContentResolver().query(PREFERAPN_URI, new String[] { "_id" }, null, null, Telephony.Carriers.DEFAULT_SORT_ORDER); - if (cursor.getCount() > 0) { - cursor.moveToFirst(); - key = cursor.getString(ID_INDEX); + if (cursor.getCount() > 0 && cursor.moveToFirst()) { + key = cursor.getString(COLUMN_ID_INDEX); Log.v("settingActivty", "default apn key = " + key); } cursor.close(); - + return key; + } + + private String getApnName(String key) { + String name = null; // to find default proxy String where = getOperatorNumericSelection(); - cursor = getContentResolver().query(Telephony.Carriers.CONTENT_URI, new String[] { + Cursor cursor = getContentResolver().query(Telephony.Carriers.CONTENT_URI, new String[] { "_id", "name", "apn", "type" }, where, null, Telephony.Carriers.DEFAULT_SORT_ORDER); @@ -181,7 +127,11 @@ public class SettingsActivity extends PreferenceActivity { cursor.close(); } return name; + + } + private String getDefaultApnName() { + return getApnName(getApnKey()); } private String getSelectedApnKey() { @@ -204,13 +154,12 @@ public class SettingsActivity extends PreferenceActivity { @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { - switch (requestCode) { - case SELECT_APN: - setResult(resultCode); - finish(); - Log.w("rtsp", "onActivityResult requestCode = " + requestCode); - break; + if (requestCode == SELECT_APN) { + setResult(resultCode); + finish(); + Log.w(LOG_TAG, "onActivityResult requestCode = " + requestCode); } + } @Override @@ -227,7 +176,7 @@ public class SettingsActivity extends PreferenceActivity { String where; where = (mccmncs[0] != null) ? "numeric=\"" + mccmncs[0] + "\"" : ""; where += (mccmncs[1] != null) ? " or numeric=\"" + mccmncs[1] + "\"" : ""; - Log.d("SettingsActivity", "getOperatorNumericSelection: " + where); + Log.d(LOG_TAG, "getOperatorNumericSelection: " + where); return where; } @@ -248,4 +197,114 @@ public class SettingsActivity extends PreferenceActivity { } return result.toArray(new String[2]); } + + private void enableRtpPortSetting() { + final String rtpMinPortStr = mPref.getString(PREFERENCE_RTP_MINPORT, + Integer.toString(DEFAULT_RTP_MINPORT)); + final String rtpMaxPortStr = mPref.getString(PREFERENCE_RTP_MAXPORT, + Integer.toString(DEFAULT_RTP_MAXPORT)); + final String CLASS_NAME = "com.android.settings.StreamingSettingsEnablerActivity"; + final int rtpMinPort; + final int rtpMaxPort; + try { + rtpMinPort = Integer.valueOf(rtpMinPortStr); + rtpMaxPort = Integer.valueOf(rtpMaxPortStr); + } catch (NumberFormatException e) { + Log.e(LOG_TAG, "Failed to parse rtp ports"); + return; + } + Intent intent = new Intent(); + intent.setClassName(PACKAGE_NAME, CLASS_NAME); + intent.putExtra(PREFERENCE_RTP_MINPORT, rtpMinPort); + intent.putExtra(PREFERENCE_RTP_MAXPORT, rtpMaxPort); + startActivity(intent); + } + + private void enableBufferSetting() { + final String bufferSizeStr = mPref.getString(PREFERENCE_BUFFER_SIZE, + Integer.toString(DEFAULT_CACHE_MAX_SIZE)); + final String CLASS_NAME = "com.android.settings.StreamingSettingsEnablerActivity"; + final int cacheMaxSize; + try { + cacheMaxSize = Integer.valueOf(bufferSizeStr); + } catch (NumberFormatException e) { + Log.e(LOG_TAG, "Failed to parse cache max size"); + return; + } + Intent intent = new Intent(); + intent.setClassName(PACKAGE_NAME, CLASS_NAME); + intent.putExtra(PREFERENCE_CACHE_MIN_SIZE, DEFAULT_CACHE_MIN_SIZE); + intent.putExtra(PREFERENCE_CACHE_MAX_SIZE, cacheMaxSize); + intent.putExtra(PREFERENCE_KEEP_ALIVE_INTERVAL_SECOND, DEFAULT_KEEP_ALIVE_INTERVAL_SECOND); + startActivity(intent); + } + + private void setPreferenceListener(final int which, final EditTextPreference etp) { + + final String DIGITS_ACCEPTABLE = "0123456789"; + String summaryStr = ""; + String preferStr = ""; + + switch (which) { + case RTP_MIN_PORT: + preferStr = mPref.getString(PREFERENCE_RTP_MINPORT, + Integer.toString(DEFAULT_RTP_MINPORT)); + summaryStr = "streaming_min_udp_port"; + break; + case RTP_MAX_PORT: + preferStr = mPref.getString(PREFERENCE_RTP_MAXPORT, + Integer.toString(DEFAULT_RTP_MAXPORT)); + summaryStr = "streaming_max_udp_port"; + break; + case BUFFER_SIZE: + preferStr = mPref.getString(PREFERENCE_BUFFER_SIZE, + Integer.toString(DEFAULT_CACHE_MAX_SIZE)); + break; + default: + return; + + } + + final String summaryString = summaryStr; + etp.getEditText().setKeyListener(DigitsKeyListener.getInstance(DIGITS_ACCEPTABLE)); + etp.setSummary(preferStr); + etp.setText(preferStr); + etp.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + public boolean onPreferenceChange(Preference preference, Object newValue) { + final String summary = newValue.toString(); + final int value; + try { + value = Integer.valueOf(summary); + } catch (NumberFormatException e) { + Log.e(LOG_TAG, "NumberFormatException"); + return false; + } + etp.setSummary(summary); + etp.setText(summary); + Log.d(LOG_TAG, "z66/z82 summary = " + summary); + if(which == RTP_MIN_PORT || which == RTP_MAX_PORT) { + System.putString(getContentResolver(), summaryString, summary); + enableRtpPortSetting(); + } else { + enableBufferSetting(); + } + return true; + } + }); + + } + + private void setApnListener() { + final String CLASS_NAME = "com.android.settings.ApnSettings"; + mApn.setSummary(getDefaultApnName()); + mApn.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + public boolean onPreferenceClick(Preference preference) { + Intent intent = new Intent(); + intent.setClassName(PACKAGE_NAME, CLASS_NAME); + startActivityForResult(intent, SELECT_APN); + return true; + } + }); + } + } |