Эх сурвалжийг харах

Close softkeyboard when passcode is processed to prevent it's still visible in passcode-protected Uploader activity

David A. Velasco 9 жил өмнө
parent
commit
1f117f1242

+ 40 - 43
src/com/owncloud/android/MainApp.java

@@ -25,7 +25,6 @@ import android.app.Application;
 import android.content.Context;
 import android.content.Context;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager;
-import android.os.Build;
 import android.os.Bundle;
 import android.os.Bundle;
 
 
 import com.owncloud.android.authentication.PassCodeManager;
 import com.owncloud.android.authentication.PassCodeManager;
@@ -87,48 +86,46 @@ public class MainApp extends Application {
         }
         }
 
 
         // register global protection with pass code
         // register global protection with pass code
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
-            this.registerActivityLifecycleCallbacks( new ActivityLifecycleCallbacks() {
-
-                @Override
-                public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
-                    Log_OC.d(activity.getClass().getSimpleName(),  "onCreate(Bundle) starting" );
-                    PassCodeManager.getPassCodeManager().onActivityCreated(activity);
-                }
-
-                @Override
-                public void onActivityStarted(Activity activity) {
-                    Log_OC.d(activity.getClass().getSimpleName(),  "onStart() starting" );
-                    PassCodeManager.getPassCodeManager().onActivityStarted(activity);
-                }
-
-                @Override
-                public void onActivityResumed(Activity activity) {
-                    Log_OC.d(activity.getClass().getSimpleName(), "onResume() starting" );
-                }
-
-                @Override
-                public void onActivityPaused(Activity activity) {
-                    Log_OC.d(activity.getClass().getSimpleName(), "onPause() ending");
-                }
-
-                @Override
-                public void onActivityStopped(Activity activity) {
-                    Log_OC.d(activity.getClass().getSimpleName(), "onStop() ending" );
-                    PassCodeManager.getPassCodeManager().onActivityStopped(activity);
-                }
-
-                @Override
-                public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
-                    Log_OC.d(activity.getClass().getSimpleName(), "onSaveInstanceState(Bundle) starting" );
-                }
-
-                @Override
-                public void onActivityDestroyed(Activity activity) {
-                    Log_OC.d(activity.getClass().getSimpleName(), "onDestroy() ending" );
-                }
-            });
-        }
+        registerActivityLifecycleCallbacks( new ActivityLifecycleCallbacks() {
+
+            @Override
+            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
+                Log_OC.d(activity.getClass().getSimpleName(),  "onCreate(Bundle) starting" );
+                PassCodeManager.getPassCodeManager().onActivityCreated(activity);
+            }
+
+            @Override
+            public void onActivityStarted(Activity activity) {
+                Log_OC.d(activity.getClass().getSimpleName(),  "onStart() starting" );
+                PassCodeManager.getPassCodeManager().onActivityStarted(activity);
+            }
+
+            @Override
+            public void onActivityResumed(Activity activity) {
+                Log_OC.d(activity.getClass().getSimpleName(), "onResume() starting" );
+            }
+
+            @Override
+            public void onActivityPaused(Activity activity) {
+                Log_OC.d(activity.getClass().getSimpleName(), "onPause() ending");
+            }
+
+            @Override
+            public void onActivityStopped(Activity activity) {
+                Log_OC.d(activity.getClass().getSimpleName(), "onStop() ending" );
+                PassCodeManager.getPassCodeManager().onActivityStopped(activity);
+            }
+
+            @Override
+            public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
+                Log_OC.d(activity.getClass().getSimpleName(), "onSaveInstanceState(Bundle) starting" );
+            }
+
+            @Override
+            public void onActivityDestroyed(Activity activity) {
+                Log_OC.d(activity.getClass().getSimpleName(), "onDestroy() ending" );
+            }
+        });
     }
     }
 
 
     public static Context getAppContext() {
     public static Context getAppContext() {

+ 14 - 1
src/com/owncloud/android/ui/activity/PassCodeActivity.java

@@ -35,6 +35,7 @@ import android.text.TextWatcher;
 import android.view.KeyEvent;
 import android.view.KeyEvent;
 import android.view.View;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.View.OnClickListener;
+import android.view.inputmethod.InputMethodManager;
 import android.widget.Button;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.EditText;
 import android.widget.TextView;
 import android.widget.TextView;
@@ -298,6 +299,7 @@ public class PassCodeActivity extends AppCompatActivity {
         if (ACTION_CHECK.equals(getIntent().getAction())) {
         if (ACTION_CHECK.equals(getIntent().getAction())) {
             if (checkPassCode()) {
             if (checkPassCode()) {
                 /// pass code accepted in request, user is allowed to access the app
                 /// pass code accepted in request, user is allowed to access the app
+                hideSoftKeyboard();
                 finish();
                 finish();
 
 
             }  else {
             }  else {
@@ -310,7 +312,7 @@ public class PassCodeActivity extends AppCompatActivity {
                 Intent resultIntent = new Intent();
                 Intent resultIntent = new Intent();
                 resultIntent.putExtra(KEY_CHECK_RESULT, true);
                 resultIntent.putExtra(KEY_CHECK_RESULT, true);
                 setResult(RESULT_OK, resultIntent);
                 setResult(RESULT_OK, resultIntent);
-
+                hideSoftKeyboard();
                 finish();
                 finish();
             } else {
             } else {
                 showErrorAndRestart(R.string.pass_code_wrong, R.string.pass_code_enter_pass_code,
                 showErrorAndRestart(R.string.pass_code_wrong, R.string.pass_code_enter_pass_code,
@@ -334,6 +336,17 @@ public class PassCodeActivity extends AppCompatActivity {
         }
         }
     }
     }
 
 
+    private void hideSoftKeyboard() {
+        View focusedView = getCurrentFocus();
+        if (focusedView != null) {
+            InputMethodManager inputMethodManager =
+                (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
+            inputMethodManager.hideSoftInputFromWindow(
+                focusedView.getWindowToken(),
+                0
+            );
+        }
+    }
 
 
     private void showErrorAndRestart(int errorMessage, int headerMessage,
     private void showErrorAndRestart(int errorMessage, int headerMessage,
                                      int explanationVisibility) {
                                      int explanationVisibility) {