@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); } }
@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); } }
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; }