← Back to team overview

openlp-android team mailing list archive

[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