Made internet checks consistent, reduced spaghetticode

This commit is contained in:
Corewala 2022-05-02 12:04:29 -04:00
parent 8c7546f095
commit 01df294462
1 changed files with 50 additions and 48 deletions

View File

@ -68,12 +68,7 @@ class GemActivity : AppCompatActivity() {
private val omniTerm = OmniTerm(object : OmniTerm.Listener { private val omniTerm = OmniTerm(object : OmniTerm.Listener {
override fun request(address: String) { override fun request(address: String) {
if(getInternetStatus()){ model.request(address)
loadingView(true)
model.request(address)
}else{
Snackbar.make(binding.root, getString(R.string.no_internet), Snackbar.LENGTH_LONG).show()
}
} }
override fun openBrowser(address: String) = openWebLink(address) override fun openBrowser(address: String) = openWebLink(address)
@ -98,24 +93,29 @@ class GemActivity : AppCompatActivity() {
startActivity(Intent.createChooser(this, null)) startActivity(Intent.createChooser(this, null))
} }
}else{ }else{
//Reset input text hint after user has been searching if(getInternetStatus()){
if(inSearch) { //Reset input text hint after user has been searching
binding.addressEdit.hint = getString(R.string.main_input_hint) if(inSearch) {
inSearch = false binding.addressEdit.hint = getString(R.string.main_input_hint)
inSearch = false
}
omniTerm.navigation(uri.toString())
}else{
Snackbar.make(binding.root, getString(R.string.no_internet), Snackbar.LENGTH_LONG).show()
} }
omniTerm.navigation(uri.toString())
} }
} }
private val inlineImage: (link: URI, adapterPosition: Int) -> Unit = { uri, position: Int -> private val inlineImage: (link: URI, adapterPosition: Int) -> Unit = { uri, position: Int ->
if(getInternetStatus()){
omniTerm.imageAddress(uri.toString()) omniTerm.imageAddress(uri.toString())
omniTerm.uri.let{ omniTerm.uri.let{
model.requestInlineImage(URI.create(it.toString())){ imageUri -> model.requestInlineImage(URI.create(it.toString())){ imageUri ->
imageUri?.let{ imageUri?.let{
runOnUiThread { runOnUiThread {
loadImage(position, imageUri) loadImage(position, imageUri)
loadingView(false) loadingView(false)
}
} }
} }
} }
@ -248,11 +248,7 @@ class GemActivity : AppCompatActivity() {
} }
R.id.overflow_menu_bookmarks -> { R.id.overflow_menu_bookmarks -> {
bookmarksDialog = BookmarksDialog(this, bookmarkDatasource) { bookmark -> bookmarksDialog = BookmarksDialog(this, bookmarkDatasource) { bookmark ->
if(getInternetStatus()){ request(bookmark.uri.toString())
model.request(bookmark.uri.toString())
}else{
Snackbar.make(binding.root, getString(R.string.no_internet), Snackbar.LENGTH_LONG).show()
}
} }
bookmarksDialog?.show() bookmarksDialog?.show()
} }
@ -268,11 +264,7 @@ class GemActivity : AppCompatActivity() {
this, this,
db.history() db.history()
) { historyAddress -> ) { historyAddress ->
if(getInternetStatus()){ request(historyAddress)
model.request(historyAddress)
}else{
Snackbar.make(binding.root, getString(R.string.no_internet), Snackbar.LENGTH_LONG).show()
}
} }
R.id.overflow_menu_about -> AboutDialog.show(this) R.id.overflow_menu_about -> AboutDialog.show(this)
R.id.overflow_menu_settings -> { R.id.overflow_menu_settings -> {
@ -288,7 +280,7 @@ class GemActivity : AppCompatActivity() {
Buran.DEFAULT_HOME_CAPSULE Buran.DEFAULT_HOME_CAPSULE
) )
omniTerm.history.clear() omniTerm.history.clear()
model.request(home!!) request(home!!)
} }
binding.pullToRefresh.setOnRefreshListener { binding.pullToRefresh.setOnRefreshListener {
@ -307,7 +299,7 @@ class GemActivity : AppCompatActivity() {
omniTerm.getCurrent().run{ omniTerm.getCurrent().run{
binding.addressEdit.setText(this) binding.addressEdit.setText(this)
focusEnd() focusEnd()
model.request(this) request(this)
} }
} }
@ -384,7 +376,7 @@ class GemActivity : AppCompatActivity() {
with(builder) { with(builder) {
setTitle(state.header.meta) setTitle(state.header.meta)
setPositiveButton("Ok"){ dialog, which -> setPositiveButton("Ok"){ dialog, which ->
model.request("${state.uri}?${Uri.encode(editText.text.toString())}") request("${state.uri}?${Uri.encode(editText.text.toString())}")
editText.hideKeyboard() editText.hideKeyboard()
} }
setNegativeButton(R.string.cancel){ dialog, which -> setNegativeButton(R.string.cancel){ dialog, which ->
@ -419,15 +411,19 @@ class GemActivity : AppCompatActivity() {
val download = getString(R.string.download) val download = getString(R.string.download)
AlertDialog.Builder(this, R.style.AppDialogTheme) if(getInternetStatus()) {
.setTitle("$download: ${state.header.meta}") AlertDialog.Builder(this, R.style.AppDialogTheme)
.setMessage("${state.uri}") .setTitle("$download: ${state.header.meta}")
.setPositiveButton(getString(R.string.download)) { _, _ -> .setMessage("${state.uri}")
loadingView(true) .setPositiveButton(getString(R.string.download)) { _, _ ->
model.requestBinaryDownload(state.uri) loadingView(true)
} model.requestBinaryDownload(state.uri)
.setNegativeButton(getString(R.string.cancel)) { _, _ -> } }
.show() .setNegativeButton(getString(R.string.cancel)) { _, _ -> }
.show()
}else{
Snackbar.make(binding.root, getString(R.string.no_internet), Snackbar.LENGTH_LONG).show()
}
} }
} }
is GemState.ResponseUnknownHost -> { is GemState.ResponseUnknownHost -> {
@ -470,7 +466,7 @@ class GemActivity : AppCompatActivity() {
val uri = intent.data val uri = intent.data
if(uri != null){ if(uri != null){
binding.addressEdit.setText(uri.toString()) binding.addressEdit.setText(uri.toString())
model.request(uri.toString()) request(uri.toString())
return return
} }
} }
@ -658,13 +654,19 @@ class GemActivity : AppCompatActivity() {
return false return false
} }
private fun request(address: String){
if(getInternetStatus()){
loadingView(true)
return model.request(address)
}else{
Snackbar.make(binding.root, getString(R.string.no_internet), Snackbar.LENGTH_LONG).show()
loadingView(false)
}
}
override fun onBackPressed() { override fun onBackPressed() {
if (omniTerm.canGoBack()){ if (omniTerm.canGoBack()){
if(getInternetStatus()){ request(omniTerm.goBack())
model.request(omniTerm.goBack())
}else{
Snackbar.make(binding.root, getString(R.string.no_internet), Snackbar.LENGTH_LONG).show()
}
}else{ }else{
println("Buran history is empty - exiting") println("Buran history is empty - exiting")
super.onBackPressed() super.onBackPressed()
@ -687,7 +689,7 @@ class GemActivity : AppCompatActivity() {
savedInstanceState.getString("uri")?.run { savedInstanceState.getString("uri")?.run {
omniTerm.set(this) omniTerm.set(this)
binding.addressEdit.setText(this) binding.addressEdit.setText(this)
model.request(this) request(this)
} }
} }
} }