Search in sources :

Example 11 with AccessToken

use of com.github.moko256.latte.client.base.entity.AccessToken in project twicalico by moko256.

the class TokenSQLiteOpenHelperTest method addToken.

private void addToken() {
    AccessToken accessToken = generateAccessToken(TEST_USER_1_USER_ID, TEST_USER_1_USER_SCREEN_NAME_1, TEST_USER_1_USER_TOKEN_1, TEST_USER_1_USER_TOKEN_SECRET_1);
    helper.addAccessToken(accessToken);
    final long addAccessTokenResult = helper.getSize();
    assertEquals(addAccessTokenResult, 1);
    AccessToken addedAccessTokenResult = helper.getAccessToken(accessToken.getKeyString());
    assertEquals(addedAccessTokenResult.getUserId(), TEST_USER_1_USER_ID);
    assertEquals(addedAccessTokenResult.getScreenName(), TEST_USER_1_USER_SCREEN_NAME_1);
    assertEquals(addedAccessTokenResult.getToken(), TEST_USER_1_USER_TOKEN_1);
    assertEquals(addedAccessTokenResult.getTokenSecret(), TEST_USER_1_USER_TOKEN_SECRET_1);
}
Also used : AccessToken(com.github.moko256.twicalico.entity.AccessToken)

Example 12 with AccessToken

use of com.github.moko256.latte.client.base.entity.AccessToken in project twicalico by moko256.

the class TokenSQLiteOpenHelperTest method updateToken.

private void updateToken() {
    AccessToken accessToken = generateAccessToken(TEST_USER_1_USER_ID, TEST_USER_1_USER_SCREEN_NAME_2, TEST_USER_1_USER_TOKEN_2, TEST_USER_1_USER_TOKEN_SECRET_2);
    helper.addAccessToken(accessToken);
    final long updateAccessTokenResult = helper.getSize();
    assertEquals(updateAccessTokenResult, 1);
    AccessToken updatedAccessTokenResult = helper.getAccessToken(accessToken.getKeyString());
    assertEquals(updatedAccessTokenResult.getScreenName(), TEST_USER_1_USER_SCREEN_NAME_2);
    assertEquals(updatedAccessTokenResult.getToken(), TEST_USER_1_USER_TOKEN_2);
    assertEquals(updatedAccessTokenResult.getTokenSecret(), TEST_USER_1_USER_TOKEN_SECRET_2);
}
Also used : AccessToken(com.github.moko256.twicalico.entity.AccessToken)

Example 13 with AccessToken

use of com.github.moko256.latte.client.base.entity.AccessToken in project twicalico by moko256.

the class OAuthActivity method storeAccessToken.

