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)
This commit is contained in:
parent
9331e9ce89
commit
26bebb9811
86 changed files with 1398 additions and 362 deletions
|
@ -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'
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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(),
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 -> {
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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 -> {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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}"
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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()));
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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)));
|
||||
|
|
|
@ -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());
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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 -> {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 -> {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 -> {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ object LocaleUtil {
|
|||
}
|
||||
|
||||
for (index in 0 until localeList.size()) {
|
||||
locales += localeList.get(index)
|
||||
locales += localeList.get(index) ?: continue
|
||||
}
|
||||
|
||||
return locales
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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" />
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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')
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -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'
|
||||
}
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue