[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdeconnect-android/filetransfer] KdeConnect/src/main: Store device's protocol version and show a wa
From:       Albert Vaca <albertvaka () gmail ! com>
Date:       2013-10-01 1:29:38
Message-ID: E1VQomQ-0000u3-Vc () scm ! kde ! org
[Download RAW message or body]

Git commit 35170356059991544419065912eeb7be8e681e69 by Albert Vaca.
Committed on 01/10/2013 at 01:24.
Pushed by albertvaka into branch 'filetransfer'.

Store device's protocol version and show a warning if it doesn't match

M  +3    -3    KdeConnect/src/main/java/org/kde/kdeconnect/BackgroundService.java
M  +14   -5    KdeConnect/src/main/java/org/kde/kdeconnect/Device.java
M  +11   -0    KdeConnect/src/main/java/org/kde/kdeconnect/UserInterface/List/DeviceItem.java
 M  +18   -34   KdeConnect/src/main/res/layout/list_item_entry.xml
M  +2    -0    KdeConnect/src/main/res/values/strings.xml

http://commits.kde.org/kdeconnect-android/35170356059991544419065912eeb7be8e681e69

diff --git a/KdeConnect/src/main/java/org/kde/kdeconnect/BackgroundService.java \
b/KdeConnect/src/main/java/org/kde/kdeconnect/BackgroundService.java index \
                6cb3b7b..d68db4a 100644
