BoxNetSignInActivity.java 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package com.epson.iprint.storage.box;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.os.AsyncTask;
  6. import android.os.Bundle;
  7. import com.box.androidsdk.content.auth.BoxAuthentication;
  8. import com.epson.iprint.storage.StorageSignInActivity;
  9. import java.lang.ref.WeakReference;
  10. import epson.print.R;
  11. public class BoxNetSignInActivity extends StorageSignInActivity implements BoxAuthentication.AuthListener {
  12. private static final String PARAM_KEY_LOGOUT = "logout";
  13. private BoxNetClient mBoxClient;
  14. private boolean mModeLogout;
  15. public StorageSignInActivity.BasicSignIn getBasicSignIn() {
  16. return null;
  17. }
  18. public void onBackPressed() {
  19. }
  20. @NonNull
  21. public static Intent getLogoutIntent(@NonNull Context context) {
  22. Intent intent = new Intent(context, BoxNetSignInActivity.class);
  23. intent.putExtra(PARAM_KEY_LOGOUT, true);
  24. return intent;
  25. }
  26. protected void onCreate(Bundle bundle) {
  27. super.onCreate(bundle);
  28. this.mModeLogout = getMode(getIntent());
  29. if (this.mModeLogout) {
  30. setContentView((int) R.layout.storage_progress);
  31. findViewById(R.id.messageText).setVisibility(8);
  32. findViewById(R.id.cancelButton).setVisibility(8);
  33. }
  34. this.mBoxClient = BoxNetClient.getInstance();
  35. this.mBoxClient.setSessionAuthListener(this);
  36. if (this.mModeLogout) {
  37. startLogoutTask();
  38. } else {
  39. this.mBoxClient.authenticate();
  40. }
  41. }
  42. private boolean getMode(@Nullable Intent intent) {
  43. if (intent == null) {
  44. return false;
  45. }
  46. return intent.getBooleanExtra(PARAM_KEY_LOGOUT, false);
  47. }
  48. private void startLogoutTask() {
  49. if (this.mBoxClient == null) {
  50. finish();
  51. }
  52. new LogoutTask(this, this.mBoxClient).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, new Void[0]);
  53. }
  54. public void onRefreshed(BoxAuthentication.BoxAuthenticationInfo boxAuthenticationInfo) {
  55. this.mBoxClient.setLoginStatus(true);
  56. finish();
  57. }
  58. public void onAuthCreated(BoxAuthentication.BoxAuthenticationInfo boxAuthenticationInfo) {
  59. this.mBoxClient.setLoginStatus(true);
  60. finish();
  61. }
  62. public void onAuthFailure(BoxAuthentication.BoxAuthenticationInfo boxAuthenticationInfo, Exception exc) {
  63. this.mBoxClient.setLoginStatus(false);
  64. showLoginErrorAndFinish();
  65. }
  66. public void onLoggedOut(BoxAuthentication.BoxAuthenticationInfo boxAuthenticationInfo, Exception exc) {
  67. this.mBoxClient.setLoginStatus(false);
  68. finish();
  69. }
  70. private static class LogoutTask extends AsyncTask<Void, Void, Void> {
  71. private final WeakReference<Activity> mActivityReference;
  72. private final BoxNetClient mBoxNetClient;
  73. LogoutTask(Activity activity, @NonNull BoxNetClient boxNetClient) {
  74. this.mActivityReference = new WeakReference<>(activity);
  75. this.mBoxNetClient = boxNetClient;
  76. }
  77. protected Void doInBackground(Void... voidArr) {
  78. this.mBoxNetClient.boxLogout();
  79. return null;
  80. }
  81. }
  82. }