kopia lustrzana https://github.com/ryukoposting/Signal-Android
Fix kotlin compiler warnings.
rodzic
8984b763fb
commit
3761859681
|
@ -541,7 +541,8 @@ dependencies {
|
||||||
androidTestImplementation testLibs.androidx.test.ext.junit
|
androidTestImplementation testLibs.androidx.test.ext.junit
|
||||||
androidTestImplementation testLibs.espresso.core
|
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.jackson.module.kotlin
|
||||||
|
|
||||||
implementation libs.rxjava3.rxandroid
|
implementation libs.rxjava3.rxandroid
|
||||||
|
|
|
@ -125,7 +125,7 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
|
|
||||||
AppStartup.getInstance().addBlocking("security-provider", this::initializeSecurityProvider)
|
AppStartup.getInstance().addBlocking("security-provider", this::initializeSecurityProvider)
|
||||||
.addBlocking("sqlcipher-init", () -> SqlCipherLibraryLoader.load(this))
|
.addBlocking("sqlcipher-init", () -> SqlCipherLibraryLoader.load())
|
||||||
.addBlocking("logging", () -> {
|
.addBlocking("logging", () -> {
|
||||||
initializeLogging();
|
initializeLogging();
|
||||||
Log.i(TAG, "onCreate()");
|
Log.i(TAG, "onCreate()");
|
||||||
|
|
|
@ -147,6 +147,7 @@ class AvatarPickerFragment : Fragment(R.layout.avatar_picker_fragment) {
|
||||||
ViewUtil.hideKeyboard(requireContext(), requireView())
|
ViewUtil.hideKeyboard(requireContext(), requireView())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||||
if (requestCode == REQUEST_CODE_SELECT_IMAGE && resultCode == Activity.RESULT_OK && data != null) {
|
if (requestCode == REQUEST_CODE_SELECT_IMAGE && resultCode == Activity.RESULT_OK && data != null) {
|
||||||
val media: Media = requireNotNull(data.getParcelableExtra(AvatarSelectionActivity.EXTRA_MEDIA))
|
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))
|
.navigate(AvatarPickerFragmentDirections.actionAvatarPickerFragmentToTextAvatarCreationFragment(bundle))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
private fun openCameraCapture() {
|
private fun openCameraCapture() {
|
||||||
Permissions.with(this)
|
Permissions.with(this)
|
||||||
.request(Manifest.permission.CAMERA)
|
.request(Manifest.permission.CAMERA)
|
||||||
|
@ -226,6 +228,7 @@ class AvatarPickerFragment : Fragment(R.layout.avatar_picker_fragment) {
|
||||||
.execute()
|
.execute()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
private fun openGallery() {
|
private fun openGallery() {
|
||||||
Permissions.with(this)
|
Permissions.with(this)
|
||||||
.request(Manifest.permission.READ_EXTERNAL_STORAGE)
|
.request(Manifest.permission.READ_EXTERNAL_STORAGE)
|
||||||
|
|
|
@ -106,7 +106,7 @@ class TextAvatarCreationFragment : Fragment(R.layout.text_avatar_creation_fragme
|
||||||
Navigation.findNavController(v).popBackStack()
|
Navigation.findNavController(v).popBackStack()
|
||||||
}
|
}
|
||||||
|
|
||||||
textInput.setOnEditorActionListener { v, actionId, event ->
|
textInput.setOnEditorActionListener { _, actionId, _ ->
|
||||||
if (actionId == EditorInfo.IME_ACTION_NEXT) {
|
if (actionId == EditorInfo.IME_ACTION_NEXT) {
|
||||||
tabLayout.getTabAt(1)?.select()
|
tabLayout.getTabAt(1)?.select()
|
||||||
true
|
true
|
||||||
|
|
|
@ -25,6 +25,7 @@ abstract class KeyboardEntryDialogFragment(@LayoutRes contentLayoutId: Int) :
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||||
val dialog = super.onCreateDialog(savedInstanceState)
|
val dialog = super.onCreateDialog(savedInstanceState)
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.components.settings.app
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.Navigation
|
import androidx.navigation.Navigation
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
import org.thoughtcrime.securesms.components.AvatarImageView
|
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(BioPreference::class.java, MappingAdapter.LayoutFactory(::BioPreferenceViewHolder, R.layout.bio_preference_item))
|
||||||
adapter.registerFactory(PaymentsPreference::class.java, MappingAdapter.LayoutFactory(::PaymentsPreferenceViewHolder, R.layout.dsl_payments_preference))
|
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 ->
|
viewModel.state.observe(viewLifecycleOwner) { state ->
|
||||||
adapter.submitList(getConfiguration(state).toMappingModelList())
|
adapter.submitList(getConfiguration(state).toMappingModelList())
|
||||||
|
|
|
@ -14,7 +14,7 @@ import androidx.autofill.HintConstants
|
||||||
import androidx.core.app.DialogCompat
|
import androidx.core.app.DialogCompat
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.Navigation
|
import androidx.navigation.Navigation
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
|
@ -51,7 +51,7 @@ class AccountSettingsFragment : DSLSettingsFragment(R.string.AccountSettingsFrag
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun bindAdapter(adapter: DSLSettingsAdapter) {
|
override fun bindAdapter(adapter: DSLSettingsAdapter) {
|
||||||
viewModel = ViewModelProviders.of(this)[AccountSettingsViewModel::class.java]
|
viewModel = ViewModelProvider(this)[AccountSettingsViewModel::class.java]
|
||||||
|
|
||||||
viewModel.state.observe(viewLifecycleOwner) { state ->
|
viewModel.state.observe(viewLifecycleOwner) { state ->
|
||||||
adapter.submitList(getConfiguration(state).toMappingModelList())
|
adapter.submitList(getConfiguration(state).toMappingModelList())
|
||||||
|
@ -63,6 +63,7 @@ class AccountSettingsFragment : DSLSettingsFragment(R.string.AccountSettingsFrag
|
||||||
|
|
||||||
sectionHeaderPref(R.string.preferences_app_protection__signal_pin)
|
sectionHeaderPref(R.string.preferences_app_protection__signal_pin)
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
clickPref(
|
clickPref(
|
||||||
title = DSLSettingsText.from(if (state.hasPin) R.string.preferences_app_protection__change_your_pin else R.string.preferences_app_protection__create_a_pin),
|
title = DSLSettingsText.from(if (state.hasPin) R.string.preferences_app_protection__change_your_pin else R.string.preferences_app_protection__create_a_pin),
|
||||||
onClick = {
|
onClick = {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.components.settings.app.appearance
|
package org.thoughtcrime.securesms.components.settings.app.appearance
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.Navigation
|
import androidx.navigation.Navigation
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
import org.thoughtcrime.securesms.components.settings.DSLConfiguration
|
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) }
|
private val languageValues by lazy { resources.getStringArray(R.array.language_values) }
|
||||||
|
|
||||||
override fun bindAdapter(adapter: DSLSettingsAdapter) {
|
override fun bindAdapter(adapter: DSLSettingsAdapter) {
|
||||||
viewModel = ViewModelProviders.of(this)[AppearanceSettingsViewModel::class.java]
|
viewModel = ViewModelProvider(this)[AppearanceSettingsViewModel::class.java]
|
||||||
|
|
||||||
viewModel.state.observe(viewLifecycleOwner) { state ->
|
viewModel.state.observe(viewLifecycleOwner) { state ->
|
||||||
adapter.submitList(getConfiguration(state).toMappingModelList())
|
adapter.submitList(getConfiguration(state).toMappingModelList())
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.components.settings.app.chats
|
package org.thoughtcrime.securesms.components.settings.app.chats
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.Navigation
|
import androidx.navigation.Navigation
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
import org.thoughtcrime.securesms.components.settings.DSLConfiguration
|
import org.thoughtcrime.securesms.components.settings.DSLConfiguration
|
||||||
|
@ -16,7 +16,7 @@ class ChatsSettingsFragment : DSLSettingsFragment(R.string.preferences_chats__ch
|
||||||
override fun bindAdapter(adapter: DSLSettingsAdapter) {
|
override fun bindAdapter(adapter: DSLSettingsAdapter) {
|
||||||
val repository = ChatsSettingsRepository()
|
val repository = ChatsSettingsRepository()
|
||||||
val factory = ChatsSettingsViewModel.Factory(repository)
|
val factory = ChatsSettingsViewModel.Factory(repository)
|
||||||
viewModel = ViewModelProviders.of(this, factory)[ChatsSettingsViewModel::class.java]
|
viewModel = ViewModelProvider(this, factory)[ChatsSettingsViewModel::class.java]
|
||||||
|
|
||||||
viewModel.state.observe(viewLifecycleOwner) {
|
viewModel.state.observe(viewLifecycleOwner) {
|
||||||
adapter.submitList(getConfiguration(it).toMappingModelList())
|
adapter.submitList(getConfiguration(it).toMappingModelList())
|
||||||
|
|
|
@ -4,7 +4,7 @@ import android.annotation.SuppressLint
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.Navigation
|
import androidx.navigation.Navigation
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
import org.thoughtcrime.securesms.components.settings.DSLConfiguration
|
import org.thoughtcrime.securesms.components.settings.DSLConfiguration
|
||||||
|
@ -28,7 +28,7 @@ class SmsSettingsFragment : DSLSettingsFragment(R.string.preferences__sms_mms) {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun bindAdapter(adapter: DSLSettingsAdapter) {
|
override fun bindAdapter(adapter: DSLSettingsAdapter) {
|
||||||
viewModel = ViewModelProviders.of(this)[SmsSettingsViewModel::class.java]
|
viewModel = ViewModelProvider(this)[SmsSettingsViewModel::class.java]
|
||||||
|
|
||||||
viewModel.state.observe(viewLifecycleOwner) {
|
viewModel.state.observe(viewLifecycleOwner) {
|
||||||
adapter.submitList(getConfiguration(it).toMappingModelList())
|
adapter.submitList(getConfiguration(it).toMappingModelList())
|
||||||
|
@ -41,6 +41,7 @@ class SmsSettingsFragment : DSLSettingsFragment(R.string.preferences__sms_mms) {
|
||||||
|
|
||||||
private fun getConfiguration(state: SmsSettingsState): DSLConfiguration {
|
private fun getConfiguration(state: SmsSettingsState): DSLConfiguration {
|
||||||
return configure {
|
return configure {
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
clickPref(
|
clickPref(
|
||||||
title = DSLSettingsText.from(R.string.SmsSettingsFragment__use_as_default_sms_app),
|
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),
|
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
|
// Linter isn't smart enough to figure out the else only happens if API >= 24
|
||||||
@SuppressLint("InlinedApi")
|
@SuppressLint("InlinedApi")
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
private fun startDefaultAppSelectionIntent() {
|
private fun startDefaultAppSelectionIntent() {
|
||||||
val intent: Intent = when {
|
val intent: Intent = when {
|
||||||
Build.VERSION.SDK_INT < 23 -> Intent(Settings.ACTION_WIRELESS_SETTINGS)
|
Build.VERSION.SDK_INT < 23 -> Intent(Settings.ACTION_WIRELESS_SETTINGS)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.components.settings.app.data
|
package org.thoughtcrime.securesms.components.settings.app.data
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.Navigation
|
import androidx.navigation.Navigation
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
|
@ -31,7 +31,7 @@ class DataAndStorageSettingsFragment : DSLSettingsFragment(R.string.preferences_
|
||||||
val preferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
|
val preferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
|
||||||
val repository = DataAndStorageSettingsRepository()
|
val repository = DataAndStorageSettingsRepository()
|
||||||
val factory = DataAndStorageSettingsViewModel.Factory(preferences, repository)
|
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) {
|
viewModel.state.observe(viewLifecycleOwner) {
|
||||||
adapter.submitList(getConfiguration(it).toMappingModelList())
|
adapter.submitList(getConfiguration(it).toMappingModelList())
|
||||||
|
|
|
@ -5,7 +5,7 @@ import android.content.ClipboardManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import org.signal.core.util.concurrent.SignalExecutors
|
import org.signal.core.util.concurrent.SignalExecutors
|
||||||
import org.thoughtcrime.securesms.BuildConfig
|
import org.thoughtcrime.securesms.BuildConfig
|
||||||
|
@ -34,7 +34,7 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
|
||||||
override fun bindAdapter(adapter: DSLSettingsAdapter) {
|
override fun bindAdapter(adapter: DSLSettingsAdapter) {
|
||||||
val repository = InternalSettingsRepository(requireContext())
|
val repository = InternalSettingsRepository(requireContext())
|
||||||
val factory = InternalSettingsViewModel.Factory(repository)
|
val factory = InternalSettingsViewModel.Factory(repository)
|
||||||
viewModel = ViewModelProviders.of(this, factory)[InternalSettingsViewModel::class.java]
|
viewModel = ViewModelProvider(this, factory)[InternalSettingsViewModel::class.java]
|
||||||
|
|
||||||
viewModel.state.observe(viewLifecycleOwner) {
|
viewModel.state.observe(viewLifecycleOwner) {
|
||||||
adapter.submitList(getConfiguration(it).toMappingModelList())
|
adapter.submitList(getConfiguration(it).toMappingModelList())
|
||||||
|
|
|
@ -12,7 +12,7 @@ import android.text.TextUtils
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
import org.thoughtcrime.securesms.components.settings.DSLConfiguration
|
import org.thoughtcrime.securesms.components.settings.DSLConfiguration
|
||||||
|
@ -71,7 +71,7 @@ class NotificationsSettingsFragment : DSLSettingsFragment(R.string.preferences__
|
||||||
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
|
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
|
||||||
val factory = NotificationsSettingsViewModel.Factory(sharedPreferences)
|
val factory = NotificationsSettingsViewModel.Factory(sharedPreferences)
|
||||||
|
|
||||||
viewModel = ViewModelProviders.of(this, factory)[NotificationsSettingsViewModel::class.java]
|
viewModel = ViewModelProvider(this, factory)[NotificationsSettingsViewModel::class.java]
|
||||||
|
|
||||||
viewModel.state.observe(viewLifecycleOwner) {
|
viewModel.state.observe(viewLifecycleOwner) {
|
||||||
adapter.submitList(getConfiguration(it).toMappingModelList())
|
adapter.submitList(getConfiguration(it).toMappingModelList())
|
||||||
|
@ -241,6 +241,7 @@ class NotificationsSettingsFragment : DSLSettingsFragment(R.string.preferences__
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
private fun launchMessageSoundSelectionIntent() {
|
private fun launchMessageSoundSelectionIntent() {
|
||||||
val current = SignalStore.settings().messageNotificationSound
|
val current = SignalStore.settings().messageNotificationSound
|
||||||
|
|
||||||
|
@ -268,6 +269,7 @@ class NotificationsSettingsFragment : DSLSettingsFragment(R.string.preferences__
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
private fun launchCallRingtoneSelectionIntent() {
|
private fun launchCallRingtoneSelectionIntent() {
|
||||||
val current = SignalStore.settings().callRingtone
|
val current = SignalStore.settings().callRingtone
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ import android.widget.TextView
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.Navigation
|
import androidx.navigation.Navigation
|
||||||
import androidx.navigation.fragment.NavHostFragment
|
import androidx.navigation.fragment.NavHostFragment
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
|
@ -46,8 +46,6 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences
|
||||||
import java.lang.Integer.max
|
import java.lang.Integer.max
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
import kotlin.collections.ArrayList
|
|
||||||
import kotlin.collections.LinkedHashMap
|
|
||||||
|
|
||||||
private val TAG = Log.tag(PrivacySettingsFragment::class.java)
|
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 sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
|
||||||
val repository = PrivacySettingsRepository()
|
val repository = PrivacySettingsRepository()
|
||||||
val factory = PrivacySettingsViewModel.Factory(sharedPreferences, repository)
|
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 ->
|
viewModel.state.observe(viewLifecycleOwner) { state ->
|
||||||
adapter.submitList(getConfiguration(state).toMappingModelList())
|
adapter.submitList(getConfiguration(state).toMappingModelList())
|
||||||
|
|
|
@ -9,7 +9,7 @@ import android.widget.TextView
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.core.widget.TextViewCompat
|
import androidx.core.widget.TextViewCompat
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
|
@ -67,7 +67,7 @@ class AdvancedPrivacySettingsFragment : DSLSettingsFragment(R.string.preferences
|
||||||
val preferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
|
val preferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
|
||||||
val factory = AdvancedPrivacySettingsViewModel.Factory(preferences, repository)
|
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) {
|
viewModel.state.observe(viewLifecycleOwner) {
|
||||||
if (it.showProgressSpinner) {
|
if (it.showProgressSpinner) {
|
||||||
|
|
|
@ -34,6 +34,7 @@ class CustomExpireTimerSelectDialog : DialogFragment() {
|
||||||
.create()
|
.create()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||||
super.onActivityCreated(savedInstanceState)
|
super.onActivityCreated(savedInstanceState)
|
||||||
viewModel = ViewModelProvider(NavHostFragment.findNavController(this).getViewModelStoreOwner(R.id.app_settings_expire_timer))
|
viewModel = ViewModelProvider(NavHostFragment.findNavController(this).getViewModelStoreOwner(R.id.app_settings_expire_timer))
|
||||||
|
|
|
@ -405,6 +405,7 @@ class ConversationSettingsFragment : DSLSettingsFragment(
|
||||||
state.withRecipientSettingsState { recipientState ->
|
state.withRecipientSettingsState { recipientState ->
|
||||||
when (recipientState.contactLinkState) {
|
when (recipientState.contactLinkState) {
|
||||||
ContactLinkState.OPEN -> {
|
ContactLinkState.OPEN -> {
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
clickPref(
|
clickPref(
|
||||||
title = DSLSettingsText.from(R.string.ConversationSettingsFragment__contact_details),
|
title = DSLSettingsText.from(R.string.ConversationSettingsFragment__contact_details),
|
||||||
icon = DSLSettingsIcon.from(R.drawable.ic_profile_circle_24),
|
icon = DSLSettingsIcon.from(R.drawable.ic_profile_circle_24),
|
||||||
|
@ -414,6 +415,7 @@ class ConversationSettingsFragment : DSLSettingsFragment(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
ContactLinkState.ADD -> {
|
ContactLinkState.ADD -> {
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
clickPref(
|
clickPref(
|
||||||
title = DSLSettingsText.from(R.string.ConversationSettingsFragment__add_as_a_contact),
|
title = DSLSettingsText.from(R.string.ConversationSettingsFragment__add_as_a_contact),
|
||||||
icon = DSLSettingsIcon.from(R.drawable.ic_plus_24),
|
icon = DSLSettingsIcon.from(R.drawable.ic_plus_24),
|
||||||
|
@ -442,6 +444,7 @@ class ConversationSettingsFragment : DSLSettingsFragment(
|
||||||
|
|
||||||
sectionHeaderPref(R.string.recipient_preference_activity__shared_media)
|
sectionHeaderPref(R.string.recipient_preference_activity__shared_media)
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
customPref(
|
customPref(
|
||||||
SharedMediaPreference.Model(
|
SharedMediaPreference.Model(
|
||||||
mediaCursor = state.sharedMedia,
|
mediaCursor = state.sharedMedia,
|
||||||
|
@ -664,6 +667,7 @@ class ConversationSettingsFragment : DSLSettingsFragment(
|
||||||
startActivity(AddToGroupsActivity.newIntent(requireContext(), addToAGroup.recipientId, addToAGroup.groupMembership))
|
startActivity(AddToGroupsActivity.newIntent(requireContext(), addToAGroup.recipientId, addToAGroup.groupMembership))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
private fun handleAddMembersToGroup(addMembersToGroup: ConversationSettingsEvent.AddMembersToGroup) {
|
private fun handleAddMembersToGroup(addMembersToGroup: ConversationSettingsEvent.AddMembersToGroup) {
|
||||||
startActivityForResult(
|
startActivityForResult(
|
||||||
AddMembersActivity.createIntent(
|
AddMembersActivity.createIntent(
|
||||||
|
|
|
@ -4,7 +4,6 @@ import androidx.fragment.app.FragmentActivity
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.ViewModelProviders
|
|
||||||
import org.thoughtcrime.securesms.conversation.colors.ChatColors
|
import org.thoughtcrime.securesms.conversation.colors.ChatColors
|
||||||
import org.thoughtcrime.securesms.recipients.RecipientId
|
import org.thoughtcrime.securesms.recipients.RecipientId
|
||||||
import org.thoughtcrime.securesms.util.SingleLiveEvent
|
import org.thoughtcrime.securesms.util.SingleLiveEvent
|
||||||
|
@ -60,7 +59,7 @@ class ChatColorSelectionViewModel(private val repository: ChatColorSelectionRepo
|
||||||
val repository = ChatColorSelectionRepository.create(activity, recipientId)
|
val repository = ChatColorSelectionRepository.create(activity, recipientId)
|
||||||
val viewModelFactory = Factory(repository)
|
val viewModelFactory = Factory(repository)
|
||||||
|
|
||||||
return ViewModelProviders.of(activity, viewModelFactory).get(ChatColorSelectionViewModel::class.java)
|
return ViewModelProvider(activity, viewModelFactory).get(ChatColorSelectionViewModel::class.java)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ import androidx.appcompat.widget.AppCompatSeekBar
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.core.graphics.ColorUtils
|
import androidx.core.graphics.ColorUtils
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.Navigation
|
import androidx.navigation.Navigation
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
|
@ -54,7 +54,7 @@ class CustomChatColorCreatorPageFragment :
|
||||||
val chatColorSelectionViewModel: ChatColorSelectionViewModel = ChatColorSelectionViewModel.getOrCreate(requireActivity(), args.recipientId)
|
val chatColorSelectionViewModel: ChatColorSelectionViewModel = ChatColorSelectionViewModel.getOrCreate(requireActivity(), args.recipientId)
|
||||||
val page: Int = requireArguments().getInt(PAGE_ARG)
|
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 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(),
|
requireParentFragment(),
|
||||||
factory
|
factory
|
||||||
)[CustomChatColorCreatorViewModel::class.java]
|
)[CustomChatColorCreatorViewModel::class.java]
|
||||||
|
|
|
@ -238,7 +238,7 @@ public class DatabaseFactory {
|
||||||
}
|
}
|
||||||
|
|
||||||
private DatabaseFactory(@NonNull Context context) {
|
private DatabaseFactory(@NonNull Context context) {
|
||||||
SqlCipherLibraryLoader.load(context);
|
SqlCipherLibraryLoader.load();
|
||||||
|
|
||||||
DatabaseSecret databaseSecret = DatabaseSecretProvider.getOrCreateDatabaseSecret(context);
|
DatabaseSecret databaseSecret = DatabaseSecretProvider.getOrCreateDatabaseSecret(context);
|
||||||
AttachmentSecret attachmentSecret = AttachmentSecretProvider.getInstance(context).getOrCreateAttachmentSecret();
|
AttachmentSecret attachmentSecret = AttachmentSecretProvider.getInstance(context).getOrCreateAttachmentSecret();
|
||||||
|
|
|
@ -95,7 +95,7 @@ public class JobDatabase extends SQLiteOpenHelper implements SignalDatabase {
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
synchronized (JobDatabase.class) {
|
synchronized (JobDatabase.class) {
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
SqlCipherLibraryLoader.load(context);
|
SqlCipherLibraryLoader.load();
|
||||||
instance = new JobDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context));
|
instance = new JobDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ public class KeyValueDatabase extends SQLiteOpenHelper implements SignalDatabase
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
synchronized (KeyValueDatabase.class) {
|
synchronized (KeyValueDatabase.class) {
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
SqlCipherLibraryLoader.load(context);
|
SqlCipherLibraryLoader.load();
|
||||||
instance = new KeyValueDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context));
|
instance = new KeyValueDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ import java.util.concurrent.TimeUnit
|
||||||
*/
|
*/
|
||||||
class LocalMetricsDatabase private constructor(
|
class LocalMetricsDatabase private constructor(
|
||||||
application: Application,
|
application: Application,
|
||||||
private val databaseSecret: DatabaseSecret
|
databaseSecret: DatabaseSecret
|
||||||
) : SQLiteOpenHelper(
|
) : SQLiteOpenHelper(
|
||||||
application,
|
application,
|
||||||
DATABASE_NAME,
|
DATABASE_NAME,
|
||||||
|
@ -80,7 +80,7 @@ class LocalMetricsDatabase private constructor(
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
synchronized(LocalMetricsDatabase::class.java) {
|
synchronized(LocalMetricsDatabase::class.java) {
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
SqlCipherLibraryLoader.load(context)
|
SqlCipherLibraryLoader.load()
|
||||||
instance = LocalMetricsDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context))
|
instance = LocalMetricsDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ import java.util.concurrent.TimeUnit
|
||||||
*/
|
*/
|
||||||
class LogDatabase private constructor(
|
class LogDatabase private constructor(
|
||||||
application: Application,
|
application: Application,
|
||||||
private val databaseSecret: DatabaseSecret
|
databaseSecret: DatabaseSecret
|
||||||
) : SQLiteOpenHelper(
|
) : SQLiteOpenHelper(
|
||||||
application,
|
application,
|
||||||
DATABASE_NAME,
|
DATABASE_NAME,
|
||||||
|
@ -81,7 +81,7 @@ class LogDatabase private constructor(
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
synchronized(LogDatabase::class.java) {
|
synchronized(LogDatabase::class.java) {
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
SqlCipherLibraryLoader.load(context)
|
SqlCipherLibraryLoader.load()
|
||||||
instance = LogDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context))
|
instance = LogDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class MegaphoneDatabase extends SQLiteOpenHelper implements SignalDatabas
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
synchronized (MegaphoneDatabase.class) {
|
synchronized (MegaphoneDatabase.class) {
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
SqlCipherLibraryLoader.load(context);
|
SqlCipherLibraryLoader.load();
|
||||||
instance = new MegaphoneDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context));
|
instance = new MegaphoneDatabase(context, DatabaseSecretProvider.getOrCreateDatabaseSecret(context));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
package org.thoughtcrime.securesms.database
|
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
|
* 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().
|
* Application#onCreate().
|
||||||
|
@ -14,7 +12,7 @@ class SqlCipherLibraryLoader {
|
||||||
private val LOCK = Object()
|
private val LOCK = Object()
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun load(context: Context) {
|
fun load() {
|
||||||
if (!loaded) {
|
if (!loaded) {
|
||||||
synchronized(LOCK) {
|
synchronized(LOCK) {
|
||||||
if (!loaded) {
|
if (!loaded) {
|
||||||
|
|
|
@ -18,7 +18,6 @@ import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
import java.io.OutputStream
|
import java.io.OutputStream
|
||||||
import java.lang.Exception
|
|
||||||
import java.util.UUID
|
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.getVersionFile(): File = File(getEmojiDirectory(), VERSION_FILE)
|
||||||
private fun Context.getNameFile(versionUuid: UUID): File = File(File(getEmojiDirectory(), versionUuid.toString()).apply { mkdir() }, NAME_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 getFilesUri(name: String, format: String): Uri = PartAuthority.getEmojiUri(name)
|
||||||
|
|
||||||
private fun getOutputStream(context: Context, outputFile: File): OutputStream {
|
private fun getOutputStream(context: Context, outputFile: File): OutputStream {
|
||||||
|
|
|
@ -4,7 +4,7 @@ package org.thoughtcrime.securesms.keyboard
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
import org.thoughtcrime.securesms.components.emoji.MediaKeyboard
|
import org.thoughtcrime.securesms.components.emoji.MediaKeyboard
|
||||||
import org.thoughtcrime.securesms.keyboard.emoji.EmojiKeyboardPageFragment
|
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)
|
stickerButton = view.findViewById(R.id.keyboard_pager_fragment_sticker)
|
||||||
gifButton = view.findViewById(R.id.keyboard_pager_fragment_gif)
|
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.page().observe(viewLifecycleOwner, this::onPageSelected)
|
||||||
viewModel.pages().observe(viewLifecycleOwner) { pages ->
|
viewModel.pages().observe(viewLifecycleOwner) { pages ->
|
||||||
|
@ -42,6 +42,7 @@ class KeyboardPagerFragment : Fragment(R.layout.keyboard_pager_fragment) {
|
||||||
gifButton.setOnClickListener { viewModel.switchToPage(KeyboardPage.GIF) }
|
gifButton.setOnClickListener { viewModel.switchToPage(KeyboardPage.GIF) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||||
super.onActivityCreated(savedInstanceState)
|
super.onActivityCreated(savedInstanceState)
|
||||||
viewModel.page().value?.let(this::onPageSelected)
|
viewModel.page().value?.let(this::onPageSelected)
|
||||||
|
|
|
@ -4,7 +4,7 @@ import android.os.Bundle
|
||||||
import android.view.KeyEvent
|
import android.view.KeyEvent
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import androidx.recyclerview.widget.RecyclerView.SCROLL_STATE_IDLE
|
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)
|
appBarLayout = view.findViewById(R.id.emoji_keyboard_search_appbar)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||||
super.onActivityCreated(savedInstanceState)
|
super.onActivityCreated(savedInstanceState)
|
||||||
|
|
||||||
viewModel = ViewModelProviders.of(requireActivity(), EmojiKeyboardPageViewModel.Factory(requireContext()))
|
viewModel = ViewModelProvider(requireActivity(), EmojiKeyboardPageViewModel.Factory(requireContext()))
|
||||||
.get(EmojiKeyboardPageViewModel::class.java)
|
.get(EmojiKeyboardPageViewModel::class.java)
|
||||||
|
|
||||||
categoriesAdapter = EmojiKeyboardPageCategoriesAdapter { key ->
|
categoriesAdapter = EmojiKeyboardPageCategoriesAdapter { key ->
|
||||||
|
|
|
@ -6,7 +6,7 @@ import android.view.View
|
||||||
import android.widget.FrameLayout
|
import android.widget.FrameLayout
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
|
@ -33,7 +33,7 @@ class EmojiSearchFragment : Fragment(R.layout.emoji_search_fragment), EmojiPageV
|
||||||
val repository = EmojiSearchRepository(requireContext())
|
val repository = EmojiSearchRepository(requireContext())
|
||||||
val factory = EmojiSearchViewModel.Factory(repository)
|
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 keyboardAwareLinearLayout: KeyboardAwareLinearLayout = view.findViewById(R.id.kb_aware_layout)
|
||||||
val eventListener: EmojiEventListener = requireNotNull(findListener())
|
val eventListener: EmojiEventListener = requireNotNull(findListener())
|
||||||
|
|
|
@ -5,7 +5,7 @@ import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import org.thoughtcrime.securesms.LoggingFragment
|
import org.thoughtcrime.securesms.LoggingFragment
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
|
@ -49,13 +49,14 @@ class GifKeyboardPageFragment : LoggingFragment(R.layout.gif_keyboard_page_fragm
|
||||||
quickSearchAdapter = GifQuickSearchAdapter(this::onQuickSearchSelected)
|
quickSearchAdapter = GifQuickSearchAdapter(this::onQuickSearchSelected)
|
||||||
quickSearchList.adapter = quickSearchAdapter
|
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)
|
giphyMp4ViewModel.saveResultEvents.observe(viewLifecycleOwner, this::handleGiphyMp4SaveResult)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||||
super.onActivityCreated(savedInstanceState)
|
super.onActivityCreated(savedInstanceState)
|
||||||
viewModel = ViewModelProviders.of(requireActivity()).get(GifKeyboardPageViewModel::class.java)
|
viewModel = ViewModelProvider(requireActivity()).get(GifKeyboardPageViewModel::class.java)
|
||||||
updateQuickSearchTabs()
|
updateQuickSearchTabs()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.keyboard.sticker
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.annotation.Px
|
import androidx.annotation.Px
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.LinearSmoothScroller
|
import androidx.recyclerview.widget.LinearSmoothScroller
|
||||||
|
@ -105,10 +105,11 @@ class StickerKeyboardPageFragment :
|
||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||||
super.onActivityCreated(savedInstanceState)
|
super.onActivityCreated(savedInstanceState)
|
||||||
|
|
||||||
viewModel = ViewModelProviders.of(requireActivity(), StickerKeyboardPageViewModel.Factory(requireContext()))
|
viewModel = ViewModelProvider(requireActivity(), StickerKeyboardPageViewModel.Factory(requireContext()))
|
||||||
.get(StickerKeyboardPageViewModel::class.java)
|
.get(StickerKeyboardPageViewModel::class.java)
|
||||||
|
|
||||||
viewModel.stickers.observe(viewLifecycleOwner, this::updateStickerList)
|
viewModel.stickers.observe(viewLifecycleOwner, this::updateStickerList)
|
||||||
|
|
|
@ -7,7 +7,7 @@ import android.view.ViewGroup
|
||||||
import androidx.annotation.Px
|
import androidx.annotation.Px
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.fragment.app.FragmentManager
|
import androidx.fragment.app.FragmentManager
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
|
@ -54,7 +54,7 @@ class StickerSearchDialogFragment : DialogFragment(), KeyboardStickerListAdapter
|
||||||
list.adapter = adapter
|
list.adapter = adapter
|
||||||
list.addItemDecoration(InsetItemDecoration(StickerInsetSetter()))
|
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 ->
|
viewModel.searchResults.observe(viewLifecycleOwner) { stickers ->
|
||||||
adapter.submitList(stickers)
|
adapter.submitList(stickers)
|
||||||
|
|
|
@ -14,7 +14,7 @@ internal class MediaGridDividerDecoration(
|
||||||
override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) {
|
override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) {
|
||||||
val holder = parent.getChildViewHolder(view)
|
val holder = parent.getChildViewHolder(view)
|
||||||
|
|
||||||
val adapterPosition = holder.adapterPosition
|
val adapterPosition = holder.bindingAdapterPosition
|
||||||
val section = adapter.getAdapterPositionSection(adapterPosition)
|
val section = adapter.getAdapterPositionSection(adapterPosition)
|
||||||
val itemSectionOffset = adapter.getItemSectionOffset(section, adapterPosition)
|
val itemSectionOffset = adapter.getItemSectionOffset(section, adapterPosition)
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import android.os.Bundle
|
||||||
import android.view.KeyEvent
|
import android.view.KeyEvent
|
||||||
import androidx.activity.OnBackPressedCallback
|
import androidx.activity.OnBackPressedCallback
|
||||||
import androidx.appcompat.app.AppCompatDelegate
|
import androidx.appcompat.app.AppCompatDelegate
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.Navigation
|
import androidx.navigation.Navigation
|
||||||
import androidx.navigation.fragment.NavHostFragment
|
import androidx.navigation.fragment.NavHostFragment
|
||||||
import org.signal.core.util.logging.Log
|
import org.signal.core.util.logging.Log
|
||||||
|
@ -46,7 +46,7 @@ class MediaSelectionActivity :
|
||||||
val isReply: Boolean = intent.getBooleanExtra(IS_REPLY, false)
|
val isReply: Boolean = intent.getBooleanExtra(IS_REPLY, false)
|
||||||
|
|
||||||
val factory = MediaSelectionViewModel.Factory(destination, transportOption, initialMedia, message, isReply, MediaSelectionRepository(this))
|
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) {
|
if (savedInstanceState == null) {
|
||||||
val navHostFragment = NavHostFragment.create(R.navigation.media)
|
val navHostFragment = NavHostFragment.create(R.navigation.media)
|
||||||
|
|
|
@ -27,8 +27,8 @@ object MediaValidator {
|
||||||
|
|
||||||
val truncatedMedia = filteredMedia.take(maxSelection)
|
val truncatedMedia = filteredMedia.take(maxSelection)
|
||||||
val bucketId = if (truncatedMedia.isNotEmpty()) {
|
val bucketId = if (truncatedMedia.isNotEmpty()) {
|
||||||
truncatedMedia.drop(1).fold(truncatedMedia.first().bucketId.or(Media.ALL_MEDIA_BUCKET_ID)) { acc, media ->
|
truncatedMedia.drop(1).fold(truncatedMedia.first().bucketId.or(Media.ALL_MEDIA_BUCKET_ID)) { acc, m ->
|
||||||
if (Util.equals(acc, media.bucketId.or(Media.ALL_MEDIA_BUCKET_ID))) {
|
if (Util.equals(acc, m.bucketId.or(Media.ALL_MEDIA_BUCKET_ID))) {
|
||||||
acc
|
acc
|
||||||
} else {
|
} else {
|
||||||
Media.ALL_MEDIA_BUCKET_ID
|
Media.ALL_MEDIA_BUCKET_ID
|
||||||
|
|
|
@ -9,6 +9,7 @@ import androidx.core.net.ConnectivityManagerCompat
|
||||||
import io.reactivex.rxjava3.core.Observable
|
import io.reactivex.rxjava3.core.Observable
|
||||||
import org.thoughtcrime.securesms.util.ServiceUtil
|
import org.thoughtcrime.securesms.util.ServiceUtil
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
object MeteredConnectivity {
|
object MeteredConnectivity {
|
||||||
fun isMetered(context: Context): Observable<Boolean> = Observable.create { emitter ->
|
fun isMetered(context: Context): Observable<Boolean> = Observable.create { emitter ->
|
||||||
val connectivityManager = ServiceUtil.getConnectivityManager(context)
|
val connectivityManager = ServiceUtil.getConnectivityManager(context)
|
||||||
|
|
|
@ -263,7 +263,7 @@ sealed class NotificationBuilder(protected val context: Context) {
|
||||||
val personBuilder: PersonCompat.Builder = PersonCompat.Builder()
|
val personBuilder: PersonCompat.Builder = PersonCompat.Builder()
|
||||||
.setBot(false)
|
.setBot(false)
|
||||||
.setName(notificationItem.getPersonName(context))
|
.setName(notificationItem.getPersonName(context))
|
||||||
.setUri(notificationItem.getPersonUri(context))
|
.setUri(notificationItem.getPersonUri())
|
||||||
.setIcon(notificationItem.getPersonIcon(context).toIconCompat())
|
.setIcon(notificationItem.getPersonIcon(context).toIconCompat())
|
||||||
|
|
||||||
if (includeShortcut) {
|
if (includeShortcut) {
|
||||||
|
@ -330,9 +330,7 @@ sealed class NotificationBuilder(protected val context: Context) {
|
||||||
0
|
0
|
||||||
)
|
)
|
||||||
|
|
||||||
val bubbleMetadata = NotificationCompat.BubbleMetadata.Builder()
|
val bubbleMetadata = NotificationCompat.BubbleMetadata.Builder(intent, AvatarUtil.getIconCompatForShortcut(context, conversation.recipient))
|
||||||
.setIntent(intent)
|
|
||||||
.setIcon(AvatarUtil.getIconCompatForShortcut(context, conversation.recipient))
|
|
||||||
.setAutoExpandBubble(bubbleState === BubbleUtil.BubbleState.SHOWN)
|
.setAutoExpandBubble(bubbleState === BubbleUtil.BubbleState.SHOWN)
|
||||||
.setDesiredHeight(600)
|
.setDesiredHeight(600)
|
||||||
.setSuppressNotification(bubbleState === BubbleUtil.BubbleState.SHOWN)
|
.setSuppressNotification(bubbleState === BubbleUtil.BubbleState.SHOWN)
|
||||||
|
|
|
@ -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? {
|
fun getSlideBigPictureUri(context: Context): Uri? {
|
||||||
return if (notificationItems.size == 1 && SignalStore.settings().messageNotificationsPrivacy.isDisplayMessage && !KeyCachingService.isLocked(context)) {
|
return if (notificationItems.size == 1 && SignalStore.settings().messageNotificationsPrivacy.isDisplayMessage && !KeyCachingService.isLocked(context)) {
|
||||||
mostRecentNotification.getBigPictureUri()
|
mostRecentNotification.getBigPictureUri()
|
||||||
|
|
|
@ -100,7 +100,7 @@ sealed class NotificationItemV2(val threadRecipient: Recipient, protected val re
|
||||||
return timestamp.compareTo(other.timestamp)
|
return timestamp.compareTo(other.timestamp)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getPersonUri(context: Context): String? {
|
fun getPersonUri(): String? {
|
||||||
return if (SignalStore.settings().messageNotificationsPrivacy.isDisplayContact && individualRecipient.isSystemContact) {
|
return if (SignalStore.settings().messageNotificationsPrivacy.isDisplayContact && individualRecipient.isSystemContact) {
|
||||||
individualRecipient.contactUri.toString()
|
individualRecipient.contactUri.toString()
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -10,7 +10,7 @@ import androidx.appcompat.widget.Toolbar
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout
|
import androidx.constraintlayout.widget.ConstraintLayout
|
||||||
import androidx.constraintlayout.widget.ConstraintSet
|
import androidx.constraintlayout.widget.ConstraintSet
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import androidx.lifecycle.ViewModelProviders
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.transition.ChangeBounds
|
import androidx.transition.ChangeBounds
|
||||||
import androidx.transition.Transition
|
import androidx.transition.Transition
|
||||||
import androidx.transition.TransitionManager
|
import androidx.transition.TransitionManager
|
||||||
|
@ -69,7 +69,7 @@ class EditReactionsFragment : LoggingFragment(R.layout.edit_reactions_fragment),
|
||||||
requireActivity().onBackPressed()
|
requireActivity().onBackPressed()
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel = ViewModelProviders.of(this).get(EditReactionsViewModel::class.java)
|
viewModel = ViewModelProvider(this).get(EditReactionsViewModel::class.java)
|
||||||
|
|
||||||
viewModel.reactions.observe(viewLifecycleOwner) { emojis ->
|
viewModel.reactions.observe(viewLifecycleOwner) { emojis ->
|
||||||
emojis.forEachIndexed { index, emoji -> reactionViews[index].setImageEmoji(emoji) }
|
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) {
|
if (Build.VERSION.SDK_INT == 19) {
|
||||||
updateToolbarTopMargin(ViewUtil.getStatusBarHeight(toolbar))
|
updateToolbarTopMargin(ViewUtil.getStatusBarHeight(toolbar))
|
||||||
} else {
|
} else {
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
ViewCompat.setOnApplyWindowInsetsListener(toolbar) { _, insets ->
|
ViewCompat.setOnApplyWindowInsetsListener(toolbar) { _, insets ->
|
||||||
updateToolbarTopMargin(insets.systemWindowInsetTop)
|
updateToolbarTopMargin(insets.systemWindowInsetTop)
|
||||||
insets
|
insets
|
||||||
|
|
|
@ -528,17 +528,17 @@ dependencyVerification {
|
||||||
['org.greenrobot:eventbus:3.0.0',
|
['org.greenrobot:eventbus:3.0.0',
|
||||||
'180d4212467df06f2fbc9c8d8a2984533ac79c87769ad883bc421612f0b4e17c'],
|
'180d4212467df06f2fbc9c8d8a2984533ac79c87769ad883bc421612f0b4e17c'],
|
||||||
|
|
||||||
['org.jetbrains.kotlin:kotlin-reflect:1.4.10',
|
['org.jetbrains.kotlin:kotlin-reflect:1.5.10',
|
||||||
'3ab3413ec945f801448360ad97bc6e14fec6d606889ede3c707cc277b4467f45'],
|
'd6a6a36120ebcc8b291c4b6508d123b01347a4ee73dffdc744e88a3dd630d474'],
|
||||||
|
|
||||||
['org.jetbrains.kotlin:kotlin-stdlib-common:1.5.10',
|
['org.jetbrains.kotlin:kotlin-stdlib-common:1.5.10',
|
||||||
'd958ce94beda85f865829fb95012804866db7d5246615fd71a2f5aabca3e7994'],
|
'd958ce94beda85f865829fb95012804866db7d5246615fd71a2f5aabca3e7994'],
|
||||||
|
|
||||||
['org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.0',
|
['org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.10',
|
||||||
'ac12f092f12b575c1f9e0ab5025b1e610b0fe95663e26371c16c328895711bae'],
|
'75ed5680aaacfd94b93c3695d8eb8bfa7cf83893d2e46ca9788345c52d393f8a'],
|
||||||
|
|
||||||
['org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.0',
|
['org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10',
|
||||||
'15e6c81b9e845eefe58d51a04670bb90418046f458264ec0e61ee9bdbc1bfae7'],
|
'270b05aa3cc92f157a7ed71ff09cf136ee3fb18cbac94f71a12931009c49f550'],
|
||||||
|
|
||||||
['org.jetbrains.kotlin:kotlin-stdlib:1.5.10',
|
['org.jetbrains.kotlin:kotlin-stdlib:1.5.10',
|
||||||
'ca87c454cd3f2e60931f1803c59699d510d3b4b959cd7119296fb947581d722d'],
|
'ca87c454cd3f2e60931f1803c59699d510d3b4b959cd7119296fb947581d722d'],
|
||||||
|
@ -579,6 +579,9 @@ dependencyVerification {
|
||||||
['org.signal:ringrtc-android:2.13.0',
|
['org.signal:ringrtc-android:2.13.0',
|
||||||
'8e03e651969cb9dc7a78f449e8aace3203ed17e23770a32591af1df9ad7d0c69'],
|
'8e03e651969cb9dc7a78f449e8aace3203ed17e23770a32591af1df9ad7d0c69'],
|
||||||
|
|
||||||
|
['org.signal:zkgroup-android:0.7.0',
|
||||||
|
'52b172565bd01526e93ebf1796b834bdc449d4fe3422c1b827e49cb8d4f13fbd'],
|
||||||
|
|
||||||
['org.signal:zkgroup-java:0.7.0',
|
['org.signal:zkgroup-java:0.7.0',
|
||||||
'd0099eedd60d6f7d4df5b288175e5d585228ed8897789926bdab69bf8c05659f'],
|
'd0099eedd60d6f7d4df5b288175e5d585228ed8897789926bdab69bf8c05659f'],
|
||||||
|
|
||||||
|
@ -588,6 +591,9 @@ dependencyVerification {
|
||||||
['org.threeten:threetenbp:1.3.6',
|
['org.threeten:threetenbp:1.3.6',
|
||||||
'f4c23ffaaed717c3b99c003e0ee02d6d66377fd47d866fec7d971bd8644fc1a7'],
|
'f4c23ffaaed717c3b99c003e0ee02d6d66377fd47d866fec7d971bd8644fc1a7'],
|
||||||
|
|
||||||
|
['org.whispersystems:signal-client-android:0.9.4',
|
||||||
|
'5b4d8e0b37701caefe6089bdf09667716fea5829f105373e4bfce3041e7c6387'],
|
||||||
|
|
||||||
['org.whispersystems:signal-client-java:0.9.4',
|
['org.whispersystems:signal-client-java:0.9.4',
|
||||||
'629fb84dbbf5663cbfda0cb87420b0f64ad9902088c575478b04009cce9cbf8a'],
|
'629fb84dbbf5663cbfda0cb87420b0f64ad9902088c575478b04009cce9cbf8a'],
|
||||||
|
|
||||||
|
|
|
@ -7,12 +7,14 @@ dependencyResolutionManagement {
|
||||||
version('androidx-camera', '1.0.0-beta11')
|
version('androidx-camera', '1.0.0-beta11')
|
||||||
version('androidx-lifecycle', '2.3.1')
|
version('androidx-lifecycle', '2.3.1')
|
||||||
version('mp4parser', '1.9.39')
|
version('mp4parser', '1.9.39')
|
||||||
|
version('kotlin', '1.5.10')
|
||||||
|
|
||||||
// Desugaring
|
// Desugaring
|
||||||
alias('android-tools-desugar').to('com.android.tools:desugar_jdk_libs:1.1.5')
|
alias('android-tools-desugar').to('com.android.tools:desugar_jdk_libs:1.1.5')
|
||||||
|
|
||||||
// Kotlin
|
// 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
|
// Android X
|
||||||
alias('androidx-core-ktx').to('androidx.core:core-ktx:1.5.0')
|
alias('androidx-core-ktx').to('androidx.core:core-ktx:1.5.0')
|
||||||
|
|
|
@ -117,8 +117,6 @@ internal class TrashRenderer : InvalidateableRenderer, Renderer, Parcelable {
|
||||||
invalidate()
|
invalidate()
|
||||||
}
|
}
|
||||||
|
|
||||||
private constructor(inParcel: Parcel?)
|
|
||||||
|
|
||||||
override fun hitTest(x: Float, y: Float): Boolean {
|
override fun hitTest(x: Float, y: Float): Boolean {
|
||||||
val dx = x - buttonCenter[0]
|
val dx = x - buttonCenter[0]
|
||||||
val dy = y - buttonCenter[1]
|
val dy = y - buttonCenter[1]
|
||||||
|
@ -140,7 +138,7 @@ internal class TrashRenderer : InvalidateableRenderer, Renderer, Parcelable {
|
||||||
@JvmField
|
@JvmField
|
||||||
val CREATOR: Parcelable.Creator<TrashRenderer> = object : Parcelable.Creator<TrashRenderer> {
|
val CREATOR: Parcelable.Creator<TrashRenderer> = object : Parcelable.Creator<TrashRenderer> {
|
||||||
override fun createFromParcel(`in`: Parcel): TrashRenderer {
|
override fun createFromParcel(`in`: Parcel): TrashRenderer {
|
||||||
return TrashRenderer(`in`)
|
return TrashRenderer()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun newArray(size: Int): Array<TrashRenderer?> {
|
override fun newArray(size: Int): Array<TrashRenderer?> {
|
||||||
|
|
Ładowanie…
Reference in New Issue