--- a/KdeConnect/src/main/java/org/kde/kdeconnect/BackgroundService.java
+++ b/KdeConnect/src/main/java/org/kde/kdeconnect/BackgroundService.java
@@ -54,7 +54,7 @@ public class BackgroundService extends Service {
         Set<String> trustedDevices = preferences.getAll().keySet();
         for(String deviceId : trustedDevices) {
             if (preferences.getBoolean(deviceId, false)) {
-                Device device = new Device(getBaseContext(), deviceId);
+                Device device = new Device(this, deviceId);
                 devices.put(deviceId,device);
                 device.addPairingCallback(devicePairingCallback);
             }
@@ -91,11 +91,11 @@ public class BackgroundService extends Service {
 
             if (device != null) {
                 Log.i("BackgroundService", "addLink, known device: " + deviceId);
-                device.addLink(link);
+                device.addLink(identityPackage, link);
             } else {
                 Log.i("BackgroundService", "addLink,unknown device: " + deviceId);
                 String name = identityPackage.getString("deviceName");
-                device = new Device(getBaseContext(), deviceId, name, link);
+                device = new Device(BackgroundService.this, identityPackage, link);
                 devices.put(deviceId, device);
                 device.addPairingCallback(devicePairingCallback);
             }
diff --git a/KdeConnect/src/main/java/org/kde/kdeconnect/Device.java \
b/KdeConnect/src/main/java/org/kde/kdeconnect/Device.java index cb99ac6..7c6f0b6 \
                100644
--- a/KdeConnect/src/main/java/org/kde/kdeconnect/Device.java
+++ b/KdeConnect/src/main/java/org/kde/kdeconnect/Device.java
@@ -42,6 +42,7 @@ public class Device implements BaseLink.PackageReceiver {
     private String name;
     private PublicKey publicKey;
     private int notificationId;
+    private int protocolVersion;
 
     private enum PairStatus {
         NotPaired,
@@ -77,6 +78,7 @@ public class Device implements BaseLink.PackageReceiver {
         this.deviceId = deviceId;
         this.name = settings.getString("deviceName", "unknown device");
         this.pairStatus = PairStatus.Paired;
+        this.protocolVersion = NetworkPackage.ProtocolVersion; //We don't know it \
yet  
         try {
             byte[] publicKeyBytes = Base64.decode(settings.getString("publicKey", \
""), 0); @@ -90,18 +92,19 @@ public class Device implements BaseLink.PackageReceiver \
{  }
 
     //Device known via an incoming connection sent to us via a devicelink, we know \
                everything but we don't trust it yet
-    Device(Context context, String deviceId, String name, BaseLink dl) {
+    Device(Context context, NetworkPackage np, BaseLink dl) {
         settings = context.getSharedPreferences(deviceId, Context.MODE_PRIVATE);
 
         //Log.e("Device","Constructor B");
 
         this.context = context;
-        this.deviceId = deviceId;
-        this.name = name;
+        this.deviceId = np.getString("deviceId");
+        this.name = np.getString("deviceName");
+        this.protocolVersion = np.getInt("protocolVersion");
         this.pairStatus = PairStatus.NotPaired;
         this.publicKey = null;
 
-        addLink(dl);
+        addLink(np, dl);
     }
 
     public String getName() {
@@ -112,6 +115,10 @@ public class Device implements BaseLink.PackageReceiver {
         return deviceId;
     }
 
+    //Returns 0 if the version matches, < 0 if it is older or > 0 if it is newer
+    public int compareProtocolVersion() {
+        return protocolVersion - NetworkPackage.ProtocolVersion;
+    }
 
 
 
@@ -262,7 +269,9 @@ public class Device implements BaseLink.PackageReceiver {
         return !links.isEmpty();
     }
 
-    public void addLink(BaseLink link) {
+    public void addLink(NetworkPackage identityPackage, BaseLink link) {
+
+        this.protocolVersion = identityPackage.getInt("protocolVersion");
 
         links.add(link);
 
diff --git a/KdeConnect/src/main/java/org/kde/kdeconnect/UserInterface/List/DeviceItem.java \
b/KdeConnect/src/main/java/org/kde/kdeconnect/UserInterface/List/DeviceItem.java \
                index b708b83..79bcdcc 100644
--- a/KdeConnect/src/main/java/org/kde/kdeconnect/UserInterface/List/DeviceItem.java
+++ b/KdeConnect/src/main/java/org/kde/kdeconnect/UserInterface/List/DeviceItem.java
@@ -28,6 +28,17 @@ public class DeviceItem implements ListAdapter.Item {
 
         TextView titleView = (TextView)v.findViewById(R.id.list_item_entry_title);
         if (titleView != null) titleView.setText(device.getName());
+        if (device.compareProtocolVersion() != 0) {
+            TextView summaryView = \
(TextView)v.findViewById(R.id.list_item_entry_summary); +            \
summaryView.setVisibility(View.VISIBLE); +            if \
(device.compareProtocolVersion() > 0) { +                \
summaryView.setText(R.string.protocol_version_newer); +            } else {
+                summaryView.setText(R.string.protocol_version_older);
+            }
+        } else {
+            v.findViewById(R.id.list_item_entry_summary).setVisibility(View.GONE);
+        }
 
         v.setOnClickListener(new View.OnClickListener() {
             @Override
diff --git a/KdeConnect/src/main/res/layout/list_item_entry.xml \
b/KdeConnect/src/main/res/layout/list_item_entry.xml index 61f2ed2..fd4fd3b 100644
--- a/KdeConnect/src/main/res/layout/list_item_entry.xml
+++ b/KdeConnect/src/main/res/layout/list_item_entry.xml
@@ -6,43 +6,27 @@
     android:layout_height="wrap_content"
     android:minHeight="?android:attr/listPreferredItemHeight"
     android:gravity="center_vertical"
-    android:paddingRight="?android:attr/scrollbarSize">
-    <!--
-    <ImageView
-        android:id="@+id/list_item_entry_drawable"
-        android:layout_width="wrap_content"
-        android:layout_height="fill_parent"
-        android:src="@android:drawable/ic_menu_preferences"
-        android:paddingLeft="9dp"/>
+    android:paddingRight="?android:attr/scrollbarSize"
+    android:orientation="vertical">
+
 
-    <RelativeLayout
-        android:layout_width="fill_parent"
+    <TextView android:id="@+id/list_item_entry_title"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginLeft="10dip"
-        android:layout_marginRight="6dip"
-        android:layout_marginTop="3dip"
-        android:layout_marginBottom="3dip"
-        android:layout_weight="0">
-        -->
-        <TextView android:id="@+id/list_item_entry_title"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:singleLine="true"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:ellipsize="marquee"
-            android:fadingEdge="horizontal" />
+        android:singleLine="true"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:ellipsize="marquee"
+        android:fadingEdge="horizontal"
+        android:text="" />
 
-        <!--
-        <TextView android:id="@+id/list_item_entry_summary"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_below="@id/list_item_entry_title"
-            android:layout_alignLeft="@id/list_item_entry_title"
-            android:textAppearance="?android:attr/textAppearanceSmall"
-            android:singleLine="true"
-            android:textColor="?android:attr/textColorSecondary" />
+    <TextView android:id="@+id/list_item_entry_summary"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceSmall"
+        android:singleLine="true"
+        android:textColor="#CC2222"
+        android:visibility="gone"
+        android:text="" />
 
 
-    </RelativeLayout>
-            -->
 </LinearLayout>
diff --git a/KdeConnect/src/main/res/values/strings.xml \
b/KdeConnect/src/main/res/values/strings.xml index a86cde6..7dc5a99 100644
--- a/KdeConnect/src/main/res/values/strings.xml
+++ b/KdeConnect/src/main/res/values/strings.xml
@@ -53,6 +53,8 @@
     <string name="mpris_next">Next</string>
     <string name="mpris_volume">Volume</string>
     <string name="share_to">Share To...</string>
+    <string name="protocol_version_older">This device uses an old protocol \
version</string> +    <string name="protocol_version_newer">This device uses a newer \
protocol version</string>  
 
 </resources>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic