public static LayerDrawable GetLayeredImg( Context c, String rid1, String product, String url, boolean spotters) { Bitmap bitmap; String cod_url; final String scale_type = "cod"; if (url.equals("")) { cod_url = GetCOD(rid1, product); bitmap = UtilityDownload.getBitmapFromURL(cod_url); } else { bitmap = UtilityDownload.getBitmapFromURL(url); } if (!MyApplication.black_bg) { bitmap = UtilityImg.BM_BlackToWhite(bitmap); } if ((!product.equals("OHA")) && (!product.equals("NVW"))) { android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig(); if (bitmapConfig == null) { bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888; } bitmap = bitmap.copy(bitmapConfig, true); UtilityCanvasMain.AddCanvasItems(bitmap, scale_type, rid1, 0, spotters, false, 22); } return UtilityImg.BitmapToLayerDrawable(c, bitmap); }
@Override protected String doInBackground(String... params) { // conus is 3400x1600 39.725 97.00 if (!nws_radar_mosaic_sector_current.equals("alaska")) ld = UtilityUSImgNWSMosaic.NWSMosaic( getBaseContext(), nws_radar_mosaic_sector_current, spotters); else ld = UtilityImg.BitmapToLayerDrawable( getBaseContext(), UtilityDownload.getBitmapFromURL( "http://radar.weather.gov/ridge/Conus/RadarImg/alaska.gif")); return "Executed"; }
@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); } }
@Override public void onCreate(Bundle savedInstanceState) { setTheme(MyApplication.theme_int); super.onCreate(savedInstanceState); setContentView(R.layout.activity_uswxoglv2); loc_x_current = MyApplication.preferences.getString("LOC" + MyApplication.current_loc_fragment + "_X", ""); loc_y_current = MyApplication.preferences.getString("LOC" + MyApplication.current_loc_fragment + "_Y", ""); turl = getIntent().getStringArrayExtra(RID); // for L2 archive called from storm reports if (turl.length > 5) { url_str = turl[3]; loc_x_current = turl[4]; loc_y_current = turl[5]; archive_mode = true; } toolbar = (Toolbar) findViewById(R.id.toolbar_top); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); // toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_arrow_back_white_36px)); // toolbar.setNavigationIcon(android.R.drawable.); toolbar_bottom = (Toolbar) findViewById(R.id.toolbar_bottom); if (MyApplication.icons_even_spaced) UtilityToolbar.setupEvenlyDistributedToolbar(this, toolbar_bottom, R.menu.uswxoglradar); else toolbar_bottom.inflateMenu(R.menu.uswxoglradar); toolbar_bottom.setOnMenuItemClickListener(this); if (archive_mode) toolbar_bottom.setVisibility(View.GONE); Menu menu = toolbar_bottom.getMenu(); star_icon = R.drawable.star; star_outline_icon = R.drawable.star_outline; map_icon = R.drawable.map; star = menu.findItem(R.id.action_fav); map = menu.findItem(R.id.action_ridmap); map.setIcon(map_icon); tv0 = menu.findItem(R.id.action_tv0); tdwr = menu.findItem(R.id.action_tdwr); anim = menu.findItem(R.id.action_a6); tilt_menu = menu.findItem(R.id.action_tilt); // if ( ! MyApplication.loaded ) // MyApplication.Init(this); mImageMap = (ImageMap) findViewById(R.id.map); mImageMap.setVisibility(View.GONE); delay = UtilityImg.GetAnimInterval(); img = (TouchImageView2) findViewById(R.id.iv); img.setMaxZoom(max_zoom); prod = "N0Q"; glview = (WXGLSurfaceView) findViewById(R.id.glsurfaceview); InitGLVIEW(); ogl_in_view = true; rid1 = turl[0]; state = turl[1]; if (turl.length > 2) { prod = turl[2]; if (prod.equals("N0R")) { prod = "N0Q"; } } if (MyApplication.wxogl_remember_location && !archive_mode) { OGLR.setZoom(MyApplication.wxogl_zoom); glview.mScaleFactor = (MyApplication.wxogl_zoom); if (!MyApplication.wxogl_rid.equals("")) rid1 = MyApplication.wxogl_rid; prod = MyApplication.wxogl_prod; OGLR.mPositionX = MyApplication.wxogl_x; OGLR.mPositionY = MyApplication.wxogl_y; } setTitle(prod); rid_arr_loc = UtilityFavorites.SetupFavMenu(MyApplication.rid_fav, rid1, pref_token_location); spinner1 = (Spinner) findViewById(R.id.spinner1); dataAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, rid_arr_loc); dataAdapter.setDropDownViewResource(MyApplication.spinner_layout); spinner1.setAdapter(dataAdapter); spinner1.setOnItemSelectedListener(this); if (MyApplication.wxogl_radar_autorefresh) { // 180000 is 3 min mInterval = 60000 * MyApplication.preferences.getInt("RADAR_REFRESH_INTERVAL", 3); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); mHandler = new Handler(); startRepeatingTask(); } }
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; }