Merge "FPII-1898: Fairphone Updater - Error downloading config file" into fp/fp2_5.1_int
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index a2eee73..2e2fac5 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -16,7 +16,7 @@
     <string name="google_apps_installer_name">Instal·lador Google Apps</string>
     <string name="google_apps_re_install_title">Google Apps instal·lat</string>
     <string name="wifi_disabled">Wi-Fi desconnectat</string>
-    <string name="wifi_discaimer_message">L\'arxiu que estàs intentant descarregar és massa gran si utilitzes una connexió mòbil (~200mb). Si us plau, connecta amb un punt Wi-Fi i prova de nou.</string>
+    <string name="wifi_discaimer_message">L\'arxiu que estàs intentant descarregar és massa gran si utilitzes una connexió mòbil. Si us plau, connecta amb un punt Wi-Fi i prova de nou.</string>
     <string name="gapps_store_install">Instal·lar Google Apps</string>
     <string name="gapps_store_hide_reminder">o tanca aquest recordatori</string>
     <string name="title_activity_beta_enabler">Fairphone programa beta</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index d6ae60a..5f0db7a 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -53,7 +53,7 @@
     <string name="want_to_change_your_os">Bist du ein fortgeschrittener Nutzer?</string>
     <string name="warning">Warnung</string>
     <string name="wifi_disabled">WLAN deaktiviert</string>
-    <string name="wifi_discaimer_message">Die Datei, die du herunterladen möchtest, ist zu groß für mobile Verbindungen (~200 MB). Bitte verbinde dich mit einem WLAN-Netzwerk und versuche es erneut.</string>
+    <string name="wifi_discaimer_message">Die Datei, die du herunterladen möchtest, ist zu groß für mobile Verbindungen. Bitte verbinde dich mit einem WLAN-Netzwerk und versuche es erneut.</string>
     <string name="your_are_about_to_install">Du bist dabei zu installieren</string>
     <string name="your_current_os_version">Dein aktuelles Betriebssystem</string>
     <string name="your_os_is_up_to_date">Dein Betriebssystem ist auf dem neusten Stand</string>
@@ -75,4 +75,4 @@
     <string name="appStoreReinstall">Reinstalliere den app store</string>
     <string name="app_store">App Stores</string>
 
-</resources>
\ No newline at end of file
+</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 6a3b7a6..d4eb05c 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -53,7 +53,7 @@
     <string name="want_to_change_your_os">¿Eres un usuario avanzado?</string>
     <string name="warning">Aviso</string>
     <string name="wifi_disabled">Wi-Fi desconectado</string>
-    <string name="wifi_discaimer_message">El archivo que estás intentando descargar es demasiado grande para conexiones móviles (~200mb). Por favor, conéctate a un punto Wi-Fi e inténtalo de nuevo.</string>
+    <string name="wifi_discaimer_message">El archivo que estás intentando descargar es demasiado grande para conexiones móviles. Por favor, conéctate a un punto Wi-Fi e inténtalo de nuevo.</string>
     <string name="your_are_about_to_install">Estás a punto de instalar</string>
     <string name="your_current_os_version">La versión actual de tu sistema operativo</string>
     <string name="your_os_is_up_to_date">Tu sistema operativo está actualizado.</string>
@@ -75,4 +75,4 @@
     <string name="appStoreReinstall">Reinstalar la tienda de aplicaciones (app store)</string>
     <string name="app_store">App Stores</string>
 
-</resources>
\ No newline at end of file
+</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index fedcec9..31293c9 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -53,7 +53,7 @@
     <string name="want_to_change_your_os">Êtes-vous un utilisateur avancé ?</string>
     <string name="warning">Avertissement</string>
     <string name="wifi_disabled">Fonction Wi-Fi désactivée</string>
-    <string name="wifi_discaimer_message">Le fichier que vous tentez de télécharger est trop volumineux pour les connexions mobiles (~200 Mo). Connectez-vous au réseau Wi-Fi et réessayez.</string>
+    <string name="wifi_discaimer_message">Le fichier que vous tentez de télécharger est trop volumineux pour les connexions mobiles. Connectez-vous au réseau Wi-Fi et réessayez.</string>
     <string name="your_are_about_to_install">Vous êtes sur le point d\'installer</string>
     <string name="your_current_os_version">Version actuelle de votre système d\'exploitation actuel</string>
     <string name="your_os_is_up_to_date">Votre système d\'exploitation est à jour</string>
