removed server compat value in favor of a (small xep list)

Daniel Gultsch created

Change summary

res/layout/activity_edit_account.xml                   | 284 ++++++-----
res/values/strings.xml                                 |  16 
src/eu/siacs/conversations/ui/EditAccountActivity.java |  28 
src/eu/siacs/conversations/xmpp/XmppConnection.java    |  36 -
4 files changed, 187 insertions(+), 177 deletions(-)

Detailed changes

res/layout/activity_edit_account.xml 🔗

@@ -8,153 +8,187 @@
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:layout_above="@+id/button_bar"
-        android:layout_alignParentTop="true">
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content" 
-            android:orientation="vertical">
-
-    <LinearLayout
-        android:id="@+id/editor"
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:padding="8dp" >
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/account_settings_jabber_id"
-            android:textColor="@color/primarytext"
-            android:textSize="14sp" />
-
-        <AutoCompleteTextView
-            android:id="@+id/account_jid"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:hint="@string/account_settings_example_jabber_id"
-            android:inputType="textEmailAddress" />
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            android:text="@string/account_settings_password"
-            android:textColor="@color/primarytext"
-            android:textSize="14sp" />
-
-        <EditText
-            android:id="@+id/account_password"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:hint="@string/password"
-            android:inputType="textPassword" />
-
-        <CheckBox
-            android:id="@+id/account_register_new"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            android:text="@string/register_account"
-            android:textColor="@color/primarytext"
-            android:textSize="14sp" />
-
-        <TextView
-            android:id="@+id/account_confirm_password_desc"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/account_settings_confirm_password"
-            android:textColor="@color/primarytext"
-            android:textSize="14sp"
-            android:visibility="gone" />
-
-        <EditText
-            android:id="@+id/account_password_confirm"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            android:hint="@string/confirm_password"
-            android:inputType="textPassword"
-            android:visibility="gone" />
-    </LinearLayout>
-
-    <LinearLayout
-        android:id="@+id/stats"
-        android:layout_width="fill_parent"
-        android:layout_height="fill_parent"
-        android:layout_marginTop="8dp"
-        android:orientation="vertical"
-        android:padding="16dp"
-        android:visibility="gone" >
-
-        <TextView
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:gravity="center_horizontal"
-            android:text="@string/additional_information"
-            android:textColor="@color/secondarytext"
-            android:textSize="18sp"
-            android:textStyle="bold" />
+        android:layout_alignParentTop="true" >
 
-        <TableLayout
+        <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            android:stretchColumns="1" >
+            android:orientation="vertical" >
 
-            <TableRow
+            <LinearLayout
+                android:id="@+id/editor"
                 android:layout_width="fill_parent"
-                android:layout_height="wrap_content" >
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:padding="8dp" >
 
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:text="@string/server_info_session_established" />
+                    android:text="@string/account_settings_jabber_id"
+                    android:textColor="@color/primarytext"
+                    android:textSize="14sp" />
+
+                <AutoCompleteTextView
+                    android:id="@+id/account_jid"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:hint="@string/account_settings_example_jabber_id"
+                    android:inputType="textEmailAddress" />
 
                 <TextView
-                    android:id="@+id/session_est"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:layout_gravity="right" />
-            </TableRow>
+                    android:layout_marginTop="8dp"
+                    android:text="@string/account_settings_password"
+                    android:textColor="@color/primarytext"
+                    android:textSize="14sp" />
+
+                <EditText
+                    android:id="@+id/account_password"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:hint="@string/password"
+                    android:inputType="textPassword" />
 
-            <TableRow
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content" >
+                <CheckBox
+                    android:id="@+id/account_register_new"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dp"
+                    android:text="@string/register_account"
+                    android:textColor="@color/primarytext"
+                    android:textSize="14sp" />
 
                 <TextView
