diff options
author | drhaal <drhaal@protonmail.com> | 2021-06-08 22:45:32 +0300 |
---|---|---|
committer | drhaal <drhaal@protonmail.com> | 2021-06-08 22:45:32 +0300 |
commit | d68f2dfef20688874d6b836fdee9c602816adbab (patch) | |
tree | a49ce0d15aa169350f71e0a8fb15f4b8651b2ebd /app/src/main | |
parent | 47d5d577fd4a0d2533a8402ca01fffe93c60fd51 (diff) |
refactoring
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java | 9 | ||||
-rw-r--r-- | app/src/main/java/it/niedermann/owncloud/notes/shared/util/DisplayUtils.java | 21 |
2 files changed, 23 insertions, 7 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java index 56800527..cac5fdff 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java @@ -32,6 +32,7 @@ import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.databinding.FragmentNoteEditBinding; import it.niedermann.owncloud.notes.persistence.entity.Note; import it.niedermann.owncloud.notes.shared.model.ISyncCallback; +import it.niedermann.owncloud.notes.shared.util.DisplayUtils; import static androidx.core.view.ViewCompat.isAttachedToWindow; import static it.niedermann.owncloud.notes.shared.util.NoteUtil.getFontSizeFromPreferences; @@ -186,13 +187,7 @@ public class NoteEditFragment extends SearchableBaseNoteFragment { cancelTimers(); final View parentView = ((ViewGroup) requireActivity().findViewById(android.R.id.content)).getChildAt(0); - final int defaultKeyboardHeightDP = 100; - final int EstimatedKeyboardDP = defaultKeyboardHeightDP + (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? 48 : 0); - final Rect rect = new Rect(); - int estimatedKeyboardHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, EstimatedKeyboardDP, parentView.getResources().getDisplayMetrics()); - parentView.getWindowVisibleDisplayFrame(rect); - int heightDiff = parentView.getRootView().getHeight() - (rect.bottom - rect.top); - keyboardShown = heightDiff >= estimatedKeyboardHeight; + keyboardShown = DisplayUtils.isSoftKeyboardVisible(parentView); } private void cancelTimers() { diff --git a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/DisplayUtils.java b/app/src/main/java/it/niedermann/owncloud/notes/shared/util/DisplayUtils.java index b0adc011..80ac7de4 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/DisplayUtils.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/shared/util/DisplayUtils.java @@ -3,10 +3,14 @@ package it.niedermann.owncloud.notes.shared.util; import android.content.Context; import android.content.res.Resources; import android.graphics.Color; +import android.graphics.Rect; +import android.os.Build; import android.text.Spannable; import android.text.TextPaint; import android.text.TextUtils; import android.text.style.MetricAffectingSpan; +import android.util.TypedValue; +import android.view.View; import androidx.annotation.ColorInt; import androidx.annotation.NonNull; @@ -52,4 +56,21 @@ public class DisplayUtils { } return new NavigationItem.CategoryNavigationItem("category:" + counter.getCategory(), counter.getCategory(), counter.getTotalNotes(), icon, counter.getAccountId(), counter.getCategory()); } + + /** + * Android does not provide a way to get keyboard visibility prior to API 30 so we use a workaround + * @param parentView View + * @return keyboardVisibility Boolean + */ + public static boolean isSoftKeyboardVisible(View parentView){ + //Arbitrary keyboard height + final int defaultKeyboardHeightDP = 100; + final int EstimatedKeyboardDP = defaultKeyboardHeightDP + (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? 48 : 0); + final Rect rect = new Rect(); + + int estimatedKeyboardHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, EstimatedKeyboardDP, parentView.getResources().getDisplayMetrics()); + parentView.getWindowVisibleDisplayFrame(rect); + int heightDiff = parentView.getRootView().getHeight() - (rect.bottom - rect.top); + return heightDiff >= estimatedKeyboardHeight; + } } |