From d3597b80a684e7bd306be6ee53ef0e5a29fcb4cc Mon Sep 17 00:00:00 2001 From: Ujjwal Agrawal Date: Thu, 3 May 2018 02:47:56 +0530 Subject: [PATCH] Added hideKeyboard in ViewUtil (#1488) --- .../free/nrw/commons/auth/LoginActivity.java | 15 +++---------- .../category/CategorizationFragment.java | 15 ++----------- .../upload/MultipleUploadListFragment.java | 14 +++--------- .../nrw/commons/upload/ShareActivity.java | 10 ++------- .../commons/upload/SingleUploadFragment.java | 22 ++++--------------- .../fr/free/nrw/commons/utils/ViewUtil.java | 11 ++++++++++ 6 files changed, 25 insertions(+), 62 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java index 7b2b0a97f..d0fb628e3 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java @@ -47,6 +47,7 @@ import fr.free.nrw.commons.di.ApplicationlessInjection; import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.theme.NavigationBaseActivity; import fr.free.nrw.commons.ui.widget.HtmlTextView; +import fr.free.nrw.commons.utils.ViewUtil; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; @@ -109,14 +110,14 @@ public class LoginActivity extends AccountAuthenticatorActivity { usernameEdit.addTextChangedListener(textWatcher); usernameEdit.setOnFocusChangeListener((v, hasFocus) -> { if (!hasFocus) { - hideKeyboard(v); + ViewUtil.hideKeyboard(v); } }); passwordEdit.addTextChangedListener(textWatcher); passwordEdit.setOnFocusChangeListener((v, hasFocus) -> { if (!hasFocus) { - hideKeyboard(v); + ViewUtil.hideKeyboard(v); } }); @@ -144,16 +145,6 @@ public class LoginActivity extends AccountAuthenticatorActivity { Utils.handleWebUrl(this,Uri.parse("https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\\")); } - public void hideKeyboard(View view) { - if (view != null) { - InputMethodManager inputMethodManager = (InputMethodManager) this.getSystemService(Activity.INPUT_METHOD_SERVICE); - if (inputMethodManager != null) { - inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); - } - } - } - - @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 101d4b21e..e804189ab 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -1,7 +1,6 @@ package fr.free.nrw.commons.category; -import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.support.v7.app.AlertDialog; @@ -16,7 +15,6 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.ProgressBar; import android.widget.TextView; @@ -43,6 +41,7 @@ import fr.free.nrw.commons.di.CommonsDaggerSupportFragment; import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.upload.MwVolleyApi; import fr.free.nrw.commons.utils.StringSortingUtils; +import fr.free.nrw.commons.utils.ViewUtil; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; @@ -116,7 +115,7 @@ public class CategorizationFragment extends CommonsDaggerSupportFragment { categoriesFilter.setOnFocusChangeListener((v, hasFocus) -> { if (!hasFocus) { - hideKeyboard(v); + ViewUtil.hideKeyboard(v); } }); @@ -128,16 +127,6 @@ public class CategorizationFragment extends CommonsDaggerSupportFragment { return rootView; } - public void hideKeyboard(View view) { - - if (view != null) { - InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE); - if (inputMethodManager != null) { - inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); - } - } - } - @Override public void onDestroyView() { categoriesFilter.removeTextChangedListener(textWatcher); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/MultipleUploadListFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/MultipleUploadListFragment.java index c7f3c39c0..4390bcef4 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/MultipleUploadListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/MultipleUploadListFragment.java @@ -33,6 +33,7 @@ import dagger.android.support.AndroidSupportInjection; import fr.free.nrw.commons.R; import fr.free.nrw.commons.contributions.Contribution; import fr.free.nrw.commons.media.MediaDetailPagerFragment; +import fr.free.nrw.commons.utils.ViewUtil; public class MultipleUploadListFragment extends Fragment { @@ -129,7 +130,7 @@ public class MultipleUploadListFragment extends Fragment { // FIXME: Stops the keyboard from being shown 'stale' while moving out of this fragment into the next View target = getActivity().getCurrentFocus(); - hideKeyboard(target); + ViewUtil.hideKeyboard(target); } // FIXME: Wrong result type @@ -178,22 +179,13 @@ public class MultipleUploadListFragment extends Fragment { baseTitle.setOnFocusChangeListener((v, hasFocus) -> { if (!hasFocus) { - hideKeyboard(v); + ViewUtil.hideKeyboard(v); } }); return view; } - public void hideKeyboard(View view) { - if (view != null) { - InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE); - if (inputMethodManager != null) { - inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); - } - } - } - @Override public void onDestroyView() { baseTitle.removeTextChangedListener(textWatcher); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index aea703f5e..77f76fbed 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -78,6 +78,7 @@ import fr.free.nrw.commons.modifications.TemplateRemoveModifier; import fr.free.nrw.commons.utils.ImageUtils; import fr.free.nrw.commons.mwapi.MediaWikiApi; +import fr.free.nrw.commons.utils.ViewUtil; import timber.log.Timber; @@ -735,7 +736,7 @@ public class ShareActivity if (CurrentAnimator != null) { CurrentAnimator.cancel(); } - hideKeyboard(ShareActivity.this); + ViewUtil.hideKeyboard(ShareActivity.this.findViewById(R.id.titleEdit | R.id.descEdit)); InputStream input = null; Bitmap scaled = null; try { @@ -905,12 +906,5 @@ public class ShareActivity }); } - public static void hideKeyboard(Activity activity) { - View view = activity.findViewById(R.id.titleEdit | R.id.descEdit); - if (view != null) { - InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(view.getWindowToken(), 0); - } - } } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java index 56d443d08..a32fb7b42 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java @@ -1,8 +1,6 @@ package fr.free.nrw.commons.upload; import android.annotation.SuppressLint; -import android.app.Activity; - import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; @@ -11,12 +9,10 @@ import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.support.v4.view.ViewCompat; import android.support.v7.app.AlertDialog; - import android.text.Editable; import android.text.Html; import android.text.TextWatcher; import android.text.method.LinkMovementMethod; - import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -24,7 +20,6 @@ import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; -import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; @@ -47,9 +42,9 @@ import fr.free.nrw.commons.R; import fr.free.nrw.commons.Utils; import fr.free.nrw.commons.di.CommonsDaggerSupportFragment; import fr.free.nrw.commons.settings.Prefs; +import fr.free.nrw.commons.utils.ViewUtil; import timber.log.Timber; -import static android.view.MotionEvent.ACTION_DOWN; import static android.view.MotionEvent.ACTION_UP; public class SingleUploadFragment extends CommonsDaggerSupportFragment { @@ -168,13 +163,13 @@ public class SingleUploadFragment extends CommonsDaggerSupportFragment { titleEdit.setOnFocusChangeListener((v, hasFocus) -> { if (!hasFocus) { - hideKeyboard(v); + ViewUtil.hideKeyboard(v); } }); descEdit.setOnFocusChangeListener((v, hasFocus) -> { if(!hasFocus){ - hideKeyboard(v); + ViewUtil.hideKeyboard(v); } }); @@ -183,15 +178,6 @@ public class SingleUploadFragment extends CommonsDaggerSupportFragment { return rootView; } - public void hideKeyboard(View view) { - if (view != null) { - InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE); - if (inputMethodManager != null) { - inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); - } - } - } - @Override public void onDestroyView() { titleEdit.removeTextChangedListener(textWatcher); @@ -305,7 +291,7 @@ public class SingleUploadFragment extends CommonsDaggerSupportFragment { // FIXME: Stops the keyboard from being shown 'stale' while moving out of this fragment into the next View target = getActivity().getCurrentFocus(); - hideKeyboard(target); + ViewUtil.hideKeyboard(target); } @NonNull diff --git a/app/src/main/java/fr/free/nrw/commons/utils/ViewUtil.java b/app/src/main/java/fr/free/nrw/commons/utils/ViewUtil.java index b4b26746b..1c45e8178 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/ViewUtil.java +++ b/app/src/main/java/fr/free/nrw/commons/utils/ViewUtil.java @@ -5,6 +5,7 @@ import android.content.Context; import android.support.design.widget.Snackbar; import android.view.Display; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.Toast; public class ViewUtil { @@ -27,4 +28,14 @@ public class ViewUtil { } } + public static void hideKeyboard(View view){ + if (view != null) { + InputMethodManager manager = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + view.clearFocus(); + if (manager != null) { + manager.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + } + } + }