diff --git a/android/res/values-ru/strings.xml b/android/res/values-ru/strings.xml
index 3716c3c4f2..9444e4cfa7 100644
--- a/android/res/values-ru/strings.xml
+++ b/android/res/values-ru/strings.xml
@@ -44,6 +44,8 @@
Продолжить
%добавлено в очередь\nзагрузки.
Загрузить%
- Загружается%(%\\%)
+ Загружается%(%\\%)
Ошибка загрузки%.
+ Загружено (%s), нажмите для обновления
+ Обновить
diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml
index a884f35b08..34480df475 100644
--- a/android/res/values/strings.xml
+++ b/android/res/values/strings.xml
@@ -51,4 +51,6 @@
Buy now
Pro version of MapsWithMe featuring offline search is available for purchase.
Later
+ Downloaded (%s), touch to update
+ Update
diff --git a/android/src/com/mapswithme/maps/DownloadUI.java b/android/src/com/mapswithme/maps/DownloadUI.java
index 36bc245b99..3b7cbba659 100644
--- a/android/src/com/mapswithme/maps/DownloadUI.java
+++ b/android/src/com/mapswithme/maps/DownloadUI.java
@@ -88,11 +88,12 @@ public class DownloadUI extends ListActivity implements MapStorage.Listener
{
switch (m_status)
{
- case 0: return 0xFF00A144;
- case 1: return 0xFFFFFFFF;
- case 2: return 0xFFFF0000;
- case 3: return 0xFF342BB6;
- case 4: return 0xFF5B94DE;
+ case MapStorage.ON_DISK: return 0xFF00A144;
+ case MapStorage.ON_DISK_OUT_OF_DATE: return 0xFFFF69B4;
+ case MapStorage.NOT_DOWNLOADED: return 0xFFFFFFFF;
+ case MapStorage.DOWNLOAD_FAILED: return 0xFFFF0000;
+ case MapStorage.DOWNLOADING: return 0xFF342BB6;
+ case MapStorage.IN_QUEUE: return 0xFF5B94DE;
default: return 0xFFFFFFFF;
}
}
@@ -104,7 +105,9 @@ public class DownloadUI extends ListActivity implements MapStorage.Listener
{
case MapStorage.GROUP: return TYPE_GROUP;
case MapStorage.COUNTRY: return TYPE_COUNTRY_GROUP;
- case MapStorage.ON_DISK: return TYPE_COUNTRY_READY;
+ case MapStorage.ON_DISK:
+ case MapStorage.ON_DISK_OUT_OF_DATE:
+ return TYPE_COUNTRY_READY;
default : return TYPE_COUNTRY_IN_PROCESS;
}
}
@@ -232,6 +235,38 @@ public class DownloadUI extends ListActivity implements MapStorage.Listener
.show();
break;
+ case MapStorage.ON_DISK_OUT_OF_DATE:
+ // Update or delete
+ m_alert
+ .setTitle(name)
+ .setPositiveButton(R.string.update, new DialogInterface.OnClickListener()
+ {
+ @Override
+ public void onClick(DialogInterface dlg, int which)
+ {
+ final long size = m_storage.countryRemoteSizeInBytes(idx);
+ if (size > getFreeSpace())
+ showNotEnoughFreeSpaceDialog(getSizeString(size), name);
+ else
+ m_storage.downloadCountry(idx);
+
+ dlg.dismiss();
+ }
+ })
+ .setNeutralButton(R.string.delete, new DialogInterface.OnClickListener()
+ {
+ @Override
+ public void onClick(DialogInterface dlg, int which)
+ {
+ m_storage.deleteCountry(idx);
+ dlg.dismiss();
+ }
+ })
+ .setNegativeButton(android.R.string.cancel, m_alertCancelHandler)
+ .create()
+ .show();
+ break;
+
case MapStorage.NOT_DOWNLOADED:
// Check for available free space
final long size = m_storage.countryRemoteSizeInBytes(idx);
@@ -387,6 +422,11 @@ public class DownloadUI extends ListActivity implements MapStorage.Listener
}
}
+ private String formatStringWithSize(int strID, int position)
+ {
+ return m_context.getString(strID, getSizeString(m_storage.countryLocalSizeInBytes(m_idx.getChild(position))));
+ }
+
private String getSummary(int position)
{
int res = 0;
@@ -394,8 +434,10 @@ public class DownloadUI extends ListActivity implements MapStorage.Listener
switch (m_items[position].m_status)
{
case MapStorage.ON_DISK:
- return String.format(m_context.getString(R.string.downloaded_touch_to_delete),
- getSizeString(m_storage.countryLocalSizeInBytes(m_idx.getChild(position))));
+ return formatStringWithSize(R.string.downloaded_touch_to_delete, position);
+
+ case MapStorage.ON_DISK_OUT_OF_DATE:
+ return formatStringWithSize(R.string.downloaded_touch_to_update, position);
case MapStorage.NOT_DOWNLOADED: res = R.string.touch_to_download; break;
case MapStorage.DOWNLOAD_FAILED: res = R.string.download_has_failed; break;
diff --git a/android/src/com/mapswithme/maps/MapStorage.java b/android/src/com/mapswithme/maps/MapStorage.java
index 151579e7af..6dc68a3c4d 100644
--- a/android/src/com/mapswithme/maps/MapStorage.java
+++ b/android/src/com/mapswithme/maps/MapStorage.java
@@ -11,6 +11,7 @@ public class MapStorage
public static final int IN_QUEUE = 4;
public static final int UNKNOWN = 5;
public static final int GENERATING_INDEX = 6;
+ public static final int ON_DISK_OUT_OF_DATE = 7;
public interface Listener
{