That fuck shit the fascists are using
1package org.tm.archive.wallpaper;
2
3import android.Manifest;
4import android.app.Activity;
5import android.content.Intent;
6import android.os.Bundle;
7import android.view.LayoutInflater;
8import android.view.View;
9import android.view.ViewGroup;
10import android.widget.Toast;
11
12import androidx.annotation.NonNull;
13import androidx.annotation.Nullable;
14import androidx.appcompat.widget.Toolbar;
15import androidx.fragment.app.Fragment;
16import androidx.lifecycle.ViewModelProvider;
17import androidx.navigation.Navigation;
18import androidx.recyclerview.widget.RecyclerView;
19
20import org.tm.archive.R;
21import org.tm.archive.permissions.PermissionCompat;
22import org.tm.archive.permissions.Permissions;
23import org.tm.archive.wallpaper.crop.WallpaperImageSelectionActivity;
24
25public class ChatWallpaperSelectionFragment extends Fragment {
26
27 private static final short CHOOSE_WALLPAPER = 1;
28
29 private ChatWallpaperViewModel viewModel;
30
31 @Override
32 public @Nullable View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
33 return inflater.inflate(R.layout.chat_wallpaper_selection_fragment, container, false);
34 }
35
36 @Override
37 public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
38 Toolbar toolbar = view.findViewById(R.id.toolbar);
39 View chooseFromPhotos = view.findViewById(R.id.chat_wallpaper_choose_from_photos);
40 RecyclerView recyclerView = view.findViewById(R.id.chat_wallpaper_recycler);
41
42 chooseFromPhotos.setOnClickListener(unused -> {
43 askForPermissionIfNeededAndLaunchPhotoSelection();
44 });
45
46 toolbar.setTitle(R.string.preferences__chat_color_and_wallpaper);
47 toolbar.setNavigationOnClickListener(nav -> Navigation.findNavController(nav).popBackStack());
48
49 @SuppressWarnings("CodeBlock2Expr")
50 ChatWallpaperSelectionAdapter adapter = new ChatWallpaperSelectionAdapter(chatWallpaper -> {
51 startActivityForResult(ChatWallpaperPreviewActivity.create(requireActivity(), chatWallpaper, viewModel.getRecipientId(), viewModel.getDimInDarkTheme().getValue()), CHOOSE_WALLPAPER);
52 });
53
54 recyclerView.setAdapter(adapter);
55
56 viewModel = new ViewModelProvider(requireActivity()).get(ChatWallpaperViewModel.class);
57 viewModel.getWallpapers().observe(getViewLifecycleOwner(), adapter::submitList);
58 }
59
60 @Override
61 public void onResume() {
62 super.onResume();
63 viewModel.refreshWallpaper();
64 }
65
66 @Override
67 public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
68 if (requestCode == CHOOSE_WALLPAPER && resultCode == Activity.RESULT_OK && data != null) {
69 ChatWallpaper chatWallpaper = data.getParcelableExtra(ChatWallpaperPreviewActivity.EXTRA_CHAT_WALLPAPER);
70 viewModel.setWallpaper(chatWallpaper);
71 viewModel.saveWallpaperSelection();
72 Navigation.findNavController(requireView()).popBackStack();
73 } else {
74 super.onActivityResult(requestCode, resultCode, data);
75 }
76 }
77
78 private void askForPermissionIfNeededAndLaunchPhotoSelection() {
79 Permissions.with(this)
80 .request(PermissionCompat.forImages())
81 .ifNecessary()
82 .onAllGranted(() -> {
83 startActivityForResult(WallpaperImageSelectionActivity.getIntent(requireContext(), viewModel.getRecipientId()), CHOOSE_WALLPAPER);
84 })
85 .onAnyDenied(() -> Toast.makeText(requireContext(), R.string.ChatWallpaperPreviewActivity__viewing_your_gallery_requires_the_storage_permission, Toast.LENGTH_SHORT)
86 .show())
87 .execute();
88 }
89}