Skip to content
This repository was archived by the owner on May 4, 2023. It is now read-only.

Commit aad605c

Browse files
Add custom API key support
Signed-off-by: androidacy-user <opensource@androidacy.com>
1 parent f76ad41 commit aad605c

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import android.os.Handler;
1313
import android.os.Looper;
1414
import android.util.Log;
15+
import android.view.inputmethod.EditorInfo;
1516
import android.widget.AutoCompleteTextView;
1617
import android.widget.Button;
1718
import android.widget.Toast;
@@ -337,6 +338,7 @@ private int currentLanguageLevel() {
337338
public static class RepoFragment extends PreferenceFragmentCompat {
338339
private static final int CUSTOM_REPO_ENTRIES = 5;
339340

341+
@SuppressLint("RestrictedApi")
340342
@Override
341343
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
342344
getPreferenceManager().setSharedPreferencesName("mmm");
@@ -353,14 +355,16 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
353355
.getString("pref_androidacy_api_token", "");
354356
// Create the pref_androidacy_repo_api_key text input with validation
355357
EditTextPreference prefAndroidacyRepoApiKey = findPreference("pref_androidacy_repo_api_key");
356-
prefAndroidacyRepoApiKey.setKey("pref_androidacy_repo_api_key");
357358
prefAndroidacyRepoApiKey.setOnBindEditTextListener(editText -> {
358359
editText.setSingleLine();
359360
// Make the single line wrap
360361
editText.setHorizontallyScrolling(false);
361362
// Set the height to the height of 2 lines
362-
editText.setHeight(editText.getLineHeight() * 2);
363+
editText.setHeight(editText.getLineHeight() * 3);
364+
// Make ok button say "Save"
365+
editText.setImeOptions(EditorInfo.IME_ACTION_DONE);
363366
});
367+
prefAndroidacyRepoApiKey.setPositiveButtonText(R.string.save_api_key);
364368
prefAndroidacyRepoApiKey.setOnPreferenceChangeListener((preference, newValue) -> {
365369
// Curious if this actually works - so crash the app on purpose
366370
// throw new RuntimeException("This is a test crash");
@@ -387,6 +391,14 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
387391
if (apiKey.length() < 64) {
388392
new Handler(Looper.getMainLooper()).post(() -> {
389393
progressDialog.dismiss();
394+
// Save the original key
395+
MainApplication.getSharedPreferences().edit()
396+
.putString("pref_androidacy_api_token", originalApiKey).apply();
397+
// Re-show the dialog with an error
398+
prefAndroidacyRepoApiKey.performClick();
399+
// Show error
400+
prefAndroidacyRepoApiKey.setDialogMessage(getString(R.string.api_key_invalid));
401+
// Set the error color
390402
Toast.makeText(getContext(), R.string.api_key_invalid, Toast.LENGTH_SHORT).show();
391403
});
392404
return;

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,11 @@
158158
<string name="api_key_summary">Use a custom API key for Androidacy. Useful for premium subscribers, to remove ads and more.</string>
159159
<string name="api_key_not_set">Androidacy API key is empty</string>
160160
<string name="api_key_set">Current Androidacy API key</string>
161-
<string name="api_key_invalid">Could not validate API key. Please try again.</string>
161+
<string name="api_key_invalid">Could not validate API key. Please check it and try again.</string>
162162
<string name="api_key_valid">API key is valid.</string>
163163
<string name="checking_api_key">Validating API key...</string>
164164
<string name="validating_api_key">Validating API key...</string>
165165
<string name="please_wait">Please wait</string>
166166
<string name="api_key_removed">Successfully reset API key</string>
167+
<string name="save_api_key">Validate</string>
167168
</resources>

app/src/main/res/xml/repo_preferences.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
app:dialogIcon="@drawable/ic_baseline_vpn_key_24"
5252
app:dependency="pref_androidacy_repo_enabled"
5353
android:inputType="text"
54+
android:selectAllOnFocus="true"
5455
android:imeOptions="actionDone" />
5556
<SwitchPreferenceCompat
5657
app:defaultValue="false"

0 commit comments

Comments
 (0)