diff options
Diffstat (limited to 'app/src/main/java/app/fedilab/android/ui/fragment/login/FragmentLoginMain.java')
-rw-r--r-- | app/src/main/java/app/fedilab/android/ui/fragment/login/FragmentLoginMain.java | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/login/FragmentLoginMain.java b/app/src/main/java/app/fedilab/android/ui/fragment/login/FragmentLoginMain.java index af96e62ee..ec770860b 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/login/FragmentLoginMain.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/login/FragmentLoginMain.java @@ -258,28 +258,33 @@ public class FragmentLoginMain extends Fragment { scopes, Helper.WEBSITE_VALUE ).observe(requireActivity(), app -> { - client_idLogin = app.client_id; - client_secretLogin = app.client_secret; - String redirectUrl = MastodonHelper.authorizeURL(currentInstanceLogin, client_idLogin, ((LoginActivity) requireActivity()).requestedAdmin()); - SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); - boolean embedded_browser = sharedpreferences.getBoolean(getString(R.string.SET_EMBEDDED_BROWSER), true); - if (embedded_browser) { - Intent i = new Intent(requireActivity(), WebviewConnectActivity.class); - i.putExtra("login_url", redirectUrl); - i.putExtra("requestedAdmin", ((LoginActivity) requireActivity()).requestedAdmin()); - startActivity(i); - requireActivity().finish(); - } else { - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.setData(Uri.parse(redirectUrl)); - try { - startActivity(intent); - } catch (Exception e) { - Toasty.error(requireActivity(), getString(R.string.toast_error), Toast.LENGTH_LONG).show(); - } + if (app != null) { + client_idLogin = app.client_id; + client_secretLogin = app.client_secret; + String redirectUrl = MastodonHelper.authorizeURL(currentInstanceLogin, client_idLogin, ((LoginActivity) requireActivity()).requestedAdmin()); + SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); + boolean embedded_browser = sharedpreferences.getBoolean(getString(R.string.SET_EMBEDDED_BROWSER), true); + if (embedded_browser) { + Intent i = new Intent(requireActivity(), WebviewConnectActivity.class); + i.putExtra("login_url", redirectUrl); + i.putExtra("requestedAdmin", ((LoginActivity) requireActivity()).requestedAdmin()); + startActivity(i); + requireActivity().finish(); + } else { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setData(Uri.parse(redirectUrl)); + try { + startActivity(intent); + } catch (Exception e) { + Toasty.error(requireActivity(), getString(R.string.toast_error), Toast.LENGTH_LONG).show(); + } + } + } else { + Toasty.error(requireActivity(), getString(R.string.client_error), Toasty.LENGTH_SHORT).show(); } + }); } }
\ No newline at end of file |