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{
|
companion object{
|
||||||
const val DEFAULT_HOME_CAPSULE = "gemini://tlgs.one"
|
const val DEFAULT_HOME_CAPSULE = "gemini://tlgs.one"
|
||||||
|
const val DEFAULT_SEARCH_BASE = "gemini://tlgs.one/search?"
|
||||||
|
|
||||||
const val FEATURE_CLIENT_CERTS = true
|
const val FEATURE_CLIENT_CERTS = true
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@ import android.net.Uri
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
const val GEM_SCHEME = "gemini://"
|
const val GEM_SCHEME = "gemini://"
|
||||||
const val SEARCH_BASE = "gemini://tlgs.one/search?"
|
|
||||||
|
|
||||||
class OmniTerm(private val listener: Listener) {
|
class OmniTerm(private val listener: Listener) {
|
||||||
val history = ArrayList<OppenURI>()
|
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
|
* User input to the 'omni bar' - could be an address or a search term
|
||||||
* @param term - User-inputted term
|
* @param term - User-inputted term
|
||||||
*/
|
*/
|
||||||
fun input(term: String){
|
fun input(term: String, searchbase: String?){
|
||||||
when {
|
when {
|
||||||
term.startsWith(GEM_SCHEME) && term != GEM_SCHEME -> {
|
term.startsWith(GEM_SCHEME) && term != GEM_SCHEME -> {
|
||||||
listener.request(term)
|
listener.request(term)
|
||||||
|
@ -26,14 +25,14 @@ class OmniTerm(private val listener: Listener) {
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
val encoded = Uri.encode(term)
|
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)
|
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, _ ->
|
binding.addressEdit.setOnEditorActionListener { _, actionId, _ ->
|
||||||
when (actionId) {
|
when (actionId) {
|
||||||
EditorInfo.IME_ACTION_GO -> {
|
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()
|
binding.addressEdit.clearFocus()
|
||||||
return@setOnEditorActionListener true
|
return@setOnEditorActionListener true
|
||||||
}
|
}
|
||||||
|
@ -395,13 +399,17 @@ class GemActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
is GemState.ResponseUnknownHost -> {
|
is GemState.ResponseUnknownHost -> {
|
||||||
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(R.string.unknown_host_dialog_title)
|
.setTitle(R.string.unknown_host_dialog_title)
|
||||||
.setMessage("Host not found: ${state.uri}\n\nSearch with TLGS instead?")
|
.setMessage("Host not found: ${state.uri}\n\nSearch with TLGS instead?")
|
||||||
.setPositiveButton(getString(R.string.search)) { _, _ ->
|
.setPositiveButton(getString(R.string.search)) { _, _ ->
|
||||||
loadingView(true)
|
loadingView(true)
|
||||||
omniTerm.search(state.uri.toString())
|
omniTerm.search(state.uri.toString(), searchbase)
|
||||||
}
|
}
|
||||||
.setNegativeButton(getString(R.string.cancel)) { _, _ -> }
|
.setNegativeButton(getString(R.string.cancel)) { _, _ -> }
|
||||||
.show()
|
.show()
|
||||||
|
|
|
@ -65,6 +65,31 @@ class SettingsFragment: PreferenceFragmentCompat(), Preference.OnPreferenceChang
|
||||||
}
|
}
|
||||||
appCategory.addPreference(homePreference)
|
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 ---------------------------------------------
|
//Updates ---------------------------------------------
|
||||||
val checkForUpdates = SwitchPreferenceCompat(context)
|
val checkForUpdates = SwitchPreferenceCompat(context)
|
||||||
checkForUpdates.setDefaultValue(true)
|
checkForUpdates.setDefaultValue(true)
|
||||||
|
|
|
@ -46,6 +46,8 @@
|
||||||
<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="search_engine">Moteur de recherche</string>
|
||||||
|
<string name="search_base">Base de recherche</string>
|
||||||
<string name="update">Mettre à jour</string>
|
<string name="update">Mettre à jour</string>
|
||||||
<string name="appearance">Apparence</string>
|
<string name="appearance">Apparence</string>
|
||||||
<string name="theme">Thème</string>
|
<string name="theme">Thème</string>
|
||||||
|
|
|
@ -46,6 +46,8 @@
|
||||||
<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="search_engine">Search Engine</string>
|
||||||
|
<string name="search_base">Search Base</string>
|
||||||
<string name="update">Update</string>
|
<string name="update">Update</string>
|
||||||
<string name="appearance">Appearance</string>
|
<string name="appearance">Appearance</string>
|
||||||
<string name="theme">Theme</string>
|
<string name="theme">Theme</string>
|
||||||
|
|
Loading…
Reference in New Issue