예제 #1
0
  @Override
  public boolean onMenuItemClick(MenuItem item) {

    switch (item.getItemId()) {
      case R.id.action_a12:
        new AnimateRadar().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "12");
        return true;
      case R.id.action_a18:
        new AnimateRadar().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "18");
        return true;
      case R.id.action_a6:
        new AnimateRadar().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "6");
        return true;
      case R.id.action_stop:
        animDrawable.stop();
        return true;
      case R.id.action_share:
        if (anim_ran)
          UtilityShare.ShareAnimGif(
              this, "NWS mosaic: " + nws_radar_mosaic_sector_label_current, animDrawable);
        else
          UtilityShare.ShareBitmap(
              this,
              "NWS mosaic: " + nws_radar_mosaic_sector_label_current,
              UtilityImg.LayerDrawableToBitmap(ld));
        return true;
      case R.id.action_spotters:
        if (spotters) {
          spotters = false;
          new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        } else {
          spotters = true;
          new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        }
        return true;
      default:
        return super.onOptionsItemSelected(item);
    }
  }
예제 #2
0
  @Override
  public boolean onMenuItemClick(MenuItem item) {

    if (in_ogl_anim) {
      in_ogl_anim = false;
      anim.setIcon(play_icon);
      if (item.getItemId() == R.id.action_a6) return true;
    }

    switch (item.getItemId()) {
      case R.id.action_share:
        if (anim_ran) {
          if (!prod.equals("2k"))
            animDrawable = UtilityUSImgWX.AnimationFromFiles(this, rid1, prod, frame_cnt_str);

          UtilityShare.ShareAnimGif(
              this,
              rid1
                  + " ("
                  + MyApplication.preferences.getString("RID_LOC_" + rid1, "")
                  + ") "
                  + prod,
              animDrawable);

        } else {
          if (prod.equals("2k"))
            UtilityShare.ShareBitmap(
                this,
                rid1
                    + " ("
                    + MyApplication.preferences.getString("RID_LOC_" + rid1, "")
                    + ") "
                    + prod,
                bitmap);
          else
            UtilityShare.ShareBitmap(
                this,
                rid1
                    + " ("
                    + MyApplication.preferences.getString("RID_LOC_" + rid1, "")
                    + ") "
                    + prod,
                UtilityImg.LayerDrawableToBitmap(
                    UtilityUSImgWX.LayeredImgFromFile(getApplicationContext(), rid1, prod, false)));
        }
        return true;

      case R.id.action_settings:
        Intent intent = new Intent(this, SettingsRadarActivity.class);
        startActivity(intent);
        return true;

      case R.id.action_n0q:
        prod = "N" + tilt + "Q";
        setTitle(prod);
        tilt_option = true;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_n0u:
        prod = "N" + tilt + "U";
        setTitle(prod);
        tilt_option = true;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;

      case R.id.action_tv0:
        prod = "TV0";
        setTitle(prod);
        tilt_option = false;
        rid_changed = true;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_tzl:
        prod = "TZL";
        setTitle(prod);
        tilt_option = false;
        rid_changed = true;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;

      case R.id.action_n0s:
        prod = "N" + tilt + "S";
        setTitle(prod);
        tilt_option = false;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_net:
        prod = "EET";
        setTitle(prod);
        tilt_option = false;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_DVL:
        prod = "DVL";
        setTitle(prod);
        tilt_option = false;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_N0X:
        prod = "N" + tilt + "X";
        setTitle(prod);
        tilt_option = true;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_N0C:
        prod = "N" + tilt + "C";
        setTitle(prod);
        tilt_option = true;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_N0K:
        prod = "N" + tilt + "K";
        setTitle(prod);
        tilt_option = true;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_H0C:
        prod = "H" + tilt + "C";
        setTitle(prod);
        tilt_option = true;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_about:
        ShowRadarScanInfo();
        return true;
      case R.id.action_vil:
        prod = "DVL";
        setTitle(prod);
        tilt_option = false;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_dsp:
        prod = "DSP";
        setTitle(prod);
        tilt_option = false;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_n0r:
        prod = "N0R";
        setTitle(prod);
        tilt_option = false;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_n0v:
        prod = "N0V";
        setTitle(prod);
        tilt_option = false;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_l2vel:
        prod = "L2VEL";
        setTitle(prod);
        tilt_option = false;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_l2ref:
        prod = "L2REF";
        setTitle(prod);
        tilt_option = false;
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_tilt1:
        tilt = "0";
        prod = prod.replaceAll("N[0-3]", "N" + tilt);
        setTitle(prod);
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_tilt2:
        tilt = "1";
        prod = prod.replaceAll("N[0-3]", "N" + tilt);
        setTitle(prod);
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_tilt3:
        tilt = "2";
        prod = prod.replaceAll("N[0-3]", "N" + tilt);
        setTitle(prod);
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_tilt4:
        tilt = "3";
        prod = prod.replaceAll("N[0-3]", "N" + tilt);
        setTitle(prod);
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_a12:
        setTitle(prod);
        if (prod.equals("2k")) {
          new AnimateRadarMosaic().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "12", prod);

        } else {
          anim.setIcon(stop_icon);
          new AnimateRadar().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "12", prod);
        }
        return true;
      case R.id.action_a18:
        setTitle(prod);
        if (prod.equals("2k")) {
          new AnimateRadarMosaic().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "18", prod);

        } else {
          anim.setIcon(stop_icon);
          new AnimateRadar().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "18", prod);
        }
        return true;
      case R.id.action_a6:
        setTitle(prod);
        if (prod.equals("2k")) {
          new AnimateRadarMosaic().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "6", prod);

        } else {
          anim.setIcon(stop_icon);
          new AnimateRadar().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "6", prod);
        }
        return true;
      case R.id.action_a36:
        setTitle(prod);
        if (prod.equals("2k")) {
          new AnimateRadarMosaic().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "36", prod);

        } else {
          anim.setIcon(stop_icon);
          new AnimateRadar().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "36", prod);
        }
        return true;
      case R.id.action_a3:
        setTitle(prod);
        if (prod.equals("2k")) {
          new AnimateRadarMosaic().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "3", prod);

        } else {
          anim.setIcon(stop_icon);
          new AnimateRadar().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "3", prod);
        }
        return true;
      case R.id.action_zoomout:
        setTitle(state + " Radar");
        if (zoom_level_radar == 0) {
          img_url =
              "http://climate.cod.edu/data/satellite/1km/" + onek + "/current/" + onek + ".rad.gif";
          zoom_level_radar++;
        } else if (zoom_level_radar == 1) {
          img_url =
              "http://climate.cod.edu/data/satellite/2km/"
                  + state
                  + "/current/"
                  + state
                  + ".rad.gif";
          zoom_level_radar++;
        } else if (zoom_level_radar == 2) {
          img_url =
              "http://climate.cod.edu/data/satellite/regional/"
                  + sector
                  + "/current/"
                  + sector
                  + ".rad.gif";
          zoom_level_radar++;
        } else if (zoom_level_radar == 3) {
          img_url = "http://climate.cod.edu/data/satellite/regional/usa/current/usa.rad.gif";
          zoom_level_radar = 0;
        }
        prod = "2k";
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_vis:
        setTitle(state + " Vis");
        tilt_option = false;
        if (state.equals("HI") || state.equals("AK")) {
          zoom_level_vis = 3;
        }

        if (zoom_level_vis == 1) {
          img_url =
              "http://climate.cod.edu/data/satellite/1km/" + onek + "/current/" + onek + ".vis.gif";
          zoom_level_vis++;
        } else if (zoom_level_vis == 2) {
          img_url =
              "http://climate.cod.edu/data/satellite/2km/"
                  + state
                  + "/current/"
                  + state
                  + ".vis.gif";
          zoom_level_vis++;
        } else if (zoom_level_vis == 3) {
          img_url =
              "http://climate.cod.edu/data/satellite/regional/"
                  + sector
                  + "/current/"
                  + sector
                  + ".vis.gif";
          zoom_level_vis++;
        } else if (zoom_level_vis == 4) {
          img_url = "http://climate.cod.edu/data/satellite/regional/usa/current/usa.vis.gif";
          zoom_level_vis = 1;
        }
        prod = "2k";
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_ir:
        setTitle(state + " IR");
        tilt_option = false;
        if (state.equals("HI") || state.equals("AK")) {
          zoom_level_ir = 2;
        }
        if (zoom_level_ir == 1) {
          img_url =
              "http://climate.cod.edu/data/satellite/2km/"
                  + state
                  + "/current/"
                  + state
                  + ".ir.gif";
          zoom_level_ir++;
        } else if (zoom_level_ir == 2) {
          img_url =
              "http://climate.cod.edu/data/satellite/regional/"
                  + sector
                  + "/current/"
                  + sector
                  + ".ir.gif";
          zoom_level_ir++;
        } else if (zoom_level_ir == 3) {
          img_url = "http://climate.cod.edu/data/satellite/regional/usa/current/usa.ir.gif";
          zoom_level_ir = 1;
        }
        prod = "2k";
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_wv:
        setTitle(state + " WV");
        tilt_option = false;
        if (state.equals("HI") || state.equals("AK")) {
          zoom_level_wv = 2;
        }
        if (zoom_level_wv == 1) {
          img_url =
              "http://climate.cod.edu/data/satellite/2km/"
                  + state
                  + "/current/"
                  + state
                  + ".wv.gif";
          zoom_level_wv++;
        } else if (zoom_level_wv == 2) {
          img_url =
              "http://climate.cod.edu/data/satellite/regional/"
                  + sector
                  + "/current/"
                  + sector
                  + ".wv.gif";
          zoom_level_wv++;
        } else if (zoom_level_wv == 3) {
          img_url = "http://climate.cod.edu/data/satellite/regional/usa/current/usa.wv.gif";
          zoom_level_wv = 1;
        }
        prod = "2k";
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_NVW:
        prod = "2k";
        img_url = "NVW";
        setTitle("NVW");
        img.resetZoom();
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_fav:
        ToggleFavorite();
        return true;

      case R.id.action_CMH:
        rid1 = "CMH";
        prod = "TZL";
        setTitle(prod);
        RIDMapSwitch(rid1);
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_CVG:
        rid1 = "CVG";
        prod = "TZL";
        setTitle(prod);
        RIDMapSwitch(rid1);
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_DAL:
        rid1 = "DAL";
        prod = "TZL";
        setTitle(prod);
        RIDMapSwitch(rid1);
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_DAY:
        rid1 = "DAY";
        prod = "TZL";
        setTitle(prod);
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_EWR:
        rid1 = "EWR";
        prod = "TZL";
        RIDMapSwitch(rid1);
        setTitle(prod);
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_FLL:
        rid1 = "FLL";
        prod = "TZL";
        RIDMapSwitch(rid1);
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_IAD:
        rid1 = "IAD";
        prod = "TZL";
        RIDMapSwitch(rid1);
        setTitle(prod);
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;

      case R.id.action_IAH:
        rid1 = "IAH";
        prod = "TZL";
        RIDMapSwitch(rid1);
        setTitle(prod);
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_MDW:
        rid1 = "MDW";
        prod = "TZL";
        RIDMapSwitch(rid1);
        setTitle(prod);
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;
      case R.id.action_PBI:
        rid1 = "PBI";
        prod = "TZL";
        setTitle(prod);
        new GetContent().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        return true;

      case R.id.action_ridmap:
        LayoutParams params_iv = mImageMap.getLayoutParams();
        params_iv.height =
            MyApplication.dm.heightPixels
                - toolbar.getHeight()
                - toolbar_bottom.getHeight()
                - getStatusBarHeight();
        params_iv.width = MyApplication.dm.widthPixels;
        mImageMap.setLayoutParams(params_iv);

        if (!map_shown) {
          map_shown = true;
          glview.setVisibility(View.GONE);
          img.setVisibility(View.GONE);
          mImageMap.setVisibility(View.VISIBLE);
          ogl_in_view = false;
          mImageMap.addOnImageMapClickedHandler(
              new ImageMap.OnImageMapClickedHandler() {
                @Override
                public void onImageMapClicked(int id, ImageMap im2) {

                  RIDMapSwitch(UtilityImageMap.MaptoRid(id));
                }

                @Override
                public void onBubbleClicked(int id) {}
              });

        } else {
          map_shown = false;
          mImageMap.setVisibility(View.GONE);
          img.setVisibility(View.GONE);
          glview.setVisibility(View.VISIBLE);
          ogl_in_view = true;
        }

        return true;

      default:
        return super.onOptionsItemSelected(item);
    }
  }