+                    android:id="@+id/account_confirm_password_desc"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:text="@string/server_info_compatibilty" />
+                    android:text="@string/account_settings_confirm_password"
+                    android:textColor="@color/primarytext"
+                    android:textSize="14sp"
+                    android:visibility="gone" />
+
+                <EditText
+                    android:id="@+id/account_password_confirm"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dp"
+                    android:hint="@string/confirm_password"
+                    android:inputType="textPassword"
+                    android:visibility="gone" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:id="@+id/stats"
+                android:layout_width="fill_parent"
+                android:layout_height="fill_parent"
+                android:layout_marginTop="8dp"
+                android:orientation="vertical"
+                android:padding="16dp"
+                android:visibility="visible" >
+
+                <TextView
+                    android:layout_width="fill_parent"
+                    android:layout_height="wrap_content"
+                    android:gravity="center_horizontal"
+                    android:text="@string/additional_information"
+                    android:textColor="@color/secondarytext"
+                    android:textSize="18sp"
+                    android:textStyle="bold" />
+
+                <TableLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dp"
+                    android:stretchColumns="1" >
+
+                    <TableRow
+                        android:layout_width="fill_parent"
+                        android:layout_height="wrap_content" >
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/server_info_session_established" />
+
+                        <TextView
+                            android:id="@+id/session_est"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_gravity="right" />
+                    </TableRow>
+
+                    <TableRow
+                        android:layout_width="fill_parent"
+                        android:layout_height="wrap_content" >
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/server_info_pep"
+                            android:textColor="@color/primarytext" />
+
+                        <TextView
+                            android:id="@+id/server_info_pep"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_gravity="right" />
+                    </TableRow>
+
+                    <TableRow
+                        android:layout_width="fill_parent"
+                        android:layout_height="wrap_content" >
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/server_info_stream_management" />
+
+                        <TextView
+                            android:id="@+id/server_info_sm"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_gravity="right" />
+                    </TableRow>
+
+                    <TableRow
+                        android:layout_width="fill_parent"
+                        android:layout_height="wrap_content" >
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/server_info_carbon_messages" />
+
+                        <TextView
+                            android:id="@+id/server_info_carbons"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_gravity="right" />
+                    </TableRow>
+                </TableLayout>
 
                 <TextView
-                    android:id="@+id/server_compat"
-                    android:layout_width="wrap_content"
+                    android:id="@+id/otr_fingerprint_headline"
+                    android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
-                    android:layout_gravity="right" />
-            </TableRow>
-        </TableLayout>
+                    android:layout_marginTop="16dp"
+                    android:gravity="center_horizontal"
+                    android:text="@string/otr_fingerprint"
+                    android:textColor="@color/secondarytext"
+                    android:textSize="18sp"
+                    android:textStyle="bold" />
 
-        <TextView
-            android:id="@+id/otr_fingerprint_headline"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="16dp"
-            android:gravity="center_horizontal"
-            android:text="@string/otr_fingerprint"
-            android:textColor="@color/secondarytext"
-            android:textSize="18sp"
-            android:textStyle="bold" />
-
-        <TextView
-            android:id="@+id/otr_fingerprint"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            android:textSize="14sp"
-            android:typeface="monospace" />
-    </LinearLayout>
-    </LinearLayout>
+                <TextView
+                    android:id="@+id/otr_fingerprint"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dp"
+                    android:textSize="14sp"
+                    android:typeface="monospace" />
+            </LinearLayout>
+        </LinearLayout>
     </ScrollView>
 
     <LinearLayout

res/values/strings.xml 🔗

@@ -217,16 +217,11 @@
     <string name="muc_details_other_members">Other Members</string>
     <string name="subscription_not_updated_offline">Account offline. Could not update subscription</string>
     <string name="share_with_active_conversations">Active Conversations</string>
-    <string name="server_info_statistics">Statistics</string>
-    <string name="server_info_connection_age">Connection age</string>
-    <string name="server_info_session_age">Session age</string>
-    <string name="server_info_packets_sent">Packets sent</string>
-    <string name="server_info_packets_received">Packets received</string>
-    <string name="server_info_connected_accounts">Connected accounts</string>
-    <string name="server_info_server_features">Server Features</string>
-    <string name="server_info_roster_versioning">Roster Versioning</string>
-    <string name="server_info_carbon_messages">Carbon Messages</string>
-    <string name="server_info_stream_management">Stream Management</string>
+    <string name="server_info_carbon_messages">XEP-0280: Message Carbons</string>
+    <string name="server_info_stream_management">XEP-0198: Stream Management</string>
+    <string name="server_info_pep">XEP-0163: PEP (Avatars)</string>
+    <string name="server_info_available">available</string>
+    <string name="server_info_unavailable">unavailable</string>
     <string name="hours">hours</string>
     <string name="mins">mins</string>
     <string name="missing_public_keys">Missing public key announcements</string>
@@ -285,7 +280,6 @@
     <string name="connect">Connect</string>
     <string name="account_already_exists">This account does already exist</string>
     <string name="next">Next</string>
