From a3867532587f881b8249438e5ad46d16d0336179 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Wed, 23 Sep 2015 13:05:03 +0200 Subject: [PATCH] Remove personal subscriptions (service doesn't longer support it) --- OsmAnd/res/layout/osmo_connect_to_device.xml | 19 -- .../plus/dashboard/DashLocationFragment.java | 19 +- .../osmand/plus/osmo/DashOsMoFragment.java | 41 +--- .../src/net/osmand/plus/osmo/OsMoGroups.java | 123 +---------- .../osmand/plus/osmo/OsMoGroupsActivity.java | 194 +++++------------- .../osmand/plus/osmo/OsMoGroupsStorage.java | 22 +- .../osmand/plus/osmo/OsMoIntentHandler.java | 7 - 7 files changed, 67 insertions(+), 358 deletions(-) diff --git a/OsmAnd/res/layout/osmo_connect_to_device.xml b/OsmAnd/res/layout/osmo_connect_to_device.xml index 341444a152..9f01d4a1b5 100644 --- a/OsmAnd/res/layout/osmo_connect_to_device.xml +++ b/OsmAnd/res/layout/osmo_connect_to_device.xml @@ -6,26 +6,7 @@ android:paddingRight="7dp" android:stretchColumns="1"> - - - - - - - - diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashLocationFragment.java b/OsmAnd/src/net/osmand/plus/dashboard/DashLocationFragment.java index a7dcc75647..a77bf6928c 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashLocationFragment.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashLocationFragment.java @@ -104,28 +104,25 @@ public abstract class DashLocationFragment extends DashBaseFragment { boolean useCenter = !mapLinked; LatLon loc = (useCenter ? mw : myLoc); float h = useCenter ? -mapRotation : head; + lastUpdatedLocation = loc; for (DashLocationView lv : distances) { - if (lv.loc != null){ - lastUpdatedLocation = loc; - updateLocationView(useCenter, loc, h, lv.arrow, lv.arrowResId, lv.txt, lv.loc.getLatitude(), lv.loc.getLongitude(), - screenOrientation, getMyApplication(), getActivity(), lv.paint); - } - + updateLocationView(useCenter, loc, h, lv.arrow, lv.arrowResId, lv.txt, lv.loc, screenOrientation, + getMyApplication(), getActivity(), lv.paint); } } public static void updateLocationView(boolean useCenter, LatLon fromLoc, Float h, ImageView arrow, TextView txt, double toLat, double toLon, int screenOrientation, OsmandApplication app, Context ctx) { - updateLocationView(useCenter, fromLoc, h, arrow, 0, txt, toLat, toLon, screenOrientation, app, ctx, true); + updateLocationView(useCenter, fromLoc, h, arrow, 0, txt, new LatLon(toLat, toLon), screenOrientation, app, ctx, true); } public static void updateLocationView(boolean useCenter, LatLon fromLoc, Float h, - ImageView arrow, int arrowResId, TextView txt, double toLat, double toLon, + ImageView arrow, int arrowResId, TextView txt, LatLon toLoc, int screenOrientation, OsmandApplication app, Context ctx, boolean paint) { float[] mes = new float[2]; if (fromLoc != null) { - Location.distanceBetween(toLat, toLon, fromLoc.getLatitude(), fromLoc.getLongitude(), mes); + Location.distanceBetween(toLoc.getLatitude(), toLoc.getLongitude(), fromLoc.getLatitude(), fromLoc.getLongitude(), mes); } if (arrow != null) { boolean newImage = false; @@ -140,7 +137,7 @@ public abstract class DashLocationFragment extends DashBaseFragment { dd = (DirectionDrawable) arrow.getDrawable(); } dd.setImage(arrowResId, useCenter ? R.color.color_distance : R.color.color_myloc_distance); - if (fromLoc == null || h == null) { + if (fromLoc == null || h == null || toLoc == null) { dd.setAngle(0); } else { dd.setAngle(mes[1] - h + 180 + screenOrientation); @@ -151,7 +148,7 @@ public abstract class DashLocationFragment extends DashBaseFragment { arrow.invalidate(); } if (txt != null) { - if (fromLoc != null) { + if (fromLoc != null && toLoc != null) { if (paint) { txt.setTextColor(app.getResources().getColor( useCenter ? R.color.color_distance : R.color.color_myloc_distance)); diff --git a/OsmAnd/src/net/osmand/plus/osmo/DashOsMoFragment.java b/OsmAnd/src/net/osmand/plus/osmo/DashOsMoFragment.java index a9ad606b50..6e56604bb7 100644 --- a/OsmAnd/src/net/osmand/plus/osmo/DashOsMoFragment.java +++ b/OsmAnd/src/net/osmand/plus/osmo/DashOsMoFragment.java @@ -198,22 +198,8 @@ public class DashOsMoFragment extends DashLocationFragment implements OsMoGroups } private List getOsMoDevices(ArrayList groups) { - OsMoGroupsStorage.OsMoGroup mainGroup = null; - for (OsMoGroupsStorage.OsMoGroup grp : groups) { - if (grp.getGroupId() == null) { - mainGroup = grp; - groups.remove(grp); - break; - } - } - - if (mainGroup == null) { - return new ArrayList<>(); - } String trackerId = plugin.getService().getMyGroupTrackerId(); - List devices = - new ArrayList<>(mainGroup.getVisibleGroupUsers(trackerId)); - + List devices = new ArrayList<>(); if (groups.size() > 0) { for (OsMoGroupsStorage.OsMoGroup grp : groups) { for (OsMoGroupsStorage.OsMoDevice device : grp.getVisibleGroupUsers(trackerId)) { @@ -313,28 +299,17 @@ public class DashOsMoFragment extends DashLocationFragment implements OsMoGroups distances.add(dv); final CompoundButton enableDevice = (CompoundButton) v.findViewById(R.id.check_item); + enableDevice.setVisibility(View.GONE); ImageView icon = (ImageView) v.findViewById(R.id.icon); if (device.isEnabled()) { - enableDevice.setVisibility(View.GONE); icon.setImageDrawable(getMyApplication().getIconsCache(). getPaintedContentIcon(R.drawable.ic_person, device.getColor())); } else { - enableDevice.setVisibility(View.VISIBLE); - enableDevice.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - plugin.getGroups().connectDevice(device); - refreshItems(); - } - }); showOnMap.setVisibility(View.GONE); icon.setImageDrawable(getMyApplication().getIconsCache(). getContentIcon(R.drawable.ic_person)); } - if (device.isActive()) { - - } ((TextView) v.findViewById(R.id.name)).setText(name); v.setOnClickListener(new View.OnClickListener() { @Override @@ -347,18 +322,6 @@ public class DashOsMoFragment extends DashLocationFragment implements OsMoGroups this.distances = distances; } - private void refreshItems() { - if (!uiHandler.hasMessages(OsMoGroupsActivity.LIST_REFRESH_MSG_ID)) { - Message msg = Message.obtain(uiHandler, new Runnable() { - @Override - public void run() { - updateConnectedDevices(getView()); - } - }); - msg.what = OsMoGroupsActivity.LIST_REFRESH_MSG_ID; - uiHandler.sendMessageDelayed(msg, 100); - } - } private void launchOsMoGroupsActivity() { Intent intent = new Intent(getActivity(), OsMoGroupsActivity.class); diff --git a/OsmAnd/src/net/osmand/plus/osmo/OsMoGroups.java b/OsmAnd/src/net/osmand/plus/osmo/OsMoGroups.java index 0220285c1a..66402ace73 100644 --- a/OsmAnd/src/net/osmand/plus/osmo/OsMoGroups.java +++ b/OsmAnd/src/net/osmand/plus/osmo/OsMoGroups.java @@ -40,8 +40,6 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener { private static final String LAST_ONLINE = "last_online"; private static final String TRACK = "track"; private static final String POINT = "point"; - private static final String TRACKER_ID = "tracker_id"; - private static final String OK = "1"; private OsMoTracker tracker; private OsMoService service; @@ -65,9 +63,7 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener { service.registerReactor(this); tracker.setTrackerListener(this); storage = new OsMoGroupsStorage(this, app.getSettings().OSMO_GROUPS); - if (service.isLoggedIn()) { - storage.loadOnlyMainGroup(); - } else { + if (!service.isLoggedIn()) { storage.load(); } } @@ -95,14 +91,8 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener { @Override public void onConnected() { - for(OsMoDevice d : storage.getMainGroup().getGroupUsers(null)) { - if(d.isEnabled()) { - connectDeviceImpl(d); - } - } if (service.isLoggedIn()) { service.pushCommand("GROUP_GET_ALL"); - service.pushCommand("DEVICE_GET_ALL"); } } @@ -123,12 +113,6 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener { return op; } - public void connectDevice(OsMoDevice model) { - connectDeviceImpl(model); - storage.save(); - } - - public String disconnectGroup(OsMoGroup model) { model.enabled = false; String operation = "GROUP_DISCONNECT:"+model.groupId; @@ -140,11 +124,6 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener { return operation; } - public void disconnectDevice(OsMoDevice model) { - model.enabled = false; - disconnectImpl(model); - storage.save(); - } private void disconnectImpl(OsMoDevice model) { model.active = false; @@ -279,74 +258,6 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener { service.showErrorMessage(e.getMessage()); return processed; } - } else if (command.equals("DEVICE_GET_ALL")) { - try { - JSONArray arr = new JSONArray(data); - int arrLength = arr.length(); - if (arrLength > 0) { - OsMoGroup mainGroup = storage.getMainGroup(); - String mid = service.getMyTrackerId(); - Set toDelete = new HashSet(mainGroup.users.keySet()); - for (int i = 0; i < arrLength; i++) { - JSONObject o = arr.getJSONObject(i); - OsMoDevice device = parseDevice(o); - device.group = mainGroup; - String trackerId = device.getTrackerId(); - if (!mid.equals(trackerId)) { - if (toDelete.contains(trackerId)) { - toDelete.remove(trackerId); - OsMoDevice dv = mainGroup.users.get(trackerId); - dv.serverColor = device.userColor; - dv.serverName = device.userName; - } else { - mainGroup.users.put(trackerId, device); - } - } - } - for (String id : toDelete) { - mainGroup.users.remove(id); - } - storage.save(); - for(OsMoDevice d : mainGroup.getGroupUsers(null)) { - if(d.isEnabled() && !d.isActive()) { - connectDeviceImpl(d); - } - } - } - processed = true; - } catch (JSONException e) { - e.printStackTrace(); - service.showErrorMessage(e.getMessage()); - return processed; - } - } else if (command.equals("SUBSCRIBE")) { - OsMoGroup mainGroup = storage.getMainGroup(); - OsMoDevice device = mainGroup.users.get(gid); - if (device != null) { - if (OK.equals(data)) { - connectDeviceImpl(device); - } else { - mainGroup.users.remove(gid); - storage.save(); - if (obj == null) { - app.showToastMessage(app.getString(R.string.osmo_device_not_found)); - } - } - } - processed = true; - } else if (command.equals("UNSUBSCRIBE")) { - OsMoGroup mainGroup = storage.getMainGroup(); - OsMoDevice device = mainGroup.users.get(gid); - if (device != null) { - mainGroup.users.remove(gid); - storage.save(); - } - if (!OK.equals(data)) { - if (obj == null) { - app.showToastMessage(app.getString(R.string.osmo_device_not_found)); - } - } - processed = true; } if(processed && uiListeners != null) { for(OsMoGroupsUIListener listener : uiListeners){ @@ -381,13 +292,6 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener { return groupe; } - private OsMoDevice parseDevice(JSONObject obj) throws JSONException { - OsMoDevice device = new OsMoDevice(); - device.enabled = true; - device.userName = obj.optString(USER_NAME); - device.trackerId = obj.getString(TRACKER_ID); - return device; - } private void parseGroup(JSONObject obj, OsMoGroup gr) { try { @@ -533,36 +437,11 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener { } - public void deleteDevice(OsMoDevice device) { - if(device.isEnabled()) { - disconnectImpl(device); - } - StringBuilder unsubscribeCmd = new StringBuilder(); - unsubscribeCmd.append("UNSUBSCRIBE:"); - unsubscribeCmd.append(device.trackerId); - service.pushCommand(unsubscribeCmd.toString()); - } public void setGenColor(OsMoDevice device, int genColor) { device.genColor = genColor; storage.save(); } - public OsMoDevice addConnectedDevice(String trackerId, String nameUser, int genColor) { - OsMoDevice us = new OsMoDevice(); - us.group = storage.getMainGroup(); - us.trackerId = trackerId; - us.userName = nameUser; - us.genColor = genColor; - us.group.users.put(trackerId, us); - storage.save(); - StringBuilder subscribeCmd = new StringBuilder(); - subscribeCmd.append("SUBSCRIBE:"); - subscribeCmd.append(trackerId); - subscribeCmd.append('|'); - subscribeCmd.append(nameUser); - service.pushCommand(subscribeCmd.toString()); - return us; - } public String joinGroup(String groupId, String userName, String nick) { final String op = "GROUP_JOIN:"+groupId+"|"+nick; OsMoGroup g = storage.getGroup(groupId); diff --git a/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsActivity.java b/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsActivity.java index 4aa2cc25f4..6c5c4ff7da 100644 --- a/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsActivity.java +++ b/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsActivity.java @@ -95,7 +95,6 @@ import android.widget.FrameLayout; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; -import android.widget.RadioButton; import android.widget.ScrollView; import android.widget.Spinner; import android.widget.TextView; @@ -469,36 +468,32 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements group = (OsMoGroup) (o instanceof OsMoGroup ? o : null); MenuItem mi = null; if (device != null) { - mi = createActionModeMenuItem(actionMode, menu, ON_OFF_ACTION_ID, R.string.shared_string_ok, 0, - MenuItemCompat.SHOW_AS_ACTION_ALWAYS); +// mi = createActionModeMenuItem(actionMode, menu, ON_OFF_ACTION_ID, R.string.shared_string_ok, 0, +// MenuItemCompat.SHOW_AS_ACTION_ALWAYS); mode.setTitle(device.getVisibleName()); - } - if (device != null && device.getLastLocation() != null) { - createActionModeMenuItem(actionMode, menu, SHOW_ON_MAP_ID, R.string.shared_string_show_on_map, R.drawable.ic_action_marker_dark, - MenuItemCompat.SHOW_AS_ACTION_ALWAYS); + if (device.getLastLocation() != null) { + createActionModeMenuItem(actionMode, menu, SHOW_ON_MAP_ID, R.string.shared_string_show_on_map, + R.drawable.ic_action_marker_dark, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); + MenuItem menuItem = createActionModeMenuItem(actionMode, menu, TRACK_DEV_ID, + R.string.osmo_set_moving_target, R.drawable.ic_action_flage_dark, +// // there is a bug in Android 4.2 layout +// device.getLastLocation() != null ? MenuItemCompat.SHOW_AS_ACTION_NEVER : + MenuItemCompat.SHOW_AS_ACTION_ALWAYS); + menuItem.setTitleCondensed(getString(R.string.osmo_follow)); + } + createActionModeMenuItem(actionMode, menu, SETTINGS_DEV_ID, R.string.shared_string_settings, + R.drawable.ic_action_settings, +// // there is a bug in Android 4.2 layout +// device.getLastLocation() != null ? MenuItemCompat.SHOW_AS_ACTION_NEVER : + MenuItemCompat.SHOW_AS_ACTION_ALWAYS); } - createActionModeMenuItem(actionMode, menu, SHARE_ID, R.string.shared_string_share, R.drawable.ic_action_gshare_dark, - // there is a bug in Android 4.2 layout - device != null && device.getLastLocation() != null ? MenuItemCompat.SHOW_AS_ACTION_NEVER : MenuItemCompat.SHOW_AS_ACTION_ALWAYS); - /// - if (device != null) { - createActionModeMenuItem(actionMode, menu, SETTINGS_DEV_ID, R.string.shared_string_settings, R.drawable.ic_action_settings, - // there is a bug in Android 4.2 layout - device.getLastLocation() != null ? MenuItemCompat.SHOW_AS_ACTION_NEVER : MenuItemCompat.SHOW_AS_ACTION_ALWAYS); - } - if (device != null && device.getLastLocation() != null) { - MenuItem menuItem = createActionModeMenuItem(actionMode, menu, TRACK_DEV_ID, R.string.osmo_set_moving_target, R.drawable.ic_action_flage_dark, - // there is a bug in Android 4.2 layout - device.getLastLocation() != null ? MenuItemCompat.SHOW_AS_ACTION_NEVER : MenuItemCompat.SHOW_AS_ACTION_ALWAYS); - menuItem.setTitleCondensed(getString(R.string.osmo_follow)); - } if (group != null) { + createActionModeMenuItem(actionMode, menu, SHARE_ID, R.string.shared_string_share, R.drawable.ic_action_gshare_dark, + MenuItemCompat.SHOW_AS_ACTION_ALWAYS); mode.setTitle(group.getVisibleName(OsMoGroupsActivity.this)); createActionModeMenuItem(actionMode, menu, GROUP_INFO, R.string.osmo_group_info, R.drawable.ic_action_gabout_dark, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); - } - if ((group != null && !group.isMainGroup()) || (device != null && device.getGroup().isMainGroup())) { createActionModeMenuItem(actionMode, menu, DELETE_ACTION_ID, R.string.shared_string_delete, R.drawable.ic_action_delete_dark, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); @@ -551,18 +546,15 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements showSettingsDialog(device); } else if (item.getItemId() == DELETE_ACTION_ID) { Builder bld = new AlertDialog.Builder(OsMoGroupsActivity.this); - String name = (selectedObject instanceof OsMoDevice) ? ((OsMoDevice) selectedObject).getVisibleName() : - ((OsMoGroup) selectedObject).getVisibleName(OsMoGroupsActivity.this); - bld.setTitle(getString( - selectedObject instanceof OsMoDevice ? R.string.delete_confirmation_msg : - R.string.osmo_leave_confirmation_msg, name)); + String name = ((OsMoGroup) selectedObject).getVisibleName(OsMoGroupsActivity.this); + bld.setTitle(getString(R.string.osmo_leave_confirmation_msg, name)); bld.setPositiveButton(R.string.shared_string_yes, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Object obj = selectedObject; quitSelectionMode(); - deleteObject(obj); + deleteObject((OsMoGroup) obj); } }); bld.setNegativeButton(R.string.shared_string_no, null); @@ -570,11 +562,7 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements } else if (item.getItemId() == GROUP_INFO) { showGroupInfo(group); } else if (item.getItemId() == SHARE_ID) { - if (device != null) { - shareTrackerId(device.getVisibleName(), device.getTrackerId()); - } else { - shareOsMoGroup(group.getVisibleName(app), group.getGroupId()); - } + shareOsMoGroup(group.getVisibleName(app), group.getGroupId()); } else if (item.getItemId() == SHOW_ON_MAP_ID) { if (device != null) { Location location = device.getLastLocation(); @@ -595,22 +583,13 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements } private void onOffAction(CompoundButton bt) { - if ((selectedObject instanceof OsMoDevice)) { - OsMoDevice d = (OsMoDevice) selectedObject; - if (bt.isChecked()) { - osMoPlugin.getGroups().connectDevice(d); - } else { - osMoPlugin.getGroups().disconnectDevice(d); - } + OsMoGroup g = (OsMoGroup) selectedObject; + if (bt.isChecked()) { + String operation = osMoPlugin.getGroups().connectGroup(g); + startLongRunningOperation(operation); } else { - OsMoGroup g = (OsMoGroup) selectedObject; - if (bt.isChecked()) { - String operation = osMoPlugin.getGroups().connectGroup(g); - startLongRunningOperation(operation); - } else { - String operation = osMoPlugin.getGroups().disconnectGroup(g); - startLongRunningOperation(operation); - } + String operation = osMoPlugin.getGroups().disconnectGroup(g); + startLongRunningOperation(operation); } quitSelectionMode(); } @@ -662,22 +641,15 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements } - protected void deleteObject(Object selectedObject) { - if(selectedObject instanceof OsMoDevice) { - OsMoDevice d = (OsMoDevice)selectedObject; - osMoPlugin.getGroups().deleteDevice(d); - adapter.update(d.getGroup()); - adapter.notifyDataSetChanged(); - } else { - if (!checkOperationIsNotRunning()) { - return; - } - String operation = osMoPlugin.getGroups().leaveGroup((OsMoGroup) selectedObject); - startLongRunningOperation(operation); - adapter.update((OsMoGroup) selectedObject); - adapter.notifyDataSetChanged(); + protected void deleteObject(OsMoGroup selectedObject) { + if (!checkOperationIsNotRunning()) { + return; } - + String operation = osMoPlugin.getGroups().leaveGroup((OsMoGroup) selectedObject); + startLongRunningOperation(operation); + adapter.update((OsMoGroup) selectedObject); + adapter.notifyDataSetChanged(); + } private void quitSelectionMode() { @@ -729,24 +701,7 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements } private void shareSession() { - Builder bld = new AlertDialog.Builder(this); - bld.setItems(new String[] { - getString(R.string.osmo_share_current_session), - getString(R.string.osmo_share_connect_device) - }, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - if (which == 0) { - shareSessionUrl(osMoPlugin, OsMoGroupsActivity.this); - } else { - OsMoService service = osMoPlugin.getService(); - SessionInfo ci = service.getCurrentSessionInfo(); - shareTrackerId("", ci == null ? null : ci.trackerId); - } - } - }); - bld.setNegativeButton(R.string.shared_string_cancel, null); - bld.show(); + shareSessionUrl(osMoPlugin, OsMoGroupsActivity.this); } public static void shareSessionUrl(OsMoPlugin osMoPlugin, Activity ctx) { @@ -762,22 +717,6 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements } } - private void shareTrackerId(String name, String trackerId) { - if(trackerId == null) { - AccessibleToast.makeText(this, R.string.osmo_auth_pending, Toast.LENGTH_SHORT).show(); - } else { - ShareDialog dlg = new ShareDialog(this); - String url = OsMoService.SHARE_TRACKER_URL + Uri.encode(trackerId); - if(name != null && name.length() > 0){ - url += "&name="+Uri.encode(name); - } - dlg.setTitle(getString(R.string.osmo_tracker_id)); - dlg.viewContent(trackerId); - dlg.shareURLOrText(url, getString(R.string.osmo_tracker_id_share, trackerId, name, url), null); - dlg.showDialog(); - } - } - private void shareOsMoGroup(String name, String groupId) { ShareDialog dlg = new ShareDialog(this); String url = OsMoService.SHARE_GROUP_URL +Uri.encode(groupId)+"&name="+Uri.encode(name); @@ -1008,38 +947,22 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements private void connectToDevice() { Builder builder = new AlertDialog.Builder(this); final View v = getLayoutInflater().inflate(R.layout.osmo_connect_to_device, getExpandableListView(), false); - final RadioButton device = (RadioButton) v.findViewById(R.id.ConnectToDevice); - //final RadioButton group = (RadioButton) v.findViewById(R.id.ConnectToGroup); final TextView labelTracker = (TextView ) v.findViewById(R.id.LabelTrackerId); final TextView labelName = (TextView ) v.findViewById(R.id.LabelName); final EditText tracker = (EditText) v.findViewById(R.id.TrackerId); final EditText name = (EditText) v.findViewById(R.id.Name); - final View mgv = v.findViewById(R.id.MyGroupName); final EditText nickname = (EditText) v.findViewById(R.id.NickName); nickname.setText(app.getSettings().OSMO_USER_NAME.get()); - device.setChecked(true); - device.setOnCheckedChangeListener(new OnCheckedChangeListener() { - - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - if(isChecked) { - labelTracker.setText(R.string.osmo_connect_to_device_tracker_id); - labelName.setText(R.string.osmo_connect_to_device_name); - name.setVisibility(View.VISIBLE); - labelName.setVisibility(View.VISIBLE); - mgv.setVisibility(View.GONE); - } else { - labelTracker.setText(R.string.osmo_connect_to_group_id); - labelName.setText(R.string.osmo_group_name); - name.setHint(R.string.osmo_use_server_name); - name.setVisibility(View.GONE); - labelName.setVisibility(View.GONE); - mgv.setVisibility(View.VISIBLE); - } - } - }); + labelTracker.setText(R.string.osmo_connect_to_group_id); + labelName.setText(R.string.osmo_group_name); + name.setHint(R.string.osmo_use_server_name); + name.setVisibility(View.GONE); + labelName.setVisibility(View.GONE); + mgv.setVisibility(View.VISIBLE); + + builder.setView(v); builder.setNegativeButton(R.string.shared_string_cancel, null); @@ -1051,27 +974,20 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements final String id = tracker.getText().toString(); String nick = nickname.getText().toString().isEmpty() ? "user" : nickname.getText().toString(); - if(id.length() == 0) { + if (id.length() == 0) { app.showToastMessage(R.string.osmo_specify_tracker_id); connectToDevice(); return; } - if(device.isChecked()) { - OsMoDevice dev = osMoPlugin.getGroups().addConnectedDevice(id, nameUser, - ColorDialogs.getRandomColor()); - adapter.update(dev.group); - adapter.notifyDataSetChanged(); - } else { - if(!checkOperationIsNotRunning()) { - return; - } - joinGroup = true; - String op = osMoPlugin.getGroups().joinGroup(id, nameUser, nick); - if(app.getSettings().OSMO_USER_PWD.get() == null) { - app.getSettings().OSMO_USER_NAME.set(nick); - } - startLongRunningOperation(op); + if (!checkOperationIsNotRunning()) { + return; } + joinGroup = true; + String op = osMoPlugin.getGroups().joinGroup(id, nameUser, nick); + if (app.getSettings().OSMO_USER_PWD.get() == null) { + app.getSettings().OSMO_USER_NAME.set(nick); + } + startLongRunningOperation(op); } }); builder.create().show(); diff --git a/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsStorage.java b/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsStorage.java index c87f4ce8cc..f9840e0b88 100644 --- a/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsStorage.java +++ b/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsStorage.java @@ -43,39 +43,21 @@ public class OsMoGroupsStorage { private OsmandPreference pref; private OsMoGroups service; private ConcurrentHashMap groups = new ConcurrentHashMap(); - private OsMoGroup mainGroup; public OsMoGroupsStorage(OsMoGroups service, OsmandPreference pref) { this.service = service; this.pref = pref; - mainGroup = new OsMoGroup(); - groups.put("", mainGroup); - } - - public OsMoGroup getMainGroup() { - return mainGroup; } public Collection getGroups() { return groups.values(); } - public void loadOnlyMainGroup() { - String grp = pref.get(); - try { - JSONObject obj = new JSONObject(grp); - parseGroupUsers(mainGroup, obj); - } catch (JSONException e) { - e.printStackTrace(); - service.showErrorMessage(e.getMessage()); - } - } public void load() { String grp = pref.get(); try { JSONObject obj = new JSONObject(grp); - parseGroupUsers(mainGroup, obj); if(!obj.has(GROUPS)) { return; } @@ -115,7 +97,6 @@ public class OsMoGroupsStorage { public void save() { JSONObject mainObj = new JSONObject(); try { - saveGroupUsers(mainGroup, mainObj); JSONArray ar = new JSONArray(); for(OsMoGroup gr : groups.values()) { if(gr.isMainGroup()) { @@ -493,7 +474,7 @@ public class OsMoGroupsStorage { } for (String id: toDelete) { OsMoGroup group = getGroup(id); - if ((group != null) && (!group.equals(mainGroup))) { + if (group != null) { deleteGroup(group); } } @@ -501,7 +482,6 @@ public class OsMoGroupsStorage { public void clearGroups() { groups.clear(); - groups.put("", mainGroup); } } diff --git a/OsmAnd/src/net/osmand/plus/osmo/OsMoIntentHandler.java b/OsmAnd/src/net/osmand/plus/osmo/OsMoIntentHandler.java index e05672801e..802dc11dd1 100644 --- a/OsmAnd/src/net/osmand/plus/osmo/OsMoIntentHandler.java +++ b/OsmAnd/src/net/osmand/plus/osmo/OsMoIntentHandler.java @@ -40,13 +40,6 @@ public class OsMoIntentHandler extends AsyncTask { name = ""; } plugin.getGroups().joinGroup(gid, name, app.getSettings().OSMO_USER_NAME.get()); - } else if(lastPath.equals("connect")) { - String gid = data.getQueryParameter("id"); - String name = data.getQueryParameter("name"); - if(name == null) { - name = gid; - } - plugin.getGroups().addConnectedDevice(gid, name, 0); } } return null;