@@ -75,4 +75,4 @@
     <string name="appStoreReinstall">Réinstaller la boutique d\'applications</string>
     <string name="app_store">App Stores</string>
 
-</resources>
\ No newline at end of file
+</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index b49f5e6..b6bf005 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -53,7 +53,7 @@
     <string name="want_to_change_your_os">Ben je een geavanceerde gebruiker?</string>
     <string name="warning">Waarschuwing</string>
     <string name="wifi_disabled">Wi-Fi niet beschikbaar</string>
-    <string name="wifi_discaimer_message">Het bestand dat je probeert te downloaden is te groot voor mobiele verbindingen (~200MB). Maak verbinding met een Wi-Fi netwerk en probeer het opnieuw.</string>
+    <string name="wifi_discaimer_message">Het bestand dat je probeert te downloaden is te groot voor mobiele verbindingen. Maak verbinding met een Wi-Fi netwerk en probeer het opnieuw.</string>
     <string name="your_are_about_to_install">Je staat op het punt te installeren</string>
     <string name="your_current_os_version">Je huidige versie van het besturingssysteem</string>
     <string name="your_os_is_up_to_date">Je besturingssysteem is up-to-date</string>
@@ -75,4 +75,4 @@
     <string name="appStoreReinstall">Herinstalleer de app store</string>
     <string name="app_store">App Stores</string>
 
-</resources>
\ No newline at end of file
+</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index e3d717a..29406ae 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -53,7 +53,7 @@
     <string name="want_to_change_your_os">É um utilizador avançado?</string>
     <string name="warning">Aviso</string>
     <string name="wifi_disabled">Wi-Fi desligado</string>
-    <string name="wifi_discaimer_message">O ficheiro que está a tentar descarregar é muito grande para ligações móveis (~200mb). Por favor ligue-se ao Wi-Fi e tente outra vez.</string>
+    <string name="wifi_discaimer_message">O ficheiro que está a tentar descarregar é muito grande para ligações móveis. Por favor ligue-se ao Wi-Fi e tente outra vez.</string>
     <string name="your_are_about_to_install">Está prestes a instalar</string>
     <string name="your_current_os_version">Versão actual do Sistema Operativo</string>
     <string name="your_os_is_up_to_date">O Sistema Operativo está actualizado</string>
@@ -75,4 +75,4 @@
     <string name="appStoreReinstall">Reinstale a app store</string>
     <string name="app_store">App Stores</string>
 
-</resources>
\ No newline at end of file
+</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4a6cf0e..9a5df15 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -54,7 +54,7 @@
     <string name="want_to_change_your_os">Are you an advanced user?</string>
     <string name="warning">Warning</string>
     <string name="wifi_disabled">Wi-Fi disabled</string>
-    <string name="wifi_discaimer_message">The file you\'re trying to download is too large for mobile connections (~200MB). Please connect to a Wi-Fi network and try again.</string>
+    <string name="wifi_discaimer_message">The file you\'re trying to download is too large for mobile connections. Please connect to a Wi-Fi network and try again.</string>
     <string name="your_are_about_to_install">You are about to install</string>
     <string name="your_current_os_version">Your current operating system version</string>
     <string name="your_os_is_up_to_date">Your operating system is up-to-date</string>
@@ -76,4 +76,4 @@
     <string name="appStoreReinstall">Reinstall the app store</string>
     <string name="app_store">App Stores</string>
 
-</resources>
\ No newline at end of file
+</resources>
diff --git a/src/com/fairphone/updater/fragments/ConfirmationPopupDialog.java b/src/com/fairphone/updater/fragments/ConfirmationPopupDialog.java
index 6fba623..f5eab9b 100644
--- a/src/com/fairphone/updater/fragments/ConfirmationPopupDialog.java
+++ b/src/com/fairphone/updater/fragments/ConfirmationPopupDialog.java
@@ -64,6 +64,7 @@
                 view = inflater.inflate(R.layout.fragment_download_android_confirmation_popup, container);
                 break;
             case UPDATE_FAIRPHONE:
+            case LATEST_FAIRPHONE:
             case FAIRPHONE:
             case APP_STORE:
             default:
diff --git a/src/com/fairphone/updater/fragments/DownloadAndRestartFragment.java b/src/com/fairphone/updater/fragments/DownloadAndRestartFragment.java
index 397bc8c..d176505 100644
--- a/src/com/fairphone/updater/fragments/DownloadAndRestartFragment.java
+++ b/src/com/fairphone/updater/fragments/DownloadAndRestartFragment.java
@@ -70,6 +70,8 @@
 
     private DownloadManager mDownloadManager;
 
