diff options
author | Likai Ding <likaid@codeaurora.org> | 2013-08-19 16:33:24 +0800 |
---|---|---|
committer | Xiaojing Zhang <zhangx@codeaurora.org> | 2014-11-04 20:38:02 -0800 |
commit | d42e6dcbee24b917936c1d670ca659970c76d4d1 (patch) | |
tree | 518ec0bbbd08a24abdb8e415d9de0f301fb4a095 /src/org/codeaurora/gallery3d/video/SettingsActivity.java | |
parent | 9bc105fca37faf4c868987b3a22992e39e4348f2 (diff) | |
download | android_packages_apps_Gallery2-d42e6dcbee24b917936c1d670ca659970c76d4d1.tar.gz android_packages_apps_Gallery2-d42e6dcbee24b917936c1d670ca659970c76d4d1.tar.bz2 android_packages_apps_Gallery2-d42e6dcbee24b917936c1d670ca659970c76d4d1.zip |
Gallery2: support live streaming and bookmarks
Users can input a URL for streaming display.
URL bookmarking is supported.
Change-Id: Ia69497cdcfee963ba2209119a5b9dc82b64497da
Diffstat (limited to 'src/org/codeaurora/gallery3d/video/SettingsActivity.java')
-rwxr-xr-x | src/org/codeaurora/gallery3d/video/SettingsActivity.java | 251 |
1 files changed, 251 insertions, 0 deletions
diff --git a/src/org/codeaurora/gallery3d/video/SettingsActivity.java b/src/org/codeaurora/gallery3d/video/SettingsActivity.java new file mode 100755 index 000000000..450f10d7c --- /dev/null +++ b/src/org/codeaurora/gallery3d/video/SettingsActivity.java @@ -0,0 +1,251 @@ +package org.codeaurora.gallery3d.video; + +import android.app.ActionBar; +import android.app.Activity; +import android.content.ContentResolver; +import android.content.Intent; +import android.content.SharedPreferences; +import android.database.Cursor; +import android.net.Uri; +import android.os.Bundle; +import android.os.SystemProperties; +import android.preference.CheckBoxPreference; +import android.preference.EditTextPreference; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.preference.PreferenceCategory; +import android.preference.RingtonePreference; +import android.preference.PreferenceScreen; +import android.provider.ContactsContract; +import android.provider.Telephony; +import android.telephony.TelephonyManager; +import android.text.method.DigitsKeyListener; +import android.util.Log; +import android.view.KeyEvent; +import android.view.MenuItem; +import com.android.gallery3d.R; + +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 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 boolean mUseNvOperatorForEhrpd = SystemProperties.getBoolean( + "persist.radio.use_nv_for_ehrpd", false); + + @Override + public void onCreate(Bundle savedInstanceState) { + 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; + } + }); + + ActionBar ab = getActionBar(); + ab.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); + ab.setDisplayHomeAsUpEnabled(true); + ab.setTitle(R.string.setting); + } + + private String getDefaultApnName() { + + // 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); + Log.v("settingActivty", "default apn key = " + key); + } + cursor.close(); + + // to find default proxy + String where = getOperatorNumericSelection(); + + cursor = getContentResolver().query(Telephony.Carriers.CONTENT_URI, new String[] { + "_id", "name", "apn", "type" + }, where, null, Telephony.Carriers.DEFAULT_SORT_ORDER); + + while (cursor != null && cursor.moveToNext()) { + String curKey = cursor.getString(cursor.getColumnIndex("_id")); + String curName = cursor.getString(cursor.getColumnIndex("name")); + if (curKey.equals(key)) { + Log.d("rtsp", "getDefaultApnName, find, key=" + curKey + ",curName=" + curName); + name = curName; + break; + } + } + + if (cursor != null) { + cursor.close(); + } + return name; + + } + + private String getSelectedApnKey() { + String key = null; + + Cursor cursor = getContentResolver().query(PREFERAPN_URI, new String[] { + "_id", "name" + }, null, null, null); + if (cursor.getCount() > 0) { + cursor.moveToFirst(); + key = cursor.getString(NAME_INDEX); + } + cursor.close(); + + Log.w("rtsp", "getSelectedApnKey key = " + key); + if (null == key) + return new String("null"); + return key; + } + + @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; + } + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // TODO Auto-generated method stub + if (item.getItemId() == android.R.id.home) { + finish(); + } + return true; + } + + private String getOperatorNumericSelection() { + String[] mccmncs = getOperatorNumeric(); + String where; + where = (mccmncs[0] != null) ? "numeric=\"" + mccmncs[0] + "\"" : ""; + where += (mccmncs[1] != null) ? " or numeric=\"" + mccmncs[1] + "\"" : ""; + Log.d("SettingsActivity", "getOperatorNumericSelection: " + where); + return where; + } + + private String[] getOperatorNumeric() { + ArrayList<String> result = new ArrayList<String>(); + String mccMncFromSim = null; + if (mUseNvOperatorForEhrpd) { + String mccMncForEhrpd = SystemProperties.get("ro.cdma.home.operator.numeric", null); + if (mccMncForEhrpd != null && mccMncForEhrpd.length() > 0) { + result.add(mccMncForEhrpd); + } + } + + mccMncFromSim = TelephonyManager.getDefault().getSimOperator(); + + if (mccMncFromSim != null && mccMncFromSim.length() > 0) { + result.add(mccMncFromSim); + } + return result.toArray(new String[2]); + } +} |