From 1ccec917a0472e315bbbae7bbf87ce743376c246 Mon Sep 17 00:00:00 2001 From: ELY M <> Date: Fri, 31 Jan 2025 22:10:37 -0600 Subject: [PATCH] 55940-elys --- app/src/main/AndroidManifest.xml | 7 +- .../java/joshuatee/wx/common/GlobalArrays.kt | 211 ------------------ .../joshuatee/wx/common/GlobalVariables.kt | 1 - .../joshuatee/wx/fragments/MiscFragment.kt | 25 +-- .../java/joshuatee/wx/misc/WebViewTwitter.kt | 146 ------------ .../main/java/joshuatee/wx/objects/Route.kt | 13 +- .../joshuatee/wx/settings/UtilityNavDrawer.kt | 5 - app/src/main/java/joshuatee/wx/ui/Drawer.kt | 5 +- .../joshuatee/wx/util/UtilityNetworkIO.kt | 13 +- .../main/res/menu/activity_main_drawer.xml | 8 - app/src/main/res/values/strings.xml | 2 - doc/ChangeLog.md | 5 + 12 files changed, 30 insertions(+), 411 deletions(-) delete mode 100644 app/src/main/java/joshuatee/wx/misc/WebViewTwitter.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f91e4fcd..7d6bb556 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -22,8 +22,8 @@ + android:versionCode="55940" + android:versionName="55940-elys"> @@ -169,9 +169,6 @@ - diff --git a/app/src/main/java/joshuatee/wx/common/GlobalArrays.kt b/app/src/main/java/joshuatee/wx/common/GlobalArrays.kt index c0ce8d88..bb8ccd86 100644 --- a/app/src/main/java/joshuatee/wx/common/GlobalArrays.kt +++ b/app/src/main/java/joshuatee/wx/common/GlobalArrays.kt @@ -81,217 +81,6 @@ object GlobalArrays { "AURORA: Aurora Forecast" ) -// val radars = listOf( -// "ABC: AK, Bethel", -// "APD: AK, Fairbanks/Pedro Dome", -// "AHG: AK, Kenai", -// "AKC: AK, King Salmon", -// "AIH: AK, Middleton Island", -// "AEC: AK, Nome", -// "ACG: AK, Sitka/Biorka Island", -// "BMX: AL, Birmingham", -// "EOX: AL, Fort Rucker", -// "HTX: AL, Huntsville", -// "MXX: AL, Maxwell AFB", -// "MOB: AL, Mobile", -// "SRX: AR, Fort Smith", -// "LZK: AR, Little Rock", -// "FSX: AZ, Flagstaff", -// "IWA: AZ, Phoenix", -// "EMX: AZ, Tucson", -// "YUX: AZ, Yuma", -// "BBX: CA, Beale AFB", -// "EYX: CA, Edwards AFB", -// "BHX: CA, Eureka", -// "VTX: CA, Los Angeles", -// "DAX: CA, Sacramento", -// "NKX: CA, San Diego", -// "MUX: CA, San Francisco", -// "HNX: CA, San Joaquin Valley", -// "SOX: CA, Santa Ana Mountains", -// "VBX: CA, Vandenberg AFB", -// "FTG: CO, Denver", -// "GJX: CO, Grand Junction", -// "PUX: CO, Pueblo", -// "DOX: DE, Dover AFB", -// "EVX: FL, Eglin AFB", -// "JAX: FL, Jacksonville", -// "BYX: FL, Key West", -// "MLB: FL, Melbourne", -// "AMX: FL, Miami", -// "TLH: FL, Tallahassee", -// "TBW: FL, Tampa", -// "FFC: GA, Atlanta", -// "VAX: GA, Moody AFB", -// "JGX: GA, Robins AFB", -// "GUA: GU, Andersen AFB", -// "HKI: HI, Kauai", -// "HKM: HI, Kohala", -// "HMO: HI, Molokai", -// "HWA: HI, South Shore", -// "DVN: IA, Davenport", -// "DMX: IA, Des Moines", -// "CBX: ID, Boise", -// "SFX: ID, Pocatello/Idaho Falls", -// "LOT: IL, Chicago", -// "ILX: IL, Lincoln", -// "VWX: IN, Evansville", -// "IND: IN, Indianapolis", -// "IWX: IN, North Webster", -// "DDC: KS, Dodge City", -// "GLD: KS, Goodland", -// "TWX: KS, Topeka", -// "ICT: KS, Wichita", -// "HPX: KY, Fort Campbell", -// "JKL: KY, Jackson", -// "LVX: KY, Louisville", -// "PAH: KY, Paducah", -// "POE: LA, Fort Polk", -// "HDC: LA, Hammond", // to Begin NEXRAD Level III Product Dissemination on or around March 31, 2024 Service Change Notice 24-11 -// "LCH: LA, Lake Charles", -// "LIX: LA, New Orleans", // GONE as of late 2023 -// "SHV: LA, Shreveport", -// "BOX: MA, Boston", -// "CBW: ME, Loring AFB", -// "GYX: ME, Portland", -// "DTX: MI, Detroit/Pontiac", -// "APX: MI, Gaylord", -// "GRR: MI, Grand Rapids", -// "MQT: MI, Marquette", -// "DLH: MN, Duluth", -// "MPX: MN, Minneapolis/St. Paul", -// "EAX: MO, Kansas City", -// "SGF: MO, Springfield", -// "LSX: MO, St. Louis", -// "DGX: MS, Brandon/Jackson", -// "GWX: MS, Columbus AFB", -// "BLX: MT, Billings", -// "GGW: MT, Glasgow", -// "TFX: MT, Great Falls", -// "MSX: MT, Missoula", -// "KSG: NA, Camp Humphreys, South Korea", -// "ODN: NA, Kadena Air Base, Japan", -// "KJK: NA, Kunsan Air Base, South Korea", -// "PLA: NA, Lajes Field, Azores", -// "MHX: NC, Morehead City", -// "RAX: NC, Raleigh/Durham", -// "LTX: NC, Wilmington", -// "BIS: ND, Bismarck", -// "MVX: ND, Grand Forks (Mayville)", -// "MBX: ND, Minot AFB", -// "UEX: NE, Grand Island/Hastings", -// "LNX: NE, North Platte", -// "OAX: NE, Omaha", -// "ABX: NM, Albuquerque", -// "FDX: NM, Cannon AFB", -// "HDX: NM, Holloman AFB", -// "LRX: NV, Elko", -// "ESX: NV, Las Vegas", -// "RGX: NV, Reno", -// "ENX: NY, Albany", -// "BGM: NY, Binghamton", -// "BUF: NY, Buffalo", -// "TYX: NY, Montague", -// "OKX: NY, New York City", -// "CLE: OH, Cleveland", -// "ILN: OH, Wilmington", -// "FDR: OK, Frederick", -// "TLX: OK, Oklahoma City", -// "INX: OK, Tulsa", -// "VNX: OK, Vance AFB", -// "MAX: OR, Medford", -// "PDT: OR, Pendleton", -// "RTX: OR, Portland", -// "DIX: PA, Philadelphia", -// "PBZ: PA, Pittsburgh", -// "CCX: PA, State College", -// "JUA: PR, San Juan", -// "CLX: SC, Charleston", -// "CAE: SC, Columbia", -// "GSP: SC, Greer", -// "ABR: SD, Aberdeen", -// "UDX: SD, Rapid City", -// "FSD: SD, Sioux Falls", -// "MRX: TN, Knoxville/Tri Cities", -// "NQA: TN, Memphis", -// "OHX: TN, Nashville", -// "AMA: TX, Amarillo", -// "EWX: TX, Austin/San Antonio", -// "BRO: TX, Brownsville", -// "CRP: TX, Corpus Christi", -// "FWS: TX, Dallas/Ft. Worth", -// "DYX: TX, Dyess AFB", -// "EPZ: TX, El Paso", -// "GRK: TX, Fort Hood", -// "HGX: TX, Houston/Galveston", -// "DFX: TX, Laughlin AFB", -// "LBB: TX, Lubbock", -// "MAF: TX, Midland/Odessa", -// "SJT: TX, San Angelo", -// "ICX: UT, Cedar City", -// "MTX: UT, Salt Lake City", -// "AKQ: VA, Norfolk/Richmond", -// "FCX: VA, Roanoke", -// "LWX: VA, Sterling", -// "CXX: VT, Burlington", -// "LGX: WA, Langley Hill", -// "ATX: WA, Seattle/Tacoma", -// "OTX: WA, Spokane", -// "GRB: WI, Green Bay", -// "ARX: WI, La Crosse", -// "MKX: WI, Milwaukee", -// "RLX: WV, Charleston", -// "CYS: WY, Cheyenne", -// "RIW: WY, Riverton" -// ) - -// val tdwrRadars = listOf( -// "TPHX: AZ, Phoenix", -// "TDEN: CO, Denver", -// "TFLL: FL, Fort Lauderdale", -// "TMIA: FL, Miami", -// "TMCO: FL, Orlando International", -// "TTPA: FL, Tampa Bay", -// "TPBI: FL, West Palm Beach", -// "TATL: GA, Atlanta", -// "TMDW: IL, Chicago Midway", -// "TORD: IL, Chicago O'Hare", -// "TIDS: IN, Indianapolis", -// "TICH: KS, Wichita", -// "TSDF: KY, Louisville", -// "TMSY: LA, New Orleans", -// "TBOS: MA, Boston", -// "TBWI: MD, Baltimore/Wash", -// "TDCA: MD, Washington National", -// "TDTW: MI, Detroit", -// "TMSP: MN, Minneapolis", -// "TMCI: MO, Kansas City", -// "TSTL: MO, St Louis", -// "TCLT: NC, Charlotte", -// "TRDU: NC, Raleigh Durham", -// "TEWR: NJ, Newark", -// "TLAS: NV, Las Vegas", -// "TJFK: NY, New York City", -// "TLVE: OH, Cleveland", -// "TCMH: OH, Columbus", -// "TCVG: OH, Covington", -// "TDAY: OH, Dayton", -// "TOKC: OK, Oklahoma City", -// "TTUL: OK, Tulsa", -// "TPHL: PA, Philadelphia", -// "TPIT: PA, Pittsburgh", -// "TSJU: PR, San Juan", -// "TMEM: TN, Memphis", -// "TBNA: TN, Nashville", -// "TDFW: TX, Dallas/Ft. Worth", -// "TDAL: TX, Dallas Love Field", -// "THOU: TX, Houston Hobby", -// "TIAH: TX, Houston International", -// "TSLC: UT, Salt Lake City", -// "TIAD: VA, Dulles", -// "TMKE: WI, Milwaukee" -// ) - val states = listOf( "AL: Alabama", "AK: Alaska", diff --git a/app/src/main/java/joshuatee/wx/common/GlobalVariables.kt b/app/src/main/java/joshuatee/wx/common/GlobalVariables.kt index 3eaddb28..9f8c2197 100644 --- a/app/src/main/java/joshuatee/wx/common/GlobalVariables.kt +++ b/app/src/main/java/joshuatee/wx/common/GlobalVariables.kt @@ -40,7 +40,6 @@ object GlobalVariables { const val NWS_AWC_WEBSITE_PREFIX = "https://www.aviationweather.gov" const val NWS_GRAPHICAL_WEBSITE_PREFIX = "https://graphical.weather.gov" const val NWS_CPC_NCEP_WEBSITE_PREFIX = "https://www.cpc.ncep.noaa.gov" - // const val NWS_GOES_WEBSITE_PREFIX = "https://www.goes.noaa.gov" const val NWS_OPC_WEBSITE_PREFIX = "https://ocean.weather.gov" const val NWS_NHC_WEBSITE_PREFIX = "https://www.nhc.noaa.gov" const val NWS_MAG_NCEP_WEBSITE_PREFIX = "https://mag.ncep.noaa.gov" diff --git a/app/src/main/java/joshuatee/wx/fragments/MiscFragment.kt b/app/src/main/java/joshuatee/wx/fragments/MiscFragment.kt index 4735928f..06a2e14e 100644 --- a/app/src/main/java/joshuatee/wx/fragments/MiscFragment.kt +++ b/app/src/main/java/joshuatee/wx/fragments/MiscFragment.kt @@ -33,8 +33,6 @@ import joshuatee.wx.settings.UIPreferences import joshuatee.wx.misc.ImageCollectionActivity import joshuatee.wx.misc.NwsObsSitesActivity import joshuatee.wx.misc.USAlertsActivity -import joshuatee.wx.misc.WebView -import joshuatee.wx.misc.WebViewTwitter import joshuatee.wx.models.ModelsGenericActivity import joshuatee.wx.nhc.NhcActivity import joshuatee.wx.radar.RadarMosaicActivity @@ -130,19 +128,6 @@ class MiscFragment : Fragment() { arrayOf(), "wpcimages", "National Images" ) - //elys mod - keeping twitter - hm["twitter_state"] = TileObject( - R.drawable.twstate, - WebViewTwitter::class.java, - "", - arrayOf(), - "twitter_state", "Twitter state" - ) - hm["twitter_tornado"] = TileObject( - R.drawable.twtornado, WebView::class.java, WebView.URL, - arrayOf("https://mobile.twitter.com/hashtag/tornado", "#tornado"), - "twitter_tornado", "Twitter tornado" - ) hm["opc"] = TileObject( R.drawable.opc, ImageCollectionActivity::class.java, @@ -226,7 +211,7 @@ class MiscFragment : Fragment() { "aurora", "Aurora Forecast" ) //end - val tileOrder = "model_ncep:model_hrrr:model_ncar_ensemble:uswarn:wpctext:nhc:nwsmosaic:goes:lightning:wpcimages:twitter_state:twitter_tornado:opc:goesfulldisk:nwsobs:wxogl:wxoglquad:wpc_rainfall:" + val tileOrder = "model_ncep:model_hrrr:model_ncar_ensemble:uswarn:wpctext:nhc:nwsmosaic:goes:lightning:wpcimages:opc:goesfulldisk:nwsobs:wxogl:wxoglquad:wpc_rainfall:" var miscPref = Utility.readPref("FRAGMENT_MISC_ORDER", tileOrder) if (!miscPref.contains("wxoglquad")) { miscPref += "wxoglquad:" @@ -266,7 +251,11 @@ class MiscFragment : Fragment() { //end val tiles = miscPref.split(":").dropLastWhile { it.isEmpty() } return tiles - .filterNot { it.contains("model_cod") || it.contains("model_wrf") || it.contains("model_ncar_ensemble") } - .map { hm[it]!! }.toMutableList() + .filterNot { + it.contains("model_cod") || it.contains("model_wrf") || it.contains("model_ncar_ensemble") || it.contains( + "twitter" + ) + } + .map { hm[it]!! }.toMutableList() } } diff --git a/app/src/main/java/joshuatee/wx/misc/WebViewTwitter.kt b/app/src/main/java/joshuatee/wx/misc/WebViewTwitter.kt deleted file mode 100644 index 633f32ac..00000000 --- a/app/src/main/java/joshuatee/wx/misc/WebViewTwitter.kt +++ /dev/null @@ -1,146 +0,0 @@ -/* - - Copyright 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 joshua.tee@gmail.com - - This file is part of wX. - - wX is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - wX is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with wX. If not, see . - - */ - -package joshuatee.wx.misc - -import java.util.Locale -import android.annotation.SuppressLint -import android.content.Intent -import android.net.Uri -import android.os.Bundle -import android.view.Menu -import android.view.MenuItem -import android.webkit.WebView -import android.webkit.WebViewClient -//import androidx.activity.addCallback -import joshuatee.wx.R -import joshuatee.wx.common.GlobalArrays -import joshuatee.wx.settings.UIPreferences -import joshuatee.wx.objects.Route -import joshuatee.wx.settings.Location -import joshuatee.wx.ui.BaseActivity -import joshuatee.wx.ui.ObjectDialogue -import joshuatee.wx.ui.UtilityUI -import joshuatee.wx.util.Utility - -class WebViewTwitter : BaseActivity() { - - // - // WebView for twitter weather tags - // - - private val canadianSectors = listOf( - "bcstorm: British Columbia", - "abstorm: Alberta", - "skstorm: Saskatchewan", - "mbstorm: Manitoba", - "onstorm: Ontario", - "meteoqc: Quebec", - "nbstorm: New Brunswick", - "pestorm: Prince Edward Island", - "nsstorm: Nova Scotia", - "ntstorm: North West Territories", - "nlwx: Newfoundland" - ) - private var sectorList = listOf() - private var sector = "" - val prefToken = "STATE_CODE" - private lateinit var webView: WebView - - override fun onCreateOptionsMenu(menu: Menu): Boolean { - menuInflater.inflate(R.menu.webscreen_ab_state, menu) - return true - } - - override fun onPrepareOptionsMenu(menu: Menu): Boolean { - menu.findItem(R.id.action_sector).title = sector - return super.onPrepareOptionsMenu(menu) - } - - @SuppressLint("SetJavaScriptEnabled") - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState, R.layout.activity_webview_toolbar_state, null, false) - webView = findViewById(R.id.webView) - title = "Twitter" - sectorList = GlobalArrays.states + canadianSectors - sector = Utility.readPref(this, prefToken, "STATE NOT USED") - val webSettings = webView.settings - with (webSettings) { - javaScriptEnabled = true - textZoom = if (UtilityUI.isTablet()) { - (120 * (UIPreferences.normalTextSize.toDouble() / UIPreferences.normalTextSizeDefault.toDouble())).toInt() - } else { - (100 * (UIPreferences.normalTextSize.toDouble() / UIPreferences.normalTextSizeDefault.toDouble())).toInt() - } - } - webView.webViewClient = WebViewClient() - getContent() - -// onBackPressedDispatcher.addCallback(this) { -// if (webView.canGoBack()) { -// webView.goBack() -// } -// } - } - - fun getContent(index: Int) { - invalidateOptionsMenu() - sector = sectorList[index].split(":")[0] - getContent() - } - - fun getContent() { - invalidateOptionsMenu() - Utility.writePref(this, prefToken, sector) - var url = "https://mobile.twitter.com/hashtag/" + sector.lowercase(Locale.US) - if (sector.length == 2) { - url += "wx" - } - webView.loadUrl(url) - } - - override fun onOptionsItemSelected(item: MenuItem): Boolean { - when (item.itemId) { - R.id.action_sector -> ObjectDialogue.generic(this, sectorList, {}) { getContent(it) } - R.id.action_browser -> { - var tail = "wx" - var stateTmp = sector.lowercase(Locale.US) - canadianSectors.forEach { - if (it.contains("$stateTmp:")) { - tail = "" - stateTmp = stateTmp.replace("wx", "") - } - } - Route(this, Intent.ACTION_VIEW, Uri.parse("http://twitter.com/hashtag/$stateTmp$tail")) - } - else -> return super.onOptionsItemSelected(item) - } - return true - } - - override fun onBackPressed() { - if (webView.canGoBack()) { - webView.goBack() - } else { - super.onBackPressed() - } - } -} diff --git a/app/src/main/java/joshuatee/wx/objects/Route.kt b/app/src/main/java/joshuatee/wx/objects/Route.kt index 0aaa060e..8c4fec1e 100644 --- a/app/src/main/java/joshuatee/wx/objects/Route.kt +++ b/app/src/main/java/joshuatee/wx/objects/Route.kt @@ -43,7 +43,7 @@ import joshuatee.wx.settings.SettingsColorPickerActivity import joshuatee.wx.settings.SettingsLocationGenericActivity import joshuatee.wx.settings.SettingsMainActivity import joshuatee.wx.settings.SettingsRadarActivity -import joshuatee.wx.settings.UtilityLocation +import joshuatee.wx.space.UtilityAurora import joshuatee.wx.spc.LsrByWfoActivity import joshuatee.wx.spc.SpcCompmapActivity import joshuatee.wx.spc.SpcFireOutlookActivity @@ -582,13 +582,6 @@ class Route() { arrayOf(product, label, "sound") ) } - //elys mod - keeping twitter - fun webViewTwitterStates(context: Context) { - Route(context, WebViewTwitter::class.java) - } - fun webViewTwitterTornado(context: Context) { - webView(context, "https://mobile.twitter.com/hashtag/tornado", "#tornado") - } //elys mod - for radar longpress menu fun vis00(context: Context) { Route(context, GoesActivity::class.java, GoesActivity.RID, arrayOf("CONUS", "00")) @@ -596,6 +589,10 @@ class Route() { //elys mod - for longpress in radar fun radarMosaicConus(context: Context) { Route(context, RadarMosaicActivity::class.java, RadarMosaicActivity.URL, arrayOf("CONUS")) + } + //elys mod - for Aurora Forecast + fun auroraForecast(context: Context) { + Route(context, UtilityAurora::class.java, "", arrayOf()) } } } diff --git a/app/src/main/java/joshuatee/wx/settings/UtilityNavDrawer.kt b/app/src/main/java/joshuatee/wx/settings/UtilityNavDrawer.kt index de6a6907..e2eb25d0 100644 --- a/app/src/main/java/joshuatee/wx/settings/UtilityNavDrawer.kt +++ b/app/src/main/java/joshuatee/wx/settings/UtilityNavDrawer.kt @@ -19,7 +19,6 @@ */ //modded by ELY M. -//keeping twitter //aurora stuff package joshuatee.wx.settings @@ -63,8 +62,6 @@ internal object UtilityNavDrawer { "SPC Storm Reports", "SPC Thunderstorm Outlooks", "Spotters", - "Twitter states", - "Twitter tornado", "US Alerts", "WPC GEFS", "Aurora Forecast" @@ -141,8 +138,6 @@ internal object UtilityNavDrawer { R.id.spc_storm_reports to "spcstormrpt1", R.id.spc_thunderstorm_outlooks to "spctstorm", R.id.spotters to "spotters", - R.id.twitter_states to "twitter_state", - R.id.twitter_tornado to "twitter_tornado", R.id.us_alerts to "uswarn", R.id.wpc_gefs to "wpcgefs", R.id.aurora to "aurora" diff --git a/app/src/main/java/joshuatee/wx/ui/Drawer.kt b/app/src/main/java/joshuatee/wx/ui/Drawer.kt index f349f670..40fb28b7 100644 --- a/app/src/main/java/joshuatee/wx/ui/Drawer.kt +++ b/app/src/main/java/joshuatee/wx/ui/Drawer.kt @@ -19,7 +19,6 @@ */ //modded by ELY M. -//keeping twitter package joshuatee.wx.ui @@ -196,10 +195,10 @@ class Drawer( R.id.spc_storm_reports -> Route.spcStormReports(activity) R.id.spc_thunderstorm_outlooks -> Route.spcTstorm(activity) R.id.spotters -> Route.spotters(activity) - R.id.twitter_states -> Route.webViewTwitterStates(activity) - R.id.twitter_tornado -> Route.webViewTwitterTornado(activity) R.id.us_alerts -> Route.alerts(activity) R.id.wpc_gefs -> Route.wpcGefs(activity) + R.id.aurora -> Route.auroraForecast(activity) + } closeDrawer() true diff --git a/app/src/main/java/joshuatee/wx/util/UtilityNetworkIO.kt b/app/src/main/java/joshuatee/wx/util/UtilityNetworkIO.kt index d86c9242..e4b4c7c4 100644 --- a/app/src/main/java/joshuatee/wx/util/UtilityNetworkIO.kt +++ b/app/src/main/java/joshuatee/wx/util/UtilityNetworkIO.kt @@ -30,6 +30,7 @@ import android.graphics.Bitmap import android.graphics.BitmapFactory import joshuatee.wx.MyApplication import joshuatee.wx.common.GlobalVariables +import okhttp3.HttpUrl.Companion.toHttpUrlOrNull import okhttp3.Request object UtilityNetworkIO { @@ -77,7 +78,8 @@ object UtilityNetworkIO { // used for CapAlert (XML) fun getStringFromUrlXml(url: String): String { UtilityLog.download("getStringFromUrlXml: $url") - val request = Request.Builder().url(url).header("User-Agent", USER_AGENT) + val httpUrl = url.toHttpUrlOrNull() ?: return "" + val request = Request.Builder().url(httpUrl).header("User-Agent", USER_AGENT) .addHeader("Accept", "application/atom+xml").build() return requestToString(request) } @@ -91,7 +93,8 @@ object UtilityNetworkIO { private fun getStringFromUrlNew(url: String, withNewLine: Boolean): String { UtilityLog.download("getStringFromUrlNew $withNewLine: $url") - val request = Request.Builder().url(url).header("User-Agent", USER_AGENT).build() + val httpUrl = url.toHttpUrlOrNull() ?: return "" + val request = Request.Builder().url(httpUrl).header("User-Agent", USER_AGENT).build() return requestToString(request, withNewLine) } @@ -99,7 +102,8 @@ object UtilityNetworkIO { // FYI - this is probably not needed and could use getStringFromUrlBaseNoAcceptHeader1 instead fun getStringFromUrlBaseNoHeader1(url: String): String { UtilityLog.download("getStringFromUrlBaseNoHeader1: $url") - val request = Request.Builder().url(url).header("User-Agent", USER_AGENT) + val httpUrl = url.toHttpUrlOrNull() ?: return "" + val request = Request.Builder().url(httpUrl).header("User-Agent", USER_AGENT) .addHeader("Accept", ACCEPT_HEADER).build() return requestToString(request) } @@ -107,7 +111,8 @@ object UtilityNetworkIO { // used by CapAlert.kt fun getStringFromUrlSep(url: String): String { UtilityLog.download("getStringFromUrlSep: $url") - val request = Request.Builder().url(url).header("User-Agent", USER_AGENT) + val httpUrl = url.toHttpUrlOrNull() ?: return "" + val request = Request.Builder().url(httpUrl).header("User-Agent", USER_AGENT) .addHeader("Accept", "application/vnd.noaa.dwml+xml;version=1").build() return requestToString(request) } diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml index 285449d0..44e9ee3b 100644 --- a/app/src/main/res/menu/activity_main_drawer.xml +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -125,14 +125,6 @@ android:id="@+id/spotters" android:icon="@drawable/spotters" android:title="@string/spotters" /> - - SPC Storm Reports SPC Thunderstorm Outlooks Spotters - Twitter states - Twitter tornado US Alerts WPC GEFS Aurora Forecast diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md index f7541dfe..6719fa24 100644 --- a/doc/ChangeLog.md +++ b/doc/ChangeLog.md @@ -2,6 +2,11 @@ # Developer ChangeLog +## 55940 2025_01_30 + +* [REF] misc cleanup +* [FIX] more error handling in network io + ## 55939 2025_01_30 * [REF] misc cleanup