StorageSignInActivity.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package com.epson.iprint.storage;
  2. import android.content.Context;
  3. import android.content.Intent;
  4. import android.os.AsyncTask;
  5. import android.os.Bundle;
  6. import android.view.Menu;
  7. import android.view.MenuItem;
  8. import android.widget.EditText;
  9. import com.epson.iprint.storage.box.BoxNetSignInActivity;
  10. import com.epson.iprint.storage.dropbox.DropboxV2SignInActivity;
  11. import com.epson.iprint.storage.evernote.EvernoteSignInActivity;
  12. import com.epson.iprint.storage.gdrivev3.GoogleV3UploadSignInActivity;
  13. import com.epson.iprint.storage.onedrive.OneDriveSignInActivity;
  14. import epson.print.R;
  15. public abstract class StorageSignInActivity extends StorageActivity {
  16. private static final String EXTRA_SERVER_NAME = "StorageSignInActivity.ServerName";
  17. private final int DEFAULT_INPUT_MAX_LENGTH = 256;
  18. private BasicSignIn mBasicSignIn;
  19. private StorageActivity.OverlayProgress mProgressUntilOnDestroy;
  20. public interface BasicSignIn {
  21. boolean signInBackground(String str, String str2);
  22. }
  23. private int getMaxLengthUsername() {
  24. return 256;
  25. }
  26. public abstract BasicSignIn getBasicSignIn();
  27. protected int getMaxLengthPassword() {
  28. return 256;
  29. }
  30. public /* bridge */ /* synthetic */ boolean isConnected() {
  31. return super.isConnected();
  32. }
  33. private static Class<?> getActivityClass(String str) {
  34. if (str.equals(StorageServiceClient.STORAGE_GOOGLEDRIVE)) {
  35. return GoogleV3UploadSignInActivity.class;
  36. }
  37. if (str.equals(StorageServiceClient.STORAGE_DROPBOX)) {
  38. return DropboxV2SignInActivity.class;
  39. }
  40. if (str.equals(StorageServiceClient.STORAGE_BOX)) {
  41. return BoxNetSignInActivity.class;
  42. }
  43. if (str.equals(StorageServiceClient.STORAGE_EVERNOTE)) {
  44. return EvernoteSignInActivity.class;
  45. }
  46. if (str.equals(StorageServiceClient.STORAGE_ONEDRIVE)) {
  47. return OneDriveSignInActivity.class;
  48. }
  49. return null;
  50. }
  51. public static Intent getStartIntent(Context context, String str, String str2) {
  52. Intent intent = new Intent(context, getActivityClass(str));
  53. intent.putExtra(EXTRA_SERVER_NAME, str2);
  54. return intent;
  55. }
  56. protected void onCreate(Bundle bundle) {
  57. super.onCreate(bundle);
  58. BasicSignIn basicSignIn = getBasicSignIn();
  59. if (basicSignIn != null) {
  60. onInitBasicSignIn(basicSignIn);
  61. }
  62. }
  63. protected void onDestroy() {
  64. StorageActivity.OverlayProgress overlayProgress = mProgressUntilOnDestroy;
  65. if (overlayProgress != null) {
  66. overlayProgress.dismiss();
  67. mProgressUntilOnDestroy = null;
  68. }
  69. super.onDestroy();
  70. }
  71. protected void onInitBasicSignIn(BasicSignIn basicSignIn) {
  72. mBasicSignIn = basicSignIn;
  73. setContentView((int) R.layout.login_screen_layout);
  74. setActionBar(getIntent().getStringExtra(EXTRA_SERVER_NAME), true);
  75. setInputMaxLength((EditText) findViewById(R.id.login_username_content), getMaxLengthUsername());
  76. setInputMaxLength((EditText) findViewById(R.id.login_password_content), getMaxLengthPassword());
  77. bindClearButton(R.id.login_username_content, R.id.clear_id_btn);
  78. bindClearButton(R.id.login_password_content, R.id.clear_password_btn);
  79. }
  80. protected void showLoginError() {
  81. showErrorDialog((int) R.string.authenticate_error_mes);
  82. }
  83. protected void showLoginErrorAndFinish() {
  84. showErrorDialogAndFinish(getString(R.string.authenticate_error_mes));
  85. }
  86. class BasicSignInTask extends AsyncTask<Void, Void, Boolean> {
  87. private String mPassword;
  88. private String mUserName;
  89. StorageActivity.OverlayProgress progress;
  90. BasicSignInTask() {
  91. mUserName = ((EditText) findViewById(R.id.login_username_content)).getText().toString();
  92. mPassword = ((EditText) findViewById(R.id.login_password_content)).getText().toString();
  93. }
  94. protected Boolean doInBackground(Void... voidArr) {
  95. progress = new StorageActivity.OverlayProgress();
  96. progress.show();
  97. return Boolean.valueOf(mBasicSignIn.signInBackground(mUserName, mPassword));
  98. }
  99. protected void onPostExecute(Boolean bool) {
  100. if (!bool.booleanValue()) {
  101. showLoginError();
  102. progress.dismiss();
  103. return;
  104. }
  105. progress.dismiss();
  106. finish();
  107. }
  108. }
  109. public boolean onOptionsItemSelected(MenuItem menuItem) {
  110. if (menuItem.getItemId() != R.id.menu_signin) {
  111. return super.onOptionsItemSelected(menuItem);
  112. }
  113. new BasicSignInTask().execute(new Void[0]);
  114. return true;
  115. }
  116. public boolean onCreateOptionsMenu(Menu menu) {
  117. getMenuInflater().inflate(R.C2138menu.menu_sign_inout, menu);
  118. menu.removeItem(R.id.menu_signout);
  119. return super.onCreateOptionsMenu(menu);
  120. }
  121. }