PageFragment: show the URL being loaded
The URL is shown in italic to distinguish between the current URL and the URL that is currently being loaded. Unsure that it is enough, it does not look very good to me anyway.
This commit is contained in:
parent
e8283d2ed4
commit
9c0603cf67
|
@ -3,6 +3,7 @@ package dev.lowrespalmtree.comet
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.ActivityNotFoundException
|
import android.content.ActivityNotFoundException
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.graphics.Typeface
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.text.InputType
|
import android.text.InputType
|
||||||
|
@ -136,9 +137,13 @@ class PageFragment : Fragment(), ContentAdapterListener {
|
||||||
PageViewModel.State.IDLE -> {
|
PageViewModel.State.IDLE -> {
|
||||||
binding.contentProgressBar.hide()
|
binding.contentProgressBar.hide()
|
||||||
binding.contentSwipeLayout.isRefreshing = false
|
binding.contentSwipeLayout.isRefreshing = false
|
||||||
|
binding.addressBar.setText(vm.currentUrl)
|
||||||
|
binding.addressBar.setTypeface(null, Typeface.NORMAL)
|
||||||
}
|
}
|
||||||
PageViewModel.State.CONNECTING -> {
|
PageViewModel.State.CONNECTING -> {
|
||||||
binding.contentProgressBar.show()
|
binding.contentProgressBar.show()
|
||||||
|
binding.addressBar.setText(vm.loadingUrl?.toString() ?: "")
|
||||||
|
binding.addressBar.setTypeface(null, Typeface.ITALIC)
|
||||||
}
|
}
|
||||||
PageViewModel.State.RECEIVING -> {
|
PageViewModel.State.RECEIVING -> {
|
||||||
binding.appBarLayout.setExpanded(true, true)
|
binding.appBarLayout.setExpanded(true, true)
|
||||||
|
|
|
@ -18,6 +18,8 @@ class PageViewModel(@Suppress("unused") private val savedStateHandle: SavedState
|
||||||
ViewModel() {
|
ViewModel() {
|
||||||
/** Currently viewed page URL. */
|
/** Currently viewed page URL. */
|
||||||
var currentUrl: String = ""
|
var currentUrl: String = ""
|
||||||
|
/** Latest Uri requested using `sendGeminiRequest`. */
|
||||||
|
var loadingUrl: Uri? = null
|
||||||
/** Observable page viewer state. */
|
/** Observable page viewer state. */
|
||||||
val state: MutableLiveData<State> by lazy { MutableLiveData<State>(State.IDLE) }
|
val state: MutableLiveData<State> by lazy { MutableLiveData<State>(State.IDLE) }
|
||||||
/** Observable page viewer lines (backed up by `linesList` but updated less often). */
|
/** Observable page viewer lines (backed up by `linesList` but updated less often). */
|
||||||
|
@ -52,6 +54,7 @@ class PageViewModel(@Suppress("unused") private val savedStateHandle: SavedState
|
||||||
*/
|
*/
|
||||||
fun sendGeminiRequest(uri: Uri, connectionTimeout: Int, readTimeout: Int, redirects: Int = 0) {
|
fun sendGeminiRequest(uri: Uri, connectionTimeout: Int, readTimeout: Int, redirects: Int = 0) {
|
||||||
Log.d(TAG, "sendRequest: URI \"$uri\"")
|
Log.d(TAG, "sendRequest: URI \"$uri\"")
|
||||||
|
loadingUrl = uri
|
||||||
state.postValue(State.CONNECTING)
|
state.postValue(State.CONNECTING)
|
||||||
requestJob?.apply { if (isActive) cancel() }
|
requestJob?.apply { if (isActive) cancel() }
|
||||||
requestJob = viewModelScope.launch(Dispatchers.IO) {
|
requestJob = viewModelScope.launch(Dispatchers.IO) {
|
||||||
|
|
Reference in a new issue