Merge branch 'fp2-2343' into 'master'

FPII-2343: FP Updater: add URL parameters

Add Updater and baseband (FP2) version to updater.zip request.

Change-Id: I05a28cebdc5c9bf00f2e4920d3536c0a848a8f71

See merge request !29
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5240dbe..2e71e39 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,8 +2,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:tools="http://schemas.android.com/tools"
           package="com.fairphone.updater"
-    android:versionCode="33"
-    android:versionName="33" >
+    android:versionCode="34"
+    android:versionName="34" >
 
     <uses-sdk
         android:minSdkVersion="17"
@@ -94,4 +94,4 @@
         </activity>
     </application>
 
-</manifest>
\ No newline at end of file
+</manifest>
diff --git a/app/src/main/java/com/fairphone/updater/BetaEnabler.java b/app/src/main/java/com/fairphone/updater/BetaEnabler.java
index 806f60a..988c15b 100644
--- a/app/src/main/java/com/fairphone/updater/BetaEnabler.java
+++ b/app/src/main/java/com/fairphone/updater/BetaEnabler.java
@@ -14,7 +14,6 @@
 
 public class BetaEnabler extends Activity {
 
-    public static final String BETA_DISABLED = "0";
     public static final String BETA_ENABLED = "1";
     
     @Override
diff --git a/app/src/main/java/com/fairphone/updater/UpdaterService.java b/app/src/main/java/com/fairphone/updater/UpdaterService.java
index 378a41c..eb65cd7 100644
--- a/app/src/main/java/com/fairphone/updater/UpdaterService.java
+++ b/app/src/main/java/com/fairphone/updater/UpdaterService.java
@@ -327,9 +327,17 @@
                 if(modelWithoutSpaces.startsWith(context.getResources().getString(R.string.FP1Model))) {
                     sb.append("&b_n=").append(URLEncoder.encode(currentVersion.getBuildNumber(), defaultCharset));
                 }
-                sb.append("&ota_v_n=").append(URLEncoder.encode(String.valueOf(currentVersion.getId()), defaultCharset));
-                sb.append("&beta=").append(FairphoneUpdater.BETA_MODE_ENABLED ? BetaEnabler.BETA_ENABLED : BetaEnabler.BETA_DISABLED);
-                sb.append("&dev=").append(FairphoneUpdater.DEV_MODE_ENABLED ? "1" : "0");
+                sb.append("&ap=").append(URLEncoder.encode(String.valueOf(currentVersion.getId()), defaultCharset));
+                if(modelWithoutSpaces.equals(context.getResources().getString(R.string.FP2Model))) {
+                    sb.append("&bp=").append(URLEncoder.encode(String.valueOf(currentVersion.getBasebandVersion()), defaultCharset));
+                }
+                sb.append("&u=").append(URLEncoder.encode(String.valueOf(Utils.getVersionCode(context.getApplicationContext())), defaultCharset));
+                if(FairphoneUpdater.BETA_MODE_ENABLED) {
+                    sb.append("&beta=").append(BetaEnabler.BETA_ENABLED);
+                }
+                if(FairphoneUpdater.DEV_MODE_ENABLED) {
+                    sb.append("&dev=").append("1");
+                }
             } catch (UnsupportedEncodingException e) {
                 Log.e(TAG, "Failed to add extra info on update request: "+e.getLocalizedMessage());
             }
diff --git a/app/src/main/java/com/fairphone/updater/data/Version.java b/app/src/main/java/com/fairphone/updater/data/Version.java
index 2a206a0..1eab656 100644
--- a/app/src/main/java/com/fairphone/updater/data/Version.java
+++ b/app/src/main/java/com/fairphone/updater/data/Version.java
@@ -45,6 +45,8 @@
 
     private final List<Integer> mDependencies;
 
+    private String mBasebandVersion;
+
     public Version()
     {
         super();
@@ -52,6 +54,7 @@
         mAndroidVersion = "";
         mImageType = IMAGE_TYPE_FAIRPHONE;
         mErasePartitionsWarning = false;
+        mBasebandVersion = "";
     }
 
     public Version(Version other)
@@ -61,6 +64,7 @@
         mAndroidVersion = other.mAndroidVersion;
         mImageType = other.mImageType;
         mErasePartitionsWarning = other.hasEraseAllPartitionWarning();
+        mBasebandVersion = other.mBasebandVersion;
     }
 
     public void setEraseAllPartitionWarning()
@@ -110,6 +114,14 @@
         return description;
     }
 
+    public String getBasebandVersion() {
+        return mBasebandVersion;
+    }
+
+    public void setBasebandVersion(String basebandVersion) {
+        this.mBasebandVersion = basebandVersion;
+    }
+
 // --Commented out by Inspection START (06/02/2015 12:25):
 //    public String getAndroidVersion(Resources resources)
 //    {
diff --git a/app/src/main/java/com/fairphone/updater/data/VersionParserHelper.java b/app/src/main/java/com/fairphone/updater/data/VersionParserHelper.java
index 5334b7f..0511763 100644
--- a/app/src/main/java/com/fairphone/updater/data/VersionParserHelper.java
+++ b/app/src/main/java/com/fairphone/updater/data/VersionParserHelper.java
@@ -27,7 +27,7 @@
     private static final String CURRENT_VERSION_BUILD_NUMBER = "fairphone.ota.build_number";
     private static final String CURRENT_VERSION_IMAGE_TYPE = "fairphone.ota.image_type";
     private static final String CURRENT_VERSION_ID = "ro.build.version.incremental";                // for FP2
-
+    private static final String CURRENT_VERSION_BASEBAND_VERSION = "gsm.version.baseband";
 
     private static Version version;
     public static Version getDeviceVersion(Context context)
@@ -52,6 +52,7 @@
                 }
                 versionBuilder.setName(versionBuilder.getCurrentImageType());
                 versionBuilder.setBuildNumber(versionBuilder.getBuildNumberFromId());
+                versionBuilder.setBasebandVersion(getSystemData(context, CURRENT_VERSION_BASEBAND_VERSION, knownFPDevice));
             } else {
                 // FP1(U)
                 try
@@ -96,6 +97,9 @@
             case CURRENT_VERSION_ID:
                 result = Utils.getprop(CURRENT_VERSION_ID, useDefaults ? "" : ""); // TODO: define default value for fingerprint
                 break;
+            case CURRENT_VERSION_BASEBAND_VERSION:
+                result = Utils.getprop(CURRENT_VERSION_BASEBAND_VERSION, useDefaults ? "" : ""); // TODO: define default value for baseband version
+                break;
             default:
                 result = "";
                 break;
diff --git a/app/src/main/java/com/fairphone/updater/tools/Utils.java b/app/src/main/java/com/fairphone/updater/tools/Utils.java
index c8b3930..cd757dc 100644
--- a/app/src/main/java/com/fairphone/updater/tools/Utils.java
+++ b/app/src/main/java/com/fairphone/updater/tools/Utils.java
@@ -24,6 +24,7 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.database.Cursor;
 import android.net.ConnectivityManager;
@@ -692,4 +693,19 @@
         mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, pendingIntent);
         System.exit(0);
     }
+
+    public static int getVersionCode(Context context) {
+        PackageManager packageManager = context.getPackageManager();
+        String packageName = context.getPackageName();
+
+        int versionCode = 0;
+
+        try {
+            versionCode = packageManager.getPackageInfo(packageName, 0).versionCode;
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.e(TAG, "App versionCode cannot be retrieved", e);
+        }
+
+        return versionCode;
+    }
 }