diff --git a/app/build.gradle b/app/build.gradle index eef1b7d5c..0863e9754 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -541,7 +541,8 @@ dependencies { androidTestImplementation testLibs.androidx.test.ext.junit androidTestImplementation testLibs.espresso.core - implementation libs.kotlin.stdlib.jdk7 + implementation libs.kotlin.stdlib.jdk8 + implementation libs.kotlin.reflect implementation libs.jackson.module.kotlin implementation libs.rxjava3.rxandroid diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index 91c2775eb..d976840f6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -125,7 +125,7 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr super.onCreate(); AppStartup.getInstance().addBlocking("security-provider", this::initializeSecurityProvider) - .addBlocking("sqlcipher-init", () -> SqlCipherLibraryLoader.load(this)) + .addBlocking("sqlcipher-init", () -> SqlCipherLibraryLoader.load()) .addBlocking("logging", () -> { initializeLogging(); Log.i(TAG, "onCreate()"); diff --git a/app/src/main/java/org/thoughtcrime/securesms/avatar/picker/AvatarPickerFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/avatar/picker/AvatarPickerFragment.kt index 68c25a1b9..316046fa4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/avatar/picker/AvatarPickerFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/avatar/picker/AvatarPickerFragment.kt @@ -147,6 +147,7 @@ class AvatarPickerFragment : Fragment(R.layout.avatar_picker_fragment) { ViewUtil.hideKeyboard(requireContext(), requireView()) } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { if (requestCode == REQUEST_CODE_SELECT_IMAGE && resultCode == Activity.RESULT_OK && data != null) { val media: Media = requireNotNull(data.getParcelableExtra(AvatarSelectionActivity.EXTRA_MEDIA)) @@ -211,6 +212,7 @@ class AvatarPickerFragment : Fragment(R.layout.avatar_picker_fragment) { .navigate(AvatarPickerFragmentDirections.actionAvatarPickerFragmentToTextAvatarCreationFragment(bundle)) } + @Suppress("DEPRECATION") private fun openCameraCapture() { Permissions.with(this) .request(Manifest.permission.CAMERA) @@ -226,6 +228,7 @@ class AvatarPickerFragment : Fragment(R.layout.avatar_picker_fragment) { .execute() } + @Suppress("DEPRECATION") private fun openGallery() { Permissions.with(this) .request(Manifest.permission.READ_EXTERNAL_STORAGE) diff --git a/app/src/main/java/org/thoughtcrime/securesms/avatar/text/TextAvatarCreationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/avatar/text/TextAvatarCreationFragment.kt index 47b05bec7..026c3f160 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/avatar/text/TextAvatarCreationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/avatar/text/TextAvatarCreationFragment.kt @@ -106,7 +106,7 @@ class TextAvatarCreationFragment : Fragment(R.layout.text_avatar_creation_fragme Navigation.findNavController(v).popBackStack() } - textInput.setOnEditorActionListener { v, actionId, event -> + textInput.setOnEditorActionListener { _, actionId, _ -> if (actionId == EditorInfo.IME_ACTION_NEXT) { tabLayout.getTabAt(1)?.select() true diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/KeyboardEntryDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/KeyboardEntryDialogFragment.kt index 456c2865f..ea1ffa206 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/KeyboardEntryDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/KeyboardEntryDialogFragment.kt @@ -25,6 +25,7 @@ abstract class KeyboardEntryDialogFragment(@LayoutRes contentLayoutId: Int) : super.onCreate(savedInstanceState) } + @Suppress("DEPRECATION") override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val dialog = super.onCreateDialog(savedInstanceState) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt index b4860bf02..21b1eb6a1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.components.settings.app import android.view.View import android.widget.TextView -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.navigation.Navigation import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.AvatarImageView @@ -27,7 +27,7 @@ class AppSettingsFragment : DSLSettingsFragment(R.string.text_secure_normal__men adapter.registerFactory(BioPreference::class.java, MappingAdapter.LayoutFactory(::BioPreferenceViewHolder, R.layout.bio_preference_item)) adapter.registerFactory(PaymentsPreference::class.java, MappingAdapter.LayoutFactory(::PaymentsPreferenceViewHolder, R.layout.dsl_payments_preference)) - val viewModel = ViewModelProviders.of(this)[AppSettingsViewModel::class.java] + val viewModel = ViewModelProvider(this)[AppSettingsViewModel::class.java] viewModel.state.observe(viewLifecycleOwner) { state -> adapter.submitList(getConfiguration(state).toMappingModelList()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/AccountSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/AccountSettingsFragment.kt index c7cfa277f..bb280cd37 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/AccountSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/AccountSettingsFragment.kt @@ -14,7 +14,7 @@ import androidx.autofill.HintConstants import androidx.core.app.DialogCompat import androidx.core.content.ContextCompat import androidx.core.view.ViewCompat -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.navigation.Navigation import com.google.android.material.snackbar.Snackbar import org.thoughtcrime.securesms.R @@ -51,7 +51,7 @@ class AccountSettingsFragment : DSLSettingsFragment(R.string.AccountSettingsFrag } override fun bindAdapter(adapter: DSLSettingsAdapter) { - viewModel = ViewModelProviders.of(this)[AccountSettingsViewModel::class.java] + viewModel = ViewModelProvider(this)[AccountSettingsViewModel::class.java] viewModel.state.observe(viewLifecycleOwner) { state -> adapter.submitList(getConfiguration(state).toMappingModelList()) @@ -63,6 +63,7 @@ class AccountSettingsFragment : DSLSettingsFragment(R.string.AccountSettingsFrag sectionHeaderPref(R.string.preferences_app_protection__signal_pin) + @Suppress("DEPRECATION") clickPref( title = DSLSettingsText.from(if (state.hasPin) R.string.preferences_app_protection__change_your_pin else R.string.preferences_app_protection__create_a_pin), onClick = { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/appearance/AppearanceSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/appearance/AppearanceSettingsFragment.kt index 08501e101..addbb3121 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/appearance/AppearanceSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/appearance/AppearanceSettingsFragment.kt @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.components.settings.app.appearance -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.navigation.Navigation import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.settings.DSLConfiguration @@ -23,7 +23,7 @@ class AppearanceSettingsFragment : DSLSettingsFragment(R.string.preferences__app private val languageValues by lazy { resources.getStringArray(R.array.language_values) } override fun bindAdapter(adapter: DSLSettingsAdapter) { - viewModel = ViewModelProviders.of(this)[AppearanceSettingsViewModel::class.java] + viewModel = ViewModelProvider(this)[AppearanceSettingsViewModel::class.java] viewModel.state.observe(viewLifecycleOwner) { state -> adapter.submitList(getConfiguration(state).toMappingModelList()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsFragment.kt index 340f8e36a..75062e85c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsFragment.kt @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.components.settings.app.chats -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.navigation.Navigation import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.settings.DSLConfiguration @@ -16,7 +16,7 @@ class ChatsSettingsFragment : DSLSettingsFragment(R.string.preferences_chats__ch override fun bindAdapter(adapter: DSLSettingsAdapter) { val repository = ChatsSettingsRepository() val factory = ChatsSettingsViewModel.Factory(repository) - viewModel = ViewModelProviders.of(this, factory)[ChatsSettingsViewModel::class.java] + viewModel = ViewModelProvider(this, factory)[ChatsSettingsViewModel::class.java] viewModel.state.observe(viewLifecycleOwner) { adapter.submitList(getConfiguration(it).toMappingModelList()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/sms/SmsSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/sms/SmsSettingsFragment.kt index 455ac070f..2e80caa73 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/sms/SmsSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/sms/SmsSettingsFragment.kt @@ -4,7 +4,7 @@ import android.annotation.SuppressLint import android.content.Intent import android.os.Build import android.provider.Settings -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.navigation.Navigation import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.settings.DSLConfiguration @@ -28,7 +28,7 @@ class SmsSettingsFragment : DSLSettingsFragment(R.string.preferences__sms_mms) { } override fun bindAdapter(adapter: DSLSettingsAdapter) { - viewModel = ViewModelProviders.of(this)[SmsSettingsViewModel::class.java] + viewModel = ViewModelProvider(this)[SmsSettingsViewModel::class.java] viewModel.state.observe(viewLifecycleOwner) { adapter.submitList(getConfiguration(it).toMappingModelList()) @@ -41,6 +41,7 @@ class SmsSettingsFragment : DSLSettingsFragment(R.string.preferences__sms_mms) { private fun getConfiguration(state: SmsSettingsState): DSLConfiguration { return configure { + @Suppress("DEPRECATION") clickPref( title = DSLSettingsText.from(R.string.SmsSettingsFragment__use_as_default_sms_app), summary = DSLSettingsText.from(if (state.useAsDefaultSmsApp) R.string.arrays__enabled else R.string.arrays__disabled), @@ -84,6 +85,7 @@ class SmsSettingsFragment : DSLSettingsFragment(R.string.preferences__sms_mms) { // Linter isn't smart enough to figure out the else only happens if API >= 24 @SuppressLint("InlinedApi") + @Suppress("DEPRECATION") private fun startDefaultAppSelectionIntent() { val intent: Intent = when { Build.VERSION.SDK_INT < 23 -> Intent(Settings.ACTION_WIRELESS_SETTINGS) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/data/DataAndStorageSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/data/DataAndStorageSettingsFragment.kt index a8874b844..37427590d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/data/DataAndStorageSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/data/DataAndStorageSettingsFragment.kt @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.components.settings.app.data -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.navigation.Navigation import androidx.preference.PreferenceManager import org.thoughtcrime.securesms.R @@ -31,7 +31,7 @@ class DataAndStorageSettingsFragment : DSLSettingsFragment(R.string.preferences_ val preferences = PreferenceManager.getDefaultSharedPreferences(requireContext()) val repository = DataAndStorageSettingsRepository() val factory = DataAndStorageSettingsViewModel.Factory(preferences, repository) - viewModel = ViewModelProviders.of(this, factory)[DataAndStorageSettingsViewModel::class.java] + viewModel = ViewModelProvider(this, factory)[DataAndStorageSettingsViewModel::class.java] viewModel.state.observe(viewLifecycleOwner) { adapter.submitList(getConfiguration(it).toMappingModelList()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt index a2c2e4d9d..c4fcad990 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt @@ -5,7 +5,7 @@ import android.content.ClipboardManager import android.content.Context import android.content.DialogInterface import android.widget.Toast -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.signal.core.util.concurrent.SignalExecutors import org.thoughtcrime.securesms.BuildConfig @@ -34,7 +34,7 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter override fun bindAdapter(adapter: DSLSettingsAdapter) { val repository = InternalSettingsRepository(requireContext()) val factory = InternalSettingsViewModel.Factory(repository) - viewModel = ViewModelProviders.of(this, factory)[InternalSettingsViewModel::class.java] + viewModel = ViewModelProvider(this, factory)[InternalSettingsViewModel::class.java] viewModel.state.observe(viewLifecycleOwner) { adapter.submitList(getConfiguration(it).toMappingModelList()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/NotificationsSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/NotificationsSettingsFragment.kt index 52f47a29e..39595bd12 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/NotificationsSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/NotificationsSettingsFragment.kt @@ -12,7 +12,7 @@ import android.text.TextUtils import android.view.View import androidx.annotation.RequiresApi import androidx.core.content.ContextCompat -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.preference.PreferenceManager import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.settings.DSLConfiguration @@ -71,7 +71,7 @@ class NotificationsSettingsFragment : DSLSettingsFragment(R.string.preferences__ val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext()) val factory = NotificationsSettingsViewModel.Factory(sharedPreferences) - viewModel = ViewModelProviders.of(this, factory)[NotificationsSettingsViewModel::class.java] + viewModel = ViewModelProvider(this, factory)[NotificationsSettingsViewModel::class.java] viewModel.state.observe(viewLifecycleOwner) { adapter.submitList(getConfiguration(it).toMappingModelList()) @@ -241,6 +241,7 @@ class NotificationsSettingsFragment : DSLSettingsFragment(R.string.preferences__ } } + @Suppress("DEPRECATION") private fun launchMessageSoundSelectionIntent() { val current = SignalStore.settings().messageNotificationSound @@ -268,6 +269,7 @@ class NotificationsSettingsFragment : DSLSettingsFragment(R.string.preferences__ startActivity(intent) } + @Suppress("DEPRECATION") private fun launchCallRingtoneSelectionIntent() { val current = SignalStore.settings().callRingtone diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsFragment.kt index 50d524648..3e4a6991b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsFragment.kt @@ -12,7 +12,7 @@ import android.widget.TextView import android.widget.Toast import androidx.annotation.StringRes import androidx.core.content.ContextCompat -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.navigation.Navigation import androidx.navigation.fragment.NavHostFragment import androidx.preference.PreferenceManager @@ -46,8 +46,6 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences import java.lang.Integer.max import java.util.Locale import java.util.concurrent.TimeUnit -import kotlin.collections.ArrayList -import kotlin.collections.LinkedHashMap private val TAG = Log.tag(PrivacySettingsFragment::class.java) @@ -76,7 +74,7 @@ class PrivacySettingsFragment : DSLSettingsFragment(R.string.preferences__privac val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext()) val repository = PrivacySettingsRepository() val factory = PrivacySettingsViewModel.Factory(sharedPreferences, repository) - viewModel = ViewModelProviders.of(this, factory)[PrivacySettingsViewModel::class.java] + viewModel = ViewModelProvider(this, factory)[PrivacySettingsViewModel::class.java] viewModel.state.observe(viewLifecycleOwner) { state -> adapter.submitList(getConfiguration(state).toMappingModelList()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsFragment.kt index a59d06210..697c39437 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsFragment.kt @@ -9,7 +9,7 @@ import android.widget.TextView import android.widget.Toast import androidx.core.content.ContextCompat import androidx.core.widget.TextViewCompat -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.preference.PreferenceManager import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.thoughtcrime.securesms.R @@ -67,7 +67,7 @@ class AdvancedPrivacySettingsFragment : DSLSettingsFragment(R.string.preferences val preferences = PreferenceManager.getDefaultSharedPreferences(requireContext()) val factory = AdvancedPrivacySettingsViewModel.Factory(preferences, repository) - viewModel = ViewModelProviders.of(this, factory)[AdvancedPrivacySettingsViewModel::class.java] + viewModel = ViewModelProvider(this, factory)[AdvancedPrivacySettingsViewModel::class.java] viewModel.state.observe(viewLifecycleOwner) { if (it.showProgressSpinner) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/expire/CustomExpireTimerSelectDialog.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/expire/CustomExpireTimerSelectDialog.kt index 7e8078daf..8eee2cdbd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/expire/CustomExpireTimerSelectDialog.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/expire/CustomExpireTimerSelectDialog.kt @@ -34,6 +34,7 @@ class CustomExpireTimerSelectDialog : DialogFragment() { .create() } + @Suppress("DEPRECATION") override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) viewModel = ViewModelProvider(NavHostFragment.findNavController(this).getViewModelStoreOwner(R.id.app_settings_expire_timer)) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsFragment.kt index eae04245e..bc8ad3d9c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsFragment.kt @@ -405,6 +405,7 @@ class ConversationSettingsFragment : DSLSettingsFragment( state.withRecipientSettingsState { recipientState -> when (recipientState.contactLinkState) { ContactLinkState.OPEN -> { + @Suppress("DEPRECATION") clickPref( title = DSLSettingsText.from(R.string.ConversationSettingsFragment__contact_details), icon = DSLSettingsIcon.from(R.drawable.ic_profile_circle_24), @@ -414,6 +415,7 @@ class ConversationSettingsFragment : DSLSettingsFragment( ) } ContactLinkState.ADD -> { + @Suppress("DEPRECATION") clickPref( title = DSLSettingsText.from(R.string.ConversationSettingsFragment__add_as_a_contact), icon = DSLSettingsIcon.from(R.drawable.ic_plus_24), @@ -442,6 +444,7 @@ class ConversationSettingsFragment : DSLSettingsFragment( sectionHeaderPref(R.string.recipient_preference_activity__shared_media) + @Suppress("DEPRECATION") customPref( SharedMediaPreference.Model( mediaCursor = state.sharedMedia, @@ -664,6 +667,7 @@ class ConversationSettingsFragment : DSLSettingsFragment( startActivity(AddToGroupsActivity.newIntent(requireContext(), addToAGroup.recipientId, addToAGroup.groupMembership)) } + @Suppress("DEPRECATION") private fun handleAddMembersToGroup(addMembersToGroup: ConversationSettingsEvent.AddMembersToGroup) { startActivityForResult( AddMembersActivity.createIntent( diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorSelectionViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorSelectionViewModel.kt index ace26b02a..5dd8d1a29 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorSelectionViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorSelectionViewModel.kt @@ -4,7 +4,6 @@ import androidx.fragment.app.FragmentActivity import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import androidx.lifecycle.ViewModelProviders import org.thoughtcrime.securesms.conversation.colors.ChatColors import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.util.SingleLiveEvent @@ -60,7 +59,7 @@ class ChatColorSelectionViewModel(private val repository: ChatColorSelectionRepo val repository = ChatColorSelectionRepository.create(activity, recipientId) val viewModelFactory = Factory(repository) - return ViewModelProviders.of(activity, viewModelFactory).get(ChatColorSelectionViewModel::class.java) + return ViewModelProvider(activity, viewModelFactory).get(ChatColorSelectionViewModel::class.java) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/custom/CustomChatColorCreatorPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/custom/CustomChatColorCreatorPageFragment.kt index 51b1195fe..230cff973 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/custom/CustomChatColorCreatorPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/custom/CustomChatColorCreatorPageFragment.kt @@ -24,7 +24,7 @@ import androidx.appcompat.widget.AppCompatSeekBar import androidx.core.content.ContextCompat import androidx.core.graphics.ColorUtils import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.navigation.Navigation import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.thoughtcrime.securesms.R @@ -54,7 +54,7 @@ class CustomChatColorCreatorPageFragment : val chatColorSelectionViewModel: ChatColorSelectionViewModel = ChatColorSelectionViewModel.getOrCreate(requireActivity(), args.recipientId) val page: Int = requireArguments().getInt(PAGE_ARG) val factory: CustomChatColorCreatorViewModel.Factory = CustomChatColorCreatorViewModel.Factory(MAX_SEEK_DIVISIONS, ChatColors.Id.forLongValue(args.chatColorId), args.recipientId, createRepository()) - val viewModel: CustomChatColorCreatorViewModel = ViewModelProviders.of( + val viewModel: CustomChatColorCreatorViewModel = ViewModelProvider( requireParentFragment(), factory )[CustomChatColorCreatorViewModel::class.java] diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/DatabaseFactory.java b/app/src/main/java/org/thoughtcrime/securesms/database/DatabaseFactory.java index c171f9abb..c9f940641 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/DatabaseFactory.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/DatabaseFactory.java @@ -238,7 +238,7 @@ public class DatabaseFactory { } private DatabaseFactory(@NonNull Context context) { - SqlCipherLibraryLoader.load(context); + SqlCipherLibraryLoader.load(); DatabaseSecret databaseSecret = DatabaseSecretProvider.getOrCreateDatabaseSecret(context); AttachmentSecret attachmentSecret = AttachmentSecretProvider.getInstance(context).getOrCreateAttachmentSecret(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/JobDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/JobDatabase.java index cfd1924bf..f62975816 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/JobDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/JobDatabase.java @@ -95,7 +95,7 @@ public class JobDatabase extends SQLiteOpenHelper implements SignalDatabase { if (instance == null) { synchronized (JobDatabase.class) { if (instance == null) { - SqlCipherLibraryLoader.load(context); + SqlCipherLibraryLoader.load(); instance = new JobDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context)); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/KeyValueDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/KeyValueDatabase.java index c5dfa5e6d..0d55a604e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/KeyValueDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/KeyValueDatabase.java @@ -53,7 +53,7 @@ public class KeyValueDatabase extends SQLiteOpenHelper implements SignalDatabase if (instance == null) { synchronized (KeyValueDatabase.class) { if (instance == null) { - SqlCipherLibraryLoader.load(context); + SqlCipherLibraryLoader.load(); instance = new KeyValueDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context)); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/LocalMetricsDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/database/LocalMetricsDatabase.kt index 46f69efd0..a8e40af1e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/LocalMetricsDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/LocalMetricsDatabase.kt @@ -25,7 +25,7 @@ import java.util.concurrent.TimeUnit */ class LocalMetricsDatabase private constructor( application: Application, - private val databaseSecret: DatabaseSecret + databaseSecret: DatabaseSecret ) : SQLiteOpenHelper( application, DATABASE_NAME, @@ -80,7 +80,7 @@ class LocalMetricsDatabase private constructor( if (instance == null) { synchronized(LocalMetricsDatabase::class.java) { if (instance == null) { - SqlCipherLibraryLoader.load(context) + SqlCipherLibraryLoader.load() instance = LocalMetricsDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context)) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt index 704e47188..b1b03959d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt @@ -27,7 +27,7 @@ import java.util.concurrent.TimeUnit */ class LogDatabase private constructor( application: Application, - private val databaseSecret: DatabaseSecret + databaseSecret: DatabaseSecret ) : SQLiteOpenHelper( application, DATABASE_NAME, @@ -81,7 +81,7 @@ class LogDatabase private constructor( if (instance == null) { synchronized(LogDatabase::class.java) { if (instance == null) { - SqlCipherLibraryLoader.load(context) + SqlCipherLibraryLoader.load() instance = LogDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context)) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MegaphoneDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/MegaphoneDatabase.java index 02e0eb1ac..1a3c24000 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MegaphoneDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MegaphoneDatabase.java @@ -56,7 +56,7 @@ public class MegaphoneDatabase extends SQLiteOpenHelper implements SignalDatabas if (instance == null) { synchronized (MegaphoneDatabase.class) { if (instance == null) { - SqlCipherLibraryLoader.load(context); + SqlCipherLibraryLoader.load(); instance = new MegaphoneDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context)); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherLibraryLoader.kt b/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherLibraryLoader.kt index f7d58f5cc..47d377f29 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherLibraryLoader.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherLibraryLoader.kt @@ -1,7 +1,5 @@ package org.thoughtcrime.securesms.database -import android.content.Context - /** * A simple wrapper to load SQLCipher libs exactly once. The exact entry point of database access is non-deterministic because content providers run before * Application#onCreate(). @@ -14,7 +12,7 @@ class SqlCipherLibraryLoader { private val LOCK = Object() @JvmStatic - fun load(context: Context) { + fun load() { if (!loaded) { synchronized(LOCK) { if (!loaded) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/emoji/EmojiFiles.kt b/app/src/main/java/org/thoughtcrime/securesms/emoji/EmojiFiles.kt index 530853930..7bfd2845e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/emoji/EmojiFiles.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/emoji/EmojiFiles.kt @@ -18,7 +18,6 @@ import java.io.File import java.io.IOException import java.io.InputStream import java.io.OutputStream -import java.lang.Exception import java.util.UUID /** @@ -52,6 +51,7 @@ private fun Context.getEmojiDirectory(): File = getDir(EMOJI_DIRECTORY, Context. private fun Context.getVersionFile(): File = File(getEmojiDirectory(), VERSION_FILE) private fun Context.getNameFile(versionUuid: UUID): File = File(File(getEmojiDirectory(), versionUuid.toString()).apply { mkdir() }, NAME_FILE) +@Suppress("UNUSED_PARAMETER") private fun getFilesUri(name: String, format: String): Uri = PartAuthority.getEmojiUri(name) private fun getOutputStream(context: Context, outputFile: File): OutputStream { diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardPagerFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardPagerFragment.kt index a972a6b07..3b8124d2f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardPagerFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardPagerFragment.kt @@ -4,7 +4,7 @@ package org.thoughtcrime.securesms.keyboard import android.os.Bundle import android.view.View import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.emoji.MediaKeyboard import org.thoughtcrime.securesms.keyboard.emoji.EmojiKeyboardPageFragment @@ -28,7 +28,7 @@ class KeyboardPagerFragment : Fragment(R.layout.keyboard_pager_fragment) { stickerButton = view.findViewById(R.id.keyboard_pager_fragment_sticker) gifButton = view.findViewById(R.id.keyboard_pager_fragment_gif) - viewModel = ViewModelProviders.of(requireActivity())[KeyboardPagerViewModel::class.java] + viewModel = ViewModelProvider(requireActivity())[KeyboardPagerViewModel::class.java] viewModel.page().observe(viewLifecycleOwner, this::onPageSelected) viewModel.pages().observe(viewLifecycleOwner) { pages -> @@ -42,6 +42,7 @@ class KeyboardPagerFragment : Fragment(R.layout.keyboard_pager_fragment) { gifButton.setOnClickListener { viewModel.switchToPage(KeyboardPage.GIF) } } + @Suppress("DEPRECATION") override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) viewModel.page().value?.let(this::onPageSelected) diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageFragment.kt index 5eade7206..8ca72e59e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageFragment.kt @@ -4,7 +4,7 @@ import android.os.Bundle import android.view.KeyEvent import android.view.View import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.SCROLL_STATE_IDLE @@ -50,10 +50,11 @@ class EmojiKeyboardPageFragment : Fragment(R.layout.keyboard_pager_emoji_page_fr appBarLayout = view.findViewById(R.id.emoji_keyboard_search_appbar) } + @Suppress("DEPRECATION") override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) - viewModel = ViewModelProviders.of(requireActivity(), EmojiKeyboardPageViewModel.Factory(requireContext())) + viewModel = ViewModelProvider(requireActivity(), EmojiKeyboardPageViewModel.Factory(requireContext())) .get(EmojiKeyboardPageViewModel::class.java) categoriesAdapter = EmojiKeyboardPageCategoriesAdapter { key -> diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/search/EmojiSearchFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/search/EmojiSearchFragment.kt index 813e59b15..44e08f530 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/search/EmojiSearchFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/search/EmojiSearchFragment.kt @@ -6,7 +6,7 @@ import android.view.View import android.widget.FrameLayout import android.widget.TextView import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import org.thoughtcrime.securesms.R @@ -33,7 +33,7 @@ class EmojiSearchFragment : Fragment(R.layout.emoji_search_fragment), EmojiPageV val repository = EmojiSearchRepository(requireContext()) val factory = EmojiSearchViewModel.Factory(repository) - viewModel = ViewModelProviders.of(this, factory)[EmojiSearchViewModel::class.java] + viewModel = ViewModelProvider(this, factory)[EmojiSearchViewModel::class.java] val keyboardAwareLinearLayout: KeyboardAwareLinearLayout = view.findViewById(R.id.kb_aware_layout) val eventListener: EmojiEventListener = requireNotNull(findListener()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/gif/GifKeyboardPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/gif/GifKeyboardPageFragment.kt index e0e953626..d053e245a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/gif/GifKeyboardPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/gif/GifKeyboardPageFragment.kt @@ -5,7 +5,7 @@ import android.os.Bundle import android.view.View import android.widget.Toast import androidx.appcompat.app.AlertDialog -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.RecyclerView import org.thoughtcrime.securesms.LoggingFragment import org.thoughtcrime.securesms.R @@ -49,13 +49,14 @@ class GifKeyboardPageFragment : LoggingFragment(R.layout.gif_keyboard_page_fragm quickSearchAdapter = GifQuickSearchAdapter(this::onQuickSearchSelected) quickSearchList.adapter = quickSearchAdapter - giphyMp4ViewModel = ViewModelProviders.of(requireActivity(), GiphyMp4ViewModel.Factory(host.isMms())).get(GiphyMp4ViewModel::class.java) + giphyMp4ViewModel = ViewModelProvider(requireActivity(), GiphyMp4ViewModel.Factory(host.isMms())).get(GiphyMp4ViewModel::class.java) giphyMp4ViewModel.saveResultEvents.observe(viewLifecycleOwner, this::handleGiphyMp4SaveResult) } + @Suppress("DEPRECATION") override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) - viewModel = ViewModelProviders.of(requireActivity()).get(GifKeyboardPageViewModel::class.java) + viewModel = ViewModelProvider(requireActivity()).get(GifKeyboardPageViewModel::class.java) updateQuickSearchTabs() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt index cc1e0c800..2332b218d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.keyboard.sticker import android.os.Bundle import android.view.View import androidx.annotation.Px -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearSmoothScroller @@ -105,10 +105,11 @@ class StickerKeyboardPageFragment : super.onDestroyView() } + @Suppress("DEPRECATION") override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) - viewModel = ViewModelProviders.of(requireActivity(), StickerKeyboardPageViewModel.Factory(requireContext())) + viewModel = ViewModelProvider(requireActivity(), StickerKeyboardPageViewModel.Factory(requireContext())) .get(StickerKeyboardPageViewModel::class.java) viewModel.stickers.observe(viewLifecycleOwner, this::updateStickerList) diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerSearchDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerSearchDialogFragment.kt index 04c3bfb65..ef99a7a8e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerSearchDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerSearchDialogFragment.kt @@ -7,7 +7,7 @@ import android.view.ViewGroup import androidx.annotation.Px import androidx.fragment.app.DialogFragment import androidx.fragment.app.FragmentManager -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import org.thoughtcrime.securesms.R @@ -54,7 +54,7 @@ class StickerSearchDialogFragment : DialogFragment(), KeyboardStickerListAdapter list.adapter = adapter list.addItemDecoration(InsetItemDecoration(StickerInsetSetter())) - val viewModel: StickerSearchViewModel = ViewModelProviders.of(this, StickerSearchViewModel.Factory(requireContext())).get(StickerSearchViewModel::class.java) + val viewModel: StickerSearchViewModel = ViewModelProvider(this, StickerSearchViewModel.Factory(requireContext())).get(StickerSearchViewModel::class.java) viewModel.searchResults.observe(viewLifecycleOwner) { stickers -> adapter.submitList(stickers) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaGridDividerDecoration.kt b/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaGridDividerDecoration.kt index 8efe6f007..3c27cad18 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaGridDividerDecoration.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaGridDividerDecoration.kt @@ -14,7 +14,7 @@ internal class MediaGridDividerDecoration( override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) { val holder = parent.getChildViewHolder(view) - val adapterPosition = holder.adapterPosition + val adapterPosition = holder.bindingAdapterPosition val section = adapter.getAdapterPositionSection(adapterPosition) val itemSectionOffset = adapter.getItemSectionOffset(section, adapterPosition) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionActivity.kt index 958007b18..695f4affe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionActivity.kt @@ -6,7 +6,7 @@ import android.os.Bundle import android.view.KeyEvent import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatDelegate -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.navigation.Navigation import androidx.navigation.fragment.NavHostFragment import org.signal.core.util.logging.Log @@ -46,7 +46,7 @@ class MediaSelectionActivity : val isReply: Boolean = intent.getBooleanExtra(IS_REPLY, false) val factory = MediaSelectionViewModel.Factory(destination, transportOption, initialMedia, message, isReply, MediaSelectionRepository(this)) - viewModel = ViewModelProviders.of(this, factory)[MediaSelectionViewModel::class.java] + viewModel = ViewModelProvider(this, factory)[MediaSelectionViewModel::class.java] if (savedInstanceState == null) { val navHostFragment = NavHostFragment.create(R.navigation.media) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaValidator.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaValidator.kt index c6193a6bb..552da83d4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaValidator.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaValidator.kt @@ -27,8 +27,8 @@ object MediaValidator { val truncatedMedia = filteredMedia.take(maxSelection) val bucketId = if (truncatedMedia.isNotEmpty()) { - truncatedMedia.drop(1).fold(truncatedMedia.first().bucketId.or(Media.ALL_MEDIA_BUCKET_ID)) { acc, media -> - if (Util.equals(acc, media.bucketId.or(Media.ALL_MEDIA_BUCKET_ID))) { + truncatedMedia.drop(1).fold(truncatedMedia.first().bucketId.or(Media.ALL_MEDIA_BUCKET_ID)) { acc, m -> + if (Util.equals(acc, m.bucketId.or(Media.ALL_MEDIA_BUCKET_ID))) { acc } else { Media.ALL_MEDIA_BUCKET_ID diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MeteredConnectivity.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MeteredConnectivity.kt index f566acda0..aa93fb829 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MeteredConnectivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MeteredConnectivity.kt @@ -9,6 +9,7 @@ import androidx.core.net.ConnectivityManagerCompat import io.reactivex.rxjava3.core.Observable import org.thoughtcrime.securesms.util.ServiceUtil +@Suppress("DEPRECATION") object MeteredConnectivity { fun isMetered(context: Context): Observable = Observable.create { emitter -> val connectivityManager = ServiceUtil.getConnectivityManager(context) diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationBuilder.kt b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationBuilder.kt index 4b2e5447e..0e1abb218 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationBuilder.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationBuilder.kt @@ -263,7 +263,7 @@ sealed class NotificationBuilder(protected val context: Context) { val personBuilder: PersonCompat.Builder = PersonCompat.Builder() .setBot(false) .setName(notificationItem.getPersonName(context)) - .setUri(notificationItem.getPersonUri(context)) + .setUri(notificationItem.getPersonUri()) .setIcon(notificationItem.getPersonIcon(context).toIconCompat()) if (includeShortcut) { @@ -330,9 +330,7 @@ sealed class NotificationBuilder(protected val context: Context) { 0 ) - val bubbleMetadata = NotificationCompat.BubbleMetadata.Builder() - .setIntent(intent) - .setIcon(AvatarUtil.getIconCompatForShortcut(context, conversation.recipient)) + val bubbleMetadata = NotificationCompat.BubbleMetadata.Builder(intent, AvatarUtil.getIconCompatForShortcut(context, conversation.recipient)) .setAutoExpandBubble(bubbleState === BubbleUtil.BubbleState.SHOWN) .setDesiredHeight(600) .setSuppressNotification(bubbleState === BubbleUtil.BubbleState.SHOWN) diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationConversation.kt b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationConversation.kt index 271844e56..c37571b74 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationConversation.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationConversation.kt @@ -56,14 +56,6 @@ data class NotificationConversation( } } - fun getContactUri(context: Context): String? { - return if (SignalStore.settings().messageNotificationsPrivacy.isDisplayContact) { - recipient.contactUri?.toString() - } else { - null - } - } - fun getSlideBigPictureUri(context: Context): Uri? { return if (notificationItems.size == 1 && SignalStore.settings().messageNotificationsPrivacy.isDisplayMessage && !KeyCachingService.isLocked(context)) { mostRecentNotification.getBigPictureUri() diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationItemV2.kt b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationItemV2.kt index 681b86782..16b7eeaf9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationItemV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationItemV2.kt @@ -100,7 +100,7 @@ sealed class NotificationItemV2(val threadRecipient: Recipient, protected val re return timestamp.compareTo(other.timestamp) } - fun getPersonUri(context: Context): String? { + fun getPersonUri(): String? { return if (SignalStore.settings().messageNotificationsPrivacy.isDisplayContact && individualRecipient.isSystemContact) { individualRecipient.contactUri.toString() } else { diff --git a/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsFragment.kt index 9d87235cb..0516fee86 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsFragment.kt @@ -10,7 +10,7 @@ import androidx.appcompat.widget.Toolbar import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.core.view.ViewCompat -import androidx.lifecycle.ViewModelProviders +import androidx.lifecycle.ViewModelProvider import androidx.transition.ChangeBounds import androidx.transition.Transition import androidx.transition.TransitionManager @@ -69,7 +69,7 @@ class EditReactionsFragment : LoggingFragment(R.layout.edit_reactions_fragment), requireActivity().onBackPressed() } - viewModel = ViewModelProviders.of(this).get(EditReactionsViewModel::class.java) + viewModel = ViewModelProvider(this).get(EditReactionsViewModel::class.java) viewModel.reactions.observe(viewLifecycleOwner) { emojis -> emojis.forEachIndexed { index, emoji -> reactionViews[index].setImageEmoji(emoji) } @@ -93,6 +93,7 @@ class EditReactionsFragment : LoggingFragment(R.layout.edit_reactions_fragment), if (Build.VERSION.SDK_INT == 19) { updateToolbarTopMargin(ViewUtil.getStatusBarHeight(toolbar)) } else { + @Suppress("DEPRECATION") ViewCompat.setOnApplyWindowInsetsListener(toolbar) { _, insets -> updateToolbarTopMargin(insets.systemWindowInsetTop) insets diff --git a/app/witness-verifications.gradle b/app/witness-verifications.gradle index a8e591e21..d37f55562 100644 --- a/app/witness-verifications.gradle +++ b/app/witness-verifications.gradle @@ -528,17 +528,17 @@ dependencyVerification { ['org.greenrobot:eventbus:3.0.0', '180d4212467df06f2fbc9c8d8a2984533ac79c87769ad883bc421612f0b4e17c'], - ['org.jetbrains.kotlin:kotlin-reflect:1.4.10', - '3ab3413ec945f801448360ad97bc6e14fec6d606889ede3c707cc277b4467f45'], + ['org.jetbrains.kotlin:kotlin-reflect:1.5.10', + 'd6a6a36120ebcc8b291c4b6508d123b01347a4ee73dffdc744e88a3dd630d474'], ['org.jetbrains.kotlin:kotlin-stdlib-common:1.5.10', 'd958ce94beda85f865829fb95012804866db7d5246615fd71a2f5aabca3e7994'], - ['org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.0', - 'ac12f092f12b575c1f9e0ab5025b1e610b0fe95663e26371c16c328895711bae'], + ['org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.10', + '75ed5680aaacfd94b93c3695d8eb8bfa7cf83893d2e46ca9788345c52d393f8a'], - ['org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.0', - '15e6c81b9e845eefe58d51a04670bb90418046f458264ec0e61ee9bdbc1bfae7'], + ['org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10', + '270b05aa3cc92f157a7ed71ff09cf136ee3fb18cbac94f71a12931009c49f550'], ['org.jetbrains.kotlin:kotlin-stdlib:1.5.10', 'ca87c454cd3f2e60931f1803c59699d510d3b4b959cd7119296fb947581d722d'], @@ -579,6 +579,9 @@ dependencyVerification { ['org.signal:ringrtc-android:2.13.0', '8e03e651969cb9dc7a78f449e8aace3203ed17e23770a32591af1df9ad7d0c69'], + ['org.signal:zkgroup-android:0.7.0', + '52b172565bd01526e93ebf1796b834bdc449d4fe3422c1b827e49cb8d4f13fbd'], + ['org.signal:zkgroup-java:0.7.0', 'd0099eedd60d6f7d4df5b288175e5d585228ed8897789926bdab69bf8c05659f'], @@ -588,6 +591,9 @@ dependencyVerification { ['org.threeten:threetenbp:1.3.6', 'f4c23ffaaed717c3b99c003e0ee02d6d66377fd47d866fec7d971bd8644fc1a7'], + ['org.whispersystems:signal-client-android:0.9.4', + '5b4d8e0b37701caefe6089bdf09667716fea5829f105373e4bfce3041e7c6387'], + ['org.whispersystems:signal-client-java:0.9.4', '629fb84dbbf5663cbfda0cb87420b0f64ad9902088c575478b04009cce9cbf8a'], diff --git a/dependencies.gradle b/dependencies.gradle index d7a92f832..f4a89b72d 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,12 +7,14 @@ dependencyResolutionManagement { version('androidx-camera', '1.0.0-beta11') version('androidx-lifecycle', '2.3.1') version('mp4parser', '1.9.39') + version('kotlin', '1.5.10') // Desugaring alias('android-tools-desugar').to('com.android.tools:desugar_jdk_libs:1.1.5') // Kotlin - alias('kotlin-stdlib-jdk7').to('org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.32') + alias('kotlin-stdlib-jdk8').to('org.jetbrains.kotlin', 'kotlin-stdlib-jdk8').versionRef('kotlin') + alias('kotlin-reflect').to('org.jetbrains.kotlin', 'kotlin-reflect').versionRef('kotlin') // Android X alias('androidx-core-ktx').to('androidx.core:core-ktx:1.5.0') diff --git a/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/TrashRenderer.kt b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/TrashRenderer.kt index ff2dd656d..4373d6186 100644 --- a/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/TrashRenderer.kt +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/TrashRenderer.kt @@ -117,8 +117,6 @@ internal class TrashRenderer : InvalidateableRenderer, Renderer, Parcelable { invalidate() } - private constructor(inParcel: Parcel?) - override fun hitTest(x: Float, y: Float): Boolean { val dx = x - buttonCenter[0] val dy = y - buttonCenter[1] @@ -140,7 +138,7 @@ internal class TrashRenderer : InvalidateableRenderer, Renderer, Parcelable { @JvmField val CREATOR: Parcelable.Creator = object : Parcelable.Creator { override fun createFromParcel(`in`: Parcel): TrashRenderer { - return TrashRenderer(`in`) + return TrashRenderer() } override fun newArray(size: Int): Array {