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);