mirror of https://github.com/Corewala/Buran
Improved handling of broken addresses in settings
This commit is contained in:
parent
a47d003f59
commit
09fc2a480a
|
@ -85,7 +85,9 @@ class GemActivity : AppCompatActivity() {
|
|||
|
||||
lateinit var adapter: AbstractGemtextAdapter
|
||||
|
||||
lateinit var home: String
|
||||
private lateinit var home: String
|
||||
|
||||
private lateinit var searchBase: String
|
||||
|
||||
private val onLink: (link: URI, longTap: Boolean, adapterPosition: Int) -> Unit = { uri, longTap, _: Int ->
|
||||
if(longTap){
|
||||
|
@ -171,6 +173,20 @@ class GemActivity : AppCompatActivity() {
|
|||
home = ""
|
||||
}
|
||||
|
||||
searchBase = prefs.getString(
|
||||
"search_base",
|
||||
Buran.DEFAULT_SEARCH_BASE
|
||||
) ?: Buran.DEFAULT_SEARCH_BASE
|
||||
|
||||
if(
|
||||
!searchBase.startsWith("gemini://")
|
||||
or searchBase.contains(" ")
|
||||
or !searchBase.contains(".")
|
||||
or !searchBase.endsWith("?")
|
||||
){
|
||||
searchBase = Buran.DEFAULT_SEARCH_BASE
|
||||
}
|
||||
|
||||
if(getInternetStatus()){
|
||||
initialise()
|
||||
}else{
|
||||
|
@ -189,11 +205,7 @@ class GemActivity : AppCompatActivity() {
|
|||
binding.addressEdit.setOnEditorActionListener { _, actionId, _ ->
|
||||
when (actionId) {
|
||||
EditorInfo.IME_ACTION_GO -> {
|
||||
val searchbase = prefs.getString(
|
||||
"search_base",
|
||||
Buran.DEFAULT_SEARCH_BASE
|
||||
)
|
||||
omniTerm.input(binding.addressEdit.text.toString().trim(), searchbase)
|
||||
omniTerm.input(binding.addressEdit.text.toString().trim(), searchBase)
|
||||
binding.addressEdit.clearFocus()
|
||||
return@setOnEditorActionListener true
|
||||
}
|
||||
|
@ -340,6 +352,20 @@ class GemActivity : AppCompatActivity() {
|
|||
home = ""
|
||||
}
|
||||
|
||||
searchBase = prefs.getString(
|
||||
"search_base",
|
||||
Buran.DEFAULT_SEARCH_BASE
|
||||
) ?: Buran.DEFAULT_SEARCH_BASE
|
||||
|
||||
if(
|
||||
!searchBase.startsWith("gemini://")
|
||||
or searchBase.contains(" ")
|
||||
or !searchBase.contains(".")
|
||||
or !searchBase.endsWith("?")
|
||||
){
|
||||
searchBase = Buran.DEFAULT_SEARCH_BASE
|
||||
}
|
||||
|
||||
when {
|
||||
prefs.contains("background_colour") -> {
|
||||
when (val backgroundColor = prefs.getString("background_colour", "#XXXXXX")) {
|
||||
|
@ -513,17 +539,13 @@ class GemActivity : AppCompatActivity() {
|
|||
is GemState.ResponseUnknownHost -> {
|
||||
omniTerm.reset()
|
||||
runOnUiThread {
|
||||
val searchbase = prefs.getString(
|
||||
"search_base",
|
||||
Buran.DEFAULT_SEARCH_BASE
|
||||
)
|
||||
loadingView(false)
|
||||
AlertDialog.Builder(this, R.style.AppDialogTheme)
|
||||
.setTitle(getString(R.string.unknown_host))
|
||||
.setMessage("${getString(R.string.unknown_host)}: ${state.uri}\n\n${getString(R.string.search_instead)}")
|
||||
.setPositiveButton(getString(R.string.search).toUpperCase()) { _, _ ->
|
||||
loadingView(true)
|
||||
omniTerm.search(state.uri.toString(), searchbase)
|
||||
omniTerm.search(state.uri.toString(), searchBase)
|
||||
}
|
||||
.setNegativeButton(getString(R.string.cancel).toUpperCase()) { _, _ -> }
|
||||
.show()
|
||||
|
|
|
@ -67,19 +67,18 @@ class SettingsFragment: PreferenceFragmentCompat(), Preference.OnPreferenceChang
|
|||
|
||||
homePreference.positiveButtonText = getString(R.string.update)
|
||||
homePreference.negativeButtonText = getString(R.string.cancel)
|
||||
homePreference.title = getString(R.string.home_capsule)
|
||||
homePreference.setOnPreferenceChangeListener { _, newValue ->
|
||||
val newHomecapsule = newValue.toString().trim()
|
||||
if(newHomecapsule.isNullOrEmpty()){
|
||||
homePreference.summary = context.getString(R.string.no_home_capsule_set)
|
||||
homePreference.summary = if(newHomecapsule.isNullOrEmpty()){
|
||||
context.getString(R.string.no_home_capsule_set)
|
||||
}else if(
|
||||
!newHomecapsule.startsWith("gemini://")
|
||||
or newHomecapsule.contains(" ")
|
||||
or !newHomecapsule.contains(".")
|
||||
){
|
||||
homePreference.summary = context.getString(R.string.not_valid_address)
|
||||
context.getString(R.string.not_valid_address)
|
||||
}else{
|
||||
homePreference.summary = newHomecapsule
|
||||
newHomecapsule
|
||||
}
|
||||
true
|
||||
}
|
||||
|
@ -98,14 +97,39 @@ class SettingsFragment: PreferenceFragmentCompat(), Preference.OnPreferenceChang
|
|||
val searchengine = preferenceManager.sharedPreferences.getString(
|
||||
"search_base",
|
||||
Buran.DEFAULT_SEARCH_BASE
|
||||
)
|
||||
)?.trim()
|
||||
|
||||
searchPreference.summary = if(searchengine.isNullOrEmpty()){
|
||||
Buran.DEFAULT_SEARCH_BASE
|
||||
}else if(
|
||||
!searchengine.startsWith("gemini://")
|
||||
or searchengine.contains(" ")
|
||||
or !searchengine.contains(".")
|
||||
){
|
||||
context.getString(R.string.not_valid_address)
|
||||
}else if(!searchengine.endsWith("?")){
|
||||
context.getString(R.string.not_valid_search_string)
|
||||
}else{
|
||||
searchengine
|
||||
}
|
||||
|
||||
searchPreference.summary = searchengine
|
||||
searchPreference.positiveButtonText = getString(R.string.update)
|
||||
searchPreference.negativeButtonText = getString(R.string.cancel)
|
||||
searchPreference.title = getString(R.string.search_engine)
|
||||
searchPreference.setOnPreferenceChangeListener { _, newValue ->
|
||||
searchPreference.summary = newValue.toString()
|
||||
val newSearchBase = newValue.toString().trim()
|
||||
searchPreference.summary = if(newSearchBase.isNullOrEmpty()){
|
||||
Buran.DEFAULT_SEARCH_BASE
|
||||
}else if(
|
||||
!newSearchBase.startsWith("gemini://")
|
||||
or newSearchBase.contains(" ")
|
||||
or !newSearchBase.contains(".")
|
||||
){
|
||||
context.getString(R.string.not_valid_address)
|
||||
}else if(!newSearchBase.endsWith("?")){
|
||||
context.getString(R.string.not_valid_search_string)
|
||||
}else{
|
||||
newSearchBase
|
||||
}
|
||||
true
|
||||
}
|
||||
searchPreference.setOnBindEditTextListener{ editText ->
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
<string name="file_saved_to_device">Fichier sauvegardé dans l\'appareil</string>
|
||||
<string name="configure_buran">Configurer Buran</string>
|
||||
<string name="home_capsule">Capsule d\'accueil</string>
|
||||
<string name="not_valid_search_string">Ceci n\'est pas une base de recherche valide</string>
|
||||
<string name="not_valid_address">Ceci n\'est pas une adresse valide</string>
|
||||
<string name="no_home_capsule_set">Pas de capsule d\'accueil</string>
|
||||
<string name="search_engine">Moteur de recherche</string>
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
<string name="file_saved_to_device">File saved to device</string>
|
||||
<string name="configure_buran">Configure Buran</string>
|
||||
<string name="home_capsule">Home Capsule</string>
|
||||
<string name="not_valid_search_string">This is not a valid search base</string>
|
||||
<string name="not_valid_address">This is not a valid address</string>
|
||||
<string name="no_home_capsule_set">No home capsule set</string>
|
||||
<string name="search_engine">Search Engine</string>
|
||||
|
|
Loading…
Reference in New Issue