Updated on 2026-08-14
This commit is contained in:
parent
75e2b0b554
commit
0b7c992ec8
15 changed files with 133 additions and 8 deletions
|
|
@ -0,0 +1,12 @@
|
|||
package com.tangem.tap.common.clipboard
|
||||
|
||||
import android.content.ClipData
|
||||
import com.tangem.core.ui.clipboard.ClipboardManager
|
||||
import android.content.ClipboardManager as AndroidClipboardManager
|
||||
|
||||
internal class DefaultClipboardManager(private val clipboardManager: AndroidClipboardManager) : ClipboardManager {
|
||||
|
||||
override fun setText(label: String, text: String) {
|
||||
clipboardManager.setPrimaryClip(ClipData.newPlainText(label, text))
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package com.tangem.tap.common.clipboard
|
||||
|
||||
import com.tangem.core.ui.clipboard.ClipboardManager
|
||||
import timber.log.Timber
|
||||
|
||||
internal object MockClipboardManager : ClipboardManager {
|
||||
override fun setText(label: String, text: String) {
|
||||
/** Intentionnaly do nothing */
|
||||
Timber.w("Clipboard Manager not available")
|
||||
}
|
||||
}
|
||||
|
|
@ -11,6 +11,10 @@ class DefaultHapticManager(private val vibrator: Vibrator) : HapticManager {
|
|||
vibrate(VIBRATION_SHORT_DURATION)
|
||||
}
|
||||
|
||||
override fun vibrateMeduim() {
|
||||
vibrate(VIBRATION_MEDIUM_LOW_DURATION)
|
||||
}
|
||||
|
||||
override fun vibrateLong() {
|
||||
vibrate(VIBRATION_MEDIUM_DURATION)
|
||||
}
|
||||
|
|
@ -25,6 +29,7 @@ class DefaultHapticManager(private val vibrator: Vibrator) : HapticManager {
|
|||
|
||||
companion object {
|
||||
const val VIBRATION_SHORT_DURATION = 50L
|
||||
const val VIBRATION_MEDIUM_LOW_DURATION = 75L
|
||||
const val VIBRATION_MEDIUM_DURATION = 100L
|
||||
const val VIBRATION_LONG_DURATION = 200L
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
package com.tangem.tap.di
|
||||
|
||||
import android.content.Context
|
||||
import com.tangem.core.ui.clipboard.ClipboardManager
|
||||
import com.tangem.tap.common.clipboard.MockClipboardManager
|
||||
import com.tangem.tap.common.clipboard.DefaultClipboardManager
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import javax.inject.Singleton
|
||||
import android.content.ClipboardManager as AndroidClipboardManager
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
internal class ClipboardManagerModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideClipboardManager(@ApplicationContext context: Context): ClipboardManager {
|
||||
val clipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as? AndroidClipboardManager
|
||||
|
||||
return if (clipboardManager != null) {
|
||||
DefaultClipboardManager(clipboardManager = clipboardManager)
|
||||
} else {
|
||||
MockClipboardManager
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue