Add ability to long press 'Chats' to get backups subscriber id.
This commit is contained in:
parent
b1a4e889bc
commit
b42e48a08a
2 changed files with 45 additions and 11 deletions
|
@ -5,8 +5,13 @@ import android.view.View
|
|||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.IdRes
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
@ -171,7 +176,7 @@ class AppSettingsFragment : DSLSettingsFragment(
|
|||
onClick = {
|
||||
findNavController().safeNavigate(AppSettingsFragmentDirections.actionAppSettingsFragmentToManageDonationsFragment())
|
||||
},
|
||||
onLongClick = this@AppSettingsFragment::copySubscriberIdToClipboard
|
||||
onLongClick = this@AppSettingsFragment::copyDonorBadgeSubscriberIdToClipboard
|
||||
)
|
||||
} else {
|
||||
externalLinkPref(
|
||||
|
@ -197,6 +202,7 @@ class AppSettingsFragment : DSLSettingsFragment(
|
|||
onClick = {
|
||||
findNavController().safeNavigate(R.id.action_appSettingsFragment_to_chatsSettingsFragment)
|
||||
},
|
||||
onLongClick = this@AppSettingsFragment::copyRemoteBackupsSubscriberIdToClipboard,
|
||||
isEnabled = state.isRegisteredAndUpToDate()
|
||||
)
|
||||
|
||||
|
@ -288,15 +294,38 @@ class AppSettingsFragment : DSLSettingsFragment(
|
|||
}
|
||||
}
|
||||
|
||||
private fun copySubscriberIdToClipboard(): Boolean {
|
||||
// TODO [alex] -- db access on main thread!
|
||||
val subscriber = InAppPaymentsRepository.getSubscriber(InAppPaymentSubscriberRecord.Type.DONATION)
|
||||
return if (subscriber == null) {
|
||||
false
|
||||
} else {
|
||||
Toast.makeText(requireContext(), R.string.AppSettingsFragment__copied_subscriber_id_to_clipboard, Toast.LENGTH_LONG).show()
|
||||
Util.copyToClipboard(requireContext(), subscriber.subscriberId.serialize())
|
||||
true
|
||||
private fun copyDonorBadgeSubscriberIdToClipboard(): Boolean {
|
||||
copySubscriberIdToClipboard(
|
||||
subscriberType = InAppPaymentSubscriberRecord.Type.DONATION,
|
||||
toastSuccessStringRes = R.string.AppSettingsFragment__copied_donor_subscriber_id_to_clipboard
|
||||
)
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
private fun copyRemoteBackupsSubscriberIdToClipboard(): Boolean {
|
||||
copySubscriberIdToClipboard(
|
||||
subscriberType = InAppPaymentSubscriberRecord.Type.BACKUP,
|
||||
toastSuccessStringRes = R.string.AppSettingsFragment__copied_backups_subscriber_id_to_clipboard
|
||||
)
|
||||
return true
|
||||
}
|
||||
|
||||
private fun copySubscriberIdToClipboard(
|
||||
subscriberType: InAppPaymentSubscriberRecord.Type,
|
||||
@StringRes toastSuccessStringRes: Int
|
||||
) {
|
||||
lifecycleScope.launch {
|
||||
val subscriber = withContext(Dispatchers.IO) {
|
||||
InAppPaymentsRepository.getSubscriber(subscriberType)
|
||||
}
|
||||
|
||||
withContext(Dispatchers.Main) {
|
||||
if (subscriber != null) {
|
||||
Toast.makeText(requireContext(), toastSuccessStringRes, Toast.LENGTH_LONG).show()
|
||||
Util.copyToClipboard(requireContext(), subscriber.subscriberId.serialize())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4793,7 +4793,12 @@
|
|||
|
||||
<!-- AppSettingsFragment -->
|
||||
<string name="AppSettingsFragment__invite_your_friends">Invite your friends</string>
|
||||
<string name="AppSettingsFragment__copied_subscriber_id_to_clipboard">Copied subscriber id to clipboard</string>
|
||||
<!-- String displayed in a toast when we successfully copy the donations subscriber id to the clipboard -->
|
||||
<string name="AppSettingsFragment__copied_donor_subscriber_id_to_clipboard">Copied donor subscriber id to clipboard</string>
|
||||
<!-- String displayed in a toast when we successfully copy the backups subscriber id to the clipboard -->
|
||||
<string name="AppSettingsFragment__copied_backups_subscriber_id_to_clipboard">Copied backups subscriber id to clipboard</string>
|
||||
<!-- String displayed in a toast when a subscriber id is not present for a given type -->
|
||||
<string name="AppSettingsFragment__no_subscriber_id_set">No subscriber id set</string>
|
||||
|
||||
<!-- AccountSettingsFragment -->
|
||||
<string name="AccountSettingsFragment__account">Account</string>
|
||||
|
|
Loading…
Add table
Reference in a new issue