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

View File

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

View File

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