Skip to content

Commit d08b3c6

Browse files
committed
fix(wizard): fix provider switching and remove AI model filtering
- Use local state for AI provider selection in WelcomeWizard to ensure UI reactivity - Remove model filtering for Gemini and Groq in ProofreadService to allow user choice
1 parent 6b1ab97 commit d08b3c6

2 files changed

Lines changed: 8 additions & 21 deletions

File tree

app/src/main/java/helium314/keyboard/settings/WelcomeWizard.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ fun WelcomeWizard(
265265
) {
266266
if (BuildConfig.FLAVOR == "standard") {
267267
val service = remember { helium314.keyboard.latin.utils.ProofreadService(ctx) }
268-
val currentProvider = service.getProvider()
268+
var currentProvider by remember { mutableStateOf(service.getProvider()) }
269269
val aiConfigured = when (currentProvider) {
270270
helium314.keyboard.latin.utils.ProofreadService.AIProvider.GEMINI -> service.hasApiKey()
271271
helium314.keyboard.latin.utils.ProofreadService.AIProvider.GROQ -> service.getGroqToken() != null
@@ -279,13 +279,15 @@ fun WelcomeWizard(
279279
ctx.getString(R.string.ai_provider_huggingface) to helium314.keyboard.latin.utils.ProofreadService.AIProvider.GROQ.name,
280280
ctx.getString(R.string.ai_provider_gemini) to helium314.keyboard.latin.utils.ProofreadService.AIProvider.GEMINI.name,
281281
ctx.getString(R.string.ai_provider_openai) to helium314.keyboard.latin.utils.ProofreadService.AIProvider.OPENAI.name
282-
), service.getProvider().name, onChanged = {
283-
service.setProvider(helium314.keyboard.latin.utils.ProofreadService.AIProvider.valueOf(it))
282+
), currentProvider.name, onChanged = {
283+
val newProvider = helium314.keyboard.latin.utils.ProofreadService.AIProvider.valueOf(it)
284+
service.setProvider(newProvider)
285+
currentProvider = newProvider
284286
refreshTrigger++
285287
})
286288
}.Preference()
287289

288-
when (service.getProvider()) {
290+
when (currentProvider) {
289291
helium314.keyboard.latin.utils.ProofreadService.AIProvider.GEMINI -> {
290292
helium314.keyboard.settings.Setting(ctx, helium314.keyboard.settings.SettingsWithoutKey.GEMINI_API_KEY, R.string.gemini_api_key_title, R.string.gemini_api_key_summary) { setting ->
291293
TextInputPreference(setting, service.getApiKey() ?: "", onConfirmed = {

app/src/standard/java/helium314/keyboard/latin/utils/ProofreadService.kt

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -112,17 +112,7 @@ class ProofreadService(private val context: Context) {
112112
for (i in 0 until modelsArray.length()) {
113113
val model = modelsArray.getJSONObject(i)
114114
val name = model.getString("name").removePrefix("models/")
115-
val methods = model.optJSONArray("supportedGenerationMethods")
116-
var isTextModel = false
117-
if (methods != null) {
118-
for (j in 0 until methods.length()) {
119-
if (methods.getString(j) == "generateContent") {
120-
isTextModel = true
121-
break
122-
}
123-
}
124-
}
125-
if (isTextModel) models.add(name)
115+
models.add(name)
126116
}
127117
models.ifEmpty { AVAILABLE_MODELS }
128118
} else {
@@ -152,12 +142,7 @@ class ProofreadService(private val context: Context) {
152142
for (i in 0 until data.length()) {
153143
val model = data.getJSONObject(i)
154144
val id = model.getString("id")
155-
// Groq models are mostly text, but we filter out audio/vision models if possible
156-
// Currently filtering out Whisper (audio) models
157-
val isTextModel = !id.contains("whisper", ignoreCase = true)
158-
if (model.optBoolean("active", true) && isTextModel) {
159-
models.add(id)
160-
}
145+
models.add(id)
161146
}
162147
models.ifEmpty { GroqModels.AVAILABLE_MODELS }
163148
} else {

0 commit comments

Comments
 (0)