diff --git a/app/src/main/java/org/thoughtcrime/securesms/blocked/BlockedUsersActivity.java b/app/src/main/java/org/thoughtcrime/securesms/blocked/BlockedUsersActivity.java index 5d80d79c3e..f5d33f7253 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/blocked/BlockedUsersActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/blocked/BlockedUsersActivity.java @@ -65,6 +65,10 @@ public class BlockedUsersActivity extends PassphraseRequiredActivity implements //noinspection CodeBlock2Expr getSupportFragmentManager().addOnBackStackChangedListener(() -> { viewSwitcher.setDisplayedChild(getSupportFragmentManager().getBackStackEntryCount()); + + if (getSupportFragmentManager().getBackStackEntryCount() == 1) { + contactFilterToolbar.focusAndShowKeyboard(); + } }); getSupportFragmentManager().beginTransaction() diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ContactFilterToolbar.java b/app/src/main/java/org/thoughtcrime/securesms/components/ContactFilterToolbar.java index 68a20046fd..d68058ae82 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ContactFilterToolbar.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ContactFilterToolbar.java @@ -19,6 +19,7 @@ import androidx.core.widget.TextViewCompat; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.util.ServiceUtil; +import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.views.DarkOverflowToolbar; public final class ContactFilterToolbar extends DarkOverflowToolbar { @@ -125,6 +126,10 @@ public final class ContactFilterToolbar extends DarkOverflowToolbar { attributes.recycle(); } + public void focusAndShowKeyboard() { + ViewUtil.focusAndShowKeyboard(searchText); + } + public void clear() { searchText.setText(""); notifyListener(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java index 09faeb9fdb..aef1404c87 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java @@ -27,6 +27,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewStub; +import android.view.ViewTreeObserver; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.view.inputmethod.InputMethodManager; @@ -51,6 +52,32 @@ public final class ViewUtil { private ViewUtil() { } + public static void focusAndShowKeyboard(@NonNull View view) { + view.requestFocus(); + if (view.hasWindowFocus()) { + showTheKeyboardNow(view); + } else { + view.getViewTreeObserver().addOnWindowFocusChangeListener(new ViewTreeObserver.OnWindowFocusChangeListener() { + @Override + public void onWindowFocusChanged(boolean hasFocus) { + if (hasFocus) { + showTheKeyboardNow(view); + view.getViewTreeObserver().removeOnWindowFocusChangeListener(this); + } + } + }); + } + } + + private static void showTheKeyboardNow(@NonNull View view) { + if (view.isFocused()) { + view.post(() -> { + InputMethodManager inputMethodManager = ServiceUtil.getInputMethodManager(view.getContext()); + inputMethodManager.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); + }); + } + } + public static void setBackground(final @NonNull View v, final @Nullable Drawable drawable) { v.setBackground(drawable); } diff --git a/app/src/main/res/layout/blocked_users_fragment.xml b/app/src/main/res/layout/blocked_users_fragment.xml index bd959d5856..240144f47d 100644 --- a/app/src/main/res/layout/blocked_users_fragment.xml +++ b/app/src/main/res/layout/blocked_users_fragment.xml @@ -49,7 +49,7 @@ android:layout_marginTop="29dp" android:layout_marginEnd="16dp" android:text="@string/BlockedUsersActivity__blocked_users" - android:textAppearance="@style/TextAppearance.Signal.Subtitle" + android:textAppearance="@style/TextAppearance.Signal.Body2.Bold" android:textColor="?colorAccent" android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent"