That fuck shit the fascists are using
at master 66 lines 2.5 kB view raw
1package org.tm.archive.delete; 2 3import android.os.Bundle; 4import android.text.Editable; 5import android.view.LayoutInflater; 6import android.view.View; 7import android.view.ViewGroup; 8import android.widget.EditText; 9 10import androidx.annotation.NonNull; 11import androidx.annotation.Nullable; 12import androidx.appcompat.widget.Toolbar; 13import androidx.fragment.app.DialogFragment; 14import androidx.fragment.app.FragmentManager; 15import androidx.lifecycle.ViewModelProvider; 16import androidx.recyclerview.widget.RecyclerView; 17 18import org.tm.archive.R; 19import org.tm.archive.util.text.AfterTextChanged; 20 21public class DeleteAccountCountryPickerFragment extends DialogFragment { 22 23 private DeleteAccountViewModel viewModel; 24 25 public static void show(@NonNull FragmentManager fragmentManager) { 26 new DeleteAccountCountryPickerFragment().show(fragmentManager, null); 27 } 28 29 @Override 30 public void onCreate(@Nullable Bundle savedInstanceState) { 31 super.onCreate(savedInstanceState); 32 33 setStyle(STYLE_NO_FRAME, R.style.Signal_DayNight_Dialog_FullScreen); 34 } 35 36 @Override 37 public @Nullable View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 38 return inflater.inflate(R.layout.delete_account_country_picker, container, false); 39 } 40 41 @Override 42 public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { 43 Toolbar toolbar = view.findViewById(R.id.delete_account_country_picker_toolbar); 44 EditText searchFilter = view.findViewById(R.id.delete_account_country_picker_filter); 45 RecyclerView recycler = view.findViewById(R.id.delete_account_country_picker_recycler); 46 DeleteAccountCountryPickerAdapter adapter = new DeleteAccountCountryPickerAdapter(this::onCountryPicked); 47 48 recycler.setAdapter(adapter); 49 50 toolbar.setNavigationOnClickListener(unused -> dismiss()); 51 52 viewModel = new ViewModelProvider(requireActivity()).get(DeleteAccountViewModel.class); 53 viewModel.getFilteredCountries().observe(getViewLifecycleOwner(), adapter::submitList); 54 55 searchFilter.addTextChangedListener(new AfterTextChanged(this::onQueryChanged)); 56 } 57 58 private void onQueryChanged(@NonNull Editable e) { 59 viewModel.onQueryChanged(e.toString()); 60 } 61 62 private void onCountryPicked(@NonNull Country country) { 63 viewModel.onRegionSelected(country.getRegion()); 64 dismissAllowingStateLoss(); 65 } 66}