private void storeAccessToken(AccessToken accessToken) {
    SharedPreferences defaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    TokenSQLiteOpenHelper tokenOpenHelper = new TokenSQLiteOpenHelper(this);
    tokenOpenHelper.addAccessToken(accessToken);
    tokenOpenHelper.close();
    defaultSharedPreferences.edit().putString("AccountKey", accessToken.getKeyString()).apply();
    ((GlobalApplication) getApplication()).initTwitter(accessToken);
    startActivity(new Intent(this, MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
    finish();
}
Also used : SharedPreferences(android.content.SharedPreferences) CustomTabsIntent(android.support.customtabs.CustomTabsIntent) Intent(android.content.Intent) TokenSQLiteOpenHelper(com.github.moko256.twicalico.database.TokenSQLiteOpenHelper)

Example 14 with AccessToken

use of com.github.moko256.latte.client.base.entity.AccessToken in project twicalico by moko256.

the class TokenSQLiteOpenHelperTest method addToken.

private void addToken() {
    AccessToken accessToken = generateAccessToken(TEST_USER_1_USER_ID, TEST_USER_1_USER_SCREEN_NAME_1, TEST_USER_1_USER_TOKEN_1, TEST_USER_1_USER_TOKEN_SECRET_1);
    helper.addAccessToken(accessToken);
    final long addAccessTokenResult = getSize();
    assertEquals(addAccessTokenResult, 1);
    AccessToken addedAccessTokenResult = helper.getAccessToken(accessToken.getKeyString());
    assertEquals(addedAccessTokenResult.getUserId(), TEST_USER_1_USER_ID);
    assertEquals(addedAccessTokenResult.getScreenName(), TEST_USER_1_USER_SCREEN_NAME_1);
    assertEquals(addedAccessTokenResult.getToken(), TEST_USER_1_USER_TOKEN_1);
    assertEquals(addedAccessTokenResult.getTokenSecret(), TEST_USER_1_USER_TOKEN_SECRET_1);
}
Also used : AccessToken(com.github.moko256.latte.client.base.entity.AccessToken)

Example 15 with AccessToken

use of com.github.moko256.latte.client.base.entity.AccessToken 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;
                });
            }
        }
    }
}
Also used : AlertDialog(androidx.appcompat.app.AlertDialog) Bundle(android.os.Bundle) AlertDialog(androidx.appcompat.app.AlertDialog) ThemePreferenceConverterKt(com.github.moko256.twitlatte.text.ThemePreferenceConverterKt) KEY_ACCOUNT_KEY_LINK_OPEN(com.github.moko256.twitlatte.repository.PreferenceRepositoryKt.KEY_ACCOUNT_KEY_LINK_OPEN) RESULT_OK(android.app.Activity.RESULT_OK) PreferenceCategory(androidx.preference.PreferenceCategory) AccountsModel(com.github.moko256.twitlatte.model.AccountsModel) Intent(android.content.Intent) CLIENT_TYPE_TWITTER(com.github.moko256.latte.client.twitter.TwitterApiClientImplKt.CLIENT_TYPE_TWITTER) AppCompatActivity(androidx.appcompat.app.AppCompatActivity) PreferenceFragmentCompat(androidx.preference.PreferenceFragmentCompat) AppCustomTabsKt(com.github.moko256.twitlatte.intent.AppCustomTabsKt) TwitterStringUtils(com.github.moko256.twitlatte.text.TwitterStringUtils) Toast(android.widget.Toast) EditTextPreference(androidx.preference.EditTextPreference) PreferenceScreen(androidx.preference.PreferenceScreen) PatternSyntaxException(java.util.regex.PatternSyntaxException) AppCompatDelegate(androidx.appcompat.app.AppCompatDelegate) KEY_ACCOUNT_KEY(com.github.moko256.twitlatte.repository.PreferenceRepositoryKt.KEY_ACCOUNT_KEY) Preference(androidx.preference.Preference) AccessToken(com.github.moko256.latte.client.base.entity.AccessToken) List(java.util.List) KEY_NIGHT_MODE(com.github.moko256.twitlatte.repository.PreferenceRepositoryKt.KEY_NIGHT_MODE) Nullable(androidx.annotation.Nullable) ListPreference(androidx.preference.ListPreference) PreferenceScreen(androidx.preference.PreferenceScreen) AccountsModel(com.github.moko256.twitlatte.model.AccountsModel) Intent(android.content.Intent) ListPreference(androidx.preference.ListPreference) EditTextPreference(androidx.preference.EditTextPreference) EditTextPreference(androidx.preference.EditTextPreference) Preference(androidx.preference.Preference) ListPreference(androidx.preference.ListPreference) PreferenceCategory(androidx.preference.PreferenceCategory) AccessToken(com.github.moko256.latte.client.base.entity.AccessToken) PatternSyntaxException(java.util.regex.PatternSyntaxException)

Aggregations

AccessToken (com.github.moko256.latte.client.base.entity.AccessToken)9 AccessToken (com.github.moko256.twicalico.entity.AccessToken)8 Intent (android.content.Intent)6 Cursor (android.database.Cursor)5 Bundle (android.os.Bundle)5 SQLiteDatabase (android.database.sqlite.SQLiteDatabase)4 View (android.view.View)4 TextView (android.widget.TextView)4 SharedPreferences (android.content.SharedPreferences)3 Menu (android.view.Menu)3 Toast (android.widget.Toast)3 Nullable (androidx.annotation.Nullable)3 AlertDialog (androidx.appcompat.app.AlertDialog)3 AppCompatActivity (androidx.appcompat.app.AppCompatActivity)3 TokenSQLiteOpenHelper (com.github.moko256.twicalico.database.TokenSQLiteOpenHelper)3 AccountsModel (com.github.moko256.twitlatte.model.AccountsModel)3 KEY_ACCOUNT_KEY (com.github.moko256.twitlatte.repository.PreferenceRepositoryKt.KEY_ACCOUNT_KEY)3 TwitterStringUtils (com.github.moko256.twitlatte.text.TwitterStringUtils)3 List (java.util.List)3 Build (android.os.Build)2