Merge remote-tracking branch 'origin/master'

This commit is contained in:
Weblate 2014-12-09 20:16:15 +01:00
commit 1d247bfe8f
21 changed files with 57 additions and 23 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 642 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 720 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 452 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 777 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 838 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_download_cancel_tap" />
</selector>

View file

@ -19,8 +19,9 @@
android:layout_height="28dp"/> android:layout_height="28dp"/>
<LinearLayout android:orientation="vertical" <LinearLayout android:orientation="vertical"
android:layout_weight="1"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView android:id="@+id/name" <TextView android:id="@+id/name"
android:textSize="16sp" android:textSize="16sp"
@ -33,6 +34,13 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"/> android:layout_height="wrap_content"/>
</LinearLayout> </LinearLayout>
<ImageButton android:id="@+id/navigate_to"
android:src="@drawable/ic_action_gdirections_light"
android:background="@drawable/dashboard_button"
android:layout_marginLeft="12dp"
android:layout_width="50dp"
android:layout_height="50dp"/>
</LinearLayout> </LinearLayout>

View file

@ -12,6 +12,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="40dp"> android:layout_height="40dp">
<TextView android:text="@string/map_update" <TextView android:text="@string/map_update"
android:id="@+id/header"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:paddingTop="2dp" android:paddingTop="2dp"
@ -19,11 +20,6 @@
android:layout_marginLeft="15dp" android:layout_marginLeft="15dp"
android:textSize="14sp" android:textSize="14sp"
android:textColor="@color/dashboard_black"/> android:textColor="@color/dashboard_black"/>
<TextView android:id="@+id/update_count"
android:layout_marginLeft="2dp"
android:layout_width="wrap_content"
android:textColor="@color/dashboard_blue"
android:layout_height="wrap_content"/>
<ProgressBar android:id="@+id/main_progress" <ProgressBar android:id="@+id/main_progress"
android:visibility="visible" android:visibility="visible"
android:layout_marginLeft="2dp" android:layout_marginLeft="2dp"

View file

@ -32,7 +32,7 @@
<string name="osmo_use_https_descr">Use secure connection with server</string> <string name="osmo_use_https_descr">Use secure connection with server</string>
<string name="osmo_use_https">Use HTTPS</string> <string name="osmo_use_https">Use HTTPS</string>
<string name="advanced_settings">Advanced</string> <string name="advanced_settings">Advanced</string>
<string name="map_update">Maps</string> <string name="map_update">You have %1$s maps to update</string>
<string name="search_for">Search for</string> <string name="search_for">Search for</string>
<string name="show_map">SHOW MAP</string> <string name="show_map">SHOW MAP</string>
<string name="show_all">SHOW ALL</string> <string name="show_all">SHOW ALL</string>

View file

@ -443,6 +443,10 @@ public class MainMenuActivity extends BaseDownloadActivity {
Fragment f = ref.get(); Fragment f = ref.get();
if(f instanceof DashUpdatesFragment) { if(f instanceof DashUpdatesFragment) {
if(!f.isDetached()) { if(!f.isDetached()) {
if (downloadQueue.size() > 0){
startDownload(downloadQueue.get(0));
downloadQueue.remove(0);
}
((DashUpdatesFragment) f).updatedDownloadsList(list); ((DashUpdatesFragment) f).updatedDownloadsList(list);
} }
} }

View file

@ -21,6 +21,7 @@ import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.base.FavoriteImageDrawable; import net.osmand.plus.base.FavoriteImageDrawable;
import net.osmand.plus.dialogs.DirectionsDialogs;
import net.osmand.plus.helpers.FontCache; import net.osmand.plus.helpers.FontCache;
import net.osmand.util.MapUtils; import net.osmand.util.MapUtils;
@ -101,6 +102,12 @@ public class DashFavoritesFragment extends DashBaseFragment {
int dist = (int) (MapUtils.getDistance(point.getLatitude(), point.getLongitude(), int dist = (int) (MapUtils.getDistance(point.getLatitude(), point.getLongitude(),
lastKnownMapLocation.getLatitude(), lastKnownMapLocation.getLongitude())); lastKnownMapLocation.getLatitude(), lastKnownMapLocation.getLongitude()));
String distance = OsmAndFormatter.getFormattedDistance(dist, getMyApplication()) + " "; String distance = OsmAndFormatter.getFormattedDistance(dist, getMyApplication()) + " ";
view.findViewById(R.id.navigate_to).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DirectionsDialogs.directionsToDialogAndLaunchMap(getActivity(), point.getLatitude(), point.getLongitude(), point.getName());
}
});
label.setText(distance, TextView.BufferType.SPANNABLE); label.setText(distance, TextView.BufferType.SPANNABLE);
label.setTypeface(Typeface.DEFAULT, point.isVisible() ? Typeface.NORMAL : Typeface.ITALIC); label.setTypeface(Typeface.DEFAULT, point.isVisible() ? Typeface.NORMAL : Typeface.ITALIC);
view.setOnClickListener(new View.OnClickListener() { view.setOnClickListener(new View.OnClickListener() {

View file

@ -1,8 +1,11 @@
package net.osmand.plus.dashboard; package net.osmand.plus.dashboard;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List; import java.util.List;
import android.widget.*;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.base.BasicProgressAsyncTask; import net.osmand.plus.base.BasicProgressAsyncTask;
import net.osmand.plus.download.BaseDownloadActivity; import net.osmand.plus.download.BaseDownloadActivity;
@ -15,10 +18,6 @@ import android.support.annotation.Nullable;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
/** /**
* Created by Denis on 21.11.2014. * Created by Denis on 21.11.2014.
@ -31,6 +30,7 @@ public class DashUpdatesFragment extends DashBaseFragment {
private List<ProgressBar> progressBars = new ArrayList<ProgressBar>(); private List<ProgressBar> progressBars = new ArrayList<ProgressBar>();
private List<String> baseNames = new ArrayList<String>(); private List<String> baseNames = new ArrayList<String>();
private List<ImageButton> downloadButtons = new ArrayList<ImageButton>(); private List<ImageButton> downloadButtons = new ArrayList<ImageButton>();
private List<IndexItem> downloadQueue = new ArrayList<IndexItem>();
private ImageButton cancelButton; private ImageButton cancelButton;
@Override @Override
@ -56,6 +56,7 @@ public class DashUpdatesFragment extends DashBaseFragment {
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
downloadQueue.clear();
if (BaseDownloadActivity.downloadListIndexThread != null) { if (BaseDownloadActivity.downloadListIndexThread != null) {
currentProgress = null; currentProgress = null;
cancelButton = null; cancelButton = null;
@ -64,6 +65,13 @@ public class DashUpdatesFragment extends DashBaseFragment {
} }
public void updatedDownloadsList(List<IndexItem> list) { public void updatedDownloadsList(List<IndexItem> list) {
List<IndexItem> itemList = new ArrayList<IndexItem>(list);
Collections.sort(itemList, new Comparator<IndexItem>() {
@Override
public int compare(IndexItem indexItem, IndexItem t1) {
return (int)(t1.getTimestamp() - indexItem.getTimestamp());
}
});
View mainView = getView(); View mainView = getView();
//it may be null because download index thread is async //it may be null because download index thread is async
if (mainView == null) { if (mainView == null) {
@ -73,20 +81,20 @@ public class DashUpdatesFragment extends DashBaseFragment {
baseNames.clear(); baseNames.clear();
downloadButtons.clear(); downloadButtons.clear();
mainView.findViewById(R.id.main_progress).setVisibility(View.GONE); mainView.findViewById(R.id.main_progress).setVisibility(View.GONE);
((TextView) mainView.findViewById(R.id.update_count)).setText(String.valueOf(list.size())); ((TextView) mainView.findViewById(R.id.header)).setText(getString(R.string.map_update ,String.valueOf(list.size())));
LinearLayout updates = (LinearLayout) mainView.findViewById(R.id.updates_items); LinearLayout updates = (LinearLayout) mainView.findViewById(R.id.updates_items);
updates.removeAllViews(); updates.removeAllViews();
if (list.size() < 1) { if (itemList.size() < 1) {
mainView.findViewById(R.id.maps).setVisibility(View.GONE); mainView.findViewById(R.id.maps).setVisibility(View.GONE);
return; return;
} else { } else {
mainView.findViewById(R.id.maps).setVisibility(View.VISIBLE); mainView.findViewById(R.id.maps).setVisibility(View.VISIBLE);
} }
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < itemList.size(); i++) {
final IndexItem item = list.get(i); final IndexItem item = itemList.get(i);
if (i > 2) { if (i > 2) {
break; break;
} }
@ -103,8 +111,6 @@ public class DashUpdatesFragment extends DashBaseFragment {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
getDownloadActivity().startDownload(item); getDownloadActivity().startDownload(item);
currentProgress = progressBar;
cancelButton = (ImageButton) view;
} }
}); });
downloadButtons.add((ImageButton) downloadButton); downloadButtons.add((ImageButton) downloadButton);
@ -124,7 +130,7 @@ public class DashUpdatesFragment extends DashBaseFragment {
return; return;
} }
//needed when rotation is performed and progress can be null //needed when rotation is performed and progress can be null
if (currentProgress == null) { if (!updateOnlyProgress) {
getProgressIfPossible(basicProgressAsyncTask.getDescription()); getProgressIfPossible(basicProgressAsyncTask.getDescription());
if (currentProgress == null) { if (currentProgress == null) {
return; return;
@ -140,7 +146,6 @@ public class DashUpdatesFragment extends DashBaseFragment {
if (!visible) { if (!visible) {
return; return;
} }
cancelButton.setImageResource(R.drawable.cancel_button); cancelButton.setImageResource(R.drawable.cancel_button);
cancelButton.setOnClickListener(new View.OnClickListener() { cancelButton.setOnClickListener(new View.OnClickListener() {
@Override @Override

View file

@ -41,6 +41,7 @@ public class BaseDownloadActivity extends SherlockFragmentActivity {
protected OsmandSettings settings; protected OsmandSettings settings;
public static DownloadIndexesThread downloadListIndexThread; public static DownloadIndexesThread downloadListIndexThread;
protected List<WeakReference<Fragment>> fragList = new ArrayList<WeakReference<Fragment>>(); protected List<WeakReference<Fragment>> fragList = new ArrayList<WeakReference<Fragment>>();
protected List<IndexItem> downloadQueue = new ArrayList<IndexItem>();
public static final int MAXIMUM_AVAILABLE_FREE_DOWNLOADS = 10; public static final int MAXIMUM_AVAILABLE_FREE_DOWNLOADS = 10;
@ -113,13 +114,18 @@ public class BaseDownloadActivity extends SherlockFragmentActivity {
} }
public void startDownload(IndexItem item) { public void startDownload(IndexItem item) {
if (downloadListIndexThread.getCurrentRunningTask() != null) { if (downloadListIndexThread.getCurrentRunningTask() != null && getEntriesToDownload().get(item) == null) {
Toast.makeText(this, "Please wait before previous download is finished", Toast.LENGTH_SHORT).show(); downloadQueue.add(item);
Toast.makeText(this, "Added to download queue", Toast.LENGTH_SHORT).show();
return; return;
} }
addToDownload(item);
downloadFilesCheckFreeVersion();
}
private void addToDownload(IndexItem item) {
List<DownloadEntry> download = item.createDownloadEntry(getMyApplication(), item.getType(), new ArrayList<DownloadEntry>()); List<DownloadEntry> download = item.createDownloadEntry(getMyApplication(), item.getType(), new ArrayList<DownloadEntry>());
getEntriesToDownload().put(item, download); getEntriesToDownload().put(item, download);
downloadFilesCheckFreeVersion();
} }
public void downloadFilesPreCheckSpace() { public void downloadFilesPreCheckSpace() {

View file

@ -163,7 +163,10 @@ public class DownloadIndexesThread {
uiActivity.updateDownloadButton(false); uiActivity.updateDownloadButton(false);
} }
} else if (o instanceof String) { } else if (o instanceof String) {
AccessibleToast.makeText(ctx, (String) o, Toast.LENGTH_LONG).show(); String message = (String) o;
if(!message.equals("I/O error occurred : Interrupted")){
AccessibleToast.makeText(ctx, message, Toast.LENGTH_LONG).show();
}
} }
} }
super.onProgressUpdate(values); super.onProgressUpdate(values);