diff --git a/res/layout-land/dialer.xml b/res/layout-land/dialer.xml index e4305bba1..e14182a6d 100644 --- a/res/layout-land/dialer.xml +++ b/res/layout-land/dialer.xml @@ -15,20 +15,70 @@ - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/org/linphone/DialerActivity.java b/src/org/linphone/DialerActivity.java index 342e0d128..6dbcb34bd 100644 --- a/src/org/linphone/DialerActivity.java +++ b/src/org/linphone/DialerActivity.java @@ -95,19 +95,21 @@ public class DialerActivity extends Activity implements LinphoneGuiListener { private void displayRegisterStatus() { ListView accounts = (ListView) findViewById(R.id.accounts); - accounts.setDividerHeight(0); - ArrayList> hashMapAccountsStateList = new ArrayList>(); - for (LinphoneProxyConfig lpc : LinphoneManager.getLc().getProxyConfigList()) { - HashMap entitiesHashMap = new HashMap(); - entitiesHashMap.put("Identity", lpc.getIdentity().split("sip:")[1]); - entitiesHashMap.put("State", getStatusIcon(lpc.getState())); - hashMapAccountsStateList.add(entitiesHashMap); + if (accounts != null) { + accounts.setDividerHeight(0); + ArrayList> hashMapAccountsStateList = new ArrayList>(); + for (LinphoneProxyConfig lpc : LinphoneManager.getLc().getProxyConfigList()) { + HashMap entitiesHashMap = new HashMap(); + entitiesHashMap.put("Identity", lpc.getIdentity().split("sip:")[1]); + entitiesHashMap.put("State", getStatusIcon(lpc.getState())); + hashMapAccountsStateList.add(entitiesHashMap); + } + Adapter adapterForList = new SimpleAdapter(this, hashMapAccountsStateList, R.layout.accounts, + new String[] {"Identity", "State"}, + new int[] { R.id.Identity, R.id.State }); + accounts.setAdapter((ListAdapter) adapterForList); + accounts.invalidate(); } - Adapter adapterForList = new SimpleAdapter(this, hashMapAccountsStateList, R.layout.accounts, - new String[] {"Identity", "State"}, - new int[] { R.id.Identity, R.id.State }); - accounts.setAdapter((ListAdapter) adapterForList); - accounts.invalidate(); } public void onCreate(Bundle savedInstanceState) { @@ -123,15 +125,17 @@ public class DialerActivity extends Activity implements LinphoneGuiListener { mStatus = (TextView) findViewById(R.id.status_label); SlidingDrawer drawer = (SlidingDrawer) findViewById(R.id.drawer); - drawer.setOnDrawerScrollListener(new OnDrawerScrollListener() { - public void onScrollEnded() { - - } - - public void onScrollStarted() { - displayRegisterStatus(); - } - }); + if (drawer != null) { + drawer.setOnDrawerScrollListener(new OnDrawerScrollListener() { + public void onScrollEnded() { + + } + + public void onScrollStarted() { + displayRegisterStatus(); + } + }); + } AddressAware numpad = (AddressAware) findViewById(R.id.Dialer); if (numpad != null) diff --git a/src/org/linphone/LinphonePreferencesActivity.java b/src/org/linphone/LinphonePreferencesActivity.java index 87e6ad1bb..008b6a567 100644 --- a/src/org/linphone/LinphonePreferencesActivity.java +++ b/src/org/linphone/LinphonePreferencesActivity.java @@ -123,6 +123,7 @@ public class LinphonePreferencesActivity extends PreferenceActivity implements E // Get the good preference screen accounts = (PreferenceCategory) root.getPreference(0); accounts.removeAll(); + Preference addAccount = (Preference) root.getPreference(1); addAccount.setOnPreferenceClickListener(new OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { @@ -198,7 +199,20 @@ public class LinphonePreferencesActivity extends PreferenceActivity implements E protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); + if (requestCode == ADD_SIP_ACCOUNT) { + //Verify if last created account is filled + SharedPreferences prefs = getPreferenceManager().getSharedPreferences(); + int n = prefs.getInt(getString(R.string.pref_extra_accounts), 1); + String keyUsername = getString(R.string.pref_username_key) + (n-1 == 0 ? "" : Integer.toString(n-1)); + + if (prefs.getString(keyUsername, "").equals("")) { + //If not, we suppress it to not display a blank field + SharedPreferences.Editor editor = prefs.edit(); + editor.putInt(getString(R.string.pref_extra_accounts), n-1); + editor.commit(); + } + createDynamicAccountsPreferences(); } } diff --git a/src/org/linphone/LinphonePreferencesSIPAccountActivity.java b/src/org/linphone/LinphonePreferencesSIPAccountActivity.java index 0c5a247f4..551e2ba4c 100644 --- a/src/org/linphone/LinphonePreferencesSIPAccountActivity.java +++ b/src/org/linphone/LinphonePreferencesSIPAccountActivity.java @@ -144,7 +144,7 @@ public class LinphonePreferencesSIPAccountActivity extends PreferenceActivity { private String getAccountNumber(int n) { if (n > 0) - return n + ""; + return Integer.toString(n); else return ""; }