|
1 | 1 | package org.schabi.newpipe.settings; |
2 | 2 |
|
3 | 3 | import android.content.Intent; |
4 | | -import android.content.SharedPreferences; |
5 | | -import android.os.Bundle; |
6 | | -import android.widget.Toast; |
7 | | -import androidx.preference.Preference; |
8 | 4 | import org.schabi.newpipe.R; |
9 | | -import org.schabi.newpipe.util.ServiceHelper; |
10 | 5 | import org.schabi.newpipe.views.NicoNicoLoginWebViewActivity; |
11 | 6 |
|
12 | | -import java.util.regex.Pattern; |
| 7 | +public class NicoNicoAccountSettingsFragment extends BaseAccountSettingsFragment { |
13 | 8 |
|
14 | | -import static android.app.Activity.RESULT_OK; |
| 9 | + @Override |
| 10 | + protected int getPreferenceResource() { |
| 11 | + return R.xml.account_settings_niconico; |
| 12 | + } |
15 | 13 |
|
16 | | -public class NicoNicoAccountSettingsFragment extends BasePreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener { |
17 | | - private static final int REQUEST_LOGIN = 1; |
| 14 | + @Override |
| 15 | + protected Class<?> getLoginActivityClass() { |
| 16 | + return NicoNicoLoginWebViewActivity.class; |
| 17 | + } |
18 | 18 |
|
19 | 19 | @Override |
20 | | - public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) { |
21 | | - addPreferencesFromResource(R.xml.account_settings_niconico); |
22 | | - Preference login = findPreference(getString(R.string.login_key)); |
23 | | - Preference logout = findPreference(getString(R.string.logout_key)); |
24 | | - Preference override_switch = findPreference(getString(R.string.override_cookies_niconico_key)); |
25 | | - Preference override_value = findPreference(getString(R.string.override_cookies_niconico_value_key)); |
26 | | - override_value.setOnPreferenceClickListener(preference -> { |
27 | | - ServiceHelper.initServices(this.getContext()); |
28 | | - return true; |
29 | | - }); |
30 | | - override_switch.setOnPreferenceClickListener(preference -> { |
31 | | - ServiceHelper.initServices(this.getContext()); |
32 | | - return true; |
33 | | - }); |
34 | | - login.setOnPreferenceClickListener(preference -> { |
35 | | - // Open a webview to login and then get cookies |
36 | | - // and save them to the shared preferences |
37 | | - Intent intent = new Intent(this.getContext(), NicoNicoLoginWebViewActivity.class); |
38 | | - startActivityForResult(intent, REQUEST_LOGIN); |
39 | | - return true; |
40 | | - }); |
41 | | - logout.setOnPreferenceClickListener(preference -> { |
42 | | - // Clear cookies |
43 | | - defaultPreferences.edit().putString(getString(R.string.niconico_cookies_key), "").apply(); |
44 | | - ServiceHelper.initServices(this.getContext()); |
45 | | - Toast.makeText(requireContext(), R.string.success, Toast.LENGTH_SHORT) |
46 | | - .show(); |
47 | | - login.setEnabled(true); |
48 | | - logout.setEnabled(false); |
49 | | - return true; |
50 | | - }); |
51 | | - if (defaultPreferences.getString(getString(R.string.niconico_cookies_key), "").equals("")) { |
52 | | - logout.setEnabled(false); |
53 | | - } else { |
54 | | - login.setEnabled(false); |
55 | | - } |
| 20 | + protected String getCookiesKey() { |
| 21 | + return getString(R.string.niconico_cookies_key); |
| 22 | + } |
56 | 23 |
|
57 | | - Preference override_cookies_niconico_value = findPreference(getString(R.string.override_cookies_niconico_value_key)); |
58 | | - override_cookies_niconico_value.setEnabled(defaultPreferences.getBoolean(getString(R.string.override_cookies_niconico_key), false)); |
| 24 | + @Override |
| 25 | + protected String getOverrideSwitchKey() { |
| 26 | + return getString(R.string.override_cookies_niconico_key); |
59 | 27 | } |
| 28 | + |
60 | 29 | @Override |
61 | | - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { |
62 | | - if(key.equals(getString(R.string.override_cookies_niconico_key)) || key.equals(getString(R.string.override_cookies_niconico_value_key))) { |
63 | | - ServiceHelper.initServices(this.getContext()); |
64 | | - } |
| 30 | + protected String getOverrideValueKey() { |
| 31 | + return getString(R.string.override_cookies_niconico_value_key); |
65 | 32 | } |
| 33 | + |
| 34 | + @Override |
| 35 | + protected boolean shouldCheckOverrideKeys() { |
| 36 | + return true; |
| 37 | + } |
| 38 | + |
66 | 39 | @Override |
67 | | - public void onActivityResult(int requestCode, int resultCode, Intent data) { |
68 | | - if (requestCode == REQUEST_LOGIN && resultCode == RESULT_OK) { |
69 | | - String cookies = data.getStringExtra("cookies"); |
70 | | - // save cookies to shared preferences |
71 | | - defaultPreferences.edit().putString(getString(R.string.niconico_cookies_key), cookies).apply(); |
72 | | - ServiceHelper.initServices(this.getContext()); |
73 | | - Toast.makeText(requireContext(), R.string.success, Toast.LENGTH_SHORT) |
74 | | - .show(); |
75 | | - Preference login = findPreference(getString(R.string.login_key)); |
76 | | - Preference logout = findPreference(getString(R.string.logout_key)); |
77 | | - login.setEnabled(false); |
78 | | - logout.setEnabled(true); |
79 | | - } |
| 40 | + protected void handleLoginResult(Intent data) { |
| 41 | + String cookies = data.getStringExtra("cookies"); |
| 42 | + defaultPreferences.edit().putString(getCookiesKey(), cookies).apply(); |
| 43 | + onLoginSuccess(); |
80 | 44 | } |
81 | 45 |
|
| 46 | + @Override |
| 47 | + protected void performLogout() { |
| 48 | + defaultPreferences.edit().putString(getCookiesKey(), "").apply(); |
| 49 | + onLogoutSuccess(); |
| 50 | + } |
82 | 51 | } |
0 commit comments