package org.sana.android.activity.settings; import org.sana.R; import org.sana.android.Constants; import android.content.Context; import android.os.Bundle; import android.preference.EditTextPreference; import android.preference.PreferenceActivity; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.text.method.DigitsKeyListener; import android.util.Log; /** * Creates the settings window for communicating with the Sana network layer If * a user does not specify their own values, default values are used. Most of * these are stored in Constants. The default phone name is the phone's number. * String values are stored as preferences and can be retrieved as follows: * PreferenceManager.getDefaultSharedPreferences(c).getString("key name") * * @author Sana Dev Team */ public class NetworkSettings extends PreferenceActivity { public static final String TAG = NetworkSettings.class.getSimpleName(); /** {@inheritDoc} */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.network_settings); initPreferences(); } /** Sets the default values for the preference screen */ private void initPreferences() { // Phone name String phoneNum = ((TelephonyManager) getSystemService( Context.TELEPHONY_SERVICE)) .getLine1Number(); Log.d(TAG, "Phone number of this phone: " + phoneNum); if (TextUtils.isEmpty(phoneNum)) phoneNum = Constants.DEFAULT_PHONE_NUMBER; EditTextPreference prefPhoneName = (EditTextPreference) findPreference(Constants.PREFERENCE_PHONE_NAME); if (TextUtils.isEmpty(prefPhoneName.getText())) { prefPhoneName.setText(phoneNum); } // Sana Dispatch Server URL EditTextPreference prefMdsUrl = (EditTextPreference) findPreference(Constants.PREFERENCE_MDS_URL); if (TextUtils.isEmpty(prefMdsUrl.getText())) { prefMdsUrl.setText(Constants.DEFAULT_DISPATCH_SERVER); } // Initial packet size EditTextPreference prefInitPacketSize = (EditTextPreference) findPreference(Constants.PREFERENCE_PACKET_SIZE); if (TextUtils.isEmpty(prefMdsUrl.getText())) { prefInitPacketSize.setText("" + Constants.DEFAULT_INIT_PACKET_SIZE); } prefInitPacketSize.getEditText().setKeyListener(new DigitsKeyListener()); // How often the database gets refreshed EditTextPreference prefDatabaseRefresh = (EditTextPreference) findPreference(Constants.PREFERENCE_DATABASE_UPLOAD); if (TextUtils.isEmpty(prefDatabaseRefresh.getText())) { prefDatabaseRefresh.setText("" + Constants.DEFAULT_DATABASE_UPLOAD); } prefDatabaseRefresh.getEditText().setKeyListener(new DigitsKeyListener()); // Estimated network bandwidth EditTextPreference prefEstimatedNetworkBandwidth = (EditTextPreference) findPreference(Constants.PREFERENCE_NETWORK_BANDWIDTH); if (TextUtils.isEmpty(prefEstimatedNetworkBandwidth.getText())) { prefEstimatedNetworkBandwidth.setText("" + Constants.ESTIMATED_NETWORK_BANDWIDTH); } prefEstimatedNetworkBandwidth.getEditText().setKeyListener( new DigitsKeyListener()); } }