diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/media/ArkAudioRecorderImpl.kt b/app/src/main/java/dev/arkbuilders/arkmemo/media/ArkAudioRecorderImpl.kt index 3268142..f4bdabd 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/media/ArkAudioRecorderImpl.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/media/ArkAudioRecorderImpl.kt @@ -36,18 +36,22 @@ class ArkAudioRecorderImpl } override fun start() { + Log.d(tag, "start") recorder?.start() } override fun pause() { + Log.d(tag, "pause") recorder?.pause() } override fun resume() { + Log.d(tag, "resume") recorder?.resume() } override fun reset() { + Log.d(tag, "reset") recorder?.reset() } @@ -68,6 +72,7 @@ class ArkAudioRecorderImpl return try { recorder?.maxAmplitude ?: 0 } catch (e: Exception) { + Log.e(tag, "maxAmplitude exception: $e") 0 } } @@ -76,6 +81,7 @@ class ArkAudioRecorderImpl override suspend fun deleteTempFile(): Boolean { return try { + Log.d(tag, "deleteTempFile") tempFile.delete() } catch (e: Exception) { Log.e(tag, "deleteTempFile exception: " + e.message) diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/media/ArkMediaPlayerImpl.kt b/app/src/main/java/dev/arkbuilders/arkmemo/media/ArkMediaPlayerImpl.kt index 397ec4b..684806d 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/media/ArkMediaPlayerImpl.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/media/ArkMediaPlayerImpl.kt @@ -15,11 +15,16 @@ class ArkMediaPlayerImpl private var maxAmplitude = 0 + companion object { + private const val TAG = "ArkMediaPlayerImpl" + } + override fun init( path: String, onCompletion: () -> Unit, onPrepared: () -> Unit, ) { + Log.d(TAG, "init") if (player?.isPlaying == true) { player?.stop() onCompletionHandler() @@ -43,16 +48,18 @@ class ArkMediaPlayerImpl setDataSource(path) prepare() } catch (e: Exception) { - Log.e("ArkMediaPlayerImpl", "init exception: ${e.message}") + Log.e(TAG, "init exception: ${e.message}") } } } override fun play() { + Log.d(TAG, "play") player?.start() } override fun stop() { + Log.d(TAG, "stop") player?.let { it.stop() it.release() @@ -61,10 +68,12 @@ class ArkMediaPlayerImpl } override fun pause() { + Log.d(TAG, "pause") player?.pause() } override fun seekTo(position: Int) { + Log.d(TAG, "seekTo position: $position") player?.seekTo(position) } diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/repo/NotesRepoHelper.kt b/app/src/main/java/dev/arkbuilders/arkmemo/repo/NotesRepoHelper.kt index 46acac4..a627294 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/repo/NotesRepoHelper.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/repo/NotesRepoHelper.kt @@ -34,6 +34,10 @@ class NotesRepoHelper ) { lateinit var root: Path + companion object { + private const val TAG = "NotesRepoHelper" + } + private lateinit var propertiesStorage: PropertiesStorage private val lazyPropertiesStorage by lazy { CoroutineScope(iODispatcher).async { @@ -43,6 +47,7 @@ class NotesRepoHelper } suspend fun init(root: String) { + Log.d(TAG, "init") this.root = Path(root) propertiesStorage = lazyPropertiesStorage.await() } @@ -53,6 +58,7 @@ class NotesRepoHelper description: String? = null, ): Boolean { with(propertiesStorage) { + Log.d(TAG, "persistNoteProperties for resource: $resourceId title: $noteTitle") val properties = Properties( setOf(noteTitle), @@ -85,13 +91,14 @@ class NotesRepoHelper extension = resourcePath.extension, modified = resourcePath.getLastModifiedTime(), ) - Log.d("notes-repo", "resource renamed to ${resourcePath.name} successfully") + Log.d(TAG, "resource renamed to ${resourcePath.name} successfully") } fun readProperties( id: ResourceId, defaultTitle: String, ): UserNoteProperties { + Log.d(TAG, "readProperties for resource id: $id") val title = propertiesStorage.getProperties(id).titles.let { if (it.isNotEmpty()) it.elementAt(0) else defaultTitle @@ -112,6 +119,7 @@ class NotesRepoHelper suspend fun deleteNote(note: Note): Unit = withContext(Dispatchers.IO) { + Log.d(TAG, "deleteNote: ${note.title}") val id = note.resource?.id val path = root.resolve("${note.resource?.name}") @@ -120,13 +128,13 @@ class NotesRepoHelper try { propertiesStorage.remove(resourceId) } catch (ex: NullPointerException) { - Log.e("NotesRepoHelper", "deleteNote exception: " + ex.message) + Log.e(TAG, "deleteNote exception: " + ex.message) } } propertiesStorage.persist() note.resource?.name?.let { name -> - Log.d("NotesRepoHelper", "$name has been deleted. id: " + id) + Log.d(TAG, "$name has been deleted. id: " + id) } } } diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/repo/graphics/GraphicNotesRepo.kt b/app/src/main/java/dev/arkbuilders/arkmemo/repo/graphics/GraphicNotesRepo.kt index 21f908c..deef348 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/repo/graphics/GraphicNotesRepo.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/repo/graphics/GraphicNotesRepo.kt @@ -80,6 +80,7 @@ class GraphicNotesRepo note: GraphicNote, callback: (SaveNoteResult) -> Unit, ) = withContext(iODispatcher) { + Log.d(GRAPHICS_REPO, "write") val tempPath = createTempFile() note.svg?.generate(tempPath) val size = tempPath.fileSize() @@ -115,6 +116,7 @@ class GraphicNotesRepo private suspend fun readStorage() = withContext(iODispatcher) { + Log.d(GRAPHICS_REPO, "readStorage") root.listFiles(SVG_EXT) { path -> val svg = SVG.parse(path) if (svg == null) { @@ -147,6 +149,7 @@ class GraphicNotesRepo fileName: String, svg: SVG?, ): Bitmap? { + Log.d(GRAPHICS_REPO, "exportBitmapFromSvg") // Check if thumb bitmap already exists val file = File(thumbDirectory, "$fileName.png") try { @@ -189,6 +192,7 @@ class GraphicNotesRepo canvas.drawPath(path.path, path.paint) canvas.restore() } ?: let { + Log.w(GRAPHICS_REPO, "exportBitmapFromSvg either SVG or its paths are null!") return null } diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/repo/text/TextNotesRepo.kt b/app/src/main/java/dev/arkbuilders/arkmemo/repo/text/TextNotesRepo.kt index 67ba6b8..d6a69e2 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/repo/text/TextNotesRepo.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/repo/text/TextNotesRepo.kt @@ -60,6 +60,7 @@ class TextNotesRepo note: TextNote, callback: (SaveNoteResult) -> Unit, ) = withContext(iODispatcher) { + Log.d(TEXT_REPO, "write note: $note") val tempPath = createTempFile() val lines = note.text.split('\n') tempPath.writeLines(lines) @@ -96,6 +97,7 @@ class TextNotesRepo private suspend fun readStorage(): List = withContext(iODispatcher) { + Log.d(TEXT_REPO, "readStorage") root.listFiles(NOTE_EXT) { path -> val size = path.fileSize() val id = computeId(size, path) @@ -123,6 +125,7 @@ class TextNotesRepo ) } } catch (e: Exception) { + Log.e(TEXT_REPO, "readStorage exception: $e") e.printStackTrace() TextNote( text = "", diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/repo/voices/VoiceNotesRepo.kt b/app/src/main/java/dev/arkbuilders/arkmemo/repo/voices/VoiceNotesRepo.kt index 1f7de8a..05c7fc6 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/repo/voices/VoiceNotesRepo.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/repo/voices/VoiceNotesRepo.kt @@ -58,6 +58,7 @@ class VoiceNotesRepo note: VoiceNote, callback: (SaveNoteResult) -> Unit, ) = withContext(iODispatcher) { + Log.d(VOICES_REPO, "write") val tempPath = note.path val size = tempPath.fileSize() val id = computeId(size, tempPath) @@ -100,6 +101,7 @@ class VoiceNotesRepo private suspend fun readStorage(): List = withContext(iODispatcher) { + Log.d(VOICES_REPO, "readStorage") root.listFiles(VOICE_EXT) { path -> val id = computeId(path.fileSize(), path) val resource = diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/ui/activities/MainActivity.kt b/app/src/main/java/dev/arkbuilders/arkmemo/ui/activities/MainActivity.kt index e9a3a15..6f36b08 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/ui/activities/MainActivity.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/ui/activities/MainActivity.kt @@ -2,6 +2,7 @@ package dev.arkbuilders.arkmemo.ui.activities import android.content.Intent import android.os.Bundle +import android.util.Log import android.view.WindowManager import androidx.activity.result.contract.ActivityResultContracts import androidx.annotation.IdRes @@ -41,6 +42,7 @@ class MainActivity : AppCompatActivity(R.layout.activity_main) { init { FilePickerDialog.readPermLauncher = registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted -> + Log.d(ACTIVITY_TAG, "readPermLauncher isGranted: $isGranted") if (isGranted) { FilePickerDialog.show() } else { @@ -50,6 +52,7 @@ class MainActivity : AppCompatActivity(R.layout.activity_main) { FilePickerDialog.readPermLauncherSdkR = registerForActivityResult(PermissionContract()) { isGranted -> + Log.d(ACTIVITY_TAG, "readPermLauncherSdkR isGranted: $isGranted") if (isGranted) { FilePickerDialog.show() } else { @@ -68,6 +71,7 @@ class MainActivity : AppCompatActivity(R.layout.activity_main) { } supportFragmentManager.onArkPathPicked(this) { + Log.d(ACTIVITY_TAG, "onArkPathPicked path: $it") memoPreferences.storePath(it.toString()) showFragment(savedInstanceState) } @@ -201,7 +205,8 @@ class MainActivity : AppCompatActivity(R.layout.activity_main) { } companion object { - private const val CURRENT_FRAGMENT_TAG = "current fragment tag" + private const val CURRENT_FRAGMENT_TAG = "current_fragment" + private const val ACTIVITY_TAG = "MainActivity" } } diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/ui/fragments/ArkMediaPlayerFragment.kt b/app/src/main/java/dev/arkbuilders/arkmemo/ui/fragments/ArkMediaPlayerFragment.kt index 432d03a..a5a9c55 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/ui/fragments/ArkMediaPlayerFragment.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/ui/fragments/ArkMediaPlayerFragment.kt @@ -1,6 +1,7 @@ package dev.arkbuilders.arkmemo.ui.fragments import android.os.Bundle +import android.util.Log import android.view.View import androidx.core.content.res.ResourcesCompat import androidx.fragment.app.viewModels @@ -99,6 +100,7 @@ class ArkMediaPlayerFragment : BaseEditNoteFragment() { } private fun handleSideEffect(effect: ArkMediaPlayerSideEffect) { + Log.d(TAG, "handleSideEffect: $effect") when (effect) { ArkMediaPlayerSideEffect.StartPlaying -> { showPauseIcon() diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/ui/fragments/ArkRecorderFragment.kt b/app/src/main/java/dev/arkbuilders/arkmemo/ui/fragments/ArkRecorderFragment.kt index 25372a0..0300a42 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/ui/fragments/ArkRecorderFragment.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/ui/fragments/ArkRecorderFragment.kt @@ -5,6 +5,7 @@ import android.content.res.ColorStateList import android.os.Bundle import android.text.Editable import android.text.TextWatcher +import android.util.Log import android.view.View import android.widget.ImageView import android.widget.TextView @@ -315,6 +316,7 @@ class ArkRecorderFragment : BaseEditNoteFragment() { } private fun handlePlaySideEffect(effect: ArkMediaPlayerSideEffect) { + Log.d(TAG, "handlePlaySideEffect: $effect") when (effect) { ArkMediaPlayerSideEffect.StartPlaying -> { binding.layoutAudioView.ivPlayAudio.setImageResource(R.drawable.ic_pause_circle) diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/ui/fragments/NotesFragment.kt b/app/src/main/java/dev/arkbuilders/arkmemo/ui/fragments/NotesFragment.kt index 4e4eb23..376f4a2 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/ui/fragments/NotesFragment.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/ui/fragments/NotesFragment.kt @@ -5,6 +5,7 @@ import android.graphics.Canvas import android.graphics.Color import android.graphics.Paint import android.os.Bundle +import android.util.Log import android.util.TypedValue import android.view.LayoutInflater import android.view.View @@ -315,6 +316,7 @@ class NotesFragment : BaseFragment() { } private fun onNotesLoaded(notes: List) { + Log.d(TAG, "onNotesLoaded notes.size: ${notes.size}") binding.pbLoading.gone() if (notesAdapter == null) { notesAdapter = diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/ArkMediaPlayerViewModel.kt b/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/ArkMediaPlayerViewModel.kt index 53321c4..02c1b66 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/ArkMediaPlayerViewModel.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/ArkMediaPlayerViewModel.kt @@ -1,6 +1,7 @@ package dev.arkbuilders.arkmemo.ui.viewmodels import android.media.audiofx.Visualizer +import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel @@ -41,6 +42,10 @@ class ArkMediaPlayerViewModel constructor( private val arkMediaPlayer: ArkMediaPlayer, ) : ViewModel() { + companion object { + private const val TAG = "ArkMediaPlayerViewModel" + } + private var currentPlayingVoiceNotePath: String = "" private val arkMediaPlayerSideEffect = MutableStateFlow(null) private val arkMediaPlayerState = MutableStateFlow(null) @@ -71,6 +76,7 @@ class ArkMediaPlayerViewModel } private fun setupVisualizer() { + Log.d(TAG, "setupVisualizer") // Attach a Visualizer to the MediaPlayer // Inspired from this thread: https://stackoverflow.com/a/30384717 visualizer = @@ -112,6 +118,7 @@ class ArkMediaPlayerViewModel * Inspiration is from: https://developer.android.com/reference/android/media/audiofx/Visualizer#getFft(byte[]) */ private fun computeFftMagnitude(fft: ByteArray?): Float { + Log.d(TAG, "computeFftMagnitude") if (fft == null) return 0f // Compute magnitude from FFT data @@ -165,6 +172,7 @@ class ArkMediaPlayerViewModel } private fun startProgressMonitor() { + Log.d(TAG, "startProgressMonitor") if (progressJob?.isActive == true) return val duration = millisToString(arkMediaPlayer.duration().toLong()) diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/ArkRecorderViewModel.kt b/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/ArkRecorderViewModel.kt index b1e59ec..e10f27a 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/ArkRecorderViewModel.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/ArkRecorderViewModel.kt @@ -1,5 +1,6 @@ package dev.arkbuilders.arkmemo.ui.viewmodels +import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel @@ -38,6 +39,10 @@ class ArkRecorderViewModel constructor( private val arkAudioRecorder: ArkAudioRecorder, ) : ViewModel() { + companion object { + private const val TAG = "ArkRecorderViewModel" + } + private val recorderSideEffect = MutableStateFlow(null) private val recorderState = MutableStateFlow(null) private val isRecording = MutableStateFlow(false) @@ -51,6 +56,7 @@ class ArkRecorderViewModel private var recordTimerTask: TimerTask? = null fun onStartStopClick() { + Log.d(TAG, "onStartStopClick") if (isRecording.value) { onStopRecordingClick() } else { @@ -59,6 +65,7 @@ class ArkRecorderViewModel } fun onPauseResumeClick() { + Log.d(TAG, "onPauseResumeClick") if (isPaused.value) { onResumeRecordingClick() } else { @@ -67,6 +74,7 @@ class ArkRecorderViewModel } fun onStartOverClick() { + Log.d(TAG, "onStartOverClick") onStartOverRecordingClick() } @@ -100,6 +108,7 @@ class ArkRecorderViewModel } private fun onStartRecordingClick() { + Log.d(TAG, "onStartRecordingClick") viewModelScope.launch { arkAudioRecorder.init() arkAudioRecorder.start() @@ -125,6 +134,7 @@ class ArkRecorderViewModel } private fun onStartOverRecordingClick() { + Log.d(TAG, "onStartOverRecordingClick") viewModelScope.launch { arkAudioRecorder.stop() duration = 0 diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/GraphicNotesViewModel.kt b/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/GraphicNotesViewModel.kt index ca05b1b..cbb4252 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/GraphicNotesViewModel.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/GraphicNotesViewModel.kt @@ -2,6 +2,7 @@ package dev.arkbuilders.arkmemo.ui.viewmodels import android.graphics.Paint import android.graphics.Path +import android.util.Log import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -22,6 +23,10 @@ class GraphicNotesViewModel private var lastPaintColor = paintColor private var strokeWidth = Size.TINY.value + companion object { + private const val TAG = "GraphicNotesViewModel" + } + val paint get() = Paint().also { it.color = paintColor @@ -39,6 +44,7 @@ class GraphicNotesViewModel val observableSvgLiveData = svgLiveData as LiveData fun onNoteOpened(note: GraphicNote) { + Log.d(TAG, "onNoteOpened") viewModelScope.launch { if (editPaths.isNotEmpty()) editPaths.clear() editPaths.addAll(note.svg?.getPaths()!!) diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/NotesViewModel.kt b/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/NotesViewModel.kt index 1787b74..67e130e 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/NotesViewModel.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/NotesViewModel.kt @@ -1,5 +1,6 @@ package dev.arkbuilders.arkmemo.ui.viewmodels +import android.util.Log import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -43,7 +44,12 @@ class NotesViewModel @set:Inject internal lateinit var memoPreferences: MemoPreferences + companion object { + private const val TAG = "NotesViewModel" + } + fun init(extraBlock: () -> Unit) { + Log.d(TAG, "init") val root = memoPreferences.getPath() val initJob = viewModelScope.launch(iODispatcher) { @@ -58,6 +64,7 @@ class NotesViewModel } fun readAllNotes(onSuccess: (notes: List) -> Unit) { + Log.d(TAG, "readAllNotes") viewModelScope.launch(iODispatcher) { notes.value = textNotesRepo.read() + graphicNotesRepo.read() + voiceNotesRepo.read() notes.value.let { @@ -73,6 +80,7 @@ class NotesViewModel keyword: String, onSuccess: (notes: List) -> Unit, ) { + Log.d(TAG, "searchNote") searchJob?.cancel() searchJob = viewModelScope.launch(iODispatcher) { @@ -106,6 +114,7 @@ class NotesViewModel } fun handleResult(result: SaveNoteResult) { + Log.d(TAG, "handleResult: ${result.name}") if (result == SaveNoteResult.SUCCESS_NEW || result == SaveNoteResult.SUCCESS_UPDATED ) { @@ -122,11 +131,13 @@ class NotesViewModel handleResult(result) } } + is GraphicNote -> { graphicNotesRepo.save(note) { result -> handleResult(result) } } + is VoiceNote -> { voiceNotesRepo.save(note) { result -> handleResult(result) @@ -164,9 +175,13 @@ class NotesViewModel note: Note, parentResId: ResourceId? = null, ) { + Log.d( + TAG, + "add note with title: ${note.title} resId: ${note.resource?.id} resName: ${note.resource?.name}", + ) val notes = this.notes.value.toMutableList() note.resource?.let { - notes.removeIf { it.resource?.id == parentResId ?: note.resource?.id } + notes.removeIf { it.resource?.id == (parentResId ?: note.resource?.id) } } if (note is VoiceNote) { note.duration = extractDuration(note.path.pathString) diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/QRViewModel.kt b/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/QRViewModel.kt index 4694416..4b90bc1 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/QRViewModel.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/ui/viewmodels/QRViewModel.kt @@ -3,6 +3,7 @@ package dev.arkbuilders.arkmemo.ui.viewmodels import android.content.Context import android.graphics.Bitmap import android.graphics.Color +import android.util.Log import androidmads.library.qrgenearator.QRGContents import androidmads.library.qrgenearator.QRGEncoder import androidmads.library.qrgenearator.QRGSaver @@ -27,10 +28,15 @@ class QRViewModel @Named(IO_DISPATCHER) private val iODispatcher: CoroutineDispatcher, @ApplicationContext private val appContext: Context, ) : ViewModel() { + companion object { + private const val TAG = "QRViewModel" + } + fun generateQRCode( text: String, onSuccess: (bitmap: Bitmap) -> Unit, ) { + Log.d(TAG, "generateQRCode") viewModelScope.launch(iODispatcher) { // Initializing the QR Encoder with your value to be encoded, type you required and Dimension val qrgEncoder = QRGEncoder(text, null, QRGContents.Type.TEXT, 300.dpToPx()) @@ -47,6 +53,7 @@ class QRViewModel bitmap: Bitmap, onSuccess: (path: String) -> Unit, ) { + Log.d(TAG, "saveQRCodeImage") viewModelScope.launch { // Save with location, value, bitmap returned and type of Image(JPG/PNG). val qrgSaver = QRGSaver() diff --git a/app/src/main/java/dev/arkbuilders/arkmemo/ui/views/WaveView.kt b/app/src/main/java/dev/arkbuilders/arkmemo/ui/views/WaveView.kt index 20ba09a..ba3849c 100644 --- a/app/src/main/java/dev/arkbuilders/arkmemo/ui/views/WaveView.kt +++ b/app/src/main/java/dev/arkbuilders/arkmemo/ui/views/WaveView.kt @@ -6,6 +6,7 @@ import android.graphics.Color import android.graphics.Paint import android.graphics.Rect import android.util.AttributeSet +import android.util.Log import android.view.View class WaveView(context: Context, attrs: AttributeSet) : View(context, attrs) { @@ -47,6 +48,7 @@ class WaveView(context: Context, attrs: AttributeSet) : View(context, attrs) { } private fun computeWave(amplitude: Int) { + Log.d(TAG, "computeWave amplitude: $amplitude height: $height") if (height <= 0) return if (bars.isNotEmpty()) { bars.forEachIndexed { index, rect -> @@ -66,5 +68,6 @@ class WaveView(context: Context, attrs: AttributeSet) : View(context, attrs) { private const val BAR_WIDTH = 6 private const val BAR_INTERVAL = 12 const val MAX_AMPLITUDE = 32762f / 10f + private const val TAG = "WaveView" } }