diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml
index 9f180c825e..b12a60173f 100644
--- a/OsmAnd/res/values/strings.xml
+++ b/OsmAnd/res/values/strings.xml
@@ -11,8 +11,8 @@
-->
Preferred lanaguage for labels on the map (if it is not available will switch to English or to local names)
Map prefferred language
- Leave group %1$s?
- Please specify tracker id
+ Do you want to leave group %1$s?
+ Please specify id
Continue Navigation
Pause Navigation
Keep
diff --git a/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsActivity.java b/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsActivity.java
index eac8ff5e3e..6301a72559 100644
--- a/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsActivity.java
+++ b/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsActivity.java
@@ -329,6 +329,7 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
if(osMoPlugin.getService().isConnected()) {
adapter.synchronizeGroups();
}
+ osMoPlugin.setGroupsActivity(this);
}
@Override
@@ -340,6 +341,7 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
}
app.getLocationProvider().removeLocationListener(this);
osMoPlugin.getGroups().setUiListener(null);
+ osMoPlugin.setGroupsActivity(null);
}
private void enterSelectionMode(final Object o) {
diff --git a/OsmAnd/src/net/osmand/plus/osmo/OsMoPlugin.java b/OsmAnd/src/net/osmand/plus/osmo/OsMoPlugin.java
index 17e3f1fdbb..16efac4ce6 100644
--- a/OsmAnd/src/net/osmand/plus/osmo/OsMoPlugin.java
+++ b/OsmAnd/src/net/osmand/plus/osmo/OsMoPlugin.java
@@ -61,8 +61,10 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer
private BaseMapWidget osmoControl;
private OsMoPositionLayer olayer;
protected MapActivity mapActivity;
+ protected OsMoGroupsActivity groupsActivity;
private final static Log log = PlatformUtil.getLog(OsMoPlugin.class);
+
public OsMoPlugin(final OsmandApplication app) {
service = new OsMoService(app, this);
@@ -82,6 +84,14 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer
}
return true;
}
+
+ public OsMoGroupsActivity getGroupsActivity() {
+ return groupsActivity;
+ }
+
+ public void setGroupsActivity(OsMoGroupsActivity groupsActivity) {
+ this.groupsActivity = groupsActivity;
+ }
@Override
public void disable(OsmandApplication app) {
diff --git a/OsmAnd/src/net/osmand/plus/osmo/OsMoService.java b/OsmAnd/src/net/osmand/plus/osmo/OsMoService.java
index fe9f985670..cc41b4bd45 100644
--- a/OsmAnd/src/net/osmand/plus/osmo/OsMoService.java
+++ b/OsmAnd/src/net/osmand/plus/osmo/OsMoService.java
@@ -27,11 +27,15 @@ import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
+import android.app.AlertDialog;
+import android.app.AlertDialog.Builder;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.AsyncTask;
@@ -300,8 +304,18 @@ public class OsMoService implements OsMoReactor {
}
}
- private void runNotification(String error) {
- if (notification == null) {
+ private void runNotification(final String error) {
+ final OsMoGroupsActivity ga = plugin.getGroupsActivity();
+ if(ga != null) {
+ app.runInUIThread(new Runnable() {
+
+ @Override
+ public void run() {
+ showRegisterAgain(ga, app.getString(R.string.osmo_auth_error, error));
+
+ }
+ });
+ } else if (notification == null) {
Intent notificationIntent = new Intent(OSMO_REGISTER_AGAIN);
PendingIntent intent = PendingIntent.getBroadcast(app, 0, notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
@@ -319,6 +333,20 @@ public class OsMoService implements OsMoReactor {
}
+ protected void showRegisterAgain(OsMoGroupsActivity ga, String msg) {
+ Builder bld = new AlertDialog.Builder(ga);
+ bld.setMessage(msg);
+ bld.setPositiveButton(R.string.default_buttons_ok, new OnClickListener() {
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ registerAsync();
+ }
+ });
+ bld.setNegativeButton(R.string.default_buttons_cancel, null);
+
+ }
+
private void showDialogAskToReregister(String error) {
// Builder bld = new AlertDialog.Builder(this);
// bld.setMessage(app.getString(R.string.osmo_io_error) + error);