Skip to content

Commit

Permalink
add copyable text to automated tracking info
Browse files Browse the repository at this point in the history
  • Loading branch information
Razeeman committed Sep 8, 2024
1 parent e2aeba2 commit d9f7863
Show file tree
Hide file tree
Showing 20 changed files with 312 additions and 79 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ class NotificationResolverImpl @Inject constructor(
view,
data.message,
when (data.duration) {
is SnackBarParams.Duration.ExtraShort -> SNACK_BAR_EXTRA_SHORT_DURATION_MS
is SnackBarParams.Duration.Short -> SNACK_BAR_SHORT_DURATION_MS
is SnackBarParams.Duration.Normal -> SNACK_BAR_DURATION_MS
is SnackBarParams.Duration.Long -> SNACK_BAR_LONG_DURATION_MS
Expand Down Expand Up @@ -161,6 +162,7 @@ class NotificationResolverImpl @Inject constructor(
}

companion object {
private const val SNACK_BAR_EXTRA_SHORT_DURATION_MS = 1000
private const val SNACK_BAR_SHORT_DURATION_MS = 2000
private const val SNACK_BAR_DURATION_MS = 5000
private const val SNACK_BAR_LONG_DURATION_MS = 10000
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.example.util.simpletimetracker.core.manager

import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import androidx.core.content.getSystemService
import dagger.hilt.android.qualifiers.ApplicationContext
import javax.inject.Inject

class ClipboardManager @Inject constructor(
@ApplicationContext private val context: Context,
) {

private val manager get() = context.getSystemService<ClipboardManager>()

fun send(text: String) {
val clip = ClipData.newPlainText(text, text)
manager?.setPrimaryClip(clip)
}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
package com.example.util.simpletimetracker.core.repo

import android.content.Context
import android.graphics.drawable.Drawable
import android.util.TypedValue
import androidx.annotation.ArrayRes
import androidx.annotation.ColorRes
import androidx.annotation.DimenRes
import androidx.annotation.DrawableRes
import androidx.annotation.PluralsRes
import androidx.annotation.StringRes
import androidx.appcompat.view.ContextThemeWrapper
import androidx.core.content.ContextCompat
import androidx.core.content.res.ResourcesCompat
import com.example.util.simpletimetracker.core.provider.ContextProvider
import com.example.util.simpletimetracker.feature_views.extension.pxToDp
import javax.inject.Inject
Expand Down Expand Up @@ -51,6 +54,10 @@ class ResourceRepo @Inject constructor(
}.data
}

fun getDrawable(@DrawableRes drawableResId: Int): Drawable? {
return ResourcesCompat.getDrawable(context.resources, drawableResId, context.theme)
}

fun getStringArray(@ArrayRes arrayResId: Int): List<String> {
return context.resources.getStringArray(arrayResId).toList()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ class TimeAdjustmentView @JvmOverloads constructor(

data class Zero(
override val text: String,
): ViewData
) : ViewData

data class Adjust(
override val text: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,7 @@ class BackupRepoImpl @Inject constructor(
// parts[9] - weekly time is moved to separate table
// parts[10] - monthly time is moved to separate table,
instant = parts.getOrNull(11)?.toIntOrNull() == 1,
instantDuration = parts.getOrNull(12)?.toLongOrNull().orZero()
instantDuration = parts.getOrNull(12)?.toLongOrNull().orZero(),
) to goalTimes
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,16 @@ fun String.padDuration(): String {
return this.padStart(2, '0')
}

fun String.insertStringAtIndex(string: String, index: Int): String {
return StringBuilder(this).apply { insert(index, string) }.toString()
}

fun CharSequence.indexesOf(pat: String): List<Int> =
pat.toRegex()
.findAll(this)
.map { it.range.first }
.toList()

@Suppress("UNCHECKED_CAST")
fun <T> Any.tryCast(): T? {
return this as? T
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ class AddRunningRecordMediator @Inject constructor(
timeStarted = params.timeStarted,
timeEnded = params.timeStarted + type.instantDuration * 1000,
comment = params.comment,
tagIds = params.tagIds
tagIds = params.tagIds,
).let {
addRecordMediator.add(it)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ package com.example.util.simpletimetracker.feature_change_record.model

enum class ChangeRecordDateTimeField {
START,
END
END,
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@ package com.example.util.simpletimetracker.feature_dialogs.helpDialog

import com.example.util.simpletimetracker.feature_dialogs.databinding.HelpDialogFragmentBinding as Binding
import android.os.Bundle
import android.text.method.LinkMovementMethod
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.core.text.HtmlCompat
import androidx.core.text.HtmlCompat.FROM_HTML_MODE_LEGACY
import com.example.util.simpletimetracker.core.base.BaseBottomSheetFragment
import com.example.util.simpletimetracker.core.extension.setFullScreen
import com.example.util.simpletimetracker.core.extension.setSkipCollapsed
Expand All @@ -30,7 +29,8 @@ class HelpDialogFragment : BaseBottomSheetFragment<Binding>() {

override fun initUi() = with(binding) {
tvHelpDialogTitle.text = params.title
tvHelpDialogDescription.text = HtmlCompat.fromHtml(params.text, FROM_HTML_MODE_LEGACY)
tvHelpDialogDescription.text = params.text
tvHelpDialogDescription.movementMethod = LinkMovementMethod.getInstance()
}

companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,7 @@ import android.graphics.Typeface
import android.graphics.drawable.BitmapDrawable
import android.graphics.drawable.Drawable
import android.os.Parcelable
import android.text.Spannable
import android.text.SpannableString
import android.text.TextUtils
import android.text.style.ForegroundColorSpan
import android.util.AttributeSet
import android.util.TypedValue
import android.view.ContextThemeWrapper
Expand All @@ -39,6 +36,8 @@ import com.example.util.simpletimetracker.feature_views.IconView
import com.example.util.simpletimetracker.feature_views.extension.dpToPx
import com.example.util.simpletimetracker.feature_views.extension.getBitmapFromView
import com.example.util.simpletimetracker.feature_views.extension.measureExactly
import com.example.util.simpletimetracker.feature_views.extension.setForegroundSpan
import com.example.util.simpletimetracker.feature_views.extension.toSpannableString
import com.example.util.simpletimetracker.feature_views.viewData.RecordTypeIcon
import kotlinx.parcelize.Parcelize
import java.util.concurrent.TimeUnit
Expand Down Expand Up @@ -869,13 +868,11 @@ class RecordsCalendarView @JvmOverloads constructor(
item.name
} else {
val name = "${item.name} - ${item.tagName}"
val spannable = SpannableString(name)
spannable.setSpan(
ForegroundColorSpan(itemTagColor),
item.name.length, name.length,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE,
name.toSpannableString().setForegroundSpan(
color = itemTagColor,
start = item.name.length,
length = name.length - item.name.length,
)
spannable
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import com.example.util.simpletimetracker.core.interactor.SharingInteractor
import com.example.util.simpletimetracker.core.mapper.ChangeRecordDateTimeMapper
import com.example.util.simpletimetracker.core.mapper.RangeViewDataMapper
import com.example.util.simpletimetracker.core.model.NavigationTab
import com.example.util.simpletimetracker.core.viewData.ChangeRecordDateTimeState
import com.example.util.simpletimetracker.domain.extension.orZero
import com.example.util.simpletimetracker.domain.interactor.PrefsInteractor
import com.example.util.simpletimetracker.domain.interactor.RecordsShareUpdateInteractor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import com.example.util.simpletimetracker.core.extension.toModel
import com.example.util.simpletimetracker.core.extension.toParams
import com.example.util.simpletimetracker.core.extension.toRecordParams
import com.example.util.simpletimetracker.core.mapper.ChangeRecordDateTimeMapper
import com.example.util.simpletimetracker.core.mapper.TimeMapper
import com.example.util.simpletimetracker.domain.interactor.PrefsInteractor
import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType
import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData
Expand Down
Loading

0 comments on commit d9f7863

Please sign in to comment.