#15735: Add onPreferenceChange callback in acccount creation activity
diff --git a/src/com/savoirfairelinux/sflphone/client/AccountCreationActivity.java b/src/com/savoirfairelinux/sflphone/client/AccountCreationActivity.java
index f6f97a5..e9a5b99 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountCreationActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountCreationActivity.java
@@ -35,6 +35,7 @@
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
+import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.preference.EditTextPreference;
@@ -44,6 +45,8 @@
import com.savoirfairelinux.sflphone.service.SipService;
import com.savoirfairelinux.sflphone.service.ISipService;
+import java.util.ArrayList;
+
public class AccountCreationActivity extends PreferenceActivity
{
static final String TAG = "SFLPhonePreferenceActivity";
@@ -51,6 +54,13 @@
private boolean mBound = false;
private PreferenceManager mPreferenceManager = null;
+ Preference.OnPreferenceChangeListener changeNewAccountPreferenceListener = new Preference.OnPreferenceChangeListener() {
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ preference.setSummary(getString(R.string.account_current_value_label) + (CharSequence)newValue);
+ return true;
+ }
+ };
+
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName className, IBinder binder) {
@@ -71,14 +81,34 @@
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.account_creation_preferences);
+
+ mPreferenceManager = getPreferenceManager();
+ }
+
+ @Override
+ protected void onStart() {
+ super.onStart();
+ ArrayList<String> preferenceKey = new ArrayList<String>();
+ preferenceKey.add("AccountAlias");
+ preferenceKey.add("AccountUserName");
+ preferenceKey.add("AccountHostname");
+ preferenceKey.add("AccountPassword");
+ preferenceKey.add("AccountRealm");
+ preferenceKey.add("AccountUserAgent");
+ preferenceKey.add("AccountAutoAnswer");
+
+ for(String s : preferenceKey) {
+ EditTextPreference pref = (EditTextPreference) mPreferenceManager.findPreference(s);
+ if(pref != null)
+ pref.setOnPreferenceChangeListener(changeNewAccountPreferenceListener);
+ else
+ Log.i(TAG, "NO PREFERENCE FOUND " + s);
+ }
}
@Override
protected void onStop() {
super.onStop();
-
- mPreferenceManager = getPreferenceManager();
-
EditTextPreference accountAliasPref = (EditTextPreference) mPreferenceManager.findPreference("AccountAlias");
EditTextPreference accountUsername = (EditTextPreference) mPreferenceManager.findPreference("AccountUserName");
EditTextPreference accountHostname = (EditTextPreference) mPreferenceManager.findPreference("AccountHostname");
diff --git a/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java b/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java
index 9494d63..45d5ae6 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java
@@ -56,7 +56,6 @@
public class AccountManagementFragment extends PreferenceFragment
{
static final String TAG = "AccountManagementFragment";
- static final String CURRENT_VALUE = "Current value:: ";
static final String DEFAULT_ACCOUNT_ID = "IP2IP";
static final int ACCOUNT_CREATE_REQUEST = 1;
private ISipService service;
@@ -197,7 +196,6 @@
ArrayList<String> accountList = getAccountList();
try {
- Log.i(TAG, "============================= start set account details");
for(String s : accountList) {
Log.i(TAG, " set details for " + s);
service.setAccountDetails(s, mAccountList.get(s));
@@ -205,7 +203,6 @@
} catch (RemoteException e) {
Log.e(TAG, "Cannot call service method", e);
}
- Log.i(TAG, "================================= set account details done");
}
@Override
@@ -223,18 +220,10 @@
}
}
- boolean onTextEditPreferenceChange(Preference preference, Object newValue)
- {
- Log.i(TAG, "Account Preference Changed " + preference.getTitle());
-
- preference.setSummary(CURRENT_VALUE + (CharSequence)newValue);
-
- return true;
- }
Preference.OnPreferenceChangeListener changeBasicTextEditListener = new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
- preference.setSummary(CURRENT_VALUE + (CharSequence)newValue);
+ preference.setSummary(getString(R.string.account_current_value_label) + (CharSequence)newValue);
mAccountList.get(preference.getKey()).put(basicDetailKeys.get(preference.getOrder()).mKey, ((CharSequence)newValue).toString());
return true;
}
@@ -242,7 +231,7 @@
Preference.OnPreferenceChangeListener changeAdvancedTextEditListener = new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
- preference.setSummary(CURRENT_VALUE + (CharSequence)newValue);
+ preference.setSummary(getString(R.string.account_current_value_label) + (CharSequence)newValue);
mAccountList.get(preference.getKey()).put(advancedDetailKeys.get(preference.getOrder()).mKey, ((CharSequence)newValue).toString());
return true;
}
@@ -354,7 +343,7 @@
accountPref.setDialogTitle(entry.mLabelId);
accountPref.setPersistent(false);
accountPref.setTitle(entry.mLabelId);
- accountPref.setSummary(CURRENT_VALUE + map.get(entry.mKey));
+ accountPref.setSummary(getString(R.string.account_current_value_label) + map.get(entry.mKey));
accountPref.setOnPreferenceChangeListener(changeBasicTextEditListener);
accountPref.setKey(accountID);
accountBasicPrefCat.addPreference(accountPref);
@@ -370,7 +359,7 @@
accountPref.setDialogTitle(entry.mLabelId);
accountPref.setPersistent(false);
accountPref.setTitle(entry.mLabelId);
- accountPref.setSummary(CURRENT_VALUE + map.get(entry.mKey));
+ accountPref.setSummary(getString(R.string.account_current_value_label) + map.get(entry.mKey));
accountPref.setOnPreferenceChangeListener(changeAdvancedTextEditListener);
accountPref.setKey(accountID);
accountAdvancedPrefCat.addPreference(accountPref);