diff --git a/app/src/main/java/corewala/buran/OmniTerm.kt b/app/src/main/java/corewala/buran/OmniTerm.kt index db08fcf..4f705d3 100644 --- a/app/src/main/java/corewala/buran/OmniTerm.kt +++ b/app/src/main/java/corewala/buran/OmniTerm.kt @@ -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 { diff --git a/app/src/main/java/corewala/buran/ui/GemActivity.kt b/app/src/main/java/corewala/buran/ui/GemActivity.kt index 7481bc3..3cdc0ee 100644 --- a/app/src/main/java/corewala/buran/ui/GemActivity.kt +++ b/app/src/main/java/corewala/buran/ui/GemActivity.kt @@ -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() diff --git a/app/src/main/java/corewala/buran/ui/GemViewModel.kt b/app/src/main/java/corewala/buran/ui/GemViewModel.kt index 8fa921b..8d04b83 100644 --- a/app/src/main/java/corewala/buran/ui/GemViewModel.kt +++ b/app/src/main/java/corewala/buran/ui/GemViewModel.kt @@ -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?) {