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