That fuck shit the fascists are using
at master 57 lines 1.7 kB view raw
1package org.tm.archive.components; 2 3import android.content.Context; 4import android.text.InputFilter; 5import android.util.AttributeSet; 6import android.widget.TextView; 7 8import androidx.annotation.AttrRes; 9import androidx.annotation.NonNull; 10import androidx.annotation.Nullable; 11 12import org.tm.archive.R; 13import org.tm.archive.components.emoji.EmojiFilter; 14import org.tm.archive.keyvalue.SignalStore; 15 16/** 17 * Custom styled search view that we can insert into ActionBar menus 18 */ 19public class SearchView extends androidx.appcompat.widget.SearchView { 20 public SearchView(@NonNull Context context) { 21 this(context, null); 22 } 23 24 public SearchView(@NonNull Context context, @Nullable AttributeSet attrs) { 25 this(context, attrs, R.attr.search_view_style); 26 } 27 28 public SearchView(@NonNull Context context, @Nullable AttributeSet attrs, @AttrRes int defStyleAttr) { 29 super(context, attrs, defStyleAttr); 30 initEmojiFilter(); 31 } 32 33 private void initEmojiFilter() { 34 if (!isInEditMode() && !SignalStore.settings().isPreferSystemEmoji()) { 35 TextView searchText = findViewById(androidx.appcompat.R.id.search_src_text); 36 if (searchText != null) { 37 searchText.setFilters(appendEmojiFilter(searchText)); 38 } 39 } 40 } 41 42 private InputFilter[] appendEmojiFilter(@NonNull TextView view) { 43 InputFilter[] originalFilters = view.getFilters(); 44 InputFilter[] result; 45 46 if (originalFilters != null) { 47 result = new InputFilter[originalFilters.length + 1]; 48 System.arraycopy(originalFilters, 0, result, 1, originalFilters.length); 49 } else { 50 result = new InputFilter[1]; 51 } 52 53 result[0] = new EmojiFilter(view, false); 54 55 return result; 56 } 57}