openlp-android team mailing list archive
-
openlp-android team
-
Mailing list archive
-
Message #00169
[Merge] lp:~johanmynhardt/openlp/android into lp:openlp/android
Johan Mynhardt has proposed merging lp:~johanmynhardt/openlp/android into lp:openlp/android.
Requested reviews:
Tim Bentley (trb143)
For more details, see:
https://code.launchpad.net/~johanmynhardt/openlp/android/+merge/108484
Connection profile bug fixes + cleanup.
--
https://code.launchpad.net/~johanmynhardt/openlp/android/+merge/108484
Your team OpenLP Android Developers is subscribed to branch lp:openlp/android.
=== modified file 'OpenLP.apk'
Binary files OpenLP.apk 2012-05-27 12:46:02 +0000 and OpenLP.apk 2012-06-03 10:47:21 +0000 differ
=== modified file 'res/values/keyStrings.xml'
--- res/values/keyStrings.xml 2012-05-23 21:37:47 +0000
+++ res/values/keyStrings.xml 2012-06-03 10:47:21 +0000
@@ -9,4 +9,5 @@
<string name="keyPort">keyPort</string>
<string name="keySharedPreferences">keySharedPreferences</string>
<string name="key.ssl.use">ssl.use</string>
+ <string name="key.profile.selected.title">key.profile.selected.title</string>
</resources>
=== modified file 'res/values/strings.xml'
--- res/values/strings.xml 2012-05-27 12:45:05 +0000
+++ res/values/strings.xml 2012-06-03 10:47:21 +0000
@@ -74,8 +74,10 @@
<string name="couldNotHandleServiceItems">Could not handle service items</string>
<string name="connection.profiles">Connection Profiles</string>
<string name="connection.profiles.manage">Manage Profiles</string>
- <string name="connection.profile.active">Active Profile</string>
- <string name="connection.profile.summary.activate">Set this profile as the active profile</string>
+ <string name="connection.profile.title">Profile Title</string>
+ <string name="connection.profile.active">Active Profile - Tap to manage</string>
+ <string name="connection.profile.active.toast">Active Profile</string>
+ <string name="connection.profile.summary.activate">Tap to set active</string>
<string name="connection.profile.activate">Activate</string>
<string name="connection.profile.server">Server</string>
<string name="connection.profile.remove">Remove</string>
@@ -86,5 +88,5 @@
<string name="connection.profile.ssl.use">Use SSL</string>
<string name="connection.profile.ssl.summary">Specify whether SSL should be used</string>
<string name="connection.available.configurations">List of available profiles</string>
- <string name="connection.add.by.menu">Add a config via the menu</string>
+ <string name="connection.add.by.menu">Tap to add a new profile</string>
</resources>
=== modified file 'res/xml/preferences.xml'
--- res/xml/preferences.xml 2012-05-27 12:45:05 +0000
+++ res/xml/preferences.xml 2012-06-03 10:47:21 +0000
@@ -22,7 +22,7 @@
android:defaultValue="@string/displayTypeValue"/>
</PreferenceCategory>
<PreferenceCategory
- android:title="@string/preferenceCategoryTitleServer"
+ android:title="@string/connection.profile.active"
android:key="category.server">
<Preference
android:title="@string/url"
@@ -30,16 +30,7 @@
android:hint="@string/urlHint"
android:inputType="textUri"
android:editable="false"
- android:selectable="false"
android:name="@string/url"/>
- <Preference
- android:defaultValue="@string/portDefaultValue"
- android:title="@string/port"
- android:key="@string/keyPort"
- android:name="@string/url"
- android:editable="false"
- android:selectable="false"
- android:inputType="number"/>
</PreferenceCategory>
<PreferenceCategory
android:title="@string/backgroundService">
=== modified file 'src/org/openlp/android/activity/preference/ConnectionPreferenceActivity.java'
--- src/org/openlp/android/activity/preference/ConnectionPreferenceActivity.java 2012-05-27 12:45:05 +0000
+++ src/org/openlp/android/activity/preference/ConnectionPreferenceActivity.java 2012-06-03 10:47:21 +0000
@@ -81,7 +81,25 @@
Preference configPref = new Preference(this);
configPref.setTitle(getString(R.string.connection_available_configurations));
configPref.setSummary(getString(R.string.connection_add_by_menu));
- configPref.setSelectable(false);
+ configPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ int nextId = getNextPrefId(
+ getHostConfigMap(
+ getPreferenceManager()
+ .getSharedPreferences().getAll()
+ )
+ );
+ Preference newPreference = simpleClickablePreferenceFromHostConfig(
+ new HostConfig(
+ getString(R.string.connection_profile_server),
+ nextId));
+ newPreference.setTitle(getString(R.string.connection_profile_new_server));
+ newPreference.setSummary(getString(R.string.connection_profile_not_saved));
+ preferenceScreen.addPreference(newPreference);
+ return true;
+ }
+ });
preferenceScreen.addPreference(configPref);
List<HostConfig> hostConfigs = getHostConfigs();
if (!hostConfigs.isEmpty()) {
@@ -106,7 +124,7 @@
private Preference simpleClickablePreferenceFromHostConfig(final HostConfig config) {
final Preference serverConfig = new Preference(this);
- serverConfig.setTitle(config.title);
+ serverConfig.setTitle(config.title.getSummary());
Boolean useSsl = getPreferenceManager()
.getSharedPreferences()
@@ -169,7 +187,11 @@
}
private HostConfig hostConfigFromPreferencesForHostId(int hostId, Map<String, ?> preferences) {
- HostConfig hostConfig = new HostConfig(getString(R.string.connection_profile_server), hostId);
+ Object titleValue = preferences.get(getHostConfigTitleKey(hostId));
+ String hostTitle = titleValue == null ? getString(R.string.connection_profile_server) : titleValue.toString();
+ HostConfig hostConfig = new HostConfig(
+ hostTitle, hostId
+ );
Object hostValueObject = preferences.get(hostConfig.hostAddress.getKey());
String hostValue = hostValueObject == null
? getString(R.string.hostDefaultValue) : hostValueObject.toString();
@@ -205,8 +227,10 @@
private boolean addPreferenceCategory(PreferenceScreen preferenceScreen, HostConfig hostConfig) {
PreferenceCategory preferenceCategory = new PreferenceCategory(this);
- preferenceCategory.setTitle(hostConfig.title);
+ preferenceCategory.setTitle(hostConfig.title.getSummary());
+ preferenceCategory.setKey("key.preference.category");
preferenceScreen.addPreference(preferenceCategory);
+ preferenceCategory.addPreference(hostConfig.title);
preferenceCategory.addPreference(hostConfig.hostAddress);
preferenceCategory.addPreference(hostConfig.hostPort);
preferenceCategory.addPreference(hostConfig.useSsl);
@@ -216,39 +240,6 @@
}
@Override
- public boolean onCreateOptionsMenu(Menu menu) {
- MenuInflater inflater = getMenuInflater();
- inflater.inflate(R.menu.connections_menu, menu);
- return true;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.preferences:
- startActivity(new Intent(this, Preferences.class));
- return true;
- case R.id.menuAddHost:
- int nextId = getNextPrefId(
- getHostConfigMap(
- getPreferenceManager()
- .getSharedPreferences().getAll()
- )
- );
- Preference preference = simpleClickablePreferenceFromHostConfig(
- new HostConfig(
- getString(R.string.connection_profile_server),
- nextId));
- preference.setTitle(getString(R.string.connection_profile_new_server));
- preference.setSummary(getString(R.string.connection_profile_not_saved));
- preferenceScreen.addPreference(preference);
- return true;
- default:
- return super.onOptionsItemSelected(item);
- }
- }
-
- @Override
protected void onResume() {
super.onResume();
if (resume) {
@@ -259,22 +250,36 @@
}
}
+ private static String getHostConfigTitleKey(int id) {
+ return HostConfig.KEY_PREFIX + id + ".title";
+ }
+
private class HostConfig {
static final String KEY_PREFIX = "host.config.";
final int id;
- final String title;
+ final EditTextPreference title;
final EditTextPreference hostAddress;
final EditTextPreference hostPort;
final CheckBoxPreference useSsl;
final Preference remove;
final Preference activate;
- HostConfig(String title, int id) {
- this.title = title + " " + id;
+ HostConfig(String sTitle, int id) {
this.id = id;
+ title = new EditTextPreference(ConnectionPreferenceActivity.this);
+ title.setSummary(getString(R.string.url));
+ title.getEditText().setHint(getString(R.string.url));
+ title.setTitle(getString(R.string.connection_profile_title));
+ title.setKey(KEY_PREFIX + id + ".title");
+ title.setDefaultValue(getString(R.string.url));
+ title.setSummary(sTitle);
+ title.setDialogTitle(getString(R.string.connection_profile_title));
+ title.setOnPreferenceChangeListener(onPreferenceChangeListener);
+
hostAddress = new EditTextPreference(ConnectionPreferenceActivity.this);
hostAddress.setTitle(getString(R.string.urlHint));
hostAddress.setKey(KEY_PREFIX + id + ".address");
+ hostAddress.getEditText().setHint(R.string.urlHint);
hostAddress.setSummary(getString(R.string.urlHint));
hostAddress.setDialogTitle(getString(R.string.urlHint));
hostAddress.getEditText().setInputType(
@@ -305,6 +310,8 @@
SharedPreferences.Editor editor = prefs.edit();
editor.remove(hostAddress.getKey());
editor.remove(hostPort.getKey());
+ editor.remove(title.getKey());
+ editor.remove(useSsl.getKey());
editor.commit();
ConnectionPreferenceActivity.this.onBackPressed();
return false;
@@ -328,16 +335,23 @@
Boolean bUseSsl = preferences.getBoolean(useSsl.getKey(), false);
editor.putBoolean(getString(R.string.key_ssl_use), bUseSsl);
+ editor.putString(
+ getString(R.string.key_profile_selected_title),
+ preferences.getString(
+ title.getKey(),
+ getString(R.string.url)));
+
editor.commit();
Toast.makeText(ConnectionPreferenceActivity.this,
String.format(
- "%s: %s [%s:%s]",
- getString(R.string.connection_profile_active),
- HostConfig.this.title,
+ "%s: %s\n[%s:%s] %s",
+ getString(R.string.connection_profile_active_toast),
+ HostConfig.this.title.getText(),
host,
- port
+ port,
+ useSsl.isChecked() ? "(SSL)" : ""
),
- Toast.LENGTH_SHORT).show();
+ Toast.LENGTH_LONG).show();
return false;
}
});
@@ -358,6 +372,11 @@
@Override
public boolean onPreferenceChange(Preference preference, Object o) {
preference.setSummary("" + o);
+ if (preference.getKey().endsWith(".title")) {
+ preferenceScreen
+ .findPreference("key.preference.category")
+ .setTitle("" + o);
+ }
return true;
}
};
=== modified file 'src/org/openlp/android/activity/preference/Preferences.java'
--- src/org/openlp/android/activity/preference/Preferences.java 2012-05-27 12:45:05 +0000
+++ src/org/openlp/android/activity/preference/Preferences.java 2012-06-03 10:47:21 +0000
@@ -59,34 +59,30 @@
addPreferencesFromResource(R.xml.preferences);
final SharedPreferences sharedPreferences = getPreferenceManager()
.getSharedPreferences();
- final Preference hostPreference = findPreference(getString(R.string.keyHost));
- hostPreference.setSummary(
- sharedPreferences.getString(
- getString(R.string.keyHost),
- getString(R.string.notSet)));
- Preference.OnPreferenceChangeListener onPreferenceChangeListener =
- new Preference.OnPreferenceChangeListener() {
- @Override
- public boolean onPreferenceChange(Preference preference,
- Object o) {
- preference.setSummary("" + o);
- return true;
- }
- };
- hostPreference.setOnPreferenceChangeListener(onPreferenceChangeListener);
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append(sharedPreferences.getString(
+ getString(R.string.keyHost),
+ getString(R.string.notSet)));
+ stringBuilder.append(":");
Boolean useSsl = sharedPreferences.getBoolean(
- getString(R.string.key_ssl_use), false);
- final Preference portPreference = findPreference(getString(R.string.keyPort));
- portPreference.setSummary(
+ getString(R.string.key_ssl_use), false);
+ stringBuilder.append(
String.format("%s %s",
sharedPreferences.getString(
getString(R.string.keyPort),
- getString(R.string.notSet)), useSsl ? "(SSL)" : "")
+ getString(R.string.notSet)), useSsl ? "(SSL)" : ""));
+
+ final Preference hostPreference = findPreference(getString(R.string.keyHost));
+ hostPreference.setTitle(
+ getPreferenceManager().getSharedPreferences()
+ .getString(
+ getString(R.string.key_profile_selected_title),
+ getString(R.string.url)
+ )
);
-
- portPreference.setOnPreferenceChangeListener(onPreferenceChangeListener);
+ hostPreference.setSummary(stringBuilder.toString());
PackageManager manager = this.getPackageManager();
String version = "";
@@ -132,16 +128,8 @@
addPreferenceCategory(preferenceScreen,getString(R.string.about),
about, openlpLink, copyright, license);
- Preference preference = new Preference(this);
- preference.setTitle(getString(R.string.connection_profiles_manage));
+ Preference preference = findPreference(getString(R.string.keyHost));
preference.setIntent(new Intent(this, ConnectionPreferenceActivity.class));
- preference.setKey("preference.manage.profiles");
- PreferenceCategory preferenceCategory = (
- (PreferenceCategory) findPreference("category.server")
- );
- if (findPreference("preference.manage.profiles") == null) {
- preferenceCategory.addPreference(preference);
- }
}
private boolean addPreferenceCategory(PreferenceScreen preferenceScreen,
Follow ups