+    private CopyFileToCacheTask copyTask;
+
     private DownloadBroadCastReceiver mDownloadBroadCastReceiver;
 
     private BroadcastReceiver mNetworkStateReceiver;
@@ -735,12 +737,14 @@
     {
         if (Utils.canCopyToCache(file))
         {
-
             DownloadableItem item = mIsVersion ? mSelectedVersion : mSelectedStore;
-            CopyFileToCacheTask copyTask = new CopyFileToCacheTask();
 
             if (item != null)
             {
+                if (copyTask != null) {
+                    return;
+                }
+                copyTask = new CopyFileToCacheTask();
                 copyTask.execute(file.getPath(), Environment.getDownloadCacheDirectory() + "/" + Utils.getFilenameFromDownloadableItem(item, mIsVersion));
             }
             else
diff --git a/src/com/fairphone/updater/fragments/InfoPopupDialog.java b/src/com/fairphone/updater/fragments/InfoPopupDialog.java
index e00161b..e431d2f 100644
--- a/src/com/fairphone/updater/fragments/InfoPopupDialog.java
+++ b/src/com/fairphone/updater/fragments/InfoPopupDialog.java
@@ -43,6 +43,7 @@
                 view = inflater.inflate(R.layout.fragment_info_android_popup, container);
                 break;
             case UPDATE_FAIRPHONE:
+            case LATEST_FAIRPHONE:
             case FAIRPHONE:
             case APP_STORE:
             default:
diff --git a/src/com/fairphone/updater/fragments/VersionDetailFragment.java b/src/com/fairphone/updater/fragments/VersionDetailFragment.java
index 17dc7f0..0520448 100644
--- a/src/com/fairphone/updater/fragments/VersionDetailFragment.java
+++ b/src/com/fairphone/updater/fragments/VersionDetailFragment.java
@@ -43,7 +43,7 @@
 
     public static enum DetailLayoutType
     {
-        UPDATE_FAIRPHONE, UPDATE_ANDROID, FAIRPHONE, ANDROID, APP_STORE
+        UPDATE_FAIRPHONE, UPDATE_ANDROID, LATEST_FAIRPHONE, FAIRPHONE, ANDROID, APP_STORE
     }
 
     private HeaderType mHeaderType;
@@ -92,6 +92,7 @@
                 view = inflater.inflate(R.layout.fragment_app_store_detail, container, false);
                 break;
             case UPDATE_FAIRPHONE:
+            case LATEST_FAIRPHONE:
             case FAIRPHONE:
             default:
                 view = inflater.inflate(R.layout.fragment_version_detail_fairphone, container, false);
@@ -134,6 +135,7 @@
                 mDownload_and_update_button.setText(R.string.install_update);
                 break;
             case APP_STORE:
+            case LATEST_FAIRPHONE:
             case FAIRPHONE:
             case ANDROID:
             default:
@@ -220,6 +222,13 @@
                 mIsOSChange = false;
                 mIsOlderVersion = false;
                 break;
+            case LATEST_FAIRPHONE:
+                mHeaderText = mSelectedVersion.getHumanReadableName();
+                mVersionDetailsTitle = resources.getString(R.string.latest_version);
+                mIsOSChange = deviceVersion.getImageType().equalsIgnoreCase(Version.IMAGE_TYPE_AOSP);
+                mIsOlderVersion =
+                        (deviceVersion.getImageType().equalsIgnoreCase(Version.IMAGE_TYPE_FAIRPHONE) && deviceVersion.isNewerVersionThan(mSelectedVersion));
+                break;
             case FAIRPHONE:
             default:
                 mHeaderText = mSelectedVersion.getHumanReadableName();
diff --git a/src/com/fairphone/updater/fragments/VersionListFragment.java b/src/com/fairphone/updater/fragments/VersionListFragment.java
index 09fd9f9..b58d274 100644
--- a/src/com/fairphone/updater/fragments/VersionListFragment.java
+++ b/src/com/fairphone/updater/fragments/VersionListFragment.java
@@ -207,7 +207,7 @@
                 {
                     VersionDetailFragment versionDetail = new VersionDetailFragment(true);
 
-                    versionDetail.setupFragment(latestFairphoneVersion, DetailLayoutType.FAIRPHONE);
+                    versionDetail.setupFragment(latestFairphoneVersion, DetailLayoutType.LATEST_FAIRPHONE);
 
                     mainActivity.changeFragment(versionDetail);
                 }