Merged AccountCreationActivity and AccountPreferenceActivity (redundant)
Fixed issues in account edition
Added layouts for action bar menus (+ icons)
diff --git a/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java b/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java
index 6568ade..4881381 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java
@@ -33,7 +33,6 @@
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Set;
import android.app.Activity;
@@ -56,14 +55,13 @@
import com.savoirfairelinux.sflphone.account.AccountDetailBasic;
import com.savoirfairelinux.sflphone.account.AccountDetailSrtp;
import com.savoirfairelinux.sflphone.account.AccountDetailTls;
-import com.savoirfairelinux.sflphone.client.AccountCreationActivity;
import com.savoirfairelinux.sflphone.client.AccountPreferenceActivity;
import com.savoirfairelinux.sflphone.client.SFLPhonePreferenceActivity;
import com.savoirfairelinux.sflphone.client.SFLphoneApplication;
+import com.savoirfairelinux.sflphone.service.ConfigurationManagerCallback;
import com.savoirfairelinux.sflphone.service.ISipService;
-public class AccountManagementFragment extends PreferenceFragment
-{
+public class AccountManagementFragment extends PreferenceFragment {
static final String TAG = "AccountManagementFragment";
static final String DEFAULT_ACCOUNT_ID = "IP2IP";
static final int ACCOUNT_CREATE_REQUEST = 1;
@@ -86,30 +84,27 @@
Log.w(TAG, "onAttach() service=" + service);
}
- public AccountManagementFragment()
- {
- basicDetailKeys = AccountDetailBasic.getPreferenceEntries();
+ public AccountManagementFragment() {
+ basicDetailKeys = AccountDetailBasic.getPreferenceEntries();
advancedDetailKeys = AccountDetailAdvanced.getPreferenceEntries();
srtpDetailKeys = AccountDetailSrtp.getPreferenceEntries();
tlsDetailKeys = AccountDetailTls.getPreferenceEntries();
accountPreferenceHashMap = new HashMap<String, Preference>();
- }
+ }
@Override
- public void onCreate(Bundle savedInstanceState)
- {
+ public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "Create Account Management Fragment");
/*
- * FIXME if service cannot be obtained from SFLPhonePreferenceActivity,
- * then get it from Application
+ * FIXME if service cannot be obtained from SFLPhonePreferenceActivity, then get it from Application
*/
service = sflphonePreferenceActivity.getSipService();
if (service == null) {
- service = ((SFLphoneApplication)sflphonePreferenceActivity.getApplication()).getSipService();
+ service = ((SFLphoneApplication) sflphonePreferenceActivity.getApplication()).getSipService();
if (service == null) {
Log.e(TAG, "onCreate() service=" + service);
}
@@ -118,19 +113,17 @@
setPreferenceScreen(getAccountListPreferenceScreen());
- LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mMessageReceiver, new IntentFilter("accounts-changed"));
+ LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mMessageReceiver, new IntentFilter(ConfigurationManagerCallback.ACCOUNTS_CHANGED));
}
@Override
- public void onStop()
- {
+ public void onStop() {
super.onStop();
Log.i(TAG, "onStop");
}
@Override
- public void onDestroy()
- {
+ public void onDestroy() {
LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mMessageReceiver);
super.onDestroy();
Log.i(TAG, "onDestroy");
@@ -138,57 +131,66 @@
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
- switch(requestCode) {
- case ACCOUNT_CREATE_REQUEST:
- Log.i(TAG, "ACCOUNT_CREATE_REQUEST Done");
- break;
- case ACCOUNT_EDIT_REQUEST:
- if(resultCode == AccountPreferenceActivity.ACCOUNT_MODIFIED) {
- Bundle bundle = data.getExtras();
- String accountID = bundle.getString("AccountID");
- Log.i(TAG, "Update account settings for " + accountID);
+ switch (requestCode) {
+ case ACCOUNT_CREATE_REQUEST:
+ if (resultCode == AccountPreferenceActivity.result.ACCOUNT_CREATED) {
+ Bundle bundle = data.getExtras();
+ Log.i(TAG, "Create account settings");
+ HashMap<String, String> accountDetails = new HashMap<String, String>();
+ accountDetails = (HashMap<String, String>) bundle.getSerializable(AccountDetail.TAG);
+ createNewAccount(accountDetails);
+ }
+ break;
+ case ACCOUNT_EDIT_REQUEST:
+ if (resultCode == AccountPreferenceActivity.result.ACCOUNT_MODIFIED) {
+ Bundle bundle = data.getExtras();
+ String accountID = bundle.getString("AccountID");
+ Log.i(TAG, "Update account settings for " + accountID);
- AccountDetailBasic basicDetails =
- new AccountDetailBasic(bundle.getStringArrayList(AccountDetailBasic.BUNDLE_TAG));
- AccountDetailAdvanced advancedDetails =
- new AccountDetailAdvanced(bundle.getStringArrayList(AccountDetailAdvanced.BUNDLE_TAG));
- AccountDetailSrtp srtpDetails =
- new AccountDetailSrtp(bundle.getStringArrayList(AccountDetailSrtp.BUNDLE_TAG));
- AccountDetailTls tlsDetails =
- new AccountDetailTls(bundle.getStringArrayList(AccountDetailTls.BUNDLE_TAG));
+ HashMap<String, String> accountDetails = new HashMap<String, String>();
+ accountDetails = (HashMap<String, String>) bundle.getSerializable(AccountDetail.TAG);
+
+ Preference accountScreen = accountPreferenceHashMap.get(accountID);
+ mRoot.removePreference(accountScreen);
+ accountPreferenceHashMap.remove(accountID);
+ setAccountDetails(accountID, accountDetails);
+
+ } else if (resultCode == AccountPreferenceActivity.result.ACCOUNT_DELETED) {
+ Bundle bundle = data.getExtras();
+ String accountID = bundle.getString("AccountID");
- HashMap<String, String> map = new HashMap<String, String>();
- map.putAll(basicDetails.getDetailsHashMap());
- map.putAll(advancedDetails.getDetailsHashMap());
- map.putAll(srtpDetails.getDetailsHashMap());
- map.putAll(tlsDetails.getDetailsHashMap());
-
- setAccountDetails(accountID, map);
- } else if(resultCode == AccountPreferenceActivity.ACCOUNT_DELETED) {
- Bundle bundle = data.getExtras();
- String accountID = bundle.getString("AccountID");
-
- Log.i(TAG, "Remove account " + accountID);
- deleteSelectedAccount(accountID);
- Preference accountScreen = accountPreferenceHashMap.get(accountID);
- mRoot.removePreference(accountScreen);
- accountPreferenceHashMap.remove(accountID);
- }
- break;
- default:
- break;
+ Log.i(TAG, "Remove account " + accountID);
+ deleteSelectedAccount(accountID);
+ Preference accountScreen = accountPreferenceHashMap.get(accountID);
+ mRoot.removePreference(accountScreen);
+ accountPreferenceHashMap.remove(accountID);
+ } else {
+ Log.i(TAG, "Edition canceled");
+ }
+ break;
+ default:
+ break;
}
}
+ private void createNewAccount(HashMap<String, String> accountDetails) {
+ try {
+ Log.i(TAG, "ADD ACCOUNT");
+ service.addAccount(accountDetails);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Cannot call service method", e);
+ }
+
+ }
+
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
- String message = intent.getStringExtra("message");
ArrayList<String> newList = (ArrayList<String>) getAccountList();
Set<String> currentList = (Set<String>) accountPreferenceHashMap.keySet();
- if(newList.size() > currentList.size()) {
- for(String s : newList) {
- if(!currentList.contains(s)) {
+ if (newList.size() > currentList.size()) {
+ for (String s : newList) {
+ if (!currentList.contains(s)) {
Preference accountScreen = createAccountPreferenceScreen(s);
mRoot.addPreference(accountScreen);
accountPreferenceHashMap.put(s, accountScreen);
@@ -200,7 +202,7 @@
Preference.OnPreferenceClickListener launchAccountCreationOnClick = new Preference.OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
- if(preference.getTitle() == "Create New Account") {
+ if (preference.getTitle() == "Create New Account") {
launchAccountCreationActivity(preference);
}
return true;
@@ -216,25 +218,24 @@
Preference.OnPreferenceClickListener removeSelectedAccountOnClick = new Preference.OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
- if(preference.getTitle() == "Delete Account") {
+ if (preference.getTitle() == "Delete Account") {
deleteSelectedAccount(preference.getKey());
}
return true;
}
};
- private void launchAccountCreationActivity(Preference preference)
- {
+ private void launchAccountCreationActivity(Preference preference) {
Log.i(TAG, "Launch account creation activity");
Intent intent = preference.getIntent();
+ intent.putExtra(AccountPreferenceActivity.KEY_MODE, AccountPreferenceActivity.mode.CREATION_MODE);
startActivityForResult(intent, ACCOUNT_CREATE_REQUEST);
}
- private void launchAccountEditActivity(Preference preference)
- {
+ private void launchAccountEditActivity(Preference preference) {
Log.i(TAG, "Launch account edit activity");
Intent intent = preference.getIntent();
-
+ intent.putExtra(AccountPreferenceActivity.KEY_MODE, AccountPreferenceActivity.mode.EDITION_MODE);
Bundle bundle = intent.getExtras();
String accountID = bundle.getString("AccountID");
@@ -264,13 +265,12 @@
}
};
- private ArrayList<String> getAccountList()
- {
+ private ArrayList<String> getAccountList() {
ArrayList<String> accountList = null;
try {
- accountList = (ArrayList<String>) service.getAccountList();
+ accountList = (ArrayList<String>) service.getAccountList();
} catch (RemoteException e) {
- Log.e(TAG, "Cannot call service method", e);
+ Log.e(TAG, "Cannot call service method", e);
}
// Remove the default account from list
@@ -279,8 +279,7 @@
return accountList;
}
- private HashMap<String, String> getAccountDetails(String accountID)
- {
+ private HashMap<String, String> getAccountDetails(String accountID) {
HashMap<String, String> accountDetails = null;
try {
accountDetails = (HashMap<String, String>) service.getAccountDetails(accountID);
@@ -291,8 +290,7 @@
return accountDetails;
}
- private void setAccountDetails(String accountID, HashMap<String, String> accountDetails)
- {
+ private void setAccountDetails(String accountID, HashMap<String, String> accountDetails) {
try {
service.setAccountDetails(accountID, accountDetails);
} catch (RemoteException e) {
@@ -300,8 +298,7 @@
}
}
- public PreferenceScreen getAccountListPreferenceScreen()
- {
+ public PreferenceScreen getAccountListPreferenceScreen() {
Activity currentContext = getActivity();
mRoot = getPreferenceManager().createPreferenceScreen(currentContext);
@@ -321,31 +318,31 @@
Preference createNewAccount = new Preference(currentContext);
createNewAccount.setTitle("Create New Account");
createNewAccount.setOnPreferenceClickListener(launchAccountCreationOnClick);
- createNewAccount.setIntent(new Intent().setClass(getActivity(), AccountCreationActivity.class));
+ createNewAccount.setIntent(new Intent().setClass(getActivity(), AccountPreferenceActivity.class));
mRoot.addPreference(createNewAccount);
ArrayList<String> accountList = getAccountList();
- for(String s : accountList) {
+ for (String s : accountList) {
Preference accountScreen = createAccountPreferenceScreen(s);
mRoot.addPreference(accountScreen);
- accountPreferenceHashMap.put(s, accountScreen);
+ accountPreferenceHashMap.put(s, accountScreen);
}
-
+
return mRoot;
}
Preference createAccountPreferenceScreen(String accountID) {
HashMap<String, String> details = getAccountDetails(accountID);
- Set<String> keys = details.keySet();
- Iterator<String> ite = keys.iterator();
- while(ite.hasNext()){
- Log.i(TAG,"key : "+ ite.next());
- }
+ // Set<String> keys = details.keySet();
+ // Iterator<String> ite = keys.iterator();
+ // while(ite.hasNext()){
+ // Log.i(TAG,"key : "+ ite.next());
+ // }
Bundle bundle = new Bundle();
bundle.putString("AccountID", accountID);
- Intent intent = new Intent().setClass(getActivity(), AccountPreferenceActivity.class);
+ Intent intent = new Intent().setClass(getActivity(), AccountPreferenceActivity.class);
intent.putExtras(bundle);
Preference editAccount = new Preference(getActivity());
@@ -353,7 +350,7 @@
editAccount.setSummary(details.get(AccountDetailBasic.CONFIG_ACCOUNT_HOSTNAME));
editAccount.setOnPreferenceClickListener(launchAccountEditOnClick);
editAccount.setIntent(intent);
-
+
return editAccount;
}
}
diff --git a/src/com/savoirfairelinux/sflphone/fragments/PrefManagementFragment.java b/src/com/savoirfairelinux/sflphone/fragments/AudioManagementFragment.java
similarity index 98%
rename from src/com/savoirfairelinux/sflphone/fragments/PrefManagementFragment.java
rename to src/com/savoirfairelinux/sflphone/fragments/AudioManagementFragment.java
index bc2916a..954eb49 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/PrefManagementFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/AudioManagementFragment.java
@@ -53,12 +53,12 @@
import com.savoirfairelinux.sflphone.R;
-public class PrefManagementFragment extends PreferenceFragment
+public class AudioManagementFragment extends PreferenceFragment
{
static final String TAG = "PrefManagementFragment";
static final String CURRENT_VALUE = "Current value:: ";
- public PrefManagementFragment()
+ public AudioManagementFragment()
{
}
diff --git a/src/com/savoirfairelinux/sflphone/fragments/CallElementListFragment.java b/src/com/savoirfairelinux/sflphone/fragments/CallElementListFragment.java
index ae5fc4a..48535cd 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/CallElementListFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/CallElementListFragment.java
@@ -70,10 +70,10 @@
import android.widget.TextView;
import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.account.AccountListReceiver;
import com.savoirfairelinux.sflphone.account.AccountSelectionSpinner;
import com.savoirfairelinux.sflphone.client.SFLPhoneHomeActivity;
import com.savoirfairelinux.sflphone.client.SFLphoneApplication;
+import com.savoirfairelinux.sflphone.client.receiver.AccountListReceiver;
import com.savoirfairelinux.sflphone.model.ContactManager;
import com.savoirfairelinux.sflphone.model.SipCall;
import com.savoirfairelinux.sflphone.service.ISipService;
@@ -82,7 +82,7 @@
* Main list of Call Elements. We don't manage contacts ourself so they are
*/
public class CallElementListFragment extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor> {
- private static final String TAG = "CallElementList";
+ private static final String TAG = CallElementListFragment.class.getSimpleName();
private static final String CURRENT_STATE_LABEL = " CURRENT STATE: ";
private ContactManager mContactManager;
private CallElementAdapter mAdapter;
@@ -107,7 +107,7 @@
}
public String getSelectedAccount() {
-// return mAccountSelectionButton.getText().toString();
+ // return mAccountSelectionButton.getText().toString();
return "CIOUCOU";
}
@@ -340,6 +340,7 @@
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
+ Log.i(TAG,"onCreateLoader");
// return new CursorLoader(getActivity(), CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
// This is called when a new Loader needs to be created. This
diff --git a/src/com/savoirfairelinux/sflphone/fragments/ContactListFragment.java b/src/com/savoirfairelinux/sflphone/fragments/ContactListFragment.java
index a968d36..18e8043 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/ContactListFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/ContactListFragment.java
@@ -77,10 +77,10 @@
import android.widget.TextView;
import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.account.AccountListReceiver;
import com.savoirfairelinux.sflphone.account.AccountSelectionSpinner;
import com.savoirfairelinux.sflphone.client.SFLPhoneHomeActivity;
import com.savoirfairelinux.sflphone.client.SFLphoneApplication;
+import com.savoirfairelinux.sflphone.client.receiver.AccountListReceiver;
import com.savoirfairelinux.sflphone.model.SipCall;
import com.savoirfairelinux.sflphone.service.ISipService;
diff --git a/src/com/savoirfairelinux/sflphone/fragments/HistoryFragment.java b/src/com/savoirfairelinux/sflphone/fragments/HistoryFragment.java
new file mode 100644
index 0000000..23d98f5
--- /dev/null
+++ b/src/com/savoirfairelinux/sflphone/fragments/HistoryFragment.java
@@ -0,0 +1,23 @@
+package com.savoirfairelinux.sflphone.fragments;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+public class HistoryFragment extends Fragment {
+
+ public static final String ARG_SECTION_NUMBER = "section_number";
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
+ TextView textView = new TextView(getActivity());
+ textView.setGravity(Gravity.CENTER);
+ Bundle args = getArguments();
+ textView.setText("ARG_SECTION_NUMBER=" + Integer.toString(args.getInt(ARG_SECTION_NUMBER)));
+ return textView;
+ }
+}