package net.osmand.plus.osmo; import net.osmand.plus.OsmandApplication; import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; public class OsMoIntentHandler extends AsyncTask<Intent, Void, String> { private OsmandApplication app; private OsMoPlugin plugin; public OsMoIntentHandler(OsmandApplication app, OsMoPlugin plugin) { this.app = app; this.plugin = plugin; } @Override protected String doInBackground(Intent... params) { try { while (app.isApplicationInitializing()) { Thread.sleep(200); } for (Intent intent : params) { String scheme = intent.getScheme(); Uri data = intent.getData(); if ("http".equals(scheme) && data.getHost().equals("z.osmo.mobi")) { String path = data.getPath(); String lastPath = path.substring(path.lastIndexOf('/') + 1); if(lastPath.equals("login")) { String user = data.getQueryParameter("u"); String pwd = data.getQueryParameter("p"); app.getSettings().OSMO_USER_NAME.set(user); app.getSettings().OSMO_USER_PWD.set(pwd); plugin.getService().reconnectToServer(); } else if(lastPath.equals("join")) { String gid = data.getQueryParameter("id"); String name = data.getQueryParameter("name"); if(name == null) { name = ""; } plugin.getGroups().joinGroup(gid, name, app.getSettings().OSMO_USER_NAME.get()); } } return null; } } catch (Exception e) { return e.getMessage(); } return null; } @Override protected void onPostExecute(String result) { if(result != null) { } } }