-    <string name="server_info_compatibilty">Server compatibilty</string>
     <string name="server_info_session_established">Current session established</string>
     <string name="additional_information">Additional Information</string>
 

src/eu/siacs/conversations/ui/EditAccountActivity.java 🔗

@@ -19,6 +19,7 @@ import eu.siacs.conversations.services.XmppConnectionService.OnAccountUpdate;
 import eu.siacs.conversations.ui.adapter.KnownHostsAdapter;
 import eu.siacs.conversations.utils.UIHelper;
 import eu.siacs.conversations.utils.Validator;
+import eu.siacs.conversations.xmpp.XmppConnection.Features;
 import eu.siacs.conversations.xmpp.pep.Avatar;
 
 public class EditAccountActivity extends XmppActivity {
@@ -31,7 +32,9 @@ public class EditAccountActivity extends XmppActivity {
 	private Button mSaveButton;
 
 	private LinearLayout mStats;
-	private TextView mServerCompat;
+	private TextView mServerInfoSm;
+	private TextView mServerInfoCarbons;
+	private TextView mServerInfoPep;
 	private TextView mSessionEst;
 	private TextView mOtrFingerprint;
 	private TextView mOtrFingerprintHeadline;
@@ -208,7 +211,9 @@ public class EditAccountActivity extends XmppActivity {
 		this.mRegisterNew = (CheckBox) findViewById(R.id.account_register_new);
 		this.mStats = (LinearLayout) findViewById(R.id.stats);
 		this.mSessionEst = (TextView) findViewById(R.id.session_est);
-		this.mServerCompat = (TextView) findViewById(R.id.server_compat);
+		this.mServerInfoCarbons = (TextView) findViewById(R.id.server_info_carbons);
+		this.mServerInfoSm = (TextView) findViewById(R.id.server_info_sm);
+		this.mServerInfoPep = (TextView) findViewById(R.id.server_info_pep);
 		this.mOtrFingerprint = (TextView) findViewById(R.id.otr_fingerprint);
 		this.mOtrFingerprintHeadline = (TextView) findViewById(R.id.otr_fingerprint_headline);
 		this.mSaveButton = (Button) findViewById(R.id.save_button);
@@ -288,9 +293,22 @@ public class EditAccountActivity extends XmppActivity {
 			this.mSessionEst.setText(UIHelper.readableTimeDifference(
 					getApplicationContext(), this.mAccount.getXmppConnection()
 							.getLastSessionEstablished()));
-			this.mServerCompat.setText(this.mAccount.getXmppConnection()
-					.getFeatures().getCompatibility()
-					+ "%");
+			Features features = this.mAccount.getXmppConnection().getFeatures();
+			if (features.carbons()) {
+				this.mServerInfoCarbons.setText(R.string.server_info_available);
+			} else {
+				this.mServerInfoCarbons.setText(R.string.server_info_unavailable);
+			}
+			if (features.sm()) {
+				this.mServerInfoSm.setText(R.string.server_info_available);
+			} else {
+				this.mServerInfoSm.setText(R.string.server_info_unavailable);
+			}
+			if (features.pubsub()) {
+				this.mServerInfoPep.setText(R.string.server_info_available);
+			} else {
+				this.mServerInfoPep.setText(R.string.server_info_unavailable);
+			}
 			String fingerprint = this.mAccount.getOtrFingerprint(getApplicationContext());
 			if (fingerprint!=null) {
 				this.mOtrFingerprintHeadline.setVisibility(View.VISIBLE);

src/eu/siacs/conversations/xmpp/XmppConnection.java 🔗

@@ -919,42 +919,6 @@ public class XmppConnection implements Runnable {
 		public boolean compression() {
 			return connection.usingCompression;
 		}
-		
-		public int getCompatibility() {
-			int hit = 0;
-			int miss = 0;
-			if (carbons()) {
-				++hit;
-			} else {
-				++miss;
-			}
-			if (sm()) {
-				++hit;
-			} else {
-				++miss;
-			}
-			if (pubsub()) {
-				++hit;
-			} else {
-				++miss;
-			}
-			if (streamhost()) {
-				++hit;
-			} else {
-				++miss;
-			}
-			if (compression()) {
-				++hit;
-			} else {
-				++miss;
-			}
-			if (rosterVersioning()) {
-				++hit;
-			} else {
-				++miss;
-			}
-			return (int) (((float) hit) / (hit + miss) * 100);
-		}
 	}
 
 	public long getLastSessionEstablished() {