kopia lustrzana https://github.com/ryukoposting/Signal-Android
Add EmojiFilter to SearchView input field.
rodzic
bf37d412e9
commit
2f3d04d3e8
|
@ -1,32 +0,0 @@
|
|||
package org.thoughtcrime.securesms.components;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.widget.EditText;
|
||||
|
||||
import androidx.annotation.AttrRes;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
|
||||
/**
|
||||
* Custom styled search view that we can insert into ActionBar menus
|
||||
*/
|
||||
public class DarkSearchView extends androidx.appcompat.widget.SearchView {
|
||||
public DarkSearchView(@NonNull Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public DarkSearchView(@NonNull Context context, @Nullable AttributeSet attrs) {
|
||||
this(context, attrs, R.attr.search_view_style_dark);
|
||||
}
|
||||
|
||||
public DarkSearchView(@NonNull Context context, @Nullable AttributeSet attrs, @AttrRes int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
|
||||
EditText searchText = findViewById(androidx.appcompat.R.id.search_src_text);
|
||||
searchText.setTextColor(ContextCompat.getColor(context, R.color.signal_text_toolbar_subtitle));
|
||||
}
|
||||
}
|
|
@ -1,13 +1,17 @@
|
|||
package org.thoughtcrime.securesms.components;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.InputFilter;
|
||||
import android.util.AttributeSet;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.AttrRes;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.components.emoji.EmojiFilter;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
|
||||
/**
|
||||
* Custom styled search view that we can insert into ActionBar menus
|
||||
|
@ -23,5 +27,31 @@ public class SearchView extends androidx.appcompat.widget.SearchView {
|
|||
|
||||
public SearchView(@NonNull Context context, @Nullable AttributeSet attrs, @AttrRes int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
initEmojiFilter();
|
||||
}
|
||||
|
||||
private void initEmojiFilter() {
|
||||
if (!isInEditMode() && !SignalStore.settings().isPreferSystemEmoji()) {
|
||||
TextView searchText = findViewById(androidx.appcompat.R.id.search_src_text);
|
||||
if (searchText != null) {
|
||||
searchText.setFilters(appendEmojiFilter(searchText));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private InputFilter[] appendEmojiFilter(@NonNull TextView view) {
|
||||
InputFilter[] originalFilters = view.getFilters();
|
||||
InputFilter[] result;
|
||||
|
||||
if (originalFilters != null) {
|
||||
result = new InputFilter[originalFilters.length + 1];
|
||||
System.arraycopy(originalFilters, 0, result, 1, originalFilters.length);
|
||||
} else {
|
||||
result = new InputFilter[1];
|
||||
}
|
||||
|
||||
result[0] = new EmojiFilter(view);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
<attr name="theme_type" format="string"/>
|
||||
|
||||
<attr name="search_view_style" format="reference" />
|
||||
<attr name="search_view_style_dark" format="reference" />
|
||||
|
||||
<attr name="emoji_category_recent" format="reference"/>
|
||||
<attr name="emoji_category_people" format="reference"/>
|
||||
|
|
|
@ -356,12 +356,6 @@
|
|||
<item name="searchIcon">@drawable/ic_search_24</item>
|
||||
</style>
|
||||
|
||||
<style name="Signal.SearchView.Dark">
|
||||
<item name="closeIcon">@drawable/ic_x_conversation_20</item>
|
||||
<item name="searchHintIcon">@drawable/ic_search_conversation_24</item>
|
||||
<item name="searchIcon">@drawable/ic_search_conversation_24</item>
|
||||
</style>
|
||||
|
||||
<style name="Signal.Toolbar.Overflow" parent="Widget.AppCompat.ActionButton.Overflow">
|
||||
<item name="srcCompat">@drawable/ic_more_vert_24</item>
|
||||
<item name="android:src">@null</item>
|
||||
|
|
|
@ -128,7 +128,6 @@
|
|||
<item name="theme_type">light</item>
|
||||
|
||||
<item name="search_view_style">@style/Signal.SearchView</item>
|
||||
<item name="search_view_style_dark">@style/Signal.SearchView.Dark</item>
|
||||
|
||||
<item name="bottomSheetDialogTheme">@style/Theme.Design.Light.BottomSheetDialog</item>
|
||||
|
||||
|
@ -183,7 +182,6 @@
|
|||
<item name="theme_type">dark</item>
|
||||
|
||||
<item name="search_view_style">@style/Signal.SearchView</item>
|
||||
<item name="search_view_style_dark">@style/Signal.SearchView.Dark</item>
|
||||
|
||||
<item name="bottomSheetDialogTheme">@style/Theme.Design.BottomSheetDialog</item>
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue