diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml
index 19335faa05..795e9e9997 100644
--- a/OsmAnd/res/values/strings.xml
+++ b/OsmAnd/res/values/strings.xml
@@ -9,6 +9,8 @@
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
-->
+ Nothing to download, please check internet connection.
+ Nothing was found. If you can\'t find your region, you can make it yourself (see http://osmand.net).
No GPX files selected. In order to select press and hold on available track.
Unselect
Select to show
@@ -983,7 +985,6 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
Do you want to interrupt file downloading?
Thank you for using OsmAnd. For many features of this application you need some regional offline data which you can download via \'Settings\' → \'Manage map files\'. Afterwards you will be able to view maps, locate addresses, look up POIs, and find public transportation.
Basemap is required for proper application functioning and was selected to download.
- Nothing was found. If you can\'t find your region, you can make it yourself (see http://osmand.net).
Online and tile maps
Offline maps (vector)
Download and manage offline map files stored on your device
diff --git a/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java b/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java
index 7715b30861..791cc1db12 100644
--- a/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java
+++ b/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java
@@ -2,7 +2,9 @@ package net.osmand.plus;
import java.io.File;
import java.util.ArrayList;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
import org.json.JSONArray;
import org.json.JSONException;
@@ -30,7 +32,7 @@ public class GpxSelectionHelper {
// new BooleanPreference("show_current_gpx_track", false).makeGlobal().cache();
private List selectedGPXFiles = new java.util.concurrent.CopyOnWriteArrayList();
private SavingTrackHelper savingTrackHelper;
- private Runnable uiListener;
+ private Map, Runnable> uiListeners = new LinkedHashMap, Runnable>();
public GpxSelectionHelper(OsmandApplication osmandApplication) {
this.app = osmandApplication;
@@ -353,15 +355,20 @@ public class GpxSelectionHelper {
saveCurrentSelections();
}
- public void setUiListener(Runnable r) {
- this.uiListener = r;
+ public void setUiListener(Class> key, Runnable listener) {
+ if(listener == null) {
+ uiListeners.remove(key);
+ } else {
+ uiListeners.put(key, listener);
+ }
}
- public Runnable getUiListener() {
- return uiListener;
+ public void runUiListeners() {
+ for(Runnable r : uiListeners.values()) {
+ r.run();
+ }
}
-
public static class SelectedGpxFile {
public boolean notShowNavigationDialog = false;
@@ -545,5 +552,4 @@ public class GpxSelectionHelper {
}
-
}
diff --git a/OsmAnd/src/net/osmand/plus/activities/AvailableGPXFragment.java b/OsmAnd/src/net/osmand/plus/activities/AvailableGPXFragment.java
index 57011a6e2d..c1b01d7891 100644
--- a/OsmAnd/src/net/osmand/plus/activities/AvailableGPXFragment.java
+++ b/OsmAnd/src/net/osmand/plus/activities/AvailableGPXFragment.java
@@ -400,10 +400,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
resId == R.string.local_index_select_gpx_file) {
getMyApplication().getSelectedGpxHelper().selectGpxFile(info.gpx, resId == R.string.local_index_select_gpx_file, true);
listAdapter.notifyDataSetChanged();
- Runnable r = selectedGpxHelper.getUiListener();
- if(r != null) {
- r.run();
- }
+ selectedGpxHelper.runUiListeners();
} else if (resId == R.string.local_index_mi_delete) {
Builder confirm = new AlertDialog.Builder(getActivity());
confirm.setPositiveButton(R.string.default_buttons_yes, new DialogInterface.OnClickListener() {
@@ -498,6 +495,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
@Override
protected void onPreExecute() {
getSherlockActivity().setSupportProgressBarIndeterminateVisibility(true);
+ listAdapter.clear();
}
@Override
@@ -917,10 +915,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
@Override
protected void onPostExecute(String result) {
- Runnable r = selectedGpxHelper.getUiListener();
- if(r != null) {
- r.run();
- }
+ selectedGpxHelper.runUiListeners();
getSherlockActivity().setProgressBarIndeterminateVisibility(false);
if(showOnMap && toShow != null) {
getMyApplication().getSettings().setMapLocationToShow(toShow.lat, toShow.lon,
diff --git a/OsmAnd/src/net/osmand/plus/activities/FavouritesActivity.java b/OsmAnd/src/net/osmand/plus/activities/FavouritesActivity.java
index 0c75b99f91..792cf41556 100644
--- a/OsmAnd/src/net/osmand/plus/activities/FavouritesActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/FavouritesActivity.java
@@ -6,6 +6,7 @@ package net.osmand.plus.activities;
import java.io.File;
import java.util.ArrayList;
+import net.osmand.plus.GpxSelectionHelper;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
@@ -20,7 +21,9 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TabHost;
+import android.widget.TabHost.TabSpec;
import android.widget.TabWidget;
+import android.widget.TextView;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.Window;
@@ -34,6 +37,8 @@ public class FavouritesActivity extends SherlockFragmentActivity {
private static final String TRACKS = "TRACKS";
private static final String SELECTED_TRACK = "SELECTED_TRACK";
private TabsAdapter mTabsAdapter;
+ private TabSpec selectedTrack;
+ private TabHost tabHost;
@Override
@@ -67,7 +72,7 @@ public class FavouritesActivity extends SherlockFragmentActivity {
getSupportFragmentManager().beginTransaction().add(R.id.layout, new FavouritesTreeFragment()).commit();
} else {
setContentView(R.layout.tab_content);
- TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost);
+ tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost.setup();
OsmandSettings settings = ((OsmandApplication) getApplication()).getSettings();
@@ -78,12 +83,45 @@ public class FavouritesActivity extends SherlockFragmentActivity {
FavouritesTreeFragment.class, null);
mTabsAdapter.addTab(tabHost.newTabSpec(TRACKS).setIndicator(getString(R.string.my_tracks)),
AvailableGPXFragment.class, null);
- mTabsAdapter.addTab(tabHost.newTabSpec(SELECTED_TRACK).setIndicator(getString(R.string.selected_track)),
+ selectedTrack = mTabsAdapter.addTab(tabHost.newTabSpec(SELECTED_TRACK).setIndicator(getString(R.string.selected_track)),
SelectedGPXFragment.class, null);
tabHost.setCurrentTab(tab);
+ updateSelectedTracks();
+ }
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ ((OsmandApplication) getApplication()).getSelectedGpxHelper().setUiListener(FavouritesActivity.class,new Runnable() {
+
+ @Override
+ public void run() {
+ updateSelectedTracks();
+ }
+ });
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ ((OsmandApplication) getApplication()).getSelectedGpxHelper().setUiListener(FavouritesActivity.class, null);
+ }
+
+ public void updateSelectedTracks() {
+ if (selectedTrack != null) {
+ GpxSelectionHelper gpx = ((OsmandApplication) getApplication()).getSelectedGpxHelper();
+ String vl = getString(R.string.selected_track);
+ if (gpx.isShowingAnyGpxFiles()) {
+ vl += " (" + gpx.getSelectedGPXFiles().size()
+ + ")";
+ }
+ try {
+ ((TextView)tabHost.getTabWidget().getChildAt(2).findViewById(android.R.id.title)).setText(vl);
+ } catch (Exception e) {
+ }
+ mTabsAdapter.notifyDataSetChanged();
}
-
-
}
@@ -157,7 +195,7 @@ public class FavouritesActivity extends SherlockFragmentActivity {
mViewPager.setOnPageChangeListener(this);
}
- public void addTab(TabHost.TabSpec tabSpec, Class> clss, Bundle args) {
+ public TabSpec addTab(TabHost.TabSpec tabSpec, Class> clss, Bundle args) {
tabSpec.setContent(new DummyTabFactory(mContext));
String tag = tabSpec.getTag();
@@ -165,6 +203,7 @@ public class FavouritesActivity extends SherlockFragmentActivity {
mTabs.add(info);
mTabHost.addTab(tabSpec);
notifyDataSetChanged();
+ return tabSpec;
}
@@ -210,3 +249,4 @@ public class FavouritesActivity extends SherlockFragmentActivity {
}
}
+
diff --git a/OsmAnd/src/net/osmand/plus/activities/SelectedGPXFragment.java b/OsmAnd/src/net/osmand/plus/activities/SelectedGPXFragment.java
index d9ad3d3dec..387ecd16e4 100644
--- a/OsmAnd/src/net/osmand/plus/activities/SelectedGPXFragment.java
+++ b/OsmAnd/src/net/osmand/plus/activities/SelectedGPXFragment.java
@@ -83,7 +83,8 @@ public class SelectedGPXFragment extends OsmandExpandableListFragment {
setAdapter(adapter);
}
adapter.setDisplayGroups(selectedGpxHelper.getDisplayGroups());
- selectedGpxHelper.setUiListener(new Runnable() {
+ selectedGpxHelper.setUiListener(SelectedGPXFragment.class,
+ new Runnable() {
@Override
public void run() {
@@ -95,7 +96,7 @@ public class SelectedGPXFragment extends OsmandExpandableListFragment {
@Override
public void onPause() {
super.onPause();
- selectedGpxHelper.setUiListener(null);
+ selectedGpxHelper.setUiListener(SelectedGPXFragment.class, null);
}
@Override
@@ -274,8 +275,8 @@ public class SelectedGPXFragment extends OsmandExpandableListFragment {
public void onClick(DialogInterface dialog, int which) {
if(!vis.isChecked()) {
getMyApplication().getSelectedGpxHelper().selectGpxFile(model.getGpx(), false, false);
-
SelectedGPXFragment.this.adapter.setDisplayGroups(selectedGpxHelper.getDisplayGroups());
+ getMyApplication().getSelectedGpxHelper().runUiListeners();
} else {
updateSplit(model, distanceSplit, timeSplit, sp.getSelectedItemPosition() );
}
diff --git a/OsmAnd/src/net/osmand/plus/download/DownloadIndexAdapter.java b/OsmAnd/src/net/osmand/plus/download/DownloadIndexAdapter.java
index 81de5bdbfe..55c55c6422 100644
--- a/OsmAnd/src/net/osmand/plus/download/DownloadIndexAdapter.java
+++ b/OsmAnd/src/net/osmand/plus/download/DownloadIndexAdapter.java
@@ -167,6 +167,8 @@ public class DownloadIndexAdapter extends OsmandBaseExpandableListAdapter implem
Collection items = (Collection) results.values;
if (items != null && !items.isEmpty()) {
list.addAll(IndexItemCategory.categorizeIndexItems(downloadActivity.getMyApplication(), items));
+ } else if(DownloadIndexAdapter.this.indexFiles.isEmpty()){
+ list.add(new IndexItemCategory(downloadActivity.getResources().getString(R.string.no_index_file_to_download), 1));
} else {
list.add(new IndexItemCategory(downloadActivity.getResources().getString(R.string.select_index_file_to_download), 1));
}
diff --git a/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java b/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java
index adf1c5eb72..2d03652175 100644
--- a/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java
+++ b/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java
@@ -42,7 +42,7 @@ public class OsmandMonitoringPlugin extends OsmandPlugin implements MonitoringIn
public OsmandMonitoringPlugin(OsmandApplication app) {
this.app = app;
liveMonitoringHelper = new LiveMonitoringHelper(app);
- ApplicationMode.regWidget("monitoring", (ApplicationMode[])null);
+ ApplicationMode.regWidget("monitoring", ApplicationMode.DEFAULT);
}
@Override