mirror of
https://github.com/M66B/FairEmail.git
synced 2025-03-15 08:29:24 +00:00
First hide keyboard on back
This commit is contained in:
parent
84e703bacf
commit
617824ff3e
10 changed files with 54 additions and 7 deletions
|
@ -318,7 +318,10 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac
|
|||
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
onExit();
|
||||
if (Helper.isKeyboardVisible(view))
|
||||
Helper.hideKeyboard(view);
|
||||
else
|
||||
onExit();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -160,6 +160,11 @@ public class ActivitySignature extends ActivityBase {
|
|||
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
if (Helper.isKeyboardVisible(view)) {
|
||||
Helper.hideKeyboard(view);
|
||||
return;
|
||||
}
|
||||
|
||||
String prev = getIntent().getStringExtra("html");
|
||||
String current = getHtml();
|
||||
boolean dirty = !Objects.equals(prev, current) &&
|
||||
|
|
|
@ -699,7 +699,10 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
|||
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
onExit();
|
||||
if (Helper.isKeyboardVisible(view))
|
||||
Helper.hideKeyboard(view);
|
||||
else
|
||||
onExit();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -493,7 +493,10 @@ public class FragmentAccount extends FragmentBase {
|
|||
getActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
onSave(true);
|
||||
if (Helper.isKeyboardVisible(view))
|
||||
Helper.hideKeyboard(view);
|
||||
else
|
||||
onSave(true);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -7210,7 +7210,10 @@ public class FragmentCompose extends FragmentBase {
|
|||
private OnBackPressedCallback backPressedCallback = new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
onExit();
|
||||
if (Helper.isKeyboardVisible(view))
|
||||
Helper.hideKeyboard(view);
|
||||
else
|
||||
onExit();
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -241,7 +241,10 @@ public class FragmentFolder extends FragmentBase {
|
|||
getActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
onSave(true);
|
||||
if (Helper.isKeyboardVisible(view))
|
||||
Helper.hideKeyboard(view);
|
||||
else
|
||||
onSave(true);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -494,7 +494,10 @@ public class FragmentIdentity extends FragmentBase {
|
|||
getActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
onSave(true);
|
||||
if (Helper.isKeyboardVisible(view))
|
||||
Helper.hideKeyboard(view);
|
||||
else
|
||||
onSave(true);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -7342,6 +7342,11 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
|||
private OnBackPressedCallback backPressedCallback = new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
if (Helper.isKeyboardVisible(view)) {
|
||||
Helper.hideKeyboard(view);
|
||||
return;
|
||||
}
|
||||
|
||||
if (isSearching()) {
|
||||
endSearch();
|
||||
return;
|
||||
|
|
|
@ -278,7 +278,10 @@ public class FragmentPop extends FragmentBase {
|
|||
getActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
onSave(true);
|
||||
if (Helper.isKeyboardVisible(view))
|
||||
Helper.hideKeyboard(view);
|
||||
else
|
||||
onSave(true);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -103,6 +103,8 @@ import androidx.browser.customtabs.CustomTabsIntent;
|
|||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.content.FileProvider;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
|
@ -1524,6 +1526,20 @@ public class Helper {
|
|||
}
|
||||
}
|
||||
|
||||
static boolean isKeyboardVisible(final View view) {
|
||||
if (view == null)
|
||||
return false;
|
||||
View root = view.getRootView();
|
||||
if (root == null)
|
||||
return false;
|
||||
WindowInsetsCompat insets = ViewCompat.getRootWindowInsets(root);
|
||||
if (insets == null)
|
||||
return false;
|
||||
boolean visible = insets.isVisible(WindowInsetsCompat.Type.ime());
|
||||
Log.i("isKeyboardVisible=" + visible);
|
||||
return visible;
|
||||
}
|
||||
|
||||
static String getViewName(View view) {
|
||||
StringBuilder sb = new StringBuilder(_getViewName(view));
|
||||
ViewParent parent = view.getParent();
|
||||
|
|
Loading…
Add table
Reference in a new issue