예제 #3
0
  public static Bitmap GetCODMosaic(
      Context context,
      String img_url,
      String image_type,
      String k,
      List<String> meso_img,
      List<String> overlay_img) {

    Bitmap bitmap = null;
    Bitmap bitmap1 = null;
    Bitmap bitmap2 = null;
    String map_url;
    String overlay_url;
    String location = "";
    Bitmap[] bitmap_arr = new Bitmap[meso_img.size() + overlay_img.size()];

    if (meso_img.size() == 0 && overlay_img.size() == 0) {
      bitmap = UtilityDownload.getBitmapFromURL(img_url);
      if (!MyApplication.black_bg && image_type.equals("rad")) {
        bitmap = UtilityImg.BM_BlackToWhite(bitmap);
      }
    } else {
      try {
        Pattern p2 = Pattern.compile("/current/(.*?)\\.");
        Matcher m2 = p2.matcher(img_url);
        while (m2.find()) {
          location = m2.group(1);
        }
      } catch (Exception e) {
      }

      map_url = img_url.replaceAll("/current/.*?gif", "/maps/");
      overlay_url = img_url.replaceAll("/current/.*?gif", "/overlays/");

      bitmap1 = UtilityDownload.getBitmapFromURL(img_url.replaceAll(".gif", ".nomap.gif"));
      if (!MyApplication.black_bg && image_type.equals("rad")) {
        bitmap1 = UtilityImg.BM_BlackToWhite(bitmap1);
      }
      bitmap2 = UtilityDownload.getBitmapFromURL(map_url + location + "_map.gif");
      try {
        int i = 0;
        for (String s : overlay_img) {

          bitmap_arr[i] = UtilityDownload.getBitmapFromURL(map_url + location + "_" + s + ".gif");
          bitmap_arr[i] = UtilityImg.eraseBG(bitmap_arr[i], -16777216); // use for black background
          i++;
        }

        for (String s : meso_img) {
          if (s.equals("rad")) {
            bitmap_arr[i] =
                UtilityDownload.getBitmapFromURL(
                    "http://climate.cod.edu/data/satellite/"
                        + k
                        + "/"
                        + location
                        + "/current/"
                        + location
                        + ".rad.nomap.gif");
          } else {
            bitmap_arr[i] =
                UtilityDownload.getBitmapFromURL(overlay_url + location + "-" + s + ".gif");
          }
          bitmap_arr[i] = UtilityImg.eraseBG(bitmap_arr[i], -16777216); // use for black background
          i++;
        }

      } catch (Exception e) {
      }

      bitmap2 = UtilityImg.eraseBG(bitmap2, -16777216); // use for black background
    }

    if (meso_img.size() == 0 && overlay_img.size() == 0) {
    } else {

      Drawable[] layers = new Drawable[2 + meso_img.size() + overlay_img.size()];
      layers[0] = new BitmapDrawable(context.getResources(), bitmap1); // radar
      Integer i = 0;
      for (@SuppressWarnings("unused") String s : overlay_img) {
        layers[1 + i] = new BitmapDrawable(context.getResources(), bitmap_arr[i]); // warnings
        i++;
      }
      for (@SuppressWarnings("unused") String s : meso_img) {
        layers[1 + i] = new BitmapDrawable(context.getResources(), bitmap_arr[i]); // warnings
        i++;
      }
      layers[2 + meso_img.size() - 1 + overlay_img.size()] =
          new BitmapDrawable(context.getResources(), bitmap2); // state
      LayerDrawable layerDrawable = new LayerDrawable(layers);
      bitmap = UtilityImg.LayerDrawableToBitmap(layerDrawable);
    }

    return bitmap;
  }