Upgrade several AndroidX Libraries.

AppCompat 1.2.0 to 1.5.1
Lifecycle 2.3.1 to 2.5.1
Navigation 2.3.5 to 2.5.2
Fragment 1.3.5 to 1.5.2
Annotations 1.2.0 to 1.4.0
Window 1.0.0-alpha09 to 1.0.0
AAPT2 to 7.0.4
Fragment-Testing 1.3.5 to 1.5.2 (matching Fragment)
fork-5.53.8
Alex Hart 2022-09-13 11:16:01 -03:00 zatwierdzone przez Greyson Parrelli
rodzic 9331e9ce89
commit 26bebb9811
86 zmienionych plików z 1398 dodań i 362 usunięć

Wyświetl plik

@ -417,10 +417,11 @@ dependencies {
implementation (libs.androidx.appcompat) { implementation (libs.androidx.appcompat) {
version { version {
strictly '1.2.0' strictly '1.5.1'
} }
} }
implementation libs.androidx.window implementation libs.androidx.window.window
implementation libs.androidx.window.java
implementation libs.androidx.recyclerview implementation libs.androidx.recyclerview
implementation libs.material.material implementation libs.material.material
implementation libs.androidx.legacy.support implementation libs.androidx.legacy.support
@ -433,7 +434,9 @@ dependencies {
implementation libs.androidx.multidex implementation libs.androidx.multidex
implementation libs.androidx.navigation.fragment.ktx implementation libs.androidx.navigation.fragment.ktx
implementation libs.androidx.navigation.ui.ktx implementation libs.androidx.navigation.ui.ktx
implementation libs.androidx.lifecycle.extensions implementation libs.androidx.lifecycle.viewmodel.ktx
implementation libs.androidx.lifecycle.livedata.ktx
implementation libs.androidx.lifecycle.process
implementation libs.androidx.lifecycle.viewmodel.savedstate implementation libs.androidx.lifecycle.viewmodel.savedstate
implementation libs.androidx.lifecycle.common.java8 implementation libs.androidx.lifecycle.common.java8
implementation libs.androidx.lifecycle.reactivestreams.ktx implementation libs.androidx.lifecycle.reactivestreams.ktx
@ -561,7 +564,7 @@ dependencies {
androidTestImplementation testLibs.mockito.kotlin androidTestImplementation testLibs.mockito.kotlin
androidTestImplementation testLibs.square.okhttp.mockserver androidTestImplementation testLibs.square.okhttp.mockserver
instrumentationImplementation (testLibs.androidx.fragment.testing) { instrumentationImplementation (libs.androidx.fragment.testing) {
exclude group: 'androidx.test', module: 'core' exclude group: 'androidx.test', module: 'core'
} }

Wyświetl plik

@ -44,7 +44,7 @@ import androidx.core.view.ViewCompat;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter; import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.loader.app.LoaderManager; import androidx.loader.app.LoaderManager;
import androidx.loader.content.Loader; import androidx.loader.content.Loader;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
@ -168,7 +168,7 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity
setSupportActionBar(findViewById(R.id.toolbar)); setSupportActionBar(findViewById(R.id.toolbar));
voiceNoteMediaController = new VoiceNoteMediaController(this); voiceNoteMediaController = new VoiceNoteMediaController(this);
viewModel = ViewModelProviders.of(this).get(MediaPreviewViewModel.class); viewModel = new ViewModelProvider(this).get(MediaPreviewViewModel.class);
fullscreenHelper = new FullscreenHelper(this); fullscreenHelper = new FullscreenHelper(this);

Wyświetl plik

@ -40,9 +40,11 @@ import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.core.util.Consumer; import androidx.core.util.Consumer;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import androidx.window.DisplayFeature; import androidx.window.java.layout.WindowInfoTrackerCallbackAdapter;
import androidx.window.FoldingFeature; import androidx.window.layout.DisplayFeature;
import androidx.window.WindowLayoutInfo; import androidx.window.layout.FoldingFeature;
import androidx.window.layout.WindowInfoTracker;
import androidx.window.layout.WindowLayoutInfo;
import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@ -114,15 +116,15 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
private WifiToCellularPopupWindow wifiToCellularPopupWindow; private WifiToCellularPopupWindow wifiToCellularPopupWindow;
private DeviceOrientationMonitor deviceOrientationMonitor; private DeviceOrientationMonitor deviceOrientationMonitor;
private FullscreenHelper fullscreenHelper; private FullscreenHelper fullscreenHelper;
private WebRtcCallView callScreen; private WebRtcCallView callScreen;
private TooltipPopup videoTooltip; private TooltipPopup videoTooltip;
private WebRtcCallViewModel viewModel; private WebRtcCallViewModel viewModel;
private boolean enableVideoIfAvailable; private boolean enableVideoIfAvailable;
private boolean hasWarnedAboutBluetooth; private boolean hasWarnedAboutBluetooth;
private androidx.window.WindowManager windowManager; private WindowLayoutInfoConsumer windowLayoutInfoConsumer;
private WindowLayoutInfoConsumer windowLayoutInfoConsumer; private WindowInfoTrackerCallbackAdapter windowInfoTrackerCallbackAdapter;
private ThrottledDebouncer requestNewSizesThrottle; private ThrottledDebouncer requestNewSizesThrottle;
private Disposable ephemeralStateDisposable = Disposable.empty(); private Disposable ephemeralStateDisposable = Disposable.empty();
@ -160,10 +162,10 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
enableVideoIfAvailable = getIntent().getBooleanExtra(EXTRA_ENABLE_VIDEO_IF_AVAILABLE, false); enableVideoIfAvailable = getIntent().getBooleanExtra(EXTRA_ENABLE_VIDEO_IF_AVAILABLE, false);
getIntent().removeExtra(EXTRA_ENABLE_VIDEO_IF_AVAILABLE); getIntent().removeExtra(EXTRA_ENABLE_VIDEO_IF_AVAILABLE);
windowManager = new androidx.window.WindowManager(this);
windowLayoutInfoConsumer = new WindowLayoutInfoConsumer(); windowLayoutInfoConsumer = new WindowLayoutInfoConsumer();
windowManager.registerLayoutChangeCallback(SignalExecutors.BOUNDED, windowLayoutInfoConsumer); windowInfoTrackerCallbackAdapter = new WindowInfoTrackerCallbackAdapter(WindowInfoTracker.getOrCreate(this));
windowInfoTrackerCallbackAdapter.addWindowLayoutInfoListener(this, SignalExecutors.BOUNDED, windowLayoutInfoConsumer);
requestNewSizesThrottle = new ThrottledDebouncer(TimeUnit.SECONDS.toMillis(1)); requestNewSizesThrottle = new ThrottledDebouncer(TimeUnit.SECONDS.toMillis(1));
} }
@ -250,7 +252,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
windowManager.unregisterLayoutChangeCallback(windowLayoutInfoConsumer); windowInfoTrackerCallbackAdapter.removeWindowLayoutInfoListener(windowLayoutInfoConsumer);
EventBus.getDefault().unregister(this); EventBus.getDefault().unregister(this);
} }
@ -273,7 +275,8 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
} }
@Override @Override
public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode, Configuration newConfig) { public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
super.onPictureInPictureModeChanged(isInPictureInPictureMode);
viewModel.setIsInPipMode(isInPictureInPictureMode); viewModel.setIsInPipMode(isInPictureInPictureMode);
participantUpdateWindow.setEnabled(!isInPictureInPictureMode); participantUpdateWindow.setEnabled(!isInPictureInPictureMode);
} }

Wyświetl plik

@ -10,7 +10,7 @@ import androidx.annotation.StringRes;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar; import com.google.android.material.snackbar.Snackbar;
@ -48,7 +48,7 @@ public class BlockedUsersActivity extends PassphraseRequiredActivity implements
BlockedUsersRepository repository = new BlockedUsersRepository(this); BlockedUsersRepository repository = new BlockedUsersRepository(this);
BlockedUsersViewModel.Factory factory = new BlockedUsersViewModel.Factory(repository); BlockedUsersViewModel.Factory factory = new BlockedUsersViewModel.Factory(repository);
viewModel = ViewModelProviders.of(this, factory).get(BlockedUsersViewModel.class); viewModel = new ViewModelProvider(this, factory).get(BlockedUsersViewModel.class);
Toolbar toolbar = findViewById(R.id.toolbar); Toolbar toolbar = findViewById(R.id.toolbar);
ContactFilterView contactFilterView = findViewById(R.id.contact_filter_edit_text); ContactFilterView contactFilterView = findViewById(R.id.contact_filter_edit_text);

Wyświetl plik

