Add option to regenerate tracker id
This commit is contained in:
parent
d7187b8c47
commit
a8f0508a7d
5 changed files with 51 additions and 2 deletions
|
@ -9,6 +9,8 @@
|
||||||
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
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
|
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
||||||
-->
|
-->
|
||||||
|
<string name="osmo_regenerate_login_ids_confirm">Are you sure about regenerating personal ids? All devices, connected to you, won\'t be able to track you any more.</string>
|
||||||
|
<string name="osmo_regenerate_login_ids">Regenerate user id</string>
|
||||||
<string name="osmo_cancel_moving_target">Cancel moving target</string>
|
<string name="osmo_cancel_moving_target">Cancel moving target</string>
|
||||||
<string name="osmo_center_location">Center on the screen</string>
|
<string name="osmo_center_location">Center on the screen</string>
|
||||||
<string name="osmo_set_moving_target">Set as moving target</string>
|
<string name="osmo_set_moving_target">Set as moving target</string>
|
||||||
|
|
|
@ -29,6 +29,7 @@ public class ShareDialog {
|
||||||
private List<ShareType> share = new ArrayList<ShareType>();
|
private List<ShareType> share = new ArrayList<ShareType>();
|
||||||
private static final String ZXING_BARCODE_SCANNER_COMPONENT = "com.google.zxing.client.android"; //$NON-NLS-1$
|
private static final String ZXING_BARCODE_SCANNER_COMPONENT = "com.google.zxing.client.android"; //$NON-NLS-1$
|
||||||
private static final String ZXING_BARCODE_SCANNER_ACTIVITY = "com.google.zxing.client.android.ENCODE"; //$NON-NLS-1$
|
private static final String ZXING_BARCODE_SCANNER_ACTIVITY = "com.google.zxing.client.android.ENCODE"; //$NON-NLS-1$
|
||||||
|
static final int ACTION = -1;
|
||||||
static final int VIEW = 0;
|
static final int VIEW = 0;
|
||||||
static final int EMAIL = 1;
|
static final int EMAIL = 1;
|
||||||
static final int SMS = 2;
|
static final int SMS = 2;
|
||||||
|
@ -45,11 +46,17 @@ public class ShareDialog {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ShareDialog viewContent(String content){
|
public ShareDialog viewContent(String content){
|
||||||
share.add(new ShareType(content, VIEW));
|
share.add(new ShareType(content, VIEW));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ShareDialog setAction(String content, Runnable r){
|
||||||
|
share.add(new ShareType(content, ACTION, r));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public ShareDialog shareURLOrText(String url, String shortExplanation, String longExplanation){
|
public ShareDialog shareURLOrText(String url, String shortExplanation, String longExplanation){
|
||||||
if(shortExplanation == null) {
|
if(shortExplanation == null) {
|
||||||
shortExplanation = url;
|
shortExplanation = url;
|
||||||
|
@ -68,14 +75,23 @@ public class ShareDialog {
|
||||||
private static class ShareType {
|
private static class ShareType {
|
||||||
public String content;
|
public String content;
|
||||||
public int type;
|
public int type;
|
||||||
|
private Runnable runnable;
|
||||||
|
|
||||||
public ShareType(String content, int type) {
|
public ShareType(String content, int type) {
|
||||||
this.content = content;
|
this.content = content;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ShareType(String content, int action, Runnable r) {
|
||||||
|
this.content = content;
|
||||||
|
this.type = action;
|
||||||
|
this.runnable = r;
|
||||||
|
}
|
||||||
|
|
||||||
public String getShareName(Context ctx) {
|
public String getShareName(Context ctx) {
|
||||||
if(type == VIEW) {
|
if(type == ACTION) {
|
||||||
|
return content;
|
||||||
|
} else if(type == VIEW) {
|
||||||
return ctx.getString(R.string.show_details);
|
return ctx.getString(R.string.show_details);
|
||||||
} else if(type == EMAIL) {
|
} else if(type == EMAIL) {
|
||||||
return "Email";
|
return "Email";
|
||||||
|
@ -90,7 +106,9 @@ public class ShareDialog {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void execute(Activity a, String title) {
|
public void execute(Activity a, String title) {
|
||||||
if(type == VIEW) {
|
if(type == ACTION) {
|
||||||
|
runnable.run();
|
||||||
|
} else if(type == VIEW) {
|
||||||
Builder bld = new AlertDialog.Builder(a);
|
Builder bld = new AlertDialog.Builder(a);
|
||||||
bld.setTitle(title);
|
bld.setTitle(title);
|
||||||
bld.setMessage(content);
|
bld.setMessage(content);
|
||||||
|
|
|
@ -31,6 +31,7 @@ import android.os.Build;
|
||||||
import android.provider.Settings.Secure;
|
import android.provider.Settings.Secure;
|
||||||
|
|
||||||
public class OsMoService implements OsMoReactor {
|
public class OsMoService implements OsMoReactor {
|
||||||
|
public static final String REGENERATE_CMD = "REGENERATE_TRACKER_ID";
|
||||||
private OsMoThread thread;
|
private OsMoThread thread;
|
||||||
private List<OsMoReactor> listReactors = new java.util.concurrent.CopyOnWriteArrayList<OsMoReactor>();
|
private List<OsMoReactor> listReactors = new java.util.concurrent.CopyOnWriteArrayList<OsMoReactor>();
|
||||||
private ConcurrentLinkedQueue<String> commands = new ConcurrentLinkedQueue<String>();
|
private ConcurrentLinkedQueue<String> commands = new ConcurrentLinkedQueue<String>();
|
||||||
|
|
|
@ -32,6 +32,7 @@ public class OsMoThread {
|
||||||
// private static String TRACKER_SERVER = "srv.osmo.mobi";
|
// private static String TRACKER_SERVER = "srv.osmo.mobi";
|
||||||
// private static int TRACKER_PORT = 3245;
|
// private static int TRACKER_PORT = 3245;
|
||||||
|
|
||||||
|
|
||||||
private static final String PING_CMD = "P";
|
private static final String PING_CMD = "P";
|
||||||
protected final static Log log = PlatformUtil.getLog(OsMoThread.class);
|
protected final static Log log = PlatformUtil.getLog(OsMoThread.class);
|
||||||
private static final long HEARTBEAT_DELAY = 100;
|
private static final long HEARTBEAT_DELAY = 100;
|
||||||
|
@ -290,6 +291,9 @@ public class OsMoThread {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
} else if(header.equalsIgnoreCase(OsMoService.REGENERATE_CMD)) {
|
||||||
|
reconnect = true;
|
||||||
|
continue;
|
||||||
} else if(header.equalsIgnoreCase(PING_CMD)) {
|
} else if(header.equalsIgnoreCase(PING_CMD)) {
|
||||||
pingSent = 0;
|
pingSent = 0;
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -11,6 +11,8 @@ import net.osmand.plus.osmo.OsMoService.SessionInfo;
|
||||||
import net.osmand.util.Algorithms;
|
import net.osmand.util.Algorithms;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.AlertDialog.Builder;
|
import android.app.AlertDialog.Builder;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.content.DialogInterface.OnClickListener;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.CheckBoxPreference;
|
import android.preference.CheckBoxPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
|
@ -121,6 +123,7 @@ public class SettingsOsMoActivity extends SettingsBaseActivity {
|
||||||
} else {
|
} else {
|
||||||
ShareDialog dlg = new ShareDialog(this);
|
ShareDialog dlg = new ShareDialog(this);
|
||||||
dlg.setTitle(getString(R.string.osmo_tracker_id));
|
dlg.setTitle(getString(R.string.osmo_tracker_id));
|
||||||
|
dlg.setAction(getString(R.string.osmo_regenerate_login_ids), getRegenerateAction());
|
||||||
dlg.viewContent(ci.trackerId);
|
dlg.viewContent(ci.trackerId);
|
||||||
dlg.shareURLOrText(ci.trackerId, getString(R.string.osmo_tracker_id_share, ci.trackerId, ""), null);
|
dlg.shareURLOrText(ci.trackerId, getString(R.string.osmo_tracker_id_share, ci.trackerId, ""), null);
|
||||||
dlg.showDialog();
|
dlg.showDialog();
|
||||||
|
@ -129,6 +132,27 @@ public class SettingsOsMoActivity extends SettingsBaseActivity {
|
||||||
return super.onPreferenceClick(preference);
|
return super.onPreferenceClick(preference);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Runnable getRegenerateAction() {
|
||||||
|
return new Runnable() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
Builder bld = new AlertDialog.Builder(SettingsOsMoActivity.this);
|
||||||
|
bld.setMessage(R.string.osmo_regenerate_login_ids_confirm);
|
||||||
|
bld.setPositiveButton(R.string.default_buttons_yes, new OnClickListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
final OsMoPlugin plugin = OsMoPlugin.getEnabledPlugin(OsMoPlugin.class);
|
||||||
|
plugin.getService().pushCommand(OsMoService.REGENERATE_CMD);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
bld.setNegativeButton(R.string.default_buttons_no, null);
|
||||||
|
bld.show();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
boolean p = super.onPreferenceChange(preference, newValue);
|
boolean p = super.onPreferenceChange(preference, newValue);
|
||||||
|
|
Loading…
Reference in a new issue