mirror of https://github.com/Corewala/Buran
Search engine select
This commit is contained in:
parent
f0c85315a1
commit
3661c134c4
|
@ -6,6 +6,7 @@ class Buran: Application() {
|
|||
|
||||
companion object{
|
||||
const val DEFAULT_HOME_CAPSULE = "gemini://tlgs.one"
|
||||
const val DEFAULT_SEARCH_BASE = "gemini://tlgs.one/search?"
|
||||
|
||||
const val FEATURE_CLIENT_CERTS = true
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@ import android.net.Uri
|
|||
import java.util.*
|
||||
|
||||
const val GEM_SCHEME = "gemini://"
|
||||
const val SEARCH_BASE = "gemini://tlgs.one/search?"
|
||||
|
||||
class OmniTerm(private val listener: Listener) {
|
||||
val history = ArrayList<OppenURI>()
|
||||
|
@ -15,7 +14,7 @@ class OmniTerm(private val listener: Listener) {
|
|||
* User input to the 'omni bar' - could be an address or a search term
|
||||
* @param term - User-inputted term
|
||||
*/
|
||||
fun input(term: String){
|
||||
fun input(term: String, searchbase: String?){
|
||||
when {
|
||||
term.startsWith(GEM_SCHEME) && term != GEM_SCHEME -> {
|
||||
listener.request(term)
|
||||
|
@ -26,14 +25,14 @@ class OmniTerm(private val listener: Listener) {
|
|||
}
|
||||
else -> {
|
||||
val encoded = Uri.encode(term)
|
||||
listener.request("$SEARCH_BASE$encoded")
|
||||
listener.request("$searchbase$encoded")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun search(term: String){
|
||||
fun search(term: String, searchbase: String?){
|
||||
val encoded = Uri.encode(term)
|
||||
listener.request("$SEARCH_BASE$encoded")
|
||||
listener.request("$searchbase$encoded")
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -176,7 +176,11 @@ class GemActivity : AppCompatActivity() {
|
|||
binding.addressEdit.setOnEditorActionListener { _, actionId, _ ->
|
||||
when (actionId) {
|
||||
EditorInfo.IME_ACTION_GO -> {
|
||||
omniTerm.input(binding.addressEdit.text.toString().trim())
|
||||
val searchbase = prefs.getString(
|
||||
"search_base",
|
||||
Buran.DEFAULT_SEARCH_BASE
|
||||
)
|
||||
omniTerm.input(binding.addressEdit.text.toString().trim(), searchbase)
|
||||
binding.addressEdit.clearFocus()
|
||||
return@setOnEditorActionListener true
|
||||
}
|
||||
|
@ -395,13 +399,17 @@ class GemActivity : AppCompatActivity() {
|
|||
}
|
||||
is GemState.ResponseUnknownHost -> {
|
||||
runOnUiThread {
|
||||
val searchbase = prefs.getString(
|
||||
"search_base",
|
||||
Buran.DEFAULT_SEARCH_BASE
|
||||
)
|
||||
loadingView(false)
|
||||
AlertDialog.Builder(this, R.style.AppDialogTheme)
|
||||
.setTitle(R.string.unknown_host_dialog_title)
|
||||
.setMessage("Host not found: ${state.uri}\n\nSearch with TLGS instead?")
|
||||
.setPositiveButton(getString(R.string.search)) { _, _ ->
|
||||
loadingView(true)
|
||||
omniTerm.search(state.uri.toString())
|
||||
omniTerm.search(state.uri.toString(), searchbase)
|
||||
}
|
||||
.setNegativeButton(getString(R.string.cancel)) { _, _ -> }
|
||||
.show()
|
||||
|
|
|
@ -65,6 +65,31 @@ class SettingsFragment: PreferenceFragmentCompat(), Preference.OnPreferenceChang
|
|||
}
|
||||
appCategory.addPreference(homePreference)
|
||||
|
||||
//Search ---------------------------------------------
|
||||
val searchPreference = EditTextPreference(context)
|
||||
searchPreference.title = getString(R.string.search_engine)
|
||||
searchPreference.key = "search_base"
|
||||
searchPreference.dialogTitle = getString(R.string.search_base)
|
||||
|
||||
val searchengine = preferenceManager.sharedPreferences.getString(
|
||||
"search_base",
|
||||
Buran.DEFAULT_SEARCH_BASE
|
||||
)
|
||||
|
||||
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()
|
||||
true
|
||||
}
|
||||
searchPreference.setOnBindEditTextListener{ editText ->
|
||||
editText.imeOptions = EditorInfo.IME_ACTION_DONE
|
||||
editText.setSelection(editText.text.toString().length)//Set caret position to end
|
||||
}
|
||||
appCategory.addPreference(searchPreference)
|
||||
|
||||
//Updates ---------------------------------------------
|
||||
val checkForUpdates = SwitchPreferenceCompat(context)
|
||||
checkForUpdates.setDefaultValue(true)
|
||||
|
|
|
@ -46,6 +46,8 @@
|
|||
<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="search_engine">Moteur de recherche</string>
|
||||
<string name="search_base">Base de recherche</string>
|
||||
<string name="update">Mettre à jour</string>
|
||||
<string name="appearance">Apparence</string>
|
||||
<string name="theme">Thème</string>
|
||||
|
|
|
@ -46,6 +46,8 @@
|
|||
<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="search_engine">Search Engine</string>
|
||||
<string name="search_base">Search Base</string>
|
||||
<string name="update">Update</string>
|
||||
<string name="appearance">Appearance</string>
|
||||
<string name="theme">Theme</string>
|
||||
|
|
Loading…
Reference in New Issue