예제 #1
0
  public static void showEditInstance(final Amenity amenity, final AppCompatActivity activity) {
    final OsmandSettings settings = ((OsmandApplication) activity.getApplication()).getSettings();
    final OpenstreetmapUtil openstreetmapUtilToLoad;
    if (settings.OFFLINE_EDITION.get() || !settings.isInternetConnectionAvailable(true)) {
      OsmEditingPlugin plugin = OsmandPlugin.getPlugin(OsmEditingPlugin.class);
      openstreetmapUtilToLoad = new OpenstreetmapLocalUtil(plugin, activity);
    } else if (!settings.isInternetConnectionAvailable(true)) {
      openstreetmapUtilToLoad = new OpenstreetmapRemoteUtil(activity);
    } else {
      openstreetmapUtilToLoad = new OpenstreetmapRemoteUtil(activity);
    }
    new AsyncTask<Void, Void, Node>() {
      @Override
      protected Node doInBackground(Void... params) {
        return openstreetmapUtilToLoad.loadNode(amenity);
      }

      protected void onPostExecute(Node n) {
        if (n != null) {
          EditPoiDialogFragment fragment = EditPoiDialogFragment.createInstance(n, amenity);
          fragment.show(activity.getSupportFragmentManager(), TAG);
        } else {
          AccessibleToast.makeText(
                  activity,
                  activity.getString(R.string.poi_error_poi_not_found),
                  Toast.LENGTH_SHORT)
              .show();
        }
      }
    }.execute();
  }
예제 #2
0
 public ShowDeleteDialogAsyncTask(AppCompatActivity activity) {
   this.activity = activity;
   OsmandSettings settings = ((OsmandApplication) activity.getApplication()).getSettings();
   OsmEditingPlugin plugin = OsmandPlugin.getPlugin(OsmEditingPlugin.class);
   if (settings.OFFLINE_EDITION.get() || !settings.isInternetConnectionAvailable(true)) {
     openstreetmapUtil = new OpenstreetmapLocalUtil(plugin, activity);
   } else if (!settings.isInternetConnectionAvailable(true)) {
     openstreetmapUtil = new OpenstreetmapLocalUtil(plugin, activity);
   } else {
     openstreetmapUtil = new OpenstreetmapRemoteUtil(activity);
   }
 }
예제 #3
0
  public static void installMapLayers(
      final Activity activity, final DialogInterface.OnClickListener onClickListener) {
    final OsmandSettings settings = ((OsmandApplication) activity.getApplication()).getSettings();
    final Map<String, String> entriesMap = settings.getTileSourceEntries();
    if (!settings.isInternetConnectionAvailable(true)) {
      Toast.makeText(activity, R.string.internet_not_available, Toast.LENGTH_LONG).show();
      return;
    }
    final List<TileSourceTemplate> downloaded = TileSourceManager.downloadTileSourceTemplates();
    if (downloaded == null || downloaded.isEmpty()) {
      Toast.makeText(activity, R.string.error_io_error, Toast.LENGTH_SHORT).show();
      return;
    }
    Builder builder = new AlertDialog.Builder(activity);
    String[] names = new String[downloaded.size()];
    for (int i = 0; i < names.length; i++) {
      names[i] = downloaded.get(i).getName();
    }
    final boolean[] selected = new boolean[downloaded.size()];
    builder.setMultiChoiceItems(
        names,
        selected,
        new DialogInterface.OnMultiChoiceClickListener() {

          @Override
          public void onClick(DialogInterface dialog, int which, boolean isChecked) {
            selected[which] = isChecked;
            if (entriesMap.containsKey(downloaded.get(which).getName()) && isChecked) {
              Toast.makeText(activity, R.string.tile_source_already_installed, Toast.LENGTH_SHORT)
                  .show();
            }
          }
        });
    builder.setNegativeButton(R.string.default_buttons_cancel, null);
    builder.setTitle(R.string.select_tile_source_to_install);
    builder.setPositiveButton(
        R.string.default_buttons_apply,
        new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            List<TileSourceTemplate> toInstall = new ArrayList<TileSourceTemplate>();
            for (int i = 0; i < selected.length; i++) {
              if (selected[i]) {
                toInstall.add(downloaded.get(i));
              }
            }
            for (TileSourceTemplate ts : toInstall) {
              settings.installTileSource(ts);
            }
            if (onClickListener != null) {
              onClickListener.onClick(dialog, which);
            }
          }
        });

    builder.show();
  }
예제 #4
0
  @Override
  public void onAttach(Activity activity) {
    super.onAttach(activity);
    OsmandSettings settings = getMyApplication().getSettings();
    OsmEditingPlugin plugin = OsmandPlugin.getPlugin(OsmEditingPlugin.class);
    if (settings.OFFLINE_EDITION.get() || !settings.isInternetConnectionAvailable(true)) {
      mOpenstreetmapUtil = new OpenstreetmapLocalUtil(plugin, activity);
    } else if (!settings.isInternetConnectionAvailable(true)) {
      mOpenstreetmapUtil = new OpenstreetmapLocalUtil(plugin, activity);
    } else {
      mOpenstreetmapUtil = new OpenstreetmapRemoteUtil(activity);
    }

    node = (Node) getArguments().getSerializable(KEY_AMENITY_NODE);
    allTranslatedSubTypes = getMyApplication().getPoiTypes().getAllTranslatedNames();

    Amenity amenity = (Amenity) getArguments().getSerializable(KEY_AMENITY);
    editPoiData = new EditPoiData(amenity, node, allTranslatedSubTypes);
  }
예제 #5
0
 public OsmBugsUtil getOsmbugsUtil(OpenStreetNote bug) {
   OsmandSettings settings = ((OsmandApplication) activity.getApplication()).getSettings();
   if ((bug != null && bug.isLocal())
       || settings.OFFLINE_EDITION.get()
       || !settings.isInternetConnectionAvailable(true)) {
     return local;
   } else {
     return remote;
   }
 }