Updated on 2026-08-14

This commit is contained in:
Tangem 2024-05-13 13:05:17 +05:00
parent 75e2b0b554
commit 0b7c992ec8
15 changed files with 133 additions and 8 deletions

View file

@ -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))
}
}

View file

@ -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")
}
}

View file

@ -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
}

View file

@ -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
}
}
}