That fuck shit the fascists are using
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}