use of com.github.moko256.twitlatte.repository.PreferenceRepositoryKt.KEY_NIGHT_MODE in project twicalico by moko256.
the class SettingsFragment method onCreatePreferences.
@Override
public void onCreatePreferences(Bundle bundle, String rootKey) {
setPreferencesFromResource(R.xml.settings, rootKey);
if (rootKey == null) {
AccountsModel accountsModel = GlobalApplicationKt.getAccountsModel(requireActivity());
List<AccessToken> accessTokens = accountsModel.getAccessTokens();
CharSequence[] entriesAccountList = new CharSequence[accessTokens.size() + 1];
CharSequence[] entryValues = new CharSequence[accessTokens.size() + 1];
for (int i = 0; i < accessTokens.size(); i++) {
AccessToken accessToken = accessTokens.get(i);
entriesAccountList[i] = TwitterStringUtils.plusAtMark(accessToken.getScreenName(), accessToken.getUrl());
entryValues[i] = accessToken.getKeyString();
}
entriesAccountList[entriesAccountList.length - 1] = getString(R.string.login_with_another_account);
entryValues[entryValues.length - 1] = "-1";
ListPreference nowAccountList = findPreference(KEY_ACCOUNT_KEY);
nowAccountList.setEntries(entriesAccountList);
nowAccountList.setEntryValues(entryValues);
nowAccountList.setDefaultValue(GlobalApplicationKt.preferenceRepository.getString(KEY_ACCOUNT_KEY, "-1"));
nowAccountList.setOnPreferenceChangeListener((preference, newValue) -> {
if (newValue.equals("-1")) {
startActivityForResult(new Intent(getContext(), OAuthActivity.class), REQUEST_OAUTH_OR_CANCEL);
return false;
} else {
AccessToken accessToken = GlobalApplicationKt.getAccountsModel(requireActivity()).get((String) newValue);
((GlobalApplication) requireActivity().getApplication()).initCurrentClient(accessToken);
startActivity(new Intent(getContext(), MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
return true;
}
});
List<AccessToken> accessTokensTwitter = accountsModel.getAccessTokensByType(CLIENT_TYPE_TWITTER);
CharSequence[] entriesLinkOpen = new CharSequence[accessTokensTwitter.size() + 1];
CharSequence[] entriesLinkOpenValue = new CharSequence[accessTokensTwitter.size() + 1];
for (int i = 0; i < accessTokensTwitter.size(); i++) {
AccessToken accessToken = accessTokensTwitter.get(i);
entriesLinkOpen[i] = TwitterStringUtils.plusAtMark(accessToken.getScreenName(), accessToken.getUrl());
entriesLinkOpenValue[i] = accessToken.getKeyString();
}
entriesLinkOpen[entriesLinkOpen.length - 1] = getString(R.string.not_set);
entriesLinkOpenValue[entriesLinkOpenValue.length - 1] = "-1";
ListPreference linkOpenAccountList = findPreference(KEY_ACCOUNT_KEY_LINK_OPEN);
linkOpenAccountList.setEntries(entriesLinkOpen);
linkOpenAccountList.setEntryValues(entriesLinkOpenValue);
linkOpenAccountList.setDefaultValue("-1");
findPreference("logout").setOnPreferenceClickListener(preference -> {
new AlertDialog.Builder(requireContext()).setMessage(R.string.confirm_logout).setCancelable(true).setPositiveButton(R.string.do_logout, (dialog, i) -> {
accountsModel.delete(accountsModel.get(GlobalApplicationKt.preferenceRepository.getString(KEY_ACCOUNT_KEY, "-1")));
int point = accountsModel.size() - 1;
if (point != -1) {
AccessToken accessToken = accountsModel.getAccessTokens().get(point);
GlobalApplicationKt.preferenceRepository.putString(KEY_ACCOUNT_KEY, accessToken.getKeyString());
((GlobalApplication) requireActivity().getApplication()).initCurrentClient(accessToken);
startActivity(new Intent(getContext(), MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
} else {
GlobalApplicationKt.preferenceRepository.putString(KEY_ACCOUNT_KEY, "-1");
((GlobalApplication) requireActivity().getApplication()).clearCurrentClient();
startActivity(new Intent(getContext(), MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
}
}).setNegativeButton(android.R.string.cancel, null).show();
return false;
});
ListPreference nowThemeMode = findPreference(KEY_NIGHT_MODE);
nowThemeMode.setOnPreferenceChangeListener((preference, newValue) -> {
AppCompatDelegate.setDefaultNightMode(ThemePreferenceConverterKt.convertToAppCompatNightThemeMode(String.valueOf(newValue)));
((AppCompatActivity) requireActivity()).getDelegate().applyDayNight();
return true;
});
Preference licenseThisApp = findPreference("license_at_this_app");
licenseThisApp.setOnPreferenceClickListener(preference -> {
requireContext().startActivity(new Intent(getContext(), LicensesActivity.class).putExtra("title", getResources().getText(R.string.app_name)).putExtra("library_name", "twitlatte"));
return true;
});
Preference sourceCodeLink = findPreference("source_code_link");
sourceCodeLink.setOnPreferenceClickListener(preference -> {
AppCustomTabsKt.launchChromeCustomTabs(requireContext(), "https://github.com/moko256/twitlatte", false);
return true;
});
Preference version = findPreference("app_version");
version.setSummary(BuildConfig.VERSION_NAME);
version.setOnPreferenceClickListener(preference -> {
eggCount--;
if (eggCount <= 0) {
startActivity(new Intent(getActivity(), AboutActivity.class));
eggCount = 3;
}
return true;
});
} else if (rootKey.equals("regexMute")) {
PreferenceScreen regexMute = getPreferenceScreen();
for (int i = 0, length = regexMute.getPreferenceCount(); i < length; i++) {
Preference name = regexMute.getPreference(i);
if (name instanceof EditTextPreference) {
name.setOnPreferenceChangeListener((preference, newValue) -> {
try {
GlobalApplicationKt.preferenceRepository.updateRegex(preference.getKey(), (String) newValue);
} catch (PatternSyntaxException e) {
e.printStackTrace();
Toast.makeText(requireContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
}
return true;
});
}
}
} else if (rootKey.equals("license")) {
PreferenceScreen license = getPreferenceScreen();
for (int i = 0, length = license.getPreferenceCount(); i < length; i++) {
license.getPreference(i).setOnPreferenceClickListener(preference -> {
startActivity(new Intent(getContext(), LicensesActivity.class).putExtra("title", preference.getTitle()).putExtra("library_name", // "license_lib_".length
preference.getKey().substring(12)));
return true;
});
}
} else if (rootKey.equals("contributors")) {
PreferenceScreen contributorCategory = getPreferenceScreen();
for (int c = 0, length = contributorCategory.getPreferenceCount(); c < length; c++) {
PreferenceCategory contributor = (PreferenceCategory) contributorCategory.getPreference(c);
for (int i = 0, l = contributor.getPreferenceCount(); i < l; i++) {
Preference name = contributor.getPreference(i);
String uri = "https://github.com/" + name.getKey();
name.setSummary(uri);
name.setOnPreferenceClickListener(preference -> {
AppCustomTabsKt.launchChromeCustomTabs(requireContext(), uri, false);
return true;
});
}
}
}
}
Aggregations