@ -9,7 +9,7 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import org.thoughtcrime.securesms.BlockUnblockDialog; import org.thoughtcrime.securesms.BlockUnblockDialog;
@ -59,7 +59,7 @@ public class BlockedUsersFragment extends Fragment {
} }
}); });
viewModel = ViewModelProviders.of(requireActivity()).get(BlockedUsersViewModel.class); viewModel = new ViewModelProvider(requireActivity()).get(BlockedUsersViewModel.class);
viewModel.getRecipients().observe(getViewLifecycleOwner(), list -> { viewModel.getRecipients().observe(getViewLifecycleOwner(), list -> {
if (list.isEmpty()) { if (list.isEmpty()) {
empty.setVisibility(View.VISIBLE); empty.setVisibility(View.VISIBLE);

Wyświetl plik

@ -11,7 +11,7 @@ import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -72,7 +72,7 @@ public class CallParticipantsListDialog extends BottomSheetDialogFragment {
public void onActivityCreated(@Nullable Bundle savedInstanceState) { public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState); super.onActivityCreated(savedInstanceState);
final WebRtcCallViewModel viewModel = ViewModelProviders.of(requireActivity()).get(WebRtcCallViewModel.class); final WebRtcCallViewModel viewModel = new ViewModelProvider(requireActivity()).get(WebRtcCallViewModel.class);
initializeList(); initializeList();

Wyświetl plik

@ -16,7 +16,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.view.ViewCompat; import androidx.core.view.ViewCompat;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -94,7 +94,7 @@ public class ContactShareEditActivity extends PassphraseRequiredActivity impleme
SharedContactRepository contactRepository = new SharedContactRepository(this, AsyncTask.THREAD_POOL_EXECUTOR); SharedContactRepository contactRepository = new SharedContactRepository(this, AsyncTask.THREAD_POOL_EXECUTOR);
viewModel = ViewModelProviders.of(this, new Factory(contactUris, contactRepository)).get(ContactShareEditViewModel.class); viewModel = new ViewModelProvider(this, new Factory(contactUris, contactRepository)).get(ContactShareEditViewModel.class);
viewModel.getContacts().observe(this, contacts -> { viewModel.getContacts().observe(this, contacts -> {
contactAdapter.setContacts(contacts); contactAdapter.setContacts(contacts);
contactList.post(() -> contactList.scrollToPosition(0)); contactList.post(() -> contactList.scrollToPosition(0));

Wyświetl plik

@ -9,7 +9,7 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -48,7 +48,7 @@ public class MentionsPickerFragment extends LoggingFragment {
@Override @Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) { public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState); super.onActivityCreated(savedInstanceState);
viewModel = ViewModelProviders.of(requireActivity()).get(MentionsPickerViewModel.class); viewModel = new ViewModelProvider(requireActivity()).get(MentionsPickerViewModel.class);
initializeList(); initializeList();

Wyświetl plik

@ -12,7 +12,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
@ -49,7 +49,7 @@ public class DeleteAccountCountryPickerFragment extends DialogFragment {
toolbar.setNavigationOnClickListener(unused -> dismiss()); toolbar.setNavigationOnClickListener(unused -> dismiss());
viewModel = ViewModelProviders.of(requireActivity()).get(DeleteAccountViewModel.class); viewModel = new ViewModelProvider(requireActivity()).get(DeleteAccountViewModel.class);
viewModel.getFilteredCountries().observe(getViewLifecycleOwner(), adapter::submitList); viewModel.getFilteredCountries().observe(getViewLifecycleOwner(), adapter::submitList);
searchFilter.addTextChangedListener(new AfterTextChanged(this::onQueryChanged)); searchFilter.addTextChangedListener(new AfterTextChanged(this::onQueryChanged));

Wyświetl plik

@ -19,7 +19,7 @@ import androidx.annotation.StringRes;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.constraintlayout.widget.Group; import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.fragment.NavHostFragment; import androidx.navigation.fragment.NavHostFragment;
import com.google.android.material.button.MaterialButton; import com.google.android.material.button.MaterialButton;
@ -83,7 +83,7 @@ public abstract class DeviceTransferSetupFragment extends LoggingFragment {
MaterialButton verifyNo = view.findViewById(R.id.device_transfer_setup_fragment_sas_verify_no); MaterialButton verifyNo = view.findViewById(R.id.device_transfer_setup_fragment_sas_verify_no);
MaterialButton verifyYes = view.findViewById(R.id.device_transfer_setup_fragment_sas_verify_yes); MaterialButton verifyYes = view.findViewById(R.id.device_transfer_setup_fragment_sas_verify_yes);
viewModel = ViewModelProviders.of(this).get(DeviceTransferSetupViewModel.class); viewModel = new ViewModelProvider(this).get(DeviceTransferSetupViewModel.class);
viewModel.getState().observe(getViewLifecycleOwner(), state -> { viewModel.getState().observe(getViewLifecycleOwner(), state -> {
SetupStep step = state.getCurrentSetupStep(); SetupStep step = state.getCurrentSetupStep();

Wyświetl plik

@ -9,7 +9,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.widget.ContentLoadingProgressBar; import androidx.core.widget.ContentLoadingProgressBar;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.StaggeredGridLayoutManager; import androidx.recyclerview.widget.StaggeredGridLayoutManager;
@ -45,7 +45,7 @@ public class GiphyMp4Fragment extends Fragment {
RecyclerView recycler = view.findViewById(R.id.giphy_recycler); RecyclerView recycler = view.findViewById(R.id.giphy_recycler);
ContentLoadingProgressBar progressBar = view.findViewById(R.id.content_loading); ContentLoadingProgressBar progressBar = view.findViewById(R.id.content_loading);
TextView nothingFound = view.findViewById(R.id.nothing_found); TextView nothingFound = view.findViewById(R.id.nothing_found);
GiphyMp4ViewModel viewModel = ViewModelProviders.of(requireActivity(), new GiphyMp4ViewModel.Factory(isForMms)).get(GiphyMp4ViewModel.class); GiphyMp4ViewModel viewModel = new ViewModelProvider(requireActivity(), new GiphyMp4ViewModel.Factory(isForMms)).get(GiphyMp4ViewModel.class);
GiphyMp4Adapter adapter = new GiphyMp4Adapter(viewModel::saveToBlob); GiphyMp4Adapter adapter = new GiphyMp4Adapter(viewModel::saveToBlob);
List<GiphyMp4ProjectionPlayerHolder> holders = GiphyMp4ProjectionPlayerHolder.injectVideoViews(requireContext(), List<GiphyMp4ProjectionPlayerHolder> holders = GiphyMp4ProjectionPlayerHolder.injectVideoViews(requireContext(),
getViewLifecycleOwner().getLifecycle(), getViewLifecycleOwner().getLifecycle(),

Wyświetl plik

@ -9,7 +9,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import org.thoughtcrime.securesms.PassphraseRequiredActivity; import org.thoughtcrime.securesms.PassphraseRequiredActivity;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
@ -65,7 +65,7 @@ public class GiphyActivity extends PassphraseRequiredActivity implements Keyboar
sendType = getIntent().getParcelableExtra(EXTRA_TRANSPORT); sendType = getIntent().getParcelableExtra(EXTRA_TRANSPORT);
text = getIntent().getCharSequenceExtra(EXTRA_TEXT); text = getIntent().getCharSequenceExtra(EXTRA_TEXT);
giphyMp4ViewModel = ViewModelProviders.of(this, new GiphyMp4ViewModel.Factory(forMms)).get(GiphyMp4ViewModel.class); giphyMp4ViewModel = new ViewModelProvider(this, new GiphyMp4ViewModel.Factory(forMms)).get(GiphyMp4ViewModel.class);
giphyMp4ViewModel.getSaveResultEvents().observe(this, this::handleGiphyMp4SaveResult); giphyMp4ViewModel.getSaveResultEvents().observe(this, this::handleGiphyMp4SaveResult);
initializeToolbar(); initializeToolbar();

Wyświetl plik

@ -7,7 +7,7 @@ import android.view.View;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@ -60,8 +60,7 @@ public class AddMembersActivity extends PushContactSelectionActivity {
AddMembersViewModel.Factory factory = new AddMembersViewModel.Factory(getGroupId()); AddMembersViewModel.Factory factory = new AddMembersViewModel.Factory(getGroupId());
done = findViewById(R.id.done); done = findViewById(R.id.done);
viewModel = ViewModelProviders.of(this, factory) viewModel = new ViewModelProvider(this, factory).get(AddMembersViewModel.class);
.get(AddMembersViewModel.class);
done.setOnClickListener(v -> done.setOnClickListener(v ->
viewModel.getDialogStateForSelectedContacts(contactsFragment.getSelectedContacts(), this::displayAlertMessage) viewModel.getDialogStateForSelectedContacts(contactsFragment.getSelectedContacts(), this::displayAlertMessage)

Wyświetl plik

@ -8,7 +8,7 @@ import android.view.View;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@ -73,8 +73,7 @@ public final class AddToGroupsActivity extends ContactSelectionActivity {
next.setOnClickListener(v -> handleNextPressed()); next.setOnClickListener(v -> handleNextPressed());
AddToGroupViewModel.Factory factory = new AddToGroupViewModel.Factory(getRecipientId()); AddToGroupViewModel.Factory factory = new AddToGroupViewModel.Factory(getRecipientId());
viewModel = ViewModelProviders.of(this, factory) viewModel = new ViewModelProvider(this, factory).get(AddToGroupViewModel.class);
.get(AddToGroupViewModel.class);
viewModel.getEvents().observe(this, event -> { viewModel.getEvents().observe(this, event -> {

Wyświetl plik

@ -9,7 +9,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import com.annimon.stream.Collectors; import com.annimon.stream.Collectors;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
@ -101,7 +101,7 @@ public final class ChooseNewAdminActivity extends PassphraseRequiredActivity {
} }
private void initializeViewModel() { private void initializeViewModel() {
viewModel = ViewModelProviders.of(this, new ChooseNewAdminViewModel.Factory(groupId)).get(ChooseNewAdminViewModel.class); viewModel = new ViewModelProvider(this, new ChooseNewAdminViewModel.Factory(groupId)).get(ChooseNewAdminViewModel.class);
viewModel.getNonAdminFullMembers().observe(this, groupList::setMembers); viewModel.getNonAdminFullMembers().observe(this, groupList::setMembers);
viewModel.getSelection().observe(this, selection -> done.setVisibility(selection.isEmpty() ? View.GONE : View.VISIBLE)); viewModel.getSelection().observe(this, selection -> done.setVisibility(selection.isEmpty() ? View.GONE : View.VISIBLE));

Wyświetl plik

@ -20,7 +20,7 @@ import androidx.annotation.Nullable;
import androidx.annotation.StringRes; import androidx.annotation.StringRes;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat; import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
@ -200,7 +200,7 @@ public class AddGroupDetailsFragment extends LoggingFragment {
AddGroupDetailsRepository repository = new AddGroupDetailsRepository(requireContext()); AddGroupDetailsRepository repository = new AddGroupDetailsRepository(requireContext());
AddGroupDetailsViewModel.Factory factory = new AddGroupDetailsViewModel.Factory(Arrays.asList(args.getRecipientIds()), repository); AddGroupDetailsViewModel.Factory factory = new AddGroupDetailsViewModel.Factory(Arrays.asList(args.getRecipientIds()), repository);
viewModel = ViewModelProviders.of(this, factory).get(AddGroupDetailsViewModel.class); viewModel = new ViewModelProvider(this, factory).get(AddGroupDetailsViewModel.class);
viewModel.getGroupCreateResult().observe(getViewLifecycleOwner(), this::handleGroupCreateResult); viewModel.getGroupCreateResult().observe(getViewLifecycleOwner(), this::handleGroupCreateResult);
} }

Wyświetl plik

@ -13,7 +13,7 @@ import androidx.appcompat.widget.SwitchCompat;
import androidx.constraintlayout.widget.Group; import androidx.constraintlayout.widget.Group;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment; import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
@ -85,7 +85,7 @@ public final class GroupLinkInviteFriendsBottomSheetDialogFragment extends Botto
GroupId.V2 groupId = getGroupId(); GroupId.V2 groupId = getGroupId();
GroupLinkInviteFriendsViewModel.Factory factory = new GroupLinkInviteFriendsViewModel.Factory(requireContext().getApplicationContext(), groupId); GroupLinkInviteFriendsViewModel.Factory factory = new GroupLinkInviteFriendsViewModel.Factory(requireContext().getApplicationContext(), groupId);
GroupLinkInviteFriendsViewModel viewModel = ViewModelProviders.of(this, factory).get(GroupLinkInviteFriendsViewModel.class); GroupLinkInviteFriendsViewModel viewModel = new ViewModelProvider(this, factory).get(GroupLinkInviteFriendsViewModel.class);
viewModel.getGroupInviteLinkAndStatus() viewModel.getGroupInviteLinkAndStatus()
.observe(getViewLifecycleOwner(), groupLinkUrlAndStatus -> { .observe(getViewLifecycleOwner(), groupLinkUrlAndStatus -> {

Wyświetl plik

@ -8,7 +8,7 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.groups.GroupId;
@ -113,7 +113,7 @@ public class PendingMemberInvitesFragment extends Fragment {
PendingMemberInvitesViewModel.Factory factory = new PendingMemberInvitesViewModel.Factory(requireContext(), groupId); PendingMemberInvitesViewModel.Factory factory = new PendingMemberInvitesViewModel.Factory(requireContext(), groupId);
viewModel = ViewModelProviders.of(requireActivity(), factory).get(PendingMemberInvitesViewModel.class); viewModel = new ViewModelProvider(requireActivity(), factory).get(PendingMemberInvitesViewModel.class);
viewModel.getWhoYouInvited().observe(getViewLifecycleOwner(), invitees -> { viewModel.getWhoYouInvited().observe(getViewLifecycleOwner(), invitees -> {
youInvited.setMembers(invitees); youInvited.setMembers(invitees);

Wyświetl plik

@ -15,7 +15,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment; import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
@ -97,7 +97,7 @@ public final class GroupJoinBottomSheetDialogFragment extends BottomSheetDialogF
GroupJoinViewModel.Factory factory = new GroupJoinViewModel.Factory(requireContext().getApplicationContext(), getGroupInviteLinkUrl()); GroupJoinViewModel.Factory factory = new GroupJoinViewModel.Factory(requireContext().getApplicationContext(), getGroupInviteLinkUrl());
GroupJoinViewModel viewModel = ViewModelProviders.of(this, factory).get(GroupJoinViewModel.class); GroupJoinViewModel viewModel = new ViewModelProvider(this, factory).get(GroupJoinViewModel.class);
viewModel.getGroupDetails().observe(getViewLifecycleOwner(), details -> { viewModel.getGroupDetails().observe(getViewLifecycleOwner(), details -> {
groupName.setText(details.getGroupName()); groupName.setText(details.getGroupName());

Wyświetl plik

@ -10,7 +10,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment; import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
@ -78,7 +78,7 @@ public final class GroupsV1MigrationInfoBottomSheetDialogFragment extends Bottom
//noinspection ConstantConditions //noinspection ConstantConditions
GroupMigrationMembershipChange membershipChange = GroupMigrationMembershipChange.deserialize(getArguments().getString(KEY_MEMBERSHIP_CHANGE)); GroupMigrationMembershipChange membershipChange = GroupMigrationMembershipChange.deserialize(getArguments().getString(KEY_MEMBERSHIP_CHANGE));
this.viewModel = ViewModelProviders.of(this, new GroupsV1MigrationInfoViewModel.Factory(membershipChange)).get(GroupsV1MigrationInfoViewModel.class); this.viewModel = new ViewModelProvider(this, new GroupsV1MigrationInfoViewModel.Factory(membershipChange)).get(GroupsV1MigrationInfoViewModel.class);
viewModel.getPendingMembers().observe(getViewLifecycleOwner(), this::onPendingMembersChanged); viewModel.getPendingMembers().observe(getViewLifecycleOwner(), this::onPendingMembersChanged);
viewModel.getDroppedMembers().observe(getViewLifecycleOwner(), this::onDroppedMembersChanged); viewModel.getDroppedMembers().observe(getViewLifecycleOwner(), this::onDroppedMembersChanged);

Wyświetl plik

@ -12,7 +12,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment; import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
@ -86,7 +86,7 @@ public final class GroupsV1MigrationInitiationBottomSheetDialogFragment extends
RecipientId groupRecipientId = getArguments().getParcelable(KEY_GROUP_RECIPIENT_ID); RecipientId groupRecipientId = getArguments().getParcelable(KEY_GROUP_RECIPIENT_ID);
//noinspection ConstantConditions //noinspection ConstantConditions
viewModel = ViewModelProviders.of(this, new GroupsV1MigrationInitiationViewModel.Factory(groupRecipientId)).get(GroupsV1MigrationInitiationViewModel.class); viewModel = new ViewModelProvider(this, new GroupsV1MigrationInitiationViewModel.Factory(groupRecipientId)).get(GroupsV1MigrationInitiationViewModel.class);
viewModel.getMigrationState().observe(getViewLifecycleOwner(), this::onMigrationStateChanged); viewModel.getMigrationState().observe(getViewLifecycleOwner(), this::onMigrationStateChanged);
upgradeButton.setEnabled(false); upgradeButton.setEnabled(false);

Wyświetl plik

@ -18,7 +18,7 @@ import androidx.annotation.IdRes;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.StringRes; import androidx.annotation.StringRes;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
@ -74,7 +74,7 @@ public class HelpFragment extends LoggingFragment {
} }
private void initializeViewModels() { private void initializeViewModels() {
helpViewModel = ViewModelProviders.of(this).get(HelpViewModel.class); helpViewModel = new ViewModelProvider(this).get(HelpViewModel.class);
} }
private void initializeViews(@NonNull View view) { private void initializeViews(@NonNull View view) {

Wyświetl plik

@ -16,7 +16,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.airbnb.lottie.LottieAnimationView; import com.airbnb.lottie.LottieAnimationView;
@ -125,7 +125,7 @@ public final class InsightsDashboardDialogFragment extends DialogFragment {
final InsightsDashboardViewModel.Repository repository = new InsightsRepository(requireContext()); final InsightsDashboardViewModel.Repository repository = new InsightsRepository(requireContext());
final InsightsDashboardViewModel.Factory factory = new InsightsDashboardViewModel.Factory(repository); final InsightsDashboardViewModel.Factory factory = new InsightsDashboardViewModel.Factory(repository);
viewModel = ViewModelProviders.of(this, factory).get(InsightsDashboardViewModel.class); viewModel = new ViewModelProvider(this, factory).get(InsightsDashboardViewModel.class);
viewModel.getState().observe(getViewLifecycleOwner(), state -> { viewModel.getState().observe(getViewLifecycleOwner(), state -> {
updateInsecurePercent(state.getData()); updateInsecurePercent(state.getData());

Wyświetl plik

@ -14,7 +14,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.components.ArcProgressBar; import org.thoughtcrime.securesms.components.ArcProgressBar;
@ -77,7 +77,7 @@ public final class InsightsModalDialogFragment extends DialogFragment {
private void initializeViewModel() { private void initializeViewModel() {
final InsightsModalViewModel.Repository repository = new InsightsRepository(requireContext()); final InsightsModalViewModel.Repository repository = new InsightsRepository(requireContext());
final InsightsModalViewModel.Factory factory = new InsightsModalViewModel.Factory(repository); final InsightsModalViewModel.Factory factory = new InsightsModalViewModel.Factory(repository);
final InsightsModalViewModel viewModel = ViewModelProviders.of(this, factory).get(InsightsModalViewModel.class); final InsightsModalViewModel viewModel = new ViewModelProvider(this, factory).get(InsightsModalViewModel.class);
viewModel.getState().observe(getViewLifecycleOwner(), state -> { viewModel.getState().observe(getViewLifecycleOwner(), state -> {
updateInsecurePercent(state.getData()); updateInsecurePercent(state.getData());

Wyświetl plik

@ -345,7 +345,7 @@ class RetrieveRemoteAnnouncementsJob private constructor(private val force: Bool
} }
for (index in 0 until localeList.size()) { for (index in 0 until localeList.size()) {
val locale: Locale = localeList.get(index) val locale: Locale = localeList.get(index) ?: continue
if (locale.language.isNotEmpty()) { if (locale.language.isNotEmpty()) {
if (locale.country.isNotEmpty()) { if (locale.country.isNotEmpty()) {
potentialNoteUrls += "$this/${locale.language}_${locale.country}.json" potentialNoteUrls += "$this/${locale.language}_${locale.country}.json"

Wyświetl plik

@ -174,7 +174,7 @@ class StoryOnboardingDownloadJob private constructor(parameters: Parameters) : B
} }
for (index in 0 until localeList.size()) { for (index in 0 until localeList.size()) {
val locale: Locale = localeList.get(index) val locale: Locale = localeList.get(index) ?: continue
if (locale.language.isNotEmpty()) { if (locale.language.isNotEmpty()) {
if (locale.country.isNotEmpty()) { if (locale.country.isNotEmpty()) {
potentialOnboardingUrlLanguages += "${locale.language}_${locale.country}" potentialOnboardingUrlLanguages += "${locale.language}_${locale.country}"

Wyświetl plik

@ -10,7 +10,7 @@ import androidx.appcompat.app.AlertDialog;
import androidx.autofill.HintConstants; import androidx.autofill.HintConstants;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat; import androidx.core.view.ViewCompat;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import com.airbnb.lottie.LottieAnimationView; import com.airbnb.lottie.LottieAnimationView;
import com.airbnb.lottie.LottieDrawable; import com.airbnb.lottie.LottieDrawable;
@ -50,7 +50,7 @@ public class ConfirmKbsPinFragment extends BaseKbsPinFragment<ConfirmKbsPinViewM
ConfirmKbsPinRepository repository = new ConfirmKbsPinRepository(); ConfirmKbsPinRepository repository = new ConfirmKbsPinRepository();
ConfirmKbsPinViewModel.Factory factory = new ConfirmKbsPinViewModel.Factory(userEntry, keyboard, repository); ConfirmKbsPinViewModel.Factory factory = new ConfirmKbsPinViewModel.Factory(userEntry, keyboard, repository);
viewModel = ViewModelProviders.of(this, factory).get(ConfirmKbsPinViewModel.class); viewModel = new ViewModelProvider(this, factory).get(ConfirmKbsPinViewModel.class);
viewModel.getLabel().observe(getViewLifecycleOwner(), this::updateLabel); viewModel.getLabel().observe(getViewLifecycleOwner(), this::updateLabel);
viewModel.getSaveAnimation().observe(getViewLifecycleOwner(), this::updateSaveAnimation); viewModel.getSaveAnimation().observe(getViewLifecycleOwner(), this::updateSaveAnimation);

Wyświetl plik

@ -9,7 +9,7 @@ import androidx.annotation.PluralsRes;
import androidx.autofill.HintConstants; import androidx.autofill.HintConstants;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat; import androidx.core.view.ViewCompat;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
@ -48,7 +48,7 @@ public class CreateKbsPinFragment extends BaseKbsPinFragment<CreateKbsPinViewMod
@Override @Override
protected CreateKbsPinViewModel initializeViewModel() { protected CreateKbsPinViewModel initializeViewModel() {
CreateKbsPinViewModel viewModel = ViewModelProviders.of(this).get(CreateKbsPinViewModel.class); CreateKbsPinViewModel viewModel = new ViewModelProvider(this).get(CreateKbsPinViewModel.class);
CreateKbsPinFragmentArgs args = CreateKbsPinFragmentArgs.fromBundle(requireArguments()); CreateKbsPinFragmentArgs args = CreateKbsPinFragmentArgs.fromBundle(requireArguments());
viewModel.getNavigationEvents().observe(getViewLifecycleOwner(), e -> onConfirmPin(e.getUserEntry(), e.getKeyboard(), args.getIsPinChange())); viewModel.getNavigationEvents().observe(getViewLifecycleOwner(), e -> onConfirmPin(e.getUserEntry(), e.getKeyboard(), args.getIsPinChange()));

Wyświetl plik

@ -21,7 +21,7 @@ import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.SearchView; import androidx.appcompat.widget.SearchView;
import androidx.core.app.ShareCompat; import androidx.core.app.ShareCompat;
import androidx.core.text.util.LinkifyCompat; import androidx.core.text.util.LinkifyCompat;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -69,7 +69,7 @@ public class SubmitDebugLogActivity extends BaseActivity implements SubmitDebugL
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle(R.string.HelpSettingsFragment__debug_log); getSupportActionBar().setTitle(R.string.HelpSettingsFragment__debug_log);
this.viewModel = ViewModelProviders.of(this, new SubmitDebugLogViewModel.Factory()).get(SubmitDebugLogViewModel.class); this.viewModel = new ViewModelProvider(this, new SubmitDebugLogViewModel.Factory()).get(SubmitDebugLogViewModel.class);
initView(); initView();
initViewModel(); initViewModel();

Wyświetl plik

@ -7,7 +7,7 @@ import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.SavedStateHandle; import androidx.lifecycle.SavedStateHandle;
import androidx.lifecycle.SavedStateViewModelFactory; import androidx.lifecycle.SavedStateViewModelFactory;
import androidx.lifecycle.ViewModel; import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import org.thoughtcrime.securesms.database.MediaDatabase.Sorting; import org.thoughtcrime.securesms.database.MediaDatabase.Sorting;
@ -40,6 +40,6 @@ public class MediaOverviewViewModel extends ViewModel {
static MediaOverviewViewModel getMediaOverviewViewModel(@NonNull FragmentActivity activity) { static MediaOverviewViewModel getMediaOverviewViewModel(@NonNull FragmentActivity activity) {
SavedStateViewModelFactory savedStateViewModelFactory = new SavedStateViewModelFactory(activity.getApplication(), activity); SavedStateViewModelFactory savedStateViewModelFactory = new SavedStateViewModelFactory(activity.getApplication(), activity);
return ViewModelProviders.of(activity, savedStateViewModelFactory).get(MediaOverviewViewModel.class); return new ViewModelProvider(activity, savedStateViewModelFactory).get(MediaOverviewViewModel.class);
} }
} }

Wyświetl plik

@ -359,7 +359,7 @@ public class Camera1Fragment extends LoggingFragment implements CameraFragment,
private void initializeViewFinderAndControlsPositioning() { private void initializeViewFinderAndControlsPositioning() {
CardView cameraCard = requireView().findViewById(R.id.camera_preview_parent); CardView cameraCard = requireView().findViewById(R.id.camera_preview_parent);
View controls = requireView().findViewById(R.id.camera_controls_container); View controls = requireView().findViewById(R.id.camera_controls_container);
CameraDisplay cameraDisplay = CameraDisplay.getDisplay(requireView()); CameraDisplay cameraDisplay = CameraDisplay.getDisplay(requireActivity());
if (!cameraDisplay.getRoundViewFinderCorners()) { if (!cameraDisplay.getRoundViewFinderCorners()) {
cameraCard.setRadius(0f); cameraCard.setRadius(0f);

Wyświetl plik

@ -18,7 +18,7 @@ import androidx.appcompat.widget.SearchView;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.constraintlayout.widget.Group; import androidx.constraintlayout.widget.Group;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -59,8 +59,9 @@ public class CameraContactSelectionFragment extends LoggingFragment implements C
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setHasOptionsMenu(true); setHasOptionsMenu(true);
this.contactViewModel = ViewModelProviders.of(requireActivity(), new CameraContactSelectionViewModel.Factory(new CameraContactsRepository(requireContext()))) CameraContactSelectionViewModel.Factory factory = new CameraContactSelectionViewModel.Factory(new CameraContactsRepository(requireContext()));
.get(CameraContactSelectionViewModel.class);
this.contactViewModel = new ViewModelProvider(requireActivity(), factory).get(CameraContactSelectionViewModel.class);
} }
@Override @Override

Wyświetl plik

@ -1,10 +1,10 @@
package org.thoughtcrime.securesms.mediasend package org.thoughtcrime.securesms.mediasend
import android.app.Activity
import android.content.res.Resources import android.content.res.Resources
import android.view.View
import androidx.annotation.Dimension import androidx.annotation.Dimension
import androidx.annotation.Px import androidx.annotation.Px
import androidx.window.WindowManager import androidx.window.layout.WindowMetricsCalculator
import org.signal.core.util.dp import org.signal.core.util.dp
import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.stories.Stories import org.thoughtcrime.securesms.stories.Stories
@ -110,9 +110,9 @@ enum class CameraDisplay(
} }
@JvmStatic @JvmStatic
fun getDisplay(view: View): CameraDisplay { fun getDisplay(activity: Activity): CameraDisplay {
val windowManager = WindowManager(view.context) val windowMetricsCalculator = WindowMetricsCalculator.getOrCreate()
val windowMetrics = windowManager.getCurrentWindowMetrics() val windowMetrics = windowMetricsCalculator.computeCurrentWindowMetrics(activity)
val width = windowMetrics.bounds.width() val width = windowMetrics.bounds.width()
val height = windowMetrics.bounds.height() val height = windowMetrics.bounds.height()
val aspectRatio = width.toFloat() / height val aspectRatio = width.toFloat() / height

Wyświetl plik

@ -281,7 +281,7 @@ public class CameraXFragment extends LoggingFragment implements CameraFragment {
private void initializeViewFinderAndControlsPositioning() { private void initializeViewFinderAndControlsPositioning() {
CardView cameraCard = requireView().findViewById(R.id.camerax_camera_parent); CardView cameraCard = requireView().findViewById(R.id.camerax_camera_parent);
View controls = requireView().findViewById(R.id.camerax_controls_container); View controls = requireView().findViewById(R.id.camerax_controls_container);
CameraDisplay cameraDisplay = CameraDisplay.getDisplay(requireView()); CameraDisplay cameraDisplay = CameraDisplay.getDisplay(requireActivity());
if (!cameraDisplay.getRoundViewFinderCorners()) { if (!cameraDisplay.getRoundViewFinderCorners()) {
cameraCard.setRadius(0f); cameraCard.setRadius(0f);

Wyświetl plik

@ -97,7 +97,7 @@ class MediaSelectionActivity :
viewModel = ViewModelProvider(this, factory)[MediaSelectionViewModel::class.java] viewModel = ViewModelProvider(this, factory)[MediaSelectionViewModel::class.java]
val textStoryToggle: ConstraintLayout = findViewById(R.id.switch_widget) val textStoryToggle: ConstraintLayout = findViewById(R.id.switch_widget)
val cameraDisplay = CameraDisplay.getDisplay(textStoryToggle) val cameraDisplay = CameraDisplay.getDisplay(this)
textStoryToggle.updateLayoutParams<FrameLayout.LayoutParams> { textStoryToggle.updateLayoutParams<FrameLayout.LayoutParams> {
bottomMargin = cameraDisplay.getToggleBottomMargin() bottomMargin = cameraDisplay.getToggleBottomMargin()

Wyświetl plik

@ -25,7 +25,6 @@ import org.thoughtcrime.securesms.mms.SentMediaQuality
import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.scribbles.ImageEditorFragment import org.thoughtcrime.securesms.scribbles.ImageEditorFragment
import org.thoughtcrime.securesms.stories.Stories import org.thoughtcrime.securesms.stories.Stories
import org.thoughtcrime.securesms.util.SingleLiveEvent
import org.thoughtcrime.securesms.util.Util import org.thoughtcrime.securesms.util.Util
import org.thoughtcrime.securesms.util.livedata.Store import org.thoughtcrime.securesms.util.livedata.Store
import java.util.Collections import java.util.Collections
@ -60,7 +59,7 @@ class MediaSelectionViewModel(
private val internalHudCommands = PublishSubject.create<HudCommand>() private val internalHudCommands = PublishSubject.create<HudCommand>()
val mediaErrors: SingleLiveEvent<MediaValidator.FilterError> = SingleLiveEvent() val mediaErrors: PublishSubject<MediaValidator.FilterError> = PublishSubject.create()
val hudCommands: Observable<HudCommand> = internalHudCommands val hudCommands: Observable<HudCommand> = internalHudCommands
private val disposables = CompositeDisposable() private val disposables = CompositeDisposable()
@ -154,7 +153,7 @@ class MediaSelectionViewModel(
} }
if (filterResult.filterError != null) { if (filterResult.filterError != null) {
mediaErrors.postValue(filterResult.filterError) mediaErrors.onNext(filterResult.filterError)
} }
} }
) )
@ -230,7 +229,7 @@ class MediaSelectionViewModel(
} }
if (newMediaList.isEmpty() && !suppressEmptyError) { if (newMediaList.isEmpty() && !suppressEmptyError) {
mediaErrors.postValue(MediaValidator.FilterError.NoItems()) mediaErrors.onNext(MediaValidator.FilterError.NoItems())
} }
selectedMediaSubject.onNext(newMediaList) selectedMediaSubject.onNext(newMediaList)

Wyświetl plik

@ -9,6 +9,7 @@ import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.ItemTouchHelper
import app.cash.exhaustive.Exhaustive import app.cash.exhaustive.Exhaustive
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.mediasend.Media import org.thoughtcrime.securesms.mediasend.Media
import org.thoughtcrime.securesms.mediasend.v2.MediaSelectionNavigator import org.thoughtcrime.securesms.mediasend.v2.MediaSelectionNavigator
@ -17,6 +18,7 @@ import org.thoughtcrime.securesms.mediasend.v2.MediaSelectionViewModel
import org.thoughtcrime.securesms.mediasend.v2.MediaValidator import org.thoughtcrime.securesms.mediasend.v2.MediaValidator
import org.thoughtcrime.securesms.mediasend.v2.review.MediaSelectionItemTouchHelper import org.thoughtcrime.securesms.mediasend.v2.review.MediaSelectionItemTouchHelper
import org.thoughtcrime.securesms.permissions.Permissions import org.thoughtcrime.securesms.permissions.Permissions
import org.thoughtcrime.securesms.util.LifecycleDisposable
private const val MEDIA_GALLERY_TAG = "MEDIA_GALLERY" private const val MEDIA_GALLERY_TAG = "MEDIA_GALLERY"
@ -24,6 +26,8 @@ class MediaSelectionGalleryFragment : Fragment(R.layout.fragment_container), Med
private lateinit var mediaGalleryFragment: MediaGalleryFragment private lateinit var mediaGalleryFragment: MediaGalleryFragment
private val lifecycleDisposable = LifecycleDisposable()
private val navigator = MediaSelectionNavigator( private val navigator = MediaSelectionNavigator(
toCamera = R.id.action_mediaGalleryFragment_to_mediaCaptureFragment toCamera = R.id.action_mediaGalleryFragment_to_mediaCaptureFragment
) )
@ -52,7 +56,10 @@ class MediaSelectionGalleryFragment : Fragment(R.layout.fragment_container), Med
) )
} }
sharedViewModel.mediaErrors.observe(viewLifecycleOwner, this::handleError) lifecycleDisposable.bindTo(viewLifecycleOwner)
lifecycleDisposable += sharedViewModel.mediaErrors
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this::handleError)
} }
private fun handleError(error: MediaValidator.FilterError) { private fun handleError(error: MediaValidator.FilterError) {

Wyświetl plik

@ -23,6 +23,7 @@ import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager2.widget.ViewPager2 import androidx.viewpager2.widget.ViewPager2
import app.cash.exhaustive.Exhaustive import app.cash.exhaustive.Exhaustive
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey
import org.thoughtcrime.securesms.conversation.MessageSendType import org.thoughtcrime.securesms.conversation.MessageSendType
@ -238,7 +239,10 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment) {
computeViewStateAndAnimate(state) computeViewStateAndAnimate(state)
} }
sharedViewModel.mediaErrors.observe(viewLifecycleOwner, this::handleMediaValidatorFilterError) disposables.bindTo(viewLifecycleOwner)
disposables += sharedViewModel.mediaErrors
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this::handleMediaValidatorFilterError)
requireActivity().onBackPressedDispatcher.addCallback( requireActivity().onBackPressedDispatcher.addCallback(
viewLifecycleOwner, viewLifecycleOwner,

Wyświetl plik

@ -10,7 +10,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment; import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
@ -63,7 +63,7 @@ public final class QualitySelectorBottomSheetDialog extends BottomSheetDialogFra
standard.setOnClickListener(listener); standard.setOnClickListener(listener);
high.setOnClickListener(listener); high.setOnClickListener(listener);
viewModel = ViewModelProviders.of(requireActivity()).get(MediaSelectionViewModel.class); viewModel = new ViewModelProvider(requireActivity()).get(MediaSelectionViewModel.class);
viewModel.getState().observe(getViewLifecycleOwner(), this::updateQuality); viewModel.getState().observe(getViewLifecycleOwner(), this::updateQuality);
} }

Wyświetl plik

@ -181,7 +181,7 @@ class TextStoryPostCreationFragment : Fragment(R.layout.stories_text_post_creati
} }
private fun initializeScenePositioning() { private fun initializeScenePositioning() {
val cameraDisplay = CameraDisplay.getDisplay(requireView()) val cameraDisplay = CameraDisplay.getDisplay(requireActivity())
if (!cameraDisplay.roundViewFinderCorners) { if (!cameraDisplay.roundViewFinderCorners) {
binding.storyTextPostCard.radius = 0f binding.storyTextPostCard.radius = 0f

Wyświetl plik

@ -8,7 +8,7 @@ import android.widget.FrameLayout;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
@ -106,7 +106,7 @@ public final class MessageDetailsFragment extends FullScreenDialogFragment {
final Long messageId = requireArguments().getLong(MESSAGE_ID_EXTRA, -1); final Long messageId = requireArguments().getLong(MESSAGE_ID_EXTRA, -1);
final Factory factory = new Factory(recipientId, type, messageId); final Factory factory = new Factory(recipientId, type, messageId);
viewModel = ViewModelProviders.of(this, factory).get(MessageDetailsViewModel.class); viewModel = new ViewModelProvider(this, factory).get(MessageDetailsViewModel.class);
viewModel.getMessageDetails().observe(this, details -> { viewModel.getMessageDetails().observe(this, details -> {
if (details == null) { if (details == null) {
dismissAllowingStateLoss(); dismissAllowingStateLoss();

Wyświetl plik

@ -12,7 +12,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import org.thoughtcrime.securesms.BaseActivity; import org.thoughtcrime.securesms.BaseActivity;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
@ -66,7 +66,7 @@ public class CalleeMustAcceptMessageRequestActivity extends BaseActivity {
RecipientId recipientId = getIntent().getParcelableExtra(RECIPIENT_ID_EXTRA); RecipientId recipientId = getIntent().getParcelableExtra(RECIPIENT_ID_EXTRA);
CalleeMustAcceptMessageRequestViewModel.Factory factory = new CalleeMustAcceptMessageRequestViewModel.Factory(recipientId); CalleeMustAcceptMessageRequestViewModel.Factory factory = new CalleeMustAcceptMessageRequestViewModel.Factory(recipientId);
CalleeMustAcceptMessageRequestViewModel viewModel = ViewModelProviders.of(this, factory).get(CalleeMustAcceptMessageRequestViewModel.class); CalleeMustAcceptMessageRequestViewModel viewModel = new ViewModelProvider(this, factory).get(CalleeMustAcceptMessageRequestViewModel.class);
viewModel.getRecipient().observe(this, recipient -> { viewModel.getRecipient().observe(this, recipient -> {
description.setText(getString(R.string.CalleeMustAcceptMessageRequestDialogFragment__s_will_get_a_message_request_from_you, recipient.getDisplayName(this))); description.setText(getString(R.string.CalleeMustAcceptMessageRequestDialogFragment__s_will_get_a_message_request_from_you, recipient.getDisplayName(this)));

Wyświetl plik

@ -15,7 +15,7 @@ import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat; import androidx.core.graphics.drawable.DrawableCompat;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import com.google.android.material.textfield.TextInputLayout; import com.google.android.material.textfield.TextInputLayout;
@ -57,7 +57,7 @@ public class PaymentsRecoveryPhraseConfirmFragment extends Fragment {
DrawableCompat.setTint(validWordCheckMark, ContextCompat.getColor(requireContext(), R.color.signal_accent_green)); DrawableCompat.setTint(validWordCheckMark, ContextCompat.getColor(requireContext(), R.color.signal_accent_green));
DrawableCompat.setTint(invalidWordX, ContextCompat.getColor(requireContext(), R.color.signal_alert_primary)); DrawableCompat.setTint(invalidWordX, ContextCompat.getColor(requireContext(), R.color.signal_alert_primary));
PaymentsRecoveryPhraseConfirmViewModel viewModel = ViewModelProviders.of(requireActivity()).get(PaymentsRecoveryPhraseConfirmViewModel.class); PaymentsRecoveryPhraseConfirmViewModel viewModel = new ViewModelProvider(requireActivity()).get(PaymentsRecoveryPhraseConfirmViewModel.class);
toolbar.setNavigationOnClickListener(v -> Navigation.findNavController(requireView()).popBackStack()); toolbar.setNavigationOnClickListener(v -> Navigation.findNavController(requireView()).popBackStack());

Wyświetl plik

@ -10,7 +10,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import com.google.android.material.textfield.MaterialAutoCompleteTextView; import com.google.android.material.textfield.MaterialAutoCompleteTextView;
@ -35,7 +35,7 @@ public class PaymentsRecoveryEntryFragment extends Fragment {
TextInputLayout wrapper = view.findViewById(R.id.payments_recovery_entry_fragment_word_wrapper); TextInputLayout wrapper = view.findViewById(R.id.payments_recovery_entry_fragment_word_wrapper);
MaterialAutoCompleteTextView word = view.findViewById(R.id.payments_recovery_entry_fragment_word); MaterialAutoCompleteTextView word = view.findViewById(R.id.payments_recovery_entry_fragment_word);
View next = view.findViewById(R.id.payments_recovery_entry_fragment_next); View next = view.findViewById(R.id.payments_recovery_entry_fragment_next);
PaymentsRecoveryEntryViewModel viewModel = ViewModelProviders.of(this).get(PaymentsRecoveryEntryViewModel.class); PaymentsRecoveryEntryViewModel viewModel = new ViewModelProvider(this).get(PaymentsRecoveryEntryViewModel.class);
toolbar.setNavigationOnClickListener(t -> Navigation.findNavController(view).popBackStack(R.id.paymentsHome, false)); toolbar.setNavigationOnClickListener(t -> Navigation.findNavController(view).popBackStack(R.id.paymentsHome, false));

Wyświetl plik

@ -15,7 +15,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -110,7 +110,7 @@ public class PaymentsRecoveryPhraseFragment extends Fragment {
edit.setVisibility(View.VISIBLE); edit.setVisibility(View.VISIBLE);
copy.setVisibility(View.GONE); copy.setVisibility(View.GONE);
PaymentsRecoveryPhraseViewModel viewModel = ViewModelProviders.of(this).get(PaymentsRecoveryPhraseViewModel.class); PaymentsRecoveryPhraseViewModel viewModel = new ViewModelProvider(this).get(PaymentsRecoveryPhraseViewModel.class);
next.setOnClickListener(v -> viewModel.onSubmit(words)); next.setOnClickListener(v -> viewModel.onSubmit(words));
edit.setOnClickListener(v -> Navigation.findNavController(v).popBackStack()); edit.setOnClickListener(v -> Navigation.findNavController(v).popBackStack());

Wyświetl plik

@ -21,7 +21,7 @@ import androidx.biometric.BiometricManager;
import androidx.biometric.BiometricPrompt; import androidx.biometric.BiometricPrompt;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.fragment.NavHostFragment; import androidx.navigation.fragment.NavHostFragment;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -96,7 +96,7 @@ public class ConfirmPaymentFragment extends BottomSheetDialogFragment {
@Override @Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
ConfirmPaymentViewModel.Factory factory = new ConfirmPaymentViewModel.Factory(ConfirmPaymentFragmentArgs.fromBundle(requireArguments()).getCreatePaymentDetails()); ConfirmPaymentViewModel.Factory factory = new ConfirmPaymentViewModel.Factory(ConfirmPaymentFragmentArgs.fromBundle(requireArguments()).getCreatePaymentDetails());
viewModel = ViewModelProviders.of(this, factory).get(ConfirmPaymentViewModel.class); viewModel = new ViewModelProvider(this, factory).get(ConfirmPaymentViewModel.class);
RecyclerView list = view.findViewById(R.id.confirm_payment_fragment_list); RecyclerView list = view.findViewById(R.id.confirm_payment_fragment_list);
ConfirmPaymentAdapter adapter = new ConfirmPaymentAdapter(new Callbacks()); ConfirmPaymentAdapter adapter = new ConfirmPaymentAdapter(new Callbacks());

Wyświetl plik

@ -12,7 +12,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@ -41,7 +41,7 @@ public class DeactivateWalletFragment extends Fragment {
notice.setLearnMoreVisible(true); notice.setLearnMoreVisible(true);
notice.setLink(getString(R.string.DeactivateWalletFragment__learn_more__we_recommend_transferring_your_funds)); notice.setLink(getString(R.string.DeactivateWalletFragment__learn_more__we_recommend_transferring_your_funds));
DeactivateWalletViewModel viewModel = ViewModelProviders.of(this).get(DeactivateWalletViewModel.class); DeactivateWalletViewModel viewModel = new ViewModelProvider(this).get(DeactivateWalletViewModel.class);
viewModel.getBalance().observe(getViewLifecycleOwner(), balance::setMoney); viewModel.getBalance().observe(getViewLifecycleOwner(), balance::setMoney);
viewModel.getDeactivationResults().observe(getViewLifecycleOwner(), r -> { viewModel.getDeactivationResults().observe(getViewLifecycleOwner(), r -> {

Wyświetl plik

@ -13,7 +13,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import androidx.navigation.fragment.NavHostFragment; import androidx.navigation.fragment.NavHostFragment;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -119,7 +119,7 @@ public class PaymentsHomeFragment extends LoggingFragment {
PaymentsHomeAdapter adapter = new PaymentsHomeAdapter(new HomeCallbacks()); PaymentsHomeAdapter adapter = new PaymentsHomeAdapter(new HomeCallbacks());
recycler.setAdapter(adapter); recycler.setAdapter(adapter);
viewModel = ViewModelProviders.of(this, new PaymentsHomeViewModel.Factory()).get(PaymentsHomeViewModel.class); viewModel = new ViewModelProvider(this, new PaymentsHomeViewModel.Factory()).get(PaymentsHomeViewModel.class);
viewModel.getList().observe(getViewLifecycleOwner(), list -> { viewModel.getList().observe(getViewLifecycleOwner(), list -> {
boolean hadPaymentItems = Stream.of(adapter.getCurrentList()).anyMatch(model -> model instanceof PaymentItem); boolean hadPaymentItems = Stream.of(adapter.getCurrentList()).anyMatch(model -> model instanceof PaymentItem);

Wyświetl plik

@ -6,7 +6,7 @@ import android.view.View;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.fragment.NavHostFragment; import androidx.navigation.fragment.NavHostFragment;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -50,7 +50,7 @@ public class PaymentsPagerItemFragment extends LoggingFragment {
@Override @Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
PaymentsPagerItemViewModel.Factory factory = new PaymentsPagerItemViewModel.Factory(PaymentCategory.forCode(requireArguments().getString(PAYMENT_CATEGORY))); PaymentsPagerItemViewModel.Factory factory = new PaymentsPagerItemViewModel.Factory(PaymentCategory.forCode(requireArguments().getString(PAYMENT_CATEGORY)));
viewModel = ViewModelProviders.of(this, factory).get(PaymentsPagerItemViewModel.class); viewModel = new ViewModelProvider(this, factory).get(PaymentsPagerItemViewModel.class);
RecyclerView recycler = view.findViewById(R.id.payments_activity_pager_item_fragment_recycler); RecyclerView recycler = view.findViewById(R.id.payments_activity_pager_item_fragment_recycler);
PaymentsHomeAdapter adapter = new PaymentsHomeAdapter(new Callbacks()); PaymentsHomeAdapter adapter = new PaymentsHomeAdapter(new Callbacks());

Wyświetl plik

@ -6,7 +6,7 @@ import android.view.View;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -31,7 +31,7 @@ public final class SetCurrencyFragment extends LoggingFragment {
toolbar.setNavigationOnClickListener(v -> Navigation.findNavController(v).popBackStack()); toolbar.setNavigationOnClickListener(v -> Navigation.findNavController(v).popBackStack());
SetCurrencyViewModel viewModel = ViewModelProviders.of(this, new SetCurrencyViewModel.Factory()).get(SetCurrencyViewModel.class); SetCurrencyViewModel viewModel = new ViewModelProvider(this, new SetCurrencyViewModel.Factory()).get(SetCurrencyViewModel.class);
BaseSettingsAdapter adapter = new BaseSettingsAdapter(); BaseSettingsAdapter adapter = new BaseSettingsAdapter();
adapter.configureSingleSelect(selection -> viewModel.select((Currency) selection)); adapter.configureSingleSelect(selection -> viewModel.select((Currency) selection));

Wyświetl plik

@ -11,7 +11,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import org.thoughtcrime.securesms.LoggingFragment; import org.thoughtcrime.securesms.LoggingFragment;
@ -28,7 +28,7 @@ public final class PaymentsAddMoneyFragment extends LoggingFragment {
@Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState); super.onViewCreated(view, savedInstanceState);
PaymentsAddMoneyViewModel viewModel = ViewModelProviders.of(this, new PaymentsAddMoneyViewModel.Factory()).get(PaymentsAddMoneyViewModel.class); PaymentsAddMoneyViewModel viewModel = new ViewModelProvider(this, new PaymentsAddMoneyViewModel.Factory()).get(PaymentsAddMoneyViewModel.class);
Toolbar toolbar = view.findViewById(R.id.payments_add_money_toolbar); Toolbar toolbar = view.findViewById(R.id.payments_add_money_toolbar);
QrView qrImageView = view.findViewById(R.id.payments_add_money_qr_image); QrView qrImageView = view.findViewById(R.id.payments_add_money_qr_image);

Wyświetl plik

@ -17,7 +17,7 @@ import androidx.appcompat.widget.Toolbar;
import androidx.constraintlayout.widget.Group; import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import org.signal.core.util.logging.Log; import org.signal.core.util.logging.Log;
@ -99,7 +99,7 @@ public final class PaymentDetailsFragment extends LoggingFragment {
sentFeeAmount.setVisibility(View.VISIBLE); sentFeeAmount.setVisibility(View.VISIBLE);
} }
} else { } else {
PaymentsDetailsViewModel viewModel = ViewModelProviders.of(this, new PaymentsDetailsViewModel.Factory(details.requireUuid())).get(PaymentsDetailsViewModel.class); PaymentsDetailsViewModel viewModel = new ViewModelProvider(this, new PaymentsDetailsViewModel.Factory(details.requireUuid())).get(PaymentsDetailsViewModel.class);
viewModel.getViewState() viewModel.getViewState()
.observe(getViewLifecycleOwner(), .observe(getViewLifecycleOwner(),
state -> { state -> {

Wyświetl plik

@ -18,7 +18,7 @@ import androidx.annotation.StringRes;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.autofill.HintConstants; import androidx.autofill.HintConstants;
import androidx.core.view.ViewCompat; import androidx.core.view.ViewCompat;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import org.signal.core.util.logging.Log; import org.signal.core.util.logging.Log;
@ -111,7 +111,7 @@ public class PinRestoreEntryFragment extends LoggingFragment {
} }
private void initViewModel() { private void initViewModel() {
viewModel = ViewModelProviders.of(this).get(PinRestoreViewModel.class); viewModel = new ViewModelProvider(this).get(PinRestoreViewModel.class);
viewModel.getTriesRemaining().observe(getViewLifecycleOwner(), this::presentTriesRemaining); viewModel.getTriesRemaining().observe(getViewLifecycleOwner(), this::presentTriesRemaining);
viewModel.getEvent().observe(getViewLifecycleOwner(), this::presentEvent); viewModel.getEvent().observe(getViewLifecycleOwner(), this::presentEvent);

Wyświetl plik

@ -8,7 +8,7 @@ import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel; import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.concurrent.SignalExecutors;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
@ -27,7 +27,7 @@ public class ApplicationPreferencesViewModel extends ViewModel {
} }
static ApplicationPreferencesViewModel getApplicationPreferencesViewModel(@NonNull FragmentActivity activity) { static ApplicationPreferencesViewModel getApplicationPreferencesViewModel(@NonNull FragmentActivity activity) {
return ViewModelProviders.of(activity).get(ApplicationPreferencesViewModel.class); return new ViewModelProvider(activity).get(ApplicationPreferencesViewModel.class);
} }
void refreshStorageBreakdown(@NonNull Context context) { void refreshStorageBreakdown(@NonNull Context context) {

Wyświetl plik

@ -14,7 +14,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.widget.SwitchCompat; import androidx.appcompat.widget.SwitchCompat;
import androidx.core.app.ShareCompat; import androidx.core.app.ShareCompat;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.contactshare.SimpleTextWatcher; import org.thoughtcrime.securesms.contactshare.SimpleTextWatcher;
@ -89,7 +89,7 @@ public class EditProxyFragment extends Fragment {
} }
private void initViewModel() { private void initViewModel() {
viewModel = ViewModelProviders.of(this).get(EditProxyViewModel.class); viewModel = new ViewModelProvider(this).get(EditProxyViewModel.class);
viewModel.getUiState().observe(getViewLifecycleOwner(), this::presentUiState); viewModel.getUiState().observe(getViewLifecycleOwner(), this::presentUiState);
viewModel.getProxyState().observe(getViewLifecycleOwner(), this::presentProxyState); viewModel.getProxyState().observe(getViewLifecycleOwner(), this::presentProxyState);

Wyświetl plik

@ -16,7 +16,7 @@ import androidx.annotation.Nullable;
import androidx.annotation.StringRes; import androidx.annotation.StringRes;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.ListAdapter; import androidx.recyclerview.widget.ListAdapter;
@ -144,7 +144,7 @@ public class EditAboutFragment extends Fragment implements ManageProfileActivity
} }
private void initializeViewModel() { private void initializeViewModel() {
this.viewModel = ViewModelProviders.of(this).get(EditAboutViewModel.class); this.viewModel = new ViewModelProvider(this).get(EditAboutViewModel.class);
viewModel.getSaveState().observe(getViewLifecycleOwner(), this::presentSaveState); viewModel.getSaveState().observe(getViewLifecycleOwner(), this::presentSaveState);
viewModel.getEvents().observe(getViewLifecycleOwner(), this::presentEvent); viewModel.getEvents().observe(getViewLifecycleOwner(), this::presentEvent);

Wyświetl plik

@ -13,7 +13,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import org.signal.core.util.EditTextUtil; import org.signal.core.util.EditTextUtil;
@ -76,7 +76,7 @@ public class EditProfileNameFragment extends Fragment {
} }
private void initializeViewModel() { private void initializeViewModel() {
this.viewModel = ViewModelProviders.of(this).get(EditProfileNameViewModel.class); this.viewModel = new ViewModelProvider(this).get(EditProfileNameViewModel.class);
viewModel.getSaveState().observe(getViewLifecycleOwner(), this::presentSaveState); viewModel.getSaveState().observe(getViewLifecycleOwner(), this::presentSaveState);
viewModel.getEvents().observe(getViewLifecycleOwner(), this::presentEvent); viewModel.getEvents().observe(getViewLifecycleOwner(), this::presentEvent);

Wyświetl plik

@ -12,7 +12,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.PluralsRes; import androidx.annotation.PluralsRes;
import androidx.annotation.StringRes; import androidx.annotation.StringRes;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
@ -99,7 +99,7 @@ public class ReviewCardDialogFragment extends FullScreenDialogFragment {
ReviewCardRepository repository = getRepository(); ReviewCardRepository repository = getRepository();
ReviewCardViewModel.Factory factory = new ReviewCardViewModel.Factory(repository, getGroupId()); ReviewCardViewModel.Factory factory = new ReviewCardViewModel.Factory(repository, getGroupId());
viewModel = ViewModelProviders.of(this, factory).get(ReviewCardViewModel.class); viewModel = new ViewModelProvider(this, factory).get(ReviewCardViewModel.class);
} }
private @StringRes int getDescriptionResId() { private @StringRes int getDescriptionResId() {

Wyświetl plik

@ -12,7 +12,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment; import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@ -78,7 +78,7 @@ public final class ProxyBottomSheetFragment extends BottomSheetDialogFragment {
} }
private void initViewModel() { private void initViewModel() {
this.viewModel = ViewModelProviders.of(this).get(EditProxyViewModel.class); this.viewModel = new ViewModelProvider(this).get(EditProxyViewModel.class);
viewModel.getSaveState().observe(getViewLifecycleOwner(), this::presentSaveState); viewModel.getSaveState().observe(getViewLifecycleOwner(), this::presentSaveState);
viewModel.getEvents().observe(getViewLifecycleOwner(), this::presentEvents); viewModel.getEvents().observe(getViewLifecycleOwner(), this::presentEvents);

Wyświetl plik

@ -16,20 +16,14 @@ import android.widget.FrameLayout;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.loader.app.LoaderManager; import androidx.loader.app.LoaderManager;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.bottomsheet.BottomSheetBehavior; import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.bottomsheet.BottomSheetDialog; import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.shape.CornerFamily;
import com.google.android.material.shape.MaterialShapeDrawable;
import com.google.android.material.shape.ShapeAppearanceModel;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.components.FixedRoundedCornerBottomSheetDialogFragment; import org.thoughtcrime.securesms.components.FixedRoundedCornerBottomSheetDialogFragment;
@ -41,7 +35,6 @@ import org.thoughtcrime.securesms.keyboard.emoji.EmojiKeyboardPageCategoriesAdap
import org.thoughtcrime.securesms.keyboard.emoji.EmojiKeyboardPageCategoryMappingModel; import org.thoughtcrime.securesms.keyboard.emoji.EmojiKeyboardPageCategoryMappingModel;
import org.thoughtcrime.securesms.keyboard.emoji.KeyboardPageSearchView; import org.thoughtcrime.securesms.keyboard.emoji.KeyboardPageSearchView;
import org.thoughtcrime.securesms.reactions.edit.EditReactionsActivity; import org.thoughtcrime.securesms.reactions.edit.EditReactionsActivity;
import org.thoughtcrime.securesms.util.FullscreenHelper;
import org.thoughtcrime.securesms.util.LifecycleDisposable; import org.thoughtcrime.securesms.util.LifecycleDisposable;
import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.ViewUtil;
@ -245,7 +238,7 @@ public final class ReactWithAnyEmojiBottomSheetDialogFragment extends FixedRound
ReactWithAnyEmojiRepository repository = new ReactWithAnyEmojiRepository(requireContext(), args.getString(ARG_RECENT_KEY, REACTION_STORAGE_KEY)); ReactWithAnyEmojiRepository repository = new ReactWithAnyEmojiRepository(requireContext(), args.getString(ARG_RECENT_KEY, REACTION_STORAGE_KEY));
ReactWithAnyEmojiViewModel.Factory factory = new ReactWithAnyEmojiViewModel.Factory(repository, args.getLong(ARG_MESSAGE_ID), args.getBoolean(ARG_IS_MMS)); ReactWithAnyEmojiViewModel.Factory factory = new ReactWithAnyEmojiViewModel.Factory(repository, args.getLong(ARG_MESSAGE_ID), args.getBoolean(ARG_IS_MMS));
viewModel = ViewModelProviders.of(this, factory).get(ReactWithAnyEmojiViewModel.class); viewModel = new ViewModelProvider(this, factory).get(ReactWithAnyEmojiViewModel.class);
} }
@Override @Override

Wyświetl plik

@ -16,7 +16,7 @@ import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ShareCompat; import androidx.core.app.ShareCompat;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import org.signal.core.util.logging.Log; import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
@ -78,7 +78,7 @@ public class GroupLinkShareQrDialogFragment extends DialogFragment {
GroupId.V2 groupId = GroupId.parseOrThrow(Objects.requireNonNull(arguments.getString(ARG_GROUP_ID))).requireV2(); GroupId.V2 groupId = GroupId.parseOrThrow(Objects.requireNonNull(arguments.getString(ARG_GROUP_ID))).requireV2();
GroupLinkShareQrViewModel.Factory factory = new GroupLinkShareQrViewModel.Factory(groupId); GroupLinkShareQrViewModel.Factory factory = new GroupLinkShareQrViewModel.Factory(groupId);
viewModel = ViewModelProviders.of(this, factory).get(GroupLinkShareQrViewModel.class); viewModel = new ViewModelProvider(this, factory).get(GroupLinkShareQrViewModel.class);
} }
private void initializeViews(@NonNull View view) { private void initializeViews(@NonNull View view) {

Wyświetl plik

@ -10,7 +10,7 @@ import android.webkit.WebViewClient;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.fragment.NavHostFragment; import androidx.navigation.fragment.NavHostFragment;
import org.thoughtcrime.securesms.BuildConfig; import org.thoughtcrime.securesms.BuildConfig;
@ -64,7 +64,8 @@ public final class CaptchaFragment extends LoggingFragment {
} }
if (provider == null) { if (provider == null) {
viewModel = ViewModelProviders.of(requireActivity()).get(RegistrationViewModel.class); viewModel = new ViewModelProvider(
requireActivity()).get(RegistrationViewModel.class);
} else { } else {
viewModel = provider.get(this); viewModel = provider.get(this);
} }

Wyświetl plik

@ -15,7 +15,6 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.core.text.HtmlCompat; import androidx.core.text.HtmlCompat;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
@ -60,7 +59,6 @@ public class ChooseBackupFragment extends LoggingFragment {
} }
} }
@RequiresApi(21)
private void onChooseBackupSelected(@NonNull View view) { private void onChooseBackupSelected(@NonNull View view) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT); Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

Wyświetl plik

@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.registration.fragments; package org.thoughtcrime.securesms.registration.fragments;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import androidx.navigation.fragment.NavHostFragment; import androidx.navigation.fragment.NavHostFragment;
@ -24,7 +24,7 @@ public final class EnterSmsCodeFragment extends BaseEnterSmsCodeFragment<Registr
@Override @Override
protected @NonNull RegistrationViewModel getViewModel() { protected @NonNull RegistrationViewModel getViewModel() {
return ViewModelProviders.of(requireActivity()).get(RegistrationViewModel.class); return new ViewModelProvider(requireActivity()).get(RegistrationViewModel.class);
} }
@Override @Override

Wyświetl plik

@ -17,7 +17,7 @@ import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi; import androidx.annotation.RequiresApi;
import androidx.annotation.StringRes; import androidx.annotation.StringRes;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.ActivityNavigator; import androidx.navigation.ActivityNavigator;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import androidx.navigation.fragment.NavHostFragment; import androidx.navigation.fragment.NavHostFragment;
@ -84,7 +84,7 @@ public final class WelcomeFragment extends LoggingFragment {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState); super.onViewCreated(view, savedInstanceState);
viewModel = ViewModelProviders.of(requireActivity()).get(RegistrationViewModel.class); viewModel = new ViewModelProvider(requireActivity()).get(RegistrationViewModel.class);
if (viewModel.isReregister()) { if (viewModel.isReregister()) {
if (viewModel.hasRestoreFlowBeenShown()) { if (viewModel.hasRestoreFlowBeenShown()) {

Wyświetl plik

@ -14,7 +14,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.app.AppCompatDelegate;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import org.signal.core.util.logging.Log; import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.PassphraseRequiredActivity; import org.thoughtcrime.securesms.PassphraseRequiredActivity;
@ -99,8 +99,7 @@ public class ViewOnceMessageActivity extends PassphraseRequiredActivity implemen
private void initViewModel(long messageId, @NonNull Uri uri) { private void initViewModel(long messageId, @NonNull Uri uri) {
ViewOnceMessageRepository repository = new ViewOnceMessageRepository(this); ViewOnceMessageRepository repository = new ViewOnceMessageRepository(this);
viewModel = ViewModelProviders.of(this, new ViewOnceMessageViewModel.Factory(messageId, repository)) viewModel = new ViewModelProvider(this, new ViewOnceMessageViewModel.Factory(messageId, repository)).get(ViewOnceMessageViewModel.class);
.get(ViewOnceMessageViewModel.class);
viewModel.getMessage().observe(this, (message) -> { viewModel.getMessage().observe(this, (message) -> {
if (message == null) return; if (message == null) return;

Wyświetl plik

@ -9,7 +9,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.app.AppCompatDelegate;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.concurrent.SignalExecutors;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
@ -37,7 +37,7 @@ public final class ImageEditorStickerSelectActivity extends AppCompatActivity im
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.scribble_select_new_sticker_activity); setContentView(R.layout.scribble_select_new_sticker_activity);
KeyboardPagerViewModel keyboardPagerViewModel = ViewModelProviders.of(this).get(KeyboardPagerViewModel.class); KeyboardPagerViewModel keyboardPagerViewModel = new ViewModelProvider(this).get(KeyboardPagerViewModel.class);
keyboardPagerViewModel.setOnlyPage(KeyboardPage.STICKER); keyboardPagerViewModel.setOnlyPage(KeyboardPage.STICKER);
MediaKeyboard mediaKeyboard = findViewById(R.id.emoji_drawer); MediaKeyboard mediaKeyboard = findViewById(R.id.emoji_drawer);

Wyświetl plik

@ -6,7 +6,7 @@ import android.os.Bundle;
import android.view.MenuItem; import android.view.MenuItem;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -124,7 +124,7 @@ public final class StickerManagementActivity extends PassphraseRequiredActivity
private void initViewModel() { private void initViewModel() {
StickerManagementRepository repository = new StickerManagementRepository(this); StickerManagementRepository repository = new StickerManagementRepository(this);
viewModel = ViewModelProviders.of(this, new StickerManagementViewModel.Factory(getApplication(), repository)).get(StickerManagementViewModel.class); viewModel = new ViewModelProvider(this, new StickerManagementViewModel.Factory(getApplication(), repository)).get(StickerManagementViewModel.class);
viewModel.init(); viewModel.init();
viewModel.getStickerPacks().observe(this, packResult -> { viewModel.getStickerPacks().observe(this, packResult -> {

Wyświetl plik

@ -12,7 +12,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -175,10 +175,10 @@ public final class StickerPackPreviewActivity extends PassphraseRequiredActivity
} }
private void initViewModel(@NonNull String packId, @NonNull String packKey) { private void initViewModel(@NonNull String packId, @NonNull String packKey) {
viewModel = ViewModelProviders.of(this, new StickerPackPreviewViewModel.Factory(getApplication(), viewModel = new ViewModelProvider(this, new StickerPackPreviewViewModel.Factory(getApplication(),
new StickerPackPreviewRepository(this), new StickerPackPreviewRepository(this),
new StickerManagementRepository(this))) new StickerManagementRepository(this))
.get(StickerPackPreviewViewModel.class); ).get(StickerPackPreviewViewModel.class);
viewModel.getStickerManifest(packId, packKey).observe(this, manifest -> { viewModel.getStickerManifest(packId, packKey).observe(this, manifest -> {
if (manifest == null) return; if (manifest == null) return;

Wyświetl plik

@ -38,7 +38,7 @@ class GroupStorySettingsViewModel(private val groupId: GroupId) : ViewModel() {
} }
class Factory(private val parcelableGroupId: ParcelableGroupId) : ViewModelProvider.Factory { class Factory(private val parcelableGroupId: ParcelableGroupId) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T { override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(GroupStorySettingsViewModel(ParcelableGroupId.get(parcelableGroupId)!!)) as T return modelClass.cast(GroupStorySettingsViewModel(ParcelableGroupId.get(parcelableGroupId)!!)) as T
} }
} }

Wyświetl plik

@ -25,7 +25,7 @@ object LocaleUtil {
} }
for (index in 0 until localeList.size()) { for (index in 0 until localeList.size()) {
locales += localeList.get(index) locales += localeList.get(index) ?: continue
} }
return locales return locales

Wyświetl plik

@ -6,7 +6,7 @@ import android.os.Bundle;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.NavGraph; import androidx.navigation.NavGraph;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
@ -35,7 +35,7 @@ public final class ChatWallpaperActivity extends PassphraseRequiredActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState, boolean ready) { protected void onCreate(Bundle savedInstanceState, boolean ready) {
ChatWallpaperViewModel.Factory factory = new ChatWallpaperViewModel.Factory(getIntent().getParcelableExtra(EXTRA_RECIPIENT_ID)); ChatWallpaperViewModel.Factory factory = new ChatWallpaperViewModel.Factory(getIntent().getParcelableExtra(EXTRA_RECIPIENT_ID));
ViewModelProviders.of(this, factory).get(ChatWallpaperViewModel.class); new ViewModelProvider(this, factory).get(ChatWallpaperViewModel.class);
dynamicTheme.onCreate(this); dynamicTheme.onCreate(this);
setContentView(R.layout.chat_wallpaper_activity); setContentView(R.layout.chat_wallpaper_activity);

Wyświetl plik

@ -20,7 +20,7 @@ import androidx.core.content.ContextCompat;
import androidx.core.widget.ImageViewCompat; import androidx.core.widget.ImageViewCompat;
import androidx.core.widget.TextViewCompat; import androidx.core.widget.TextViewCompat;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@ -50,7 +50,7 @@ public class ChatWallpaperFragment extends Fragment {
@Override @Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
viewModel = ViewModelProviders.of(requireActivity()).get(ChatWallpaperViewModel.class); viewModel = new ViewModelProvider(requireActivity()).get(ChatWallpaperViewModel.class);
AvatarImageView portrait = view.findViewById(R.id.chat_wallpaper_preview_top_bar_portrait); AvatarImageView portrait = view.findViewById(R.id.chat_wallpaper_preview_top_bar_portrait);
Toolbar toolbar = view.findViewById(R.id.toolbar); Toolbar toolbar = view.findViewById(R.id.toolbar);

Wyświetl plik

@ -13,7 +13,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -52,7 +52,7 @@ public class ChatWallpaperSelectionFragment extends Fragment {
recyclerView.setAdapter(adapter); recyclerView.setAdapter(adapter);
viewModel = ViewModelProviders.of(requireActivity()).get(ChatWallpaperViewModel.class); viewModel = new ViewModelProvider(requireActivity()).get(ChatWallpaperViewModel.class);
viewModel.getWallpapers().observe(getViewLifecycleOwner(), adapter::submitList); viewModel.getWallpapers().observe(getViewLifecycleOwner(), adapter::submitList);
} }

Wyświetl plik

@ -20,7 +20,7 @@ import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.widget.SwitchCompat; import androidx.appcompat.widget.SwitchCompat;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProvider;
import org.signal.core.util.logging.Log; import org.signal.core.util.logging.Log;
import org.signal.imageeditor.core.ImageEditorView; import org.signal.imageeditor.core.ImageEditorView;
@ -84,7 +84,7 @@ public final class WallpaperCropActivity extends BaseActivity {
Log.i(TAG, "Cropping wallpaper for " + (recipientId == null ? "default wallpaper" : recipientId)); Log.i(TAG, "Cropping wallpaper for " + (recipientId == null ? "default wallpaper" : recipientId));
WallpaperCropViewModel.Factory factory = new WallpaperCropViewModel.Factory(recipientId); WallpaperCropViewModel.Factory factory = new WallpaperCropViewModel.Factory(recipientId);
viewModel = ViewModelProviders.of(this, factory).get(WallpaperCropViewModel.class); viewModel = new ViewModelProvider(this, factory).get(WallpaperCropViewModel.class);
imageEditor = findViewById(R.id.image_editor); imageEditor = findViewById(R.id.image_editor);
View sentBubble = findViewById(R.id.preview_bubble_2); View sentBubble = findViewById(R.id.preview_bubble_2);

Wyświetl plik

@ -91,7 +91,7 @@
android:contentDescription="@string/conversation_activity__emoji_toggle_description" android:contentDescription="@string/conversation_activity__emoji_toggle_description"
android:paddingStart="12dp" android:paddingStart="12dp"
android:paddingEnd="12dp" android:paddingEnd="12dp"
android:tint="@color/signal_colorOnSurfaceVariant" /> app:tint="@color/signal_colorOnSurfaceVariant" />
<Space <Space
android:layout_width="0dp" android:layout_width="0dp"
@ -135,7 +135,7 @@
android:background="?selectableItemBackgroundBorderless" android:background="?selectableItemBackgroundBorderless"
android:contentDescription="@string/conversation_activity__quick_attachment_drawer_toggle_camera_description" android:contentDescription="@string/conversation_activity__quick_attachment_drawer_toggle_camera_description"
android:scaleType="fitCenter" android:scaleType="fitCenter"
android:tint="@color/signal_colorOnSurfaceVariant" app:tint="@color/signal_colorOnSurfaceVariant"
app:srcCompat="@drawable/ic_camera_24" /> app:srcCompat="@drawable/ic_camera_24" />
<org.thoughtcrime.securesms.components.MicrophoneRecorderView <org.thoughtcrime.securesms.components.MicrophoneRecorderView
@ -169,7 +169,7 @@
android:background="?selectableItemBackgroundBorderless" android:background="?selectableItemBackgroundBorderless"
android:contentDescription="@string/ConversationActivity_add_attachment" android:contentDescription="@string/ConversationActivity_add_attachment"
android:scaleType="fitCenter" android:scaleType="fitCenter"
android:tint="@color/signal_colorOnSurface" app:tint="@color/signal_colorOnSurface"
app:srcCompat="@drawable/ic_plus_24" /> app:srcCompat="@drawable/ic_plus_24" />
</org.thoughtcrime.securesms.components.HidingLinearLayout> </org.thoughtcrime.securesms.components.HidingLinearLayout>
@ -213,7 +213,7 @@
android:nextFocusLeft="@+id/embedded_text_editor" android:nextFocusLeft="@+id/embedded_text_editor"
android:padding="9dp" android:padding="9dp"
android:scaleType="fitCenter" android:scaleType="fitCenter"
android:tint="@color/conversation_send_button_tint" app:tint="@color/conversation_send_button_tint"
app:srcCompat="@drawable/ic_plus_24" /> app:srcCompat="@drawable/ic_plus_24" />
<org.thoughtcrime.securesms.components.SendButton <org.thoughtcrime.securesms.components.SendButton
@ -225,7 +225,7 @@
android:nextFocusLeft="@+id/embedded_text_editor" android:nextFocusLeft="@+id/embedded_text_editor"
android:padding="9dp" android:padding="9dp"
android:scaleType="fitCenter" android:scaleType="fitCenter"
android:tint="@color/conversation_send_button_tint" app:tint="@color/conversation_send_button_tint"
app:srcCompat="@drawable/ic_send_unlock_24" /> app:srcCompat="@drawable/ic_send_unlock_24" />
</org.thoughtcrime.securesms.components.AnimatingToggle> </org.thoughtcrime.securesms.components.AnimatingToggle>

Wyświetl plik

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android" <merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
tools:viewBindingIgnore="true"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
tools:parentTag="android.widget.FrameLayout"> tools:parentTag="android.widget.FrameLayout"
tools:viewBindingIgnore="true">
<ImageButton <ImageButton
android:id="@+id/conversation_scroll_to_button" android:id="@+id/conversation_scroll_to_button"
@ -16,7 +17,7 @@
android:contentDescription="@string/conversation_fragment__scroll_to_the_bottom_content_description" android:contentDescription="@string/conversation_fragment__scroll_to_the_bottom_content_description"
android:elevation="1dp" android:elevation="1dp"
android:scaleType="center" android:scaleType="center"
android:tint="@color/conversation_scroll_to_bottom_foreground_color" app:tint="@color/conversation_scroll_to_bottom_foreground_color"
tools:src="@drawable/ic_chevron_down_20" /> tools:src="@drawable/ic_chevron_down_20" />
<TextView <TextView

Wyświetl plik

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
tools:viewBindingIgnore="true"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical"
tools:viewBindingIgnore="true">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -32,8 +33,8 @@
android:background="?attr/selectableItemBackgroundBorderless" android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/ContactShareEditActivity__edit_name" android:contentDescription="@string/ContactShareEditActivity__edit_name"
android:scaleType="centerInside" android:scaleType="centerInside"
android:src="@drawable/ic_compose_24" app:srcCompat="@drawable/ic_compose_24"
android:tint="@color/signal_colorOnSurface" /> app:tint="@color/signal_colorOnSurface" />
</LinearLayout> </LinearLayout>

Wyświetl plik

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android" <merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
tools:viewBindingIgnore="true"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
tools:showIn="@layout/conversation_input_panel"> tools:showIn="@layout/conversation_input_panel"
tools:viewBindingIgnore="true">
<ImageButton <ImageButton
android:id="@+id/quick_audio_toggle" android:id="@+id/quick_audio_toggle"
@ -14,8 +14,8 @@
android:background="@null" android:background="@null"
android:contentDescription="@string/conversation_activity__quick_attachment_drawer_record_and_send_audio_description" android:contentDescription="@string/conversation_activity__quick_attachment_drawer_record_and_send_audio_description"
android:scaleType="fitCenter" android:scaleType="fitCenter"
android:tint="@color/signal_colorOnSurfaceVariant" app:srcCompat="@drawable/ic_mic_24"
app:srcCompat="@drawable/ic_mic_24" /> app:tint="@color/signal_colorOnSurfaceVariant" />
<LinearLayout <LinearLayout
android:id="@+id/lock_drop_target" android:id="@+id/lock_drop_target"
@ -55,11 +55,11 @@
android:layout_height="74dp" android:layout_height="74dp"
android:layout_marginStart="-18dp" android:layout_marginStart="-18dp"
android:layout_marginTop="-18dp" android:layout_marginTop="-18dp"
android:padding="18dp"
android:background="@drawable/circle_tintable" android:background="@drawable/circle_tintable"
android:clickable="false" android:clickable="false"
android:visibility="gone" android:padding="18dp"
android:tint="@color/core_white" android:tint="@color/core_white"
android:visibility="gone"
app:srcCompat="@drawable/ic_mic_24" app:srcCompat="@drawable/ic_mic_24"
tools:ignore="ContentDescription" tools:ignore="ContentDescription"
tools:visibility="visible" /> tools:visibility="visible" />

Wyświetl plik

@ -61,7 +61,7 @@
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:padding="5dp" android:padding="5dp"
android:background="@drawable/circle_tintable" android:background="@drawable/circle_tintable"
android:tint="@color/grey_600" app:tint="@color/grey_600"
android:elevation="1dp" android:elevation="1dp"
app:srcCompat="@drawable/ic_chevron_down_20" app:srcCompat="@drawable/ic_chevron_down_20"
android:scaleY="-1" android:scaleY="-1"
@ -76,8 +76,8 @@
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:padding="5dp" android:padding="5dp"
android:background="@drawable/circle_tintable" android:background="@drawable/circle_tintable"
android:tint="@color/grey_600"
android:elevation="1dp" android:elevation="1dp"
app:tint="@color/grey_600"
app:srcCompat="@drawable/ic_chevron_down_20" app:srcCompat="@drawable/ic_chevron_down_20"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/debug_log_submit_button"/> app:layout_constraintBottom_toTopOf="@id/debug_log_submit_button"/>

Wyświetl plik

@ -39,7 +39,7 @@
android:nextFocusLeft="@+id/container" android:nextFocusLeft="@+id/container"
android:nextFocusRight="@+id/container" android:nextFocusRight="@+id/container"
android:src="@drawable/ic_close_white_24dp" android:src="@drawable/ic_close_white_24dp"
android:tint="@color/signal_icon_tint_primary" app:tint="@color/signal_icon_tint_primary"
android:contentDescription="@string/InviteActivity_cancel"/> android:contentDescription="@string/InviteActivity_cancel"/>
</LinearLayout> </LinearLayout>

Wyświetl plik

@ -17,9 +17,9 @@ buildscript {
} }
} }
dependencies { dependencies {
classpath 'com.android.tools:r8:3.3.28' classpath 'com.android.tools:r8:3.3.75'
classpath 'com.android.tools.build:gradle:7.0.3' classpath 'com.android.tools.build:gradle:7.2.2'
classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5' classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.5.2'
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.17' classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.17'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jlleitschuh.gradle:ktlint-gradle:10.2.1" classpath "org.jlleitschuh.gradle:ktlint-gradle:10.2.1"
@ -30,7 +30,7 @@ buildscript {
ext { ext {
BUILD_TOOL_VERSION = '31.0.0' BUILD_TOOL_VERSION = '31.0.0'
COMPILE_SDK = 31 COMPILE_SDK = 32
TARGET_SDK = 30 TARGET_SDK = 30
MINIMUM_SDK = 19 MINIMUM_SDK = 19

Wyświetl plik

@ -4,13 +4,16 @@
dependencyResolutionManagement { dependencyResolutionManagement {
versionCatalogs { versionCatalogs {
libs { libs {
version('libsignal-client', '0.20.0')
version('exoplayer', '2.18.1')
version('androidx-camera', '1.1.0') version('androidx-camera', '1.1.0')
version('androidx-lifecycle', '2.3.1') version('androidx-fragment', '1.5.2')
version('mp4parser', '1.9.39') version('androidx-lifecycle', '2.5.1')
version('kotlin', '1.6.21') version('androidx-navigation', '2.5.2')
version('androidx-window', '1.0.0')
version('exoplayer', '2.18.1')
version('glide', '4.13.2') version('glide', '4.13.2')
version('kotlin', '1.6.21')
version('libsignal-client', '0.20.0')
version('mp4parser', '1.9.39')
// Desugaring // Desugaring
alias('android-tools-desugar').to('com.android.tools:desugar_jdk_libs:1.1.5') alias('android-tools-desugar').to('com.android.tools:desugar_jdk_libs:1.1.5')
@ -20,12 +23,15 @@ dependencyResolutionManagement {
alias('kotlin-reflect').to('org.jetbrains.kotlin', 'kotlin-reflect').versionRef('kotlin') alias('kotlin-reflect').to('org.jetbrains.kotlin', 'kotlin-reflect').versionRef('kotlin')
// Android X // Android X
alias('androidx-activity-ktx').to('androidx.activity:activity-ktx:1.5.1')
alias('androidx-core-ktx').to('androidx.core:core-ktx:1.5.0') alias('androidx-core-ktx').to('androidx.core:core-ktx:1.5.0')
alias('androidx-fragment-ktx').to('androidx.fragment:fragment-ktx:1.3.5') alias('androidx-fragment-ktx').to('androidx.fragment', 'fragment-ktx').versionRef('androidx-fragment')
alias('androidx-annotation').to('androidx.annotation:annotation:1.2.0') alias('androidx-fragment-testing').to('androidx.fragment', 'fragment-testing').versionRef('androidx-fragment')
alias('androidx-appcompat').to('androidx.appcompat:appcompat:1.2.0') alias('androidx-annotation').to('androidx.annotation:annotation:1.4.0')
alias('androidx-appcompat').to('androidx.appcompat:appcompat:1.5.1')
alias('androidx-constraintlayout').to('androidx.constraintlayout:constraintlayout:2.0.4') alias('androidx-constraintlayout').to('androidx.constraintlayout:constraintlayout:2.0.4')
alias('androidx-window').to('androidx.window:window:1.0.0-alpha09') alias('androidx-window-window').to('androidx.window', 'window').versionRef('androidx-window')
alias('androidx-window-java').to('androidx.window', 'window-java').versionRef('androidx-window')
alias('androidx-recyclerview').to('androidx.recyclerview:recyclerview:1.2.1') alias('androidx-recyclerview').to('androidx.recyclerview:recyclerview:1.2.1')
alias('androidx-legacy-support').to('androidx.legacy:legacy-support-v13:1.0.0') alias('androidx-legacy-support').to('androidx.legacy:legacy-support-v13:1.0.0')
alias('androidx-legacy-preference').to('androidx.legacy:legacy-preference-v14:1.0.0') alias('androidx-legacy-preference').to('androidx.legacy:legacy-preference-v14:1.0.0')
@ -34,9 +40,11 @@ dependencyResolutionManagement {
alias('androidx-gridlayout').to('androidx.gridlayout:gridlayout:1.0.0') alias('androidx-gridlayout').to('androidx.gridlayout:gridlayout:1.0.0')
alias('androidx-exifinterface').to('androidx.exifinterface:exifinterface:1.3.3') alias('androidx-exifinterface').to('androidx.exifinterface:exifinterface:1.3.3')
alias('androidx-multidex').to('androidx.multidex:multidex:2.0.1') alias('androidx-multidex').to('androidx.multidex:multidex:2.0.1')
alias('androidx-navigation-fragment-ktx').to('androidx.navigation:navigation-fragment-ktx:2.3.5') alias('androidx-navigation-fragment-ktx').to('androidx.navigation', 'navigation-fragment-ktx').versionRef('androidx-navigation')
alias('androidx-navigation-ui-ktx').to('androidx.navigation:navigation-ui-ktx:2.3.5') alias('androidx-navigation-ui-ktx').to('androidx.navigation', 'navigation-ui-ktx').versionRef('androidx-navigation')
alias('androidx-lifecycle-extensions').to('androidx.lifecycle:lifecycle-extensions:2.2.0') alias('androidx-lifecycle-viewmodel-ktx').to('androidx.lifecycle', 'lifecycle-viewmodel-ktx').versionRef('androidx-lifecycle')
alias('androidx-lifecycle-livedata-ktx').to('androidx.lifecycle', 'lifecycle-livedata-ktx').versionRef('androidx-lifecycle')
alias('androidx-lifecycle-process').to('androidx.lifecycle', 'lifecycle-process').versionRef('androidx-lifecycle')
alias('androidx-lifecycle-viewmodel-savedstate').to('androidx.lifecycle', 'lifecycle-viewmodel-savedstate').versionRef('androidx-lifecycle') alias('androidx-lifecycle-viewmodel-savedstate').to('androidx.lifecycle', 'lifecycle-viewmodel-savedstate').versionRef('androidx-lifecycle')
alias('androidx-lifecycle-common-java8').to('androidx.lifecycle', 'lifecycle-common-java8').versionRef('androidx-lifecycle') alias('androidx-lifecycle-common-java8').to('androidx.lifecycle', 'lifecycle-common-java8').versionRef('androidx-lifecycle')
alias('androidx-lifecycle-reactivestreams-ktx').to('androidx.lifecycle', 'lifecycle-reactivestreams-ktx').versionRef('androidx-lifecycle') alias('androidx-lifecycle-reactivestreams-ktx').to('androidx.lifecycle', 'lifecycle-reactivestreams-ktx').versionRef('androidx-lifecycle')
@ -124,15 +132,15 @@ dependencyResolutionManagement {
} }
testLibs { testLibs {
version('robolectric', '4.8.1')
version('androidx-test', '1.4.0') version('androidx-test', '1.4.0')
version('androidx-test-ext-junit', '1.1.1')
version('robolectric', '4.8.1')
alias('junit-junit').to('junit:junit:4.13.2') alias('junit-junit').to('junit:junit:4.13.2')
alias('androidx-test-core').to('androidx.test', 'core').versionRef('androidx-test') alias('androidx-test-core').to('androidx.test', 'core').versionRef('androidx-test')
alias('androidx-test-core-ktx').to('androidx.test', 'core-ktx').versionRef('androidx-test') alias('androidx-test-core-ktx').to('androidx.test', 'core-ktx').versionRef('androidx-test')
alias('androidx-test-ext-junit').to('androidx.test.ext:junit:1.1.1') alias('androidx-test-ext-junit').to('androidx.test.ext', 'junit').versionRef('androidx-test-ext-junit')
alias('androidx-test-ext-junit-ktx').to('androidx.test.ext:junit-ktx:1.1.1') alias('androidx-test-ext-junit-ktx').to('androidx.test.ext', 'junit-ktx').versionRef('androidx-test-ext-junit')
alias('androidx-fragment-testing').to('androidx.fragment:fragment-testing:1.3.2')
alias('espresso-core').to('androidx.test.espresso:espresso-core:3.4.0') alias('espresso-core').to('androidx.test.espresso:espresso-core:3.4.0')
alias('mockito-core').to('org.mockito:mockito-inline:4.6.1') alias('mockito-core').to('org.mockito:mockito-inline:4.6.1')
alias('mockito-kotlin').to('org.mockito.kotlin:mockito-kotlin:4.0.0') alias('mockito-kotlin').to('org.mockito.kotlin:mockito-kotlin:4.0.0')
@ -148,7 +156,7 @@ dependencyResolutionManagement {
} }
lintLibs { lintLibs {
version('lint', '26.6.3') version('lint', '30.2.2')
alias('lint-api').to('com.android.tools.lint', 'lint-api').versionRef('lint') alias('lint-api').to('com.android.tools.lint', 'lint-api').versionRef('lint')
alias('lint-checks').to('com.android.tools.lint', 'lint-checks').versionRef('lint') alias('lint-checks').to('com.android.tools.lint', 'lint-checks').versionRef('lint')

Wyświetl plik

@ -13,6 +13,6 @@ dependencies {
implementation libs.rxjava3.rxjava implementation libs.rxjava3.rxjava
// Included to force proper versions for verification and match main app // Included to force proper versions for verification and match main app
implementation 'androidx.lifecycle:lifecycle-livedata:2.3.1' implementation 'androidx.lifecycle:lifecycle-livedata:2.5.1'
implementation 'com.google.guava:guava:30.0-android' implementation 'com.google.guava:guava:30.0-android'
} }

Wyświetl plik

@ -34,8 +34,7 @@ ktlint {
dependencies { dependencies {
coreLibraryDesugaring libs.android.tools.desugar coreLibraryDesugaring libs.android.tools.desugar
implementation "androidx.activity:activity-ktx:1.2.2" implementation libs.androidx.activity.ktx
implementation libs.androidx.appcompat implementation libs.androidx.appcompat
implementation libs.material.material implementation libs.material.material
implementation libs.androidx.constraintlayout implementation libs.androidx.constraintlayout