Does not load a URI on first launch

And fixed bugs
This commit is contained in:
Corewala 2022-06-20 12:45:20 -04:00
parent 0a59ac08cb
commit 2c24fa0c77
3 changed files with 32 additions and 5 deletions

View File

@ -1,7 +1,6 @@
package corewala.buran
import android.net.Uri
import android.webkit.URLUtil
import java.util.*
const val GEM_SCHEME = "gemini://"
@ -80,7 +79,11 @@ class OmniTerm(private val listener: Listener) {
}
fun getCurrent(): String {
return history.last().toString()
return if(history.size > 0){
history.last().toString()
}else{
""
}
}
fun canGoBack(): Boolean {

View File

@ -166,9 +166,9 @@ class GemActivity : AppCompatActivity() {
Buran.DEFAULT_HOME_CAPSULE
)
val title = "# ${this.getString(R.string.no_internet)}"
val link = "=> $home ${this.getString(R.string.retry)}"
val text = this.getString(R.string.retry)
omniTerm.set(home!!)
adapter.render(listOf(title, link))
adapter.render(listOf(title, text))
binding.addressEdit.inputType = InputType.TYPE_NULL
}
@ -773,6 +773,19 @@ class GemActivity : AppCompatActivity() {
bookmarkDatasource = db.bookmarks()
if(intent.data == null){
var home = prefs.getString(
"home_capsule",
Buran.DEFAULT_HOME_CAPSULE
) ?: Buran.DEFAULT_HOME_CAPSULE
if(
home.startsWith("gemini://")
and !home.contains(" ")
and home.contains(".")
){
home = ""
}
model.initialise(
home = prefs.getString(
"home_capsule",
@ -782,6 +795,11 @@ class GemActivity : AppCompatActivity() {
db = db,
onState = this::handleState
)
if(home.isEmpty()){
loadingView(false)
adapter.render(listOf("# ${getString(R.string.app_name)}"))
}
}else{
model.initialise(
home = intent.data.toString(),
@ -829,6 +847,10 @@ class GemActivity : AppCompatActivity() {
if(getInternetStatus()){
if(initialised){
if(address.isEmpty()){
loadingView(false)
adapter.render(listOf("# ${getString(R.string.app_name)}"))
}
model.request(address, certPassword)
}else{
initialise()

View File

@ -19,7 +19,9 @@ class GemViewModel: ViewModel() {
this.db = db
this.onState = onState
request(home, null)
if(home.startsWith("gemini://") and !home.contains(" ")){
request(home, null)
}
}
fun request(address: String, clientCertPassword: String?) {