More null checks. Probably resolves austinhuang0131/barinsta#992

This commit is contained in:
Ammar Githam 2021-05-03 17:31:00 +09:00
parent 1dfe5f623c
commit 9dae40fae0

View File

@ -60,7 +60,6 @@ public class MorePreferencesFragment extends BasePreferencesFragment {
final MainActivity activity = (MainActivity) getActivity();
// screen.addPreference(new MoreHeaderPreference(getContext()));
final Context context = getContext();
final Resources resources = context.getResources();
if (context == null) return;
accountRepository = AccountRepository.getInstance(AccountDataSource.getInstance(context));
final PreferenceCategory accountCategory = new PreferenceCategory(context);
@ -77,9 +76,7 @@ public class MorePreferencesFragment extends BasePreferencesFragment {
// shouldRecreate();
Toast.makeText(context1, R.string.logout_success, Toast.LENGTH_SHORT).show();
settingsHelper.putString(Constants.COOKIE, "");
AppExecutors.getInstance().mainThread().execute(() -> {
ProcessPhoenix.triggerRebirth(context1);
}, 200);
AppExecutors.getInstance().mainThread().execute(() -> ProcessPhoenix.triggerRebirth(context1), 200);
return true;
}));
}
@ -88,27 +85,35 @@ public class MorePreferencesFragment extends BasePreferencesFragment {
public void onSuccess(@NonNull final List<Account> accounts) {
if (!isLoggedIn) {
if (accounts.size() > 0) {
final AccountSwitcherPreference preference = getAccountSwitcherPreference(null, context);
final Context context1 = getContext();
final AccountSwitcherPreference preference = getAccountSwitcherPreference(null, context1);
if (preference == null) return;
accountCategory.addPreference(preference);
}
// Need to show something to trigger login activity
final Preference preference1 = getPreference(R.string.add_account, R.drawable.ic_add, preference -> {
startActivityForResult(new Intent(getContext(), Login.class), Constants.LOGIN_RESULT_CODE);
final Context context1 = getContext();
if (context1 == null) return false;
startActivityForResult(new Intent(context1, Login.class), Constants.LOGIN_RESULT_CODE);
return true;
});
if (preference1 == null) return;
accountCategory.addPreference(preference1);
}
if (accounts.size() > 0) {
accountCategory
.addPreference(getPreference(R.string.remove_all_acc, null, R.drawable.ic_account_multiple_remove_24, preference -> {
final Preference preference1 = getPreference(
R.string.remove_all_acc,
null,
R.drawable.ic_account_multiple_remove_24,
preference -> {
if (getContext() == null) return false;
new AlertDialog.Builder(getContext())
.setTitle(R.string.logout)
.setMessage(R.string.remove_all_acc_warning)
.setPositiveButton(R.string.yes, (dialog, which) -> {
CookieUtils.removeAllAccounts(context, new RepositoryCallback<Void>() {
final Context context1 = getContext();
if (context1 == null) return;
CookieUtils.removeAllAccounts(context1, new RepositoryCallback<Void>() {
@Override
public void onSuccess(final Void result) {
// shouldRecreate();
@ -116,9 +121,8 @@ public class MorePreferencesFragment extends BasePreferencesFragment {
if (context1 == null) return;
Toast.makeText(context1, R.string.logout_success, Toast.LENGTH_SHORT).show();
settingsHelper.putString(Constants.COOKIE, "");
AppExecutors.getInstance().mainThread().execute(() -> {
ProcessPhoenix.triggerRebirth(context1);
}, 200);
AppExecutors.getInstance().mainThread()
.execute(() -> ProcessPhoenix.triggerRebirth(context1), 200);
}
@Override
@ -128,7 +132,9 @@ public class MorePreferencesFragment extends BasePreferencesFragment {
.setNegativeButton(R.string.cancel, null)
.show();
return true;
}));
});
if (preference1 == null) return;
accountCategory.addPreference(preference1);
}
}
@ -236,12 +242,14 @@ public class MorePreferencesFragment extends BasePreferencesFragment {
-1,
preference -> {
if (BuildConfig.isPre) return true;
if (activity == null) return false;
FlavorTown.updateCheck(activity, true);
return true;
}));
screen.addPreference(getDivider(context));
final Preference reminderPreference = getPreference(R.string.reminder, R.string.reminder_summary, R.drawable.ic_warning, null);
if (reminderPreference == null) return;
reminderPreference.setSelectable(false);
screen.addPreference(reminderPreference);
}
@ -304,6 +312,7 @@ public class MorePreferencesFragment extends BasePreferencesFragment {
}
}
@Nullable
private AccountSwitcherPreference getAccountSwitcherPreference(final String cookie, final Context context) {
if (context == null) return null;
return new AccountSwitcherPreference(context, cookie, accountRepository, v -> showAccountSwitcherDialog());
@ -318,12 +327,14 @@ public class MorePreferencesFragment extends BasePreferencesFragment {
dialogFragment.show(fragmentManager, "accountSwitcher");
}
@Nullable
private Preference getPreference(final int title,
final int icon,
final Preference.OnPreferenceClickListener clickListener) {
return getPreference(title, -1, icon, clickListener);
}
@Nullable
private Preference getPreference(final int title,
final int summary,
final int icon,
@ -339,6 +350,7 @@ public class MorePreferencesFragment extends BasePreferencesFragment {
return getPreference(title, string, icon, clickListener);
}
@Nullable
private Preference getPreference(final int title,
final String summary,
final int icon,
@ -356,15 +368,14 @@ public class MorePreferencesFragment extends BasePreferencesFragment {
return preference;
}
public static class MoreHeaderPreference extends Preference {
public MoreHeaderPreference(final Context context) {
super(context);
setLayoutResource(R.layout.pref_more_header);
setSelectable(false);
}
}
// public static class MoreHeaderPreference extends Preference {
//
// public MoreHeaderPreference(final Context context) {
// super(context);
// setLayoutResource(R.layout.pref_more_header);
// setSelectable(false);
// }
// }
public static class AccountSwitcherPreference extends Preference {