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) {
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.material.material
implementation libs.androidx.legacy.support
@ -433,7 +434,9 @@ dependencies {
implementation libs.androidx.multidex
implementation libs.androidx.navigation.fragment.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.common.java8
implementation libs.androidx.lifecycle.reactivestreams.ktx
@ -561,7 +564,7 @@ dependencies {
androidTestImplementation testLibs.mockito.kotlin
androidTestImplementation testLibs.square.okhttp.mockserver
instrumentationImplementation (testLibs.androidx.fragment.testing) {
instrumentationImplementation (libs.androidx.fragment.testing) {
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.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.Loader;
import androidx.recyclerview.widget.LinearLayoutManager;
@ -168,7 +168,7 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity
setSupportActionBar(findViewById(R.id.toolbar));
voiceNoteMediaController = new VoiceNoteMediaController(this);
viewModel = ViewModelProviders.of(this).get(MediaPreviewViewModel.class);
viewModel = new ViewModelProvider(this).get(MediaPreviewViewModel.class);
fullscreenHelper = new FullscreenHelper(this);

Wyświetl plik

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

Wyświetl plik

@ -10,7 +10,7 @@ import androidx.annotation.StringRes;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
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.snackbar.Snackbar;
@ -48,7 +48,7 @@ public class BlockedUsersActivity extends PassphraseRequiredActivity implements
BlockedUsersRepository repository = new BlockedUsersRepository(this);
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);
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.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView;
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 -> {
if (list.isEmpty()) {
empty.setVisibility(View.VISIBLE);

Wyświetl plik

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

Wyświetl plik

@ -16,7 +16,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.ViewCompat;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@ -94,7 +94,7 @@ public class ContactShareEditActivity extends PassphraseRequiredActivity impleme
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 -> {
contactAdapter.setContacts(contacts);
contactList.post(() -> contactList.scrollToPosition(0));

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

@ -19,7 +19,7 @@ import androidx.annotation.StringRes;
import androidx.appcompat.app.AlertDialog;
import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.fragment.NavHostFragment;
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 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 -> {
SetupStep step = state.getCurrentSetupStep();

Wyświetl plik

@ -9,7 +9,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.widget.ContentLoadingProgressBar;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.StaggeredGridLayoutManager;
@ -45,7 +45,7 @@ public class GiphyMp4Fragment extends Fragment {
RecyclerView recycler = view.findViewById(R.id.giphy_recycler);
ContentLoadingProgressBar progressBar = view.findViewById(R.id.content_loading);
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);
List<GiphyMp4ProjectionPlayerHolder> holders = GiphyMp4ProjectionPlayerHolder.injectVideoViews(requireContext(),
getViewLifecycleOwner().getLifecycle(),

Wyświetl plik

@ -9,7 +9,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import org.thoughtcrime.securesms.PassphraseRequiredActivity;
import org.thoughtcrime.securesms.R;
@ -65,7 +65,7 @@ public class GiphyActivity extends PassphraseRequiredActivity implements Keyboar
sendType = getIntent().getParcelableExtra(EXTRA_TRANSPORT);
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);
initializeToolbar();

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

@ -9,7 +9,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import com.annimon.stream.Collectors;
import com.annimon.stream.Stream;
@ -101,7 +101,7 @@ public final class ChooseNewAdminActivity extends PassphraseRequiredActivity {
}
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.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.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
@ -200,7 +200,7 @@ public class AddGroupDetailsFragment extends LoggingFragment {
AddGroupDetailsRepository repository = new AddGroupDetailsRepository(requireContext());
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);
}

Wyświetl plik

@ -13,7 +13,7 @@ import androidx.appcompat.widget.SwitchCompat;
import androidx.constraintlayout.widget.Group;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
@ -85,7 +85,7 @@ public final class GroupLinkInviteFriendsBottomSheetDialogFragment extends Botto
GroupId.V2 groupId = getGroupId();
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()
.observe(getViewLifecycleOwner(), groupLinkUrlAndStatus -> {

Wyświetl plik

@ -8,7 +8,7 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.groups.GroupId;
@ -113,7 +113,7 @@ public class PendingMemberInvitesFragment extends Fragment {
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 -> {
youInvited.setMembers(invitees);

Wyświetl plik

@ -15,7 +15,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
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 viewModel = ViewModelProviders.of(this, factory).get(GroupJoinViewModel.class);
GroupJoinViewModel viewModel = new ViewModelProvider(this, factory).get(GroupJoinViewModel.class);
viewModel.getGroupDetails().observe(getViewLifecycleOwner(), details -> {
groupName.setText(details.getGroupName());

Wyświetl plik

@ -10,7 +10,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
@ -78,7 +78,7 @@ public final class GroupsV1MigrationInfoBottomSheetDialogFragment extends Bottom
//noinspection ConstantConditions
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.getDroppedMembers().observe(getViewLifecycleOwner(), this::onDroppedMembersChanged);

Wyświetl plik

@ -12,7 +12,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
@ -86,7 +86,7 @@ public final class GroupsV1MigrationInitiationBottomSheetDialogFragment extends
RecipientId groupRecipientId = getArguments().getParcelable(KEY_GROUP_RECIPIENT_ID);
//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);
upgradeButton.setEnabled(false);

Wyświetl plik

@ -18,7 +18,7 @@ import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import com.annimon.stream.Stream;
@ -74,7 +74,7 @@ public class HelpFragment extends LoggingFragment {
}
private void initializeViewModels() {
helpViewModel = ViewModelProviders.of(this).get(HelpViewModel.class);
helpViewModel = new ViewModelProvider(this).get(HelpViewModel.class);
}
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.widget.Toolbar;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView;
import com.airbnb.lottie.LottieAnimationView;
@ -125,7 +125,7 @@ public final class InsightsDashboardDialogFragment extends DialogFragment {
final InsightsDashboardViewModel.Repository repository = new InsightsRepository(requireContext());
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 -> {
updateInsecurePercent(state.getData());

Wyświetl plik

@ -14,7 +14,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.components.ArcProgressBar;
@ -77,7 +77,7 @@ public final class InsightsModalDialogFragment extends DialogFragment {
private void initializeViewModel() {
final InsightsModalViewModel.Repository repository = new InsightsRepository(requireContext());
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 -> {
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()) {
val locale: Locale = localeList.get(index)
val locale: Locale = localeList.get(index) ?: continue
if (locale.language.isNotEmpty()) {
if (locale.country.isNotEmpty()) {
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()) {
val locale: Locale = localeList.get(index)
val locale: Locale = localeList.get(index) ?: continue
if (locale.language.isNotEmpty()) {
if (locale.country.isNotEmpty()) {
potentialOnboardingUrlLanguages += "${locale.language}_${locale.country}"

Wyświetl plik

@ -10,7 +10,7 @@ import androidx.appcompat.app.AlertDialog;
import androidx.autofill.HintConstants;
import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import com.airbnb.lottie.LottieAnimationView;
import com.airbnb.lottie.LottieDrawable;
@ -50,7 +50,7 @@ public class ConfirmKbsPinFragment extends BaseKbsPinFragment<ConfirmKbsPinViewM
ConfirmKbsPinRepository repository = new ConfirmKbsPinRepository();
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.getSaveAnimation().observe(getViewLifecycleOwner(), this::updateSaveAnimation);

Wyświetl plik

@ -9,7 +9,7 @@ import androidx.annotation.PluralsRes;
import androidx.autofill.HintConstants;
import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import org.thoughtcrime.securesms.R;
@ -48,7 +48,7 @@ public class CreateKbsPinFragment extends BaseKbsPinFragment<CreateKbsPinViewMod
@Override
protected CreateKbsPinViewModel initializeViewModel() {
CreateKbsPinViewModel viewModel = ViewModelProviders.of(this).get(CreateKbsPinViewModel.class);
CreateKbsPinViewModel viewModel = new ViewModelProvider(this).get(CreateKbsPinViewModel.class);
CreateKbsPinFragmentArgs args = CreateKbsPinFragmentArgs.fromBundle(requireArguments());
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.core.app.ShareCompat;
import androidx.core.text.util.LinkifyCompat;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@ -69,7 +69,7 @@ public class SubmitDebugLogActivity extends BaseActivity implements SubmitDebugL
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
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();
initViewModel();

Wyświetl plik

@ -7,7 +7,7 @@ import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.SavedStateHandle;
import androidx.lifecycle.SavedStateViewModelFactory;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import org.thoughtcrime.securesms.database.MediaDatabase.Sorting;
@ -40,6 +40,6 @@ public class MediaOverviewViewModel extends ViewModel {
static MediaOverviewViewModel getMediaOverviewViewModel(@NonNull FragmentActivity 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() {
CardView cameraCard = requireView().findViewById(R.id.camera_preview_parent);
View controls = requireView().findViewById(R.id.camera_controls_container);
CameraDisplay cameraDisplay = CameraDisplay.getDisplay(requireView());
CameraDisplay cameraDisplay = CameraDisplay.getDisplay(requireActivity());
if (!cameraDisplay.getRoundViewFinderCorners()) {
cameraCard.setRadius(0f);

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

@ -97,7 +97,7 @@ class MediaSelectionActivity :
viewModel = ViewModelProvider(this, factory)[MediaSelectionViewModel::class.java]
val textStoryToggle: ConstraintLayout = findViewById(R.id.switch_widget)
val cameraDisplay = CameraDisplay.getDisplay(textStoryToggle)
val cameraDisplay = CameraDisplay.getDisplay(this)
textStoryToggle.updateLayoutParams<FrameLayout.LayoutParams> {
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.scribbles.ImageEditorFragment
import org.thoughtcrime.securesms.stories.Stories
import org.thoughtcrime.securesms.util.SingleLiveEvent
import org.thoughtcrime.securesms.util.Util
import org.thoughtcrime.securesms.util.livedata.Store
import java.util.Collections
@ -60,7 +59,7 @@ class MediaSelectionViewModel(
private val internalHudCommands = PublishSubject.create<HudCommand>()
val mediaErrors: SingleLiveEvent<MediaValidator.FilterError> = SingleLiveEvent()
val mediaErrors: PublishSubject<MediaValidator.FilterError> = PublishSubject.create()
val hudCommands: Observable<HudCommand> = internalHudCommands
private val disposables = CompositeDisposable()
@ -154,7 +153,7 @@ class MediaSelectionViewModel(
}
if (filterResult.filterError != null) {
mediaErrors.postValue(filterResult.filterError)
mediaErrors.onNext(filterResult.filterError)
}
}
)
@ -230,7 +229,7 @@ class MediaSelectionViewModel(
}
if (newMediaList.isEmpty() && !suppressEmptyError) {
mediaErrors.postValue(MediaValidator.FilterError.NoItems())
mediaErrors.onNext(MediaValidator.FilterError.NoItems())
}
selectedMediaSubject.onNext(newMediaList)

Wyświetl plik

@ -9,6 +9,7 @@ import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.ItemTouchHelper
import app.cash.exhaustive.Exhaustive
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.mediasend.Media
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.review.MediaSelectionItemTouchHelper
import org.thoughtcrime.securesms.permissions.Permissions
import org.thoughtcrime.securesms.util.LifecycleDisposable
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 val lifecycleDisposable = LifecycleDisposable()
private val navigator = MediaSelectionNavigator(
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) {

Wyświetl plik

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

Wyświetl plik

@ -10,7 +10,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
@ -63,7 +63,7 @@ public final class QualitySelectorBottomSheetDialog extends BottomSheetDialogFra
standard.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);
}

Wyświetl plik

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

Wyświetl plik

@ -8,7 +8,7 @@ import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView;
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 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 -> {
if (details == null) {
dismissAllowingStateLoss();

Wyświetl plik

@ -12,7 +12,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import org.thoughtcrime.securesms.BaseActivity;
import org.thoughtcrime.securesms.R;
@ -66,7 +66,7 @@ public class CalleeMustAcceptMessageRequestActivity extends BaseActivity {
RecipientId recipientId = getIntent().getParcelableExtra(RECIPIENT_ID_EXTRA);
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 -> {
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.graphics.drawable.DrawableCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
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(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());

Wyświetl plik

@ -10,7 +10,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
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);
MaterialAutoCompleteTextView word = view.findViewById(R.id.payments_recovery_entry_fragment_word);
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));

Wyświetl plik

@ -15,7 +15,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@ -110,7 +110,7 @@ public class PaymentsRecoveryPhraseFragment extends Fragment {
edit.setVisibility(View.VISIBLE);
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));
edit.setOnClickListener(v -> Navigation.findNavController(v).popBackStack());

Wyświetl plik

@ -21,7 +21,7 @@ import androidx.biometric.BiometricManager;
import androidx.biometric.BiometricPrompt;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.fragment.NavHostFragment;
import androidx.recyclerview.widget.RecyclerView;
@ -96,7 +96,7 @@ public class ConfirmPaymentFragment extends BottomSheetDialogFragment {
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
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);
ConfirmPaymentAdapter adapter = new ConfirmPaymentAdapter(new Callbacks());

Wyświetl plik

@ -12,7 +12,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@ -41,7 +41,7 @@ public class DeactivateWalletFragment extends Fragment {
notice.setLearnMoreVisible(true);
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.getDeactivationResults().observe(getViewLifecycleOwner(), r -> {

Wyświetl plik

@ -13,7 +13,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import androidx.navigation.fragment.NavHostFragment;
import androidx.recyclerview.widget.RecyclerView;
@ -119,7 +119,7 @@ public class PaymentsHomeFragment extends LoggingFragment {
PaymentsHomeAdapter adapter = new PaymentsHomeAdapter(new HomeCallbacks());
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 -> {
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.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.fragment.NavHostFragment;
import androidx.recyclerview.widget.RecyclerView;
@ -50,7 +50,7 @@ public class PaymentsPagerItemFragment extends LoggingFragment {
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
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);
PaymentsHomeAdapter adapter = new PaymentsHomeAdapter(new Callbacks());

Wyświetl plik

@ -6,7 +6,7 @@ import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import androidx.recyclerview.widget.RecyclerView;
@ -31,7 +31,7 @@ public final class SetCurrencyFragment extends LoggingFragment {
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();
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.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
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) {
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);
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.core.content.ContextCompat;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import org.signal.core.util.logging.Log;
@ -99,7 +99,7 @@ public final class PaymentDetailsFragment extends LoggingFragment {
sentFeeAmount.setVisibility(View.VISIBLE);
}
} 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()
.observe(getViewLifecycleOwner(),
state -> {

Wyświetl plik

@ -18,7 +18,7 @@ import androidx.annotation.StringRes;
import androidx.appcompat.app.AlertDialog;
import androidx.autofill.HintConstants;
import androidx.core.view.ViewCompat;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import org.signal.core.util.logging.Log;
@ -111,7 +111,7 @@ public class PinRestoreEntryFragment extends LoggingFragment {
}
private void initViewModel() {
viewModel = ViewModelProviders.of(this).get(PinRestoreViewModel.class);
viewModel = new ViewModelProvider(this).get(PinRestoreViewModel.class);
viewModel.getTriesRemaining().observe(getViewLifecycleOwner(), this::presentTriesRemaining);
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.MutableLiveData;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import org.signal.core.util.concurrent.SignalExecutors;
import org.thoughtcrime.securesms.R;
@ -27,7 +27,7 @@ public class ApplicationPreferencesViewModel extends ViewModel {
}
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) {

Wyświetl plik

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

Wyświetl plik

@ -16,7 +16,7 @@ import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.ListAdapter;
@ -144,7 +144,7 @@ public class EditAboutFragment extends Fragment implements ManageProfileActivity
}
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.getEvents().observe(getViewLifecycleOwner(), this::presentEvent);

Wyświetl plik

@ -13,7 +13,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import org.signal.core.util.EditTextUtil;
@ -76,7 +76,7 @@ public class EditProfileNameFragment extends Fragment {
}
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.getEvents().observe(getViewLifecycleOwner(), this::presentEvent);

Wyświetl plik

@ -12,7 +12,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.PluralsRes;
import androidx.annotation.StringRes;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView;
import org.thoughtcrime.securesms.R;
@ -99,7 +99,7 @@ public class ReviewCardDialogFragment extends FullScreenDialogFragment {
ReviewCardRepository repository = getRepository();
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() {

Wyświetl plik

@ -12,7 +12,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
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.dialog.MaterialAlertDialogBuilder;
@ -78,7 +78,7 @@ public final class ProxyBottomSheetFragment extends BottomSheetDialogFragment {
}
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.getEvents().observe(getViewLifecycleOwner(), this::presentEvents);

Wyświetl plik

@ -16,20 +16,14 @@ import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.loader.app.LoaderManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
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.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.KeyboardPageSearchView;
import org.thoughtcrime.securesms.reactions.edit.EditReactionsActivity;
import org.thoughtcrime.securesms.util.FullscreenHelper;
import org.thoughtcrime.securesms.util.LifecycleDisposable;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
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));
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

Wyświetl plik

@ -16,7 +16,7 @@ import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ShareCompat;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import org.signal.core.util.logging.Log;
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();
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) {

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

@ -9,7 +9,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import org.signal.core.util.concurrent.SignalExecutors;
import org.thoughtcrime.securesms.R;
@ -37,7 +37,7 @@ public final class ImageEditorStickerSelectActivity extends AppCompatActivity im
super.onCreate(savedInstanceState);
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);
MediaKeyboard mediaKeyboard = findViewById(R.id.emoji_drawer);

Wyświetl plik

@ -6,7 +6,7 @@ import android.os.Bundle;
import android.view.MenuItem;
import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@ -124,7 +124,7 @@ public final class StickerManagementActivity extends PassphraseRequiredActivity
private void initViewModel() {
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.getStickerPacks().observe(this, packResult -> {

Wyświetl plik

@ -12,7 +12,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@ -175,10 +175,10 @@ public final class StickerPackPreviewActivity extends PassphraseRequiredActivity
}
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 StickerManagementRepository(this)))
.get(StickerPackPreviewViewModel.class);
new StickerManagementRepository(this))
).get(StickerPackPreviewViewModel.class);
viewModel.getStickerManifest(packId, packKey).observe(this, manifest -> {
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 {
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
}
}

Wyświetl plik

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

Wyświetl plik

@ -6,7 +6,7 @@ import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.NavGraph;
import androidx.navigation.Navigation;
@ -35,7 +35,7 @@ public final class ChatWallpaperActivity extends PassphraseRequiredActivity {
@Override
protected void onCreate(Bundle savedInstanceState, boolean ready) {
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);
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.TextViewCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@ -50,7 +50,7 @@ public class ChatWallpaperFragment extends Fragment {
@Override
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);
Toolbar toolbar = view.findViewById(R.id.toolbar);

Wyświetl plik

@ -13,7 +13,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import androidx.recyclerview.widget.RecyclerView;
@ -52,7 +52,7 @@ public class ChatWallpaperSelectionFragment extends Fragment {
recyclerView.setAdapter(adapter);
viewModel = ViewModelProviders.of(requireActivity()).get(ChatWallpaperViewModel.class);
viewModel = new ViewModelProvider(requireActivity()).get(ChatWallpaperViewModel.class);
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.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.lifecycle.ViewModelProviders;
import androidx.lifecycle.ViewModelProvider;
import org.signal.core.util.logging.Log;
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));
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);
View sentBubble = findViewById(R.id.preview_bubble_2);

Wyświetl plik

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

Wyświetl plik

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:viewBindingIgnore="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:parentTag="android.widget.FrameLayout">
tools:parentTag="android.widget.FrameLayout"
tools:viewBindingIgnore="true">
<ImageButton
android:id="@+id/conversation_scroll_to_button"
@ -16,7 +17,7 @@
android:contentDescription="@string/conversation_fragment__scroll_to_the_bottom_content_description"
android:elevation="1dp"
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" />
<TextView

Wyświetl plik

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:viewBindingIgnore="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:orientation="vertical"
tools:viewBindingIgnore="true">
<LinearLayout
android:layout_width="match_parent"
@ -32,8 +33,8 @@
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/ContactShareEditActivity__edit_name"
android:scaleType="centerInside"
android:src="@drawable/ic_compose_24"
android:tint="@color/signal_colorOnSurface" />
app:srcCompat="@drawable/ic_compose_24"
app:tint="@color/signal_colorOnSurface" />
</LinearLayout>

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

@ -39,7 +39,7 @@
android:nextFocusLeft="@+id/container"
android:nextFocusRight="@+id/container"
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"/>
</LinearLayout>

Wyświetl plik

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

Wyświetl plik

@ -4,13 +4,16 @@
dependencyResolutionManagement {
versionCatalogs {
libs {
version('libsignal-client', '0.20.0')
version('exoplayer', '2.18.1')
version('androidx-camera', '1.1.0')
version('androidx-lifecycle', '2.3.1')
version('mp4parser', '1.9.39')
version('kotlin', '1.6.21')
version('androidx-fragment', '1.5.2')
version('androidx-lifecycle', '2.5.1')
version('androidx-navigation', '2.5.2')
version('androidx-window', '1.0.0')
version('exoplayer', '2.18.1')
version('glide', '4.13.2')
version('kotlin', '1.6.21')
version('libsignal-client', '0.20.0')
version('mp4parser', '1.9.39')
// Desugaring
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')
// 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-fragment-ktx').to('androidx.fragment:fragment-ktx:1.3.5')
alias('androidx-annotation').to('androidx.annotation:annotation:1.2.0')
alias('androidx-appcompat').to('androidx.appcompat:appcompat:1.2.0')
alias('androidx-fragment-ktx').to('androidx.fragment', 'fragment-ktx').versionRef('androidx-fragment')
alias('androidx-fragment-testing').to('androidx.fragment', 'fragment-testing').versionRef('androidx-fragment')
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-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-legacy-support').to('androidx.legacy:legacy-support-v13: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-exifinterface').to('androidx.exifinterface:exifinterface:1.3.3')
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-ui-ktx').to('androidx.navigation:navigation-ui-ktx:2.3.5')
alias('androidx-lifecycle-extensions').to('androidx.lifecycle:lifecycle-extensions:2.2.0')
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').versionRef('androidx-navigation')
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-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')
@ -124,15 +132,15 @@ dependencyResolutionManagement {
}
testLibs {
version('robolectric', '4.8.1')
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('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-ext-junit').to('androidx.test.ext:junit:1.1.1')
alias('androidx-test-ext-junit-ktx').to('androidx.test.ext:junit-ktx:1.1.1')
alias('androidx-fragment-testing').to('androidx.fragment:fragment-testing:1.3.2')
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').versionRef('androidx-test-ext-junit')
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-kotlin').to('org.mockito.kotlin:mockito-kotlin:4.0.0')
@ -148,7 +156,7 @@ dependencyResolutionManagement {
}
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-checks').to('com.android.tools.lint', 'lint-checks').versionRef('lint')

Wyświetl plik

@ -13,6 +13,6 @@ dependencies {
implementation libs.rxjava3.rxjava
// 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'
}

Wyświetl plik

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