Merge remote-tracking branch 'fp2-dev/fp2-dev-v2'
Conflicts:
src/com/fairphone/updater/UpdaterService.java
src/com/fairphone/updater/data/VersionParserHelper.java
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 4ae6970..92867d9 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -44,7 +44,6 @@
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
- <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
</intent-filter>
</receiver>
diff --git a/res/drawable-hdpi/updater_white.png b/res/drawable-hdpi/updater_white.png
new file mode 100755
index 0000000..3037ce2
--- /dev/null
+++ b/res/drawable-hdpi/updater_white.png
Binary files differ
diff --git a/res/drawable-mdpi/updater_white.png b/res/drawable-mdpi/updater_white.png
new file mode 100755
index 0000000..9669692
--- /dev/null
+++ b/res/drawable-mdpi/updater_white.png
Binary files differ
diff --git a/res/drawable-xhdpi/updater_white.png b/res/drawable-xhdpi/updater_white.png
new file mode 100755
index 0000000..544dc37
--- /dev/null
+++ b/res/drawable-xhdpi/updater_white.png
Binary files differ
diff --git a/res/drawable-xxhdpi/updater_white.png b/res/drawable-xxhdpi/updater_white.png
new file mode 100755
index 0000000..54a5956
--- /dev/null
+++ b/res/drawable-xxhdpi/updater_white.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/updater_white.png b/res/drawable-xxxhdpi/updater_white.png
new file mode 100755
index 0000000..508cf5c
--- /dev/null
+++ b/res/drawable-xxxhdpi/updater_white.png
Binary files differ
diff --git a/res/values/config.xml b/res/values/config.xml
index 1b3970b..e29ac31 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -7,7 +7,7 @@
<string name="config_xml" translatable="false">.xml</string>
<string name="config_sig" translatable="false">.sig</string>
- <integer name="defaultVersionNumber">1</integer>
+ <string name="defaultVersionId">1</string>
<string name="defaultVersionName" translatable="false">Almond</string>
<string name="defaultBuildNumber" translatable="false">1.0</string>
<string name="defaultBuildDate" translatable="false">0</string>
@@ -16,7 +16,7 @@
<string name="defaultBetaStatus" translatable="false">0</string>
<!-- Device Model without spaces separated by semicolon. Ex: FP1;FP1U;FP2 -->
- <string name="knownFPDevices" translatable="false">FP1;FP1U</string>
+ <string name="knownFPDevices" translatable="false">FP1;FP1U;FP2</string>
<string name="oneGBDataPartition" translatable="false">/originalPartition</string>
<string name="unifiedDataPartition" translatable="false">/unifiedPartition</string>
@@ -25,6 +25,8 @@
<string name="recoverySdCardPath" translatable="false">/sdcard</string>
<string name="updaterFolder" translatable="false">/updater/</string>
<integer name="FP1DataPartitionSizeMb">1100</integer>
+
+ <string name="FP2Model" translatable="false">FP2</string>
<!-- Packager -->
<string name="removePlayStoreCommand" translatable="false">rm /data/app/com.android.vending-*.apk</string>
diff --git a/src/com/fairphone/updater/FairphoneUpdater.java b/src/com/fairphone/updater/FairphoneUpdater.java
index c86898d..285afbb 100644
--- a/src/com/fairphone/updater/FairphoneUpdater.java
+++ b/src/com/fairphone/updater/FairphoneUpdater.java
@@ -200,13 +200,23 @@
void getSelectedVersionFromSharedPreferences()
{
String versionImageType = mSharedPreferences.getString(PREFERENCE_SELECTED_VERSION_TYPE, "");
- int versionNumber = mSharedPreferences.getInt(PREFERENCE_SELECTED_VERSION_NUMBER, 0);
+ String versionNumber = "0";
+ try {
+ versionNumber = mSharedPreferences.getString(PREFERENCE_SELECTED_VERSION_NUMBER, "0");
+ } catch (ClassCastException e) {
+ versionNumber = Integer.toString(mSharedPreferences.getInt(PREFERENCE_SELECTED_VERSION_NUMBER, 0));
+ }
mSelectedVersion = UpdaterData.getInstance().getVersion(versionImageType, versionNumber);
}
void getSelectedStoreFromSharedPreferences()
{
- int storeNumber = mSharedPreferences.getInt(PREFERENCE_SELECTED_STORE_NUMBER, -1);
+ String storeNumber = "-1";
+ try {
+ storeNumber = mSharedPreferences.getString(PREFERENCE_SELECTED_STORE_NUMBER, "-1");
+ } catch (ClassCastException e) {
+ storeNumber = Integer.toString(mSharedPreferences.getInt(PREFERENCE_SELECTED_STORE_NUMBER, -1));
+ }
mSelectedStore = UpdaterData.getInstance().getStore(storeNumber);
}
@@ -619,7 +629,7 @@
{
if(isVersion)
{
- itemName = getVersionName((Version) item);
+ itemName = ((Version) item).getHumanReadableName();
}
else
{
@@ -629,18 +639,7 @@
return itemName;
}
- public String getVersionName(Version version)
- {
- String itemName = "";
- if (version != null)
- {
- if(mCurrentState != UpdaterState.ZIP_INSTALL) {
- itemName = version.getImageTypeDescription(getResources()) + " ";
- }
- itemName += version.getName() + " " + version.getBuildNumber();
- }
- return itemName;
- }
+
public static String getStoreName(Store store)
{
@@ -654,12 +653,12 @@
public String getDeviceVersionName()
{
- return getVersionName(mDeviceVersion);
+ return mDeviceVersion.getHumanReadableName();
}
public String getLatestVersionName()
{
- return getVersionName(mLatestVersion);
+ return mLatestVersion.getHumanReadableName();
}
public Version getDeviceVersion()
@@ -698,25 +697,25 @@
public void setSelectedVersion(Version selectedVersion)
{
- int versionNumber = selectedVersion != null ? selectedVersion.getNumber() : 0;
+ String versionNumber = selectedVersion != null ? selectedVersion.getId() : "0";
String versionImageType = selectedVersion != null ? selectedVersion.getImageType() : "";
clearSelectedVersion(versionNumber, versionImageType);
mSelectedVersion = UpdaterData.getInstance().getVersion(versionImageType, versionNumber);
- clearSelectedStore(-1);
+ clearSelectedStore("-1");
}
public void clearSelectedItems()
{
- clearSelectedVersion(0, "");
- clearSelectedStore(-1);
+ clearSelectedVersion("0", "");
+ clearSelectedStore("-1");
}
- private void clearSelectedVersion(int versionNumber, String versionImageType)
+ private void clearSelectedVersion(String versionNumber, String versionImageType)
{
Editor editor = mSharedPreferences.edit();
- editor.putInt(PREFERENCE_SELECTED_VERSION_NUMBER, versionNumber);
+ editor.putString(PREFERENCE_SELECTED_VERSION_NUMBER, versionNumber);
editor.putString(PREFERENCE_SELECTED_VERSION_TYPE, versionImageType);
editor.commit();
@@ -725,18 +724,18 @@
public void setSelectedStore(Store selectedStore)
{
- int storeNumber = selectedStore != null ? selectedStore.getNumber() : -1;
+ String storeNumber = selectedStore != null ? selectedStore.getId() : "-1";
clearSelectedStore(storeNumber);
mSelectedStore = UpdaterData.getInstance().getStore(storeNumber);
- clearSelectedVersion(0, "");
+ clearSelectedVersion("0", "");
}
- private void clearSelectedStore(int storeNumber)
+ private void clearSelectedStore(String storeNumber)
{
Editor editor = mSharedPreferences.edit();
- editor.putInt(PREFERENCE_SELECTED_STORE_NUMBER, storeNumber);
+ editor.putString(PREFERENCE_SELECTED_STORE_NUMBER, storeNumber);
editor.commit();
mSelectedStore = null;
diff --git a/src/com/fairphone/updater/UpdaterService.java b/src/com/fairphone/updater/UpdaterService.java
index dbb0303..598bc4b 100644
--- a/src/com/fairphone/updater/UpdaterService.java
+++ b/src/com/fairphone/updater/UpdaterService.java
@@ -31,7 +31,6 @@
import android.content.SharedPreferences.Editor;
import android.content.res.Resources;
import android.database.Cursor;
-import android.graphics.BitmapFactory;
import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.Build;
@@ -153,7 +152,7 @@
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
- NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context).setSmallIcon(R.drawable.updater_tray_icon)
+ NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context).setSmallIcon(R.drawable.updater_white)
.setContentTitle(context.getResources().getString(R.string.app_full_name))
.setContentText(context.getResources().getString(R.string.appStoreReinstall))
.setAutoCancel(true)
@@ -329,7 +328,7 @@
final String defaultCharset = Charset.defaultCharset().displayName();
sb.append("&os=").append(URLEncoder.encode(currentVersion.getAndroidVersion(), defaultCharset));
sb.append("&b_n=").append(URLEncoder.encode(currentVersion.getBuildNumber(), defaultCharset));
- sb.append("&ota_v_n=").append(URLEncoder.encode(String.valueOf(currentVersion.getNumber()), defaultCharset));
+ sb.append("&ota_v_n=").append(URLEncoder.encode(String.valueOf(currentVersion.getId()), defaultCharset));
sb.append("&d=").append(URLEncoder.encode(currentVersion.getReleaseDate(), defaultCharset));
sb.append("&beta=").append(URLEncoder.encode(currentVersion.getBetaStatus(), defaultCharset));
sb.append("&dev=").append(FairphoneUpdater.DEV_MODE_ENABLED ? "1" : "0");
@@ -352,8 +351,7 @@
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder =
- new NotificationCompat.Builder(context).setSmallIcon(R.drawable.updater_tray_icon_small)
- .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.updater_tray_icon))
+ new NotificationCompat.Builder(context).setSmallIcon(R.drawable.updater_white)
.setContentTitle(context.getResources().getString(R.string.app_full_name))
.setContentText(context.getResources().getString(R.string.fairphone_update_message));
@@ -613,7 +611,6 @@
{
boolean removeReceiver = false;
-
DownloadManager.Query query = new DownloadManager.Query();
query.setFilterById(mLatestFileDownloadId);
@@ -668,4 +665,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/src/com/fairphone/updater/data/DownloadableItem.java b/src/com/fairphone/updater/data/DownloadableItem.java
index 1513fca..f631809 100644
--- a/src/com/fairphone/updater/data/DownloadableItem.java
+++ b/src/com/fairphone/updater/data/DownloadableItem.java
@@ -16,19 +16,19 @@
package com.fairphone.updater.data;
-import java.util.HashMap;
-import java.util.Map;
-
import android.text.TextUtils;
import android.util.Log;
+import java.util.HashMap;
+import java.util.Map;
+
public abstract class DownloadableItem
{
private static final String TAG = DownloadableItem.class.getSimpleName();
public static final String DEFAULT_NOTES_LANG = "en";
- private int mNumber;
+ private String mId;
private String mName;
@@ -46,7 +46,7 @@
DownloadableItem()
{
- mNumber = 0;
+ mId = "";
mName = "";
mOTADownloadLink = "";
mOTAMd5Sum = "";
@@ -59,7 +59,7 @@
DownloadableItem(DownloadableItem other)
{
- mNumber = other.mNumber;
+ mId = other.mId;
mName = other.mName;
mOTADownloadLink = other.mOTADownloadLink;
mOTAMd5Sum = other.mOTAMd5Sum;
@@ -70,26 +70,14 @@
mReleaseNotesMap = other.mReleaseNotesMap;
}
- public int getNumber()
+ public String getId()
{
- return mNumber;
+ return mId;
}
- public void setNumber(String number)
+ public void setId(String id)
{
- try
- {
- this.mNumber = Integer.valueOf(number);
- } catch (NumberFormatException e)
- {
- Log.w(TAG, "Error decoding version number. Defaulting to 0: " + e.getLocalizedMessage());
- this.mNumber = 0;
- }
- }
-
- public void setNumber(int number)
- {
- this.mNumber = number;
+ this.mId = id;
}
public String getName()
@@ -129,7 +117,7 @@
if (item != null)
{
- result = this.mNumber > item.mNumber;
+ result = !this.mId.equals(item.mId);
}
else
{
diff --git a/src/com/fairphone/updater/data/Store.java b/src/com/fairphone/updater/data/Store.java
index 0b5813e..71e8ad4 100644
--- a/src/com/fairphone/updater/data/Store.java
+++ b/src/com/fairphone/updater/data/Store.java
@@ -33,11 +33,11 @@
int retVal;
if (another != null)
{
- if (this.getNumber() > another.getNumber())
+ if (!this.getId().equals(another.getId()))
{
retVal = 1;
}
- else if (this.getNumber() == another.getNumber())
+ else if (this.getId() == another.getId())
{
retVal = 0;
}
diff --git a/src/com/fairphone/updater/data/UpdaterData.java b/src/com/fairphone/updater/data/UpdaterData.java
index 3daacb2..1e7ddb1 100644
--- a/src/com/fairphone/updater/data/UpdaterData.java
+++ b/src/com/fairphone/updater/data/UpdaterData.java
@@ -16,15 +16,15 @@
private static UpdaterData mInstance;
- private int mLatestAOSPVersionNumber;
+ private String mLatestAOSPVersionNumber;
- private int mLatestFairphoneVersionNumber;
+ private String mLatestFairphoneVersionNumber;
- private final Map<Integer, Version> mAOSPVersionMap;
+ private final Map<String, Version> mAOSPVersionMap;
- private final Map<Integer, Version> mFairphoneVersionMap;
+ private final Map<String, Version> mFairphoneVersionMap;
- private final Map<Integer, Store> mAppStoresMap;
+ private final Map<String, Store> mAppStoresMap;
public static UpdaterData getInstance()
{
@@ -37,8 +37,8 @@
private UpdaterData()
{
- mLatestAOSPVersionNumber = 0;
- mLatestFairphoneVersionNumber = 0;
+ mLatestAOSPVersionNumber = "0";
+ mLatestFairphoneVersionNumber = "0";
mAOSPVersionMap = new HashMap<>();
mFairphoneVersionMap = new HashMap<>();
mAppStoresMap = new HashMap<>();
@@ -46,8 +46,8 @@
public void resetUpdaterData()
{
- mLatestAOSPVersionNumber = 0;
- mLatestFairphoneVersionNumber = 0;
+ mLatestAOSPVersionNumber = "0";
+ mLatestFairphoneVersionNumber = "0";
mAOSPVersionMap.clear();
mFairphoneVersionMap.clear();
mAppStoresMap.clear();
@@ -58,16 +58,16 @@
mLatestAOSPVersionNumber = getLatestVersionFromTag(latestVersion);
}
- private static int getLatestVersionFromTag(String latestVersion)
+ private static String getLatestVersionFromTag(String latestVersion)
{
- int latestVersionNumber;
+ String latestVersionNumber;
try
{
- latestVersionNumber = Integer.valueOf(latestVersion);
+ latestVersionNumber = latestVersion;
} catch (NumberFormatException e)
{
Log.w(TAG, "Error decoding latest version number. Defaulting to 0: " + e.getLocalizedMessage());
- latestVersionNumber = 0;
+ latestVersionNumber = "0";
}
return latestVersionNumber;
}
@@ -79,17 +79,17 @@
public void addAOSPVersion(Version version)
{
- mAOSPVersionMap.put(version.getNumber(), version);
+ mAOSPVersionMap.put(version.getId(), version);
}
public void addFairphoneVersion(Version version)
{
- mFairphoneVersionMap.put(version.getNumber(), version);
+ mFairphoneVersionMap.put(version.getId(), version);
}
public void addAppStore(Store store)
{
- mAppStoresMap.put(store.getNumber(), store);
+ mAppStoresMap.put(store.getId(), store);
}
public Version getLatestVersion(String imageType)
@@ -145,7 +145,7 @@
return mapToOrderedStoreList(mAppStoresMap.values());
}
- public Version getVersion(String imageType, int versionNumber)
+ public Version getVersion(String imageType, String versionNumber)
{
Version version = null;
if (Version.IMAGE_TYPE_AOSP.equalsIgnoreCase(imageType))
@@ -160,7 +160,7 @@
return version;
}
- public Store getStore(int storeNumber)
+ public Store getStore(String storeNumber)
{
return mAppStoresMap.get(storeNumber);
}
diff --git a/src/com/fairphone/updater/data/Version.java b/src/com/fairphone/updater/data/Version.java
index 29ba80a..483fe27 100644
--- a/src/com/fairphone/updater/data/Version.java
+++ b/src/com/fairphone/updater/data/Version.java
@@ -24,6 +24,8 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
public class Version extends DownloadableItem implements Comparable<Version>
{
@@ -45,8 +47,6 @@
private final List<Integer> mDependencies;
- public static final int ZIP_INSTALL_VERSION = 999;
-
public Version()
{
super();
@@ -147,11 +147,11 @@
int retVal;
if (another != null)
{
- if (this.getNumber() < another.getNumber() && this.mImageType.equalsIgnoreCase(another.mImageType))
+ if (!this.getId().equals(another.getId()) && this.mImageType.equalsIgnoreCase(another.mImageType))
{
retVal = 1;
}
- else if (this.getNumber() == another.getNumber() && this.mImageType.equalsIgnoreCase(another.mImageType))
+ else if (this.getId() == another.getId() && this.mImageType.equalsIgnoreCase(another.mImageType))
{
retVal = 0;
}
@@ -195,4 +195,41 @@
// return mDependencies;
// }
// --Commented out by Inspection STOP (09/02/2015 19:47)
+
+ /**
+ * This method retrieves the int.int.int part of the fingerprint
+ * @return the version as string or empty string if no version was found
+ */
+ public String getBuildNumberFromId(){
+ String id = getId();
+ Pattern pattern = Pattern.compile(".*?\\d+.*?(\\d+)(\\.)(\\d+)(\\.)(\\d+)", Pattern.CASE_INSENSITIVE | Pattern.DOTALL); // is this pattern sufficient?
+ Matcher matcher = pattern.matcher(id); // get version number from fingerprint
+ if (matcher.find()) {
+ return matcher.group(1) + "." +matcher.group(3) + "." + matcher.group(5);
+ }
+ Log.d(TAG,String.format("Failed to determine version number from fingerprint: %s",id));
+ return ""; /* we don't know what version is here */
+ }
+
+ /**
+ * This method constructs the current version type from the device fingerprint
+ * @return A human (english) version type to be displayed on the screen
+ */
+ public String getCurrentImageType() {
+ String id = getId();
+ if(id.contains("gms")) {
+ return "Fairphone OS";
+ } else if (id.contains("sibon")) {
+ return "Fairphone Open Source OS";
+ } else if (id.contains("AOSP+")) {
+ return "Fairphone Internal";
+ } else {
+ // we do have a version but.. we don't know about it. return the full "number"
+ return id;
+ }
+ }
+
+ public String getHumanReadableName() {
+ return getName() + " " + getBuildNumber();
+ }
}
diff --git a/src/com/fairphone/updater/data/VersionParserHelper.java b/src/com/fairphone/updater/data/VersionParserHelper.java
index c2b7fcf..2df0e43 100644
--- a/src/com/fairphone/updater/data/VersionParserHelper.java
+++ b/src/com/fairphone/updater/data/VersionParserHelper.java
@@ -49,36 +49,52 @@
private static final String CURRENT_ANDROID_VERSION = "fairphone.ota.android_version";
private static final String CURRENT_VERSION_IMAGE_TYPE = "fairphone.ota.image_type";
private static final String CURRENT_VERSION_BUILD_DATE = "ro.build.date.utc";
+ private static final String CURRENT_VERSION_ID = "ro.build.version.incremental"; // for FP2
+
private static Version version;
public static Version getDeviceVersion(Context context)
{
if (version == null){
Version versionBuilder = new Version();
- String[] suportedDevices = context.getResources().getString(R.string.knownFPDevices).split(";");
+ String[] supportedDevices = context.getResources().getString(R.string.knownFPDevices).split(";");
String modelWithoutSpaces = Build.MODEL.replaceAll("\\s", "");
boolean knownFPDevice = false;
- for(String device : suportedDevices){
+ for (String device : supportedDevices) {
knownFPDevice = knownFPDevice || device.equals(modelWithoutSpaces);
}
- try
- {
- versionBuilder.setNumber(Integer.valueOf(getSystemData(context, CURRENT_VERSION_NUMBER, knownFPDevice)));
- } catch (NumberFormatException e)
- {
- int defaultVersionNumber = context.getResources().getInteger(R.integer.defaultVersionNumber);
- Log.w(TAG, "Error parsing current version number. Defaulting to " + defaultVersionNumber + ": " + e.getLocalizedMessage());
- versionBuilder.setNumber(defaultVersionNumber);
+ if(modelWithoutSpaces.equals(context.getResources().getString(R.string.FP2Model))) {
+ // FP2
+ try {
+ versionBuilder.setId(getSystemData(context, CURRENT_VERSION_ID, knownFPDevice));
+ } catch (NumberFormatException e) {
+ String defaultVersionId = context.getResources().getString(R.string.defaultVersionId);
+ Log.w(TAG, "Error parsing current version id. Defaulting to " + defaultVersionId + ": " + e.getLocalizedMessage());
+ versionBuilder.setId(defaultVersionId);
+ }
+ versionBuilder.setName(versionBuilder.getCurrentImageType());
+ versionBuilder.setBuildNumber(versionBuilder.getBuildNumberFromId());
+ } else {
+ // FP1(U)
+ try
+ {
+ versionBuilder.setId(getSystemData(context, CURRENT_VERSION_NUMBER, knownFPDevice) );
+ } catch (NumberFormatException e) {
+ String defaultVersionNumber = context.getResources().getString(R.string.defaultVersionId);
+ Log.w(TAG, "Error parsing current version number. Defaulting to " + defaultVersionNumber + ": " + e.getLocalizedMessage());
+ versionBuilder.setId(defaultVersionNumber);
+ }
+ versionBuilder.setName(getSystemData(context, CURRENT_VERSION_NAME, knownFPDevice));
+ versionBuilder.setBuildNumber(getSystemData(context, CURRENT_VERSION_BUILD_NUMBER, knownFPDevice));
}
- versionBuilder.setName(getSystemData(context, CURRENT_VERSION_NAME, knownFPDevice));
- versionBuilder.setBuildNumber(getSystemData(context, CURRENT_VERSION_BUILD_NUMBER, knownFPDevice));
+
versionBuilder.setAndroidVersion(getSystemData(context, CURRENT_ANDROID_VERSION, knownFPDevice));
versionBuilder.setImageType(getSystemData(context, CURRENT_VERSION_IMAGE_TYPE, knownFPDevice));
versionBuilder.setReleaseDate(getSystemData(context, CURRENT_VERSION_BUILD_DATE, knownFPDevice));
versionBuilder.setBetaStatus(getSystemData(context, CURRENT_BETA_STATUS, knownFPDevice));
- Version versionData = UpdaterData.getInstance().getVersion(versionBuilder.getImageType(), versionBuilder.getNumber());
+ Version versionData = UpdaterData.getInstance().getVersion(versionBuilder.getImageType(), versionBuilder.getId());
versionBuilder.setThumbnailLink(versionData != null ? versionData.getThumbnailLink() : "");
versionBuilder.setReleaseNotes(Locale.getDefault().getLanguage(), versionData != null ? versionData.getReleaseNotes(Locale.getDefault().getLanguage()) : "");
version = versionBuilder;
@@ -92,7 +108,7 @@
String result;
switch (property) {
case CURRENT_VERSION_NUMBER:
- result = Utils.getprop(CURRENT_VERSION_NUMBER, useDefaults ? String.valueOf(context.getResources().getInteger(R.integer.defaultVersionNumber)) : "");
+ result = Utils.getprop(CURRENT_VERSION_NUMBER, useDefaults ? String.valueOf(context.getResources().getString(R.string.defaultVersionId)) : "");
break;
case CURRENT_VERSION_NAME:
result = Utils.getprop(CURRENT_VERSION_NAME, useDefaults ? context.getResources().getString(R.string.defaultVersionName) : "");
@@ -112,6 +128,9 @@
case CURRENT_BETA_STATUS:
result = Utils.getprop(CURRENT_BETA_STATUS, useDefaults ? context.getResources().getString(R.string.defaultBetaStatus) : "0");
break;
+ case CURRENT_VERSION_ID:
+ result = Utils.getprop(CURRENT_VERSION_ID, useDefaults ? "" : ""); // TODO: define default value for fingerprint
+ break;
default:
result = "";
break;
@@ -347,7 +366,7 @@
if (tagName.equalsIgnoreCase(XML_TAGS.VERSION.name()))
{
- updateVersion.setNumber(xpp.getAttributeValue(0));
+ updateVersion.setId(xpp.getAttributeValue(0));
}
else if (tagName.equalsIgnoreCase(XML_TAGS.ANDROID_VERSION.name()))
{
@@ -382,7 +401,7 @@
if (tagName.equalsIgnoreCase(XML_TAGS.STORE.name()))
{
- updateStore.setNumber(xpp.getAttributeValue(0));
+ updateStore.setId(xpp.getAttributeValue(0));
}
else if (tagName.equalsIgnoreCase(XML_TAGS.SHOW_DISCLAIMER.name()))
{
diff --git a/src/com/fairphone/updater/fragments/DownloadAndRestartFragment.java b/src/com/fairphone/updater/fragments/DownloadAndRestartFragment.java
index 85f11b5..397bc8c 100644
--- a/src/com/fairphone/updater/fragments/DownloadAndRestartFragment.java
+++ b/src/com/fairphone/updater/fragments/DownloadAndRestartFragment.java
@@ -1,9 +1,5 @@
package com.fairphone.updater.fragments;
-import java.io.File;
-import java.io.IOException;
-import java.util.concurrent.TimeoutException;
-
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.DownloadManager;
@@ -39,7 +35,6 @@
import com.fairphone.updater.UpdaterService;
import com.fairphone.updater.data.DownloadableItem;
import com.fairphone.updater.data.Store;
-import com.fairphone.updater.data.UpdaterData;
import com.fairphone.updater.data.Version;
import com.fairphone.updater.data.VersionParserHelper;
import com.fairphone.updater.tools.PrivilegeChecker;
@@ -48,6 +43,10 @@
import com.stericson.RootTools.execution.CommandCapture;
import com.stericson.RootTools.execution.Shell;
+import java.io.File;
+import java.io.IOException;
+import java.util.concurrent.TimeoutException;
+
@SuppressLint("ValidFragment")
public class DownloadAndRestartFragment extends BaseFragment
{
@@ -124,9 +123,8 @@
version = new Version();
version.setName(resources.getString(R.string.install) + " " + zipName);
version.setDownloadLink(mainActivity.getZipFilePath());
- version.setNumber(Version.ZIP_INSTALL_VERSION);
- }
- else
+ version.setId(null);
+ } else
{
version = mainActivity.getSelectedVersion();
}
diff --git a/src/com/fairphone/updater/fragments/MainFragment.java b/src/com/fairphone/updater/fragments/MainFragment.java
index ed5688e..b738b6d 100644
--- a/src/com/fairphone/updater/fragments/MainFragment.java
+++ b/src/com/fairphone/updater/fragments/MainFragment.java
@@ -23,7 +23,6 @@
import com.fairphone.updater.FairphoneUpdater.HeaderType;
import com.fairphone.updater.FairphoneUpdater.UpdaterState;
import com.fairphone.updater.R;
-import com.fairphone.updater.data.Store;
import com.fairphone.updater.data.UpdaterData;
import com.fairphone.updater.data.Version;
import com.fairphone.updater.fragments.VersionDetailFragment.DetailLayoutType;
diff --git a/src/com/fairphone/updater/fragments/VersionDetailFragment.java b/src/com/fairphone/updater/fragments/VersionDetailFragment.java
index 0632ed6..17dc7f0 100644
--- a/src/com/fairphone/updater/fragments/VersionDetailFragment.java
+++ b/src/com/fairphone/updater/fragments/VersionDetailFragment.java
@@ -7,7 +7,6 @@
import android.content.Context;
import android.content.DialogInterface;
import android.content.res.Resources;
-import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
@@ -209,7 +208,7 @@
break;
case ANDROID:
- mHeaderText = mainActivity.getVersionName(mSelectedVersion);
+ mHeaderText = mSelectedVersion.getHumanReadableName();
mVersionDetailsTitle = resources.getString(R.string.new_os);
mIsOSChange = deviceVersion.getImageType().equalsIgnoreCase(Version.IMAGE_TYPE_FAIRPHONE);
mIsOlderVersion =
@@ -223,7 +222,7 @@
break;
case FAIRPHONE:
default:
- mHeaderText = mainActivity.getVersionName(mSelectedVersion);
+ mHeaderText = mSelectedVersion.getHumanReadableName();
mVersionDetailsTitle = resources.getString(R.string.older_version);
mIsOSChange = deviceVersion.getImageType().equalsIgnoreCase(Version.IMAGE_TYPE_AOSP);
mIsOlderVersion =
@@ -362,7 +361,7 @@
{
if (mIsOSChange || mIsOlderVersion)
{
- showPopupDialog(mainActivity.getVersionName(mSelectedVersion), mSelectedVersion.hasEraseAllPartitionWarning(),
+ showPopupDialog(mSelectedVersion.getHumanReadableName(), mSelectedVersion.hasEraseAllPartitionWarning(),
new ConfirmationPopupDialogListener()
{
diff --git a/src/com/fairphone/updater/fragments/VersionListFragment.java b/src/com/fairphone/updater/fragments/VersionListFragment.java
index 938d9c3..09fd9f9 100644
--- a/src/com/fairphone/updater/fragments/VersionListFragment.java
+++ b/src/com/fairphone/updater/fragments/VersionListFragment.java
@@ -1,7 +1,5 @@
package com.fairphone.updater.fragments;
-import java.util.List;
-
import android.content.res.Resources;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -17,6 +15,8 @@
import com.fairphone.updater.data.Version;
import com.fairphone.updater.fragments.VersionDetailFragment.DetailLayoutType;
+import java.util.List;
+
public class VersionListFragment extends BaseFragment
{
@@ -151,7 +151,7 @@
mVersionListContainer.addView(versionLayout);
- versionLayout.setText(mainActivity.getVersionName(version));
+ versionLayout.setText(version.getHumanReadableName());
versionLayout.setOnClickListener(new OnClickListener()
{
@@ -186,7 +186,7 @@
private void setupFairphoneLatestVersion()
{
final Version latestFairphoneVersion = UpdaterData.getInstance().getLatestVersion(Version.IMAGE_TYPE_FAIRPHONE);
- mLatestVersionDetailsButton.setText(mainActivity.getVersionName(latestFairphoneVersion));
+ mLatestVersionDetailsButton.setText(latestFairphoneVersion.getHumanReadableName());
if (mainActivity.getDeviceVersion().compareTo(latestFairphoneVersion) == 0)
{
@@ -233,7 +233,7 @@
mVersionListContainer.addView(versionLayout);
- versionLayout.setText(mainActivity.getVersionName(version));
+ versionLayout.setText(version.getHumanReadableName());
versionLayout.setOnClickListener(new OnClickListener()
{
@@ -269,7 +269,7 @@
private void setupAndroidLatestVersion()
{
final Version latestAOSPVersion = UpdaterData.getInstance().getLatestVersion(Version.IMAGE_TYPE_AOSP);
- mLatestVersionDetailsButton.setText(mainActivity.getVersionName(latestAOSPVersion));
+ mLatestVersionDetailsButton.setText(latestAOSPVersion.getHumanReadableName());
if (mainActivity.getDeviceVersion().compareTo(latestAOSPVersion) == 0)
{
diff --git a/src/com/fairphone/updater/tools/Utils.java b/src/com/fairphone/updater/tools/Utils.java
index 1fc64cc..bb4e038 100644
--- a/src/com/fairphone/updater/tools/Utils.java
+++ b/src/com/fairphone/updater/tools/Utils.java
@@ -80,7 +80,7 @@
private static final double PERCENT_100 = 100d;
private static final char CHAR_SPACE = ' ';
private static final char CHAR_ZERO = '0';
- public static final int GAPPS_STORE_NUMBER = 0;
+ public static final String GAPPS_STORE_NUMBER = "0";
private static double getPartitionSizeInGBytes(File path)
{
@@ -371,7 +371,6 @@
if (item != null)
{
filename.append(type);
- filename.append(item.getNumber());
}
filename.append(".zip");
return filename;