Skip to content
Snippets Groups Projects
Commit 9a93f06c authored by Alexandre Savard's avatar Alexandre Savard
Browse files

#15466: Implement account registration using android's preference API programatically

parent dcd3740a
No related branches found
No related tags found
No related merge requests found
......@@ -45,7 +45,6 @@ as that of the covered work.
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:onClick="onClick"
android:text="Codec Up" />
<Button
......@@ -53,7 +52,6 @@ as that of the covered work.
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:onClick="onClick"
android:text="Codec Down" />
</LinearLayout>
......@@ -39,4 +39,56 @@ as that of the covered work.
<string name="title_activity_sflphone_home">SFLPhone</string>
<string name="preference_section1">Accounts</string>
<string name="preference_section2">Preferences</string>
<string name="account_preferences">Account Preferences</string>
<string name="account_alias_label">Alias</string>
<string name="account_hostname_label">Hostname</string>
<string name="account_username_label">Username</string>
<string name="account_proxy_label">Proxy</string>
<string name="account_regsitration_label">Registration Expire</string>
<string name="account_network_interface_label">Network Interface</string>
<string name="account_stun_server_label">Stun Server</string>
<string name="account_security_label">Security</string>
<string name="account_tls_label">TLS</string>
<string name="account_srtp_label">SRTP</string>
<string name="account_alias_field">Alias</string>
<string name="title_account_alias_field">Alias</string>
<string name="dialogtitle_account_alias_field">Enter the alias for this account</string>
<string name="account_hostname_field">Hostname</string>
<string name="title_account_hostname_field">Hostname</string>
<string name="dialogtitle_account_hostname_field">Enter hostname</string>
<string name="account_username_field">Username</string>
<string name="title_account_username_field">Username</string>
<string name="dialogtitle_account_username_field">Enter username</string>
<string name="account_proxy_field">Proxy</string>
<string name="title_account_proxy_field">Proxy</string>
<string name="dialogtitle_account_proxy_field">Enter proxy</string>
<string name="account_registration_field">Registration Timeout</string>
<string name="title_account_registration_field">Registration Timeout</string>
<string name="dialogtitle_account_registration_field">Enter registration timeout</string>
<string name="account_network_field">Network Interface</string>
<string name="title_account_network_field">Network Interface</string>
<string name="dialogtitle_account_network_field">Enter registration timeout</string>
<string name="account_stun_field">Stun Server</string>
<string name="title_account_stun_field">Stun Server</string>
<string name="dialogtitle_account_stun_field">Enter stun server</string>
<string name="account_security_field">Security</string>
<string name="title_account_security_field">Security</string>
<string name="dialogtitle_account_security_field">Activate security feature</string>
<string name="account_tls_field">TLS</string>
<string name="title_account_tls_field">TLS</string>
<string name="dialogtitle_account_tls_field">Activate TLS feature</string>
<string name="account_srtp_field">SRTP</string>
<string name="title_account_srtp_field">SRTP</string>
<string name="dialogtitle_account_srtp_field">Activate SRTP feature</string>
</resources>
......@@ -31,41 +31,179 @@
package com.savoirfairelinux.sflphone.client;
import android.app.Fragment;
import android.app.Activity;
import android.preference.EditTextPreference;
import android.preference.Preference;
import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
import android.preference.PreferenceScreen;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.HashMap;
import com.savoirfairelinux.sflphone.R;
public class AccountManagementFragment extends Fragment
public class AccountManagementFragment extends PreferenceFragment
{
static final String TAG = "AccountManagementFragment";
Button buttonAddAccount, buttonRemoveAccount;
public AccountManagementFragment()
{
}
static final String CURRENT_VALUE = "Current value:: ";
static final String ALIAS_KEY = "ALIAS";
static final String HOSTNAME_KEY = "HOSTNAME";
static final String USERNAME_KEY = "USERNAME";
static final String PROXY_KEY = "PROXY";
static final String REGISTRATION_KEY = "REGISTRATION";
static final String NETWORK_KEY = "NETWORK";
static final String SECURITY_KEY = "SECURITY";
static final String TLS_KEY = "TLS";
static final String SRTP_KEY = "SRTP";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Log.i(TAG, "Create Account Management");
Log.i(TAG, "Create Account Management Fragment");
buttonAddAccount = (Button) getActivity().findViewById(R.id.buttonAddAccount);
buttonRemoveAccount = (Button) getActivity().findViewById(R.id.buttonRemoveAccount);
setPreferenceScreen(getAccountPreferenceScreen());
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState)
boolean onTextEditPreferenceChange(Preference preference, Object newValue)
{
Log.i(TAG, "Create Account Management View");
Log.i(TAG, "Account Preference Changed " + preference.getTitle());
preference.setSummary(CURRENT_VALUE + (CharSequence)newValue);
return true;
}
Preference.OnPreferenceChangeListener changeTextEditListener = new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
preference.setSummary(CURRENT_VALUE + (CharSequence)newValue);
return true;
}
};
Preference.OnPreferenceClickListener preferenceClick = new Preference.OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
return false;
}
};
HashMap getAccountDetails()
{
HashMap accountDetails = new HashMap();
accountDetails.put(ALIAS_KEY, "Test-Account");
accountDetails.put(HOSTNAME_KEY, "office.srv.com");
accountDetails.put(USERNAME_KEY, "181");
accountDetails.put(PROXY_KEY, "none");
accountDetails.put(REGISTRATION_KEY, "500");
accountDetails.put(NETWORK_KEY, "eth0");
accountDetails.put(SECURITY_KEY, "disabled");
accountDetails.put(TLS_KEY, "disabled");
accountDetails.put(SRTP_KEY, "disabled");
return accountDetails;
}
return inflater.inflate(R.layout.account_management_layout, parent, false);
}
public PreferenceScreen getAccountPreferenceScreen()
{
Activity currentContext = getActivity();
HashMap accountDetails = getAccountDetails();
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(currentContext);
// Inline preference
PreferenceCategory accountPrefCat = new PreferenceCategory(currentContext);
accountPrefCat.setTitle(R.string.account_preferences);
root.addPreference(accountPrefCat);
// Alias
EditTextPreference accountAliasPref = new EditTextPreference(currentContext);
accountAliasPref.setDialogTitle(R.string.dialogtitle_account_alias_field);
accountAliasPref.setKey("account_alias_field");
accountAliasPref.setTitle(R.string.title_account_alias_field);
accountAliasPref.setSummary(CURRENT_VALUE + accountDetails.get(ALIAS_KEY));
accountAliasPref.setOnPreferenceChangeListener(changeTextEditListener);
accountPrefCat.addPreference(accountAliasPref);
// Hostname
EditTextPreference accountHostnamePref = new EditTextPreference(currentContext);
accountHostnamePref.setDialogTitle(R.string.dialogtitle_account_hostname_field);
accountHostnamePref.setKey("account_hostname_field");
accountHostnamePref.setTitle(R.string.title_account_hostname_field);
accountHostnamePref.setSummary(CURRENT_VALUE + accountDetails.get(HOSTNAME_KEY));
accountHostnamePref.setOnPreferenceChangeListener(changeTextEditListener);
accountPrefCat.addPreference(accountHostnamePref);
// Username
EditTextPreference accountUsernamePref = new EditTextPreference(currentContext);
accountUsernamePref.setDialogTitle(R.string.dialogtitle_account_username_field);
accountUsernamePref.setKey("account_username_field");
accountUsernamePref.setTitle(R.string.title_account_username_field);
accountUsernamePref.setSummary(CURRENT_VALUE + accountDetails.get(USERNAME_KEY));
accountUsernamePref.setOnPreferenceChangeListener(changeTextEditListener);
accountPrefCat.addPreference(accountUsernamePref);
// Proxy
EditTextPreference accountProxyPref = new EditTextPreference(currentContext);
accountProxyPref.setDialogTitle(R.string.dialogtitle_account_proxy_field);
accountProxyPref.setKey("account_proxy_field");
accountProxyPref.setTitle(R.string.title_account_proxy_field);
accountProxyPref.setSummary(CURRENT_VALUE + accountDetails.get(PROXY_KEY));
accountProxyPref.setOnPreferenceChangeListener(changeTextEditListener);
accountPrefCat.addPreference(accountProxyPref);
// Registration Timeout
EditTextPreference accountRegistrationPref = new EditTextPreference(currentContext);
accountRegistrationPref.setDialogTitle(R.string.dialogtitle_account_registration_field);
accountRegistrationPref.setKey("account_registration_field");
accountRegistrationPref.setTitle(R.string.title_account_registration_field);
accountRegistrationPref.setSummary(CURRENT_VALUE + accountDetails.get(REGISTRATION_KEY));
accountRegistrationPref.setOnPreferenceChangeListener(changeTextEditListener);
accountPrefCat.addPreference(accountRegistrationPref);
// Netowrk interface
EditTextPreference accountNetworkPref = new EditTextPreference(currentContext);
accountNetworkPref.setDialogTitle(R.string.dialogtitle_account_network_field);
accountNetworkPref.setKey("account_network_field");
accountNetworkPref.setTitle(R.string.title_account_network_field);
accountNetworkPref.setSummary(CURRENT_VALUE + accountDetails.get(NETWORK_KEY));
accountNetworkPref.setOnPreferenceChangeListener(changeTextEditListener);
accountPrefCat.addPreference(accountNetworkPref);
// Account stun server
EditTextPreference accountSecurityPref = new EditTextPreference(currentContext);
accountSecurityPref.setDialogTitle(R.string.dialogtitle_account_security_field);
accountSecurityPref.setKey("account_security_field");
accountSecurityPref.setTitle(R.string.title_account_security_field);
accountSecurityPref.setSummary(CURRENT_VALUE + accountDetails.get(SECURITY_KEY));
accountSecurityPref.setOnPreferenceChangeListener(changeTextEditListener);
accountPrefCat.addPreference(accountSecurityPref);
// Account tls feature
EditTextPreference accountTlsPref = new EditTextPreference(currentContext);
accountTlsPref.setDialogTitle(R.string.dialogtitle_account_tls_field);
accountTlsPref.setKey("account_tls_field");
accountTlsPref.setTitle(R.string.title_account_tls_field);
accountTlsPref.setSummary(CURRENT_VALUE + accountDetails.get(TLS_KEY));
accountTlsPref.setOnPreferenceChangeListener(changeTextEditListener);
accountPrefCat.addPreference(accountTlsPref);
// Account srtp feature
EditTextPreference accountSrtpPref = new EditTextPreference(currentContext);
accountSrtpPref.setDialogTitle(R.string.dialogtitle_account_srtp_field);
accountSrtpPref.setKey("account_srtp_field");
accountSrtpPref.setTitle(R.string.title_account_srtp_field);
accountSrtpPref.setSummary(CURRENT_VALUE + accountDetails.get(SRTP_KEY));
accountSrtpPref.setOnPreferenceChangeListener(changeTextEditListener);
accountPrefCat.addPreference(accountSrtpPref);
return root;
}
}
......@@ -31,41 +31,37 @@
package com.savoirfairelinux.sflphone.client;
import android.app.Fragment;
import android.app.ListFragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.savoirfairelinux.sflphone.R;
public class PrefManagementFragment extends Fragment
public class PrefManagementFragment extends ListFragment
{
static final String TAG = "PrefManagementFragment";
Button buttonCodecUp, buttonCodecDown;
public PrefManagementFragment()
{
}
@Override
public void onCreate(Bundle savedInstanceState)
public void onActivityCreated(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.onActivityCreated(savedInstanceState);
Log.i(TAG, "Create Preferences Managerment");
buttonCodecUp = (Button) getActivity().findViewById(R.id.buttonCodecUp);
buttonCodecDown = (Button) getActivity().findViewById(R.id.buttonCodecDown);
String[] values = new String[] {"Audio", "Volume", "Codec"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState)
public void onListItemClick(ListView l, View v, int position, long id)
{
Log.i(TAG, "Create Preferences Management View");
return inflater.inflate(R.layout.pref_management_layout, parent, false);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment