mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-14 18:26:11 -04:00
@@ -32,7 +32,7 @@ class UpgradeControlFoss @Inject constructor(
|
||||
|
||||
override fun launchBillingFlow(activity: Activity) {
|
||||
MaterialAlertDialogBuilder(activity).apply {
|
||||
setIcon(R.drawable.ic_heart)
|
||||
setIcon(eu.darken.capod.common.R.drawable.ic_heart)
|
||||
setTitle(R.string.upgrade_capod_label)
|
||||
setMessage(R.string.upgrade_capod_description)
|
||||
setPositiveButton(R.string.foss_upgrade_donate_label) { _, _ ->
|
||||
@@ -68,6 +68,6 @@ class UpgradeControlFoss @Inject constructor(
|
||||
override val type: UpgradeRepo.Type = UpgradeRepo.Type.FOSS
|
||||
}
|
||||
|
||||
override fun getSponsorUrl(): String? = "https://github.com/sponsors/d4rken"
|
||||
override fun getSponsorUrl(): String = "https://github.com/sponsors/d4rken"
|
||||
|
||||
}
|
||||
@@ -73,7 +73,7 @@ class UpgradeRepoGplay @Inject constructor(
|
||||
|
||||
override fun launchBillingFlow(activity: Activity) {
|
||||
MaterialAlertDialogBuilder(activity).apply {
|
||||
setIcon(R.drawable.ic_heart)
|
||||
setIcon(eu.darken.capod.common.R.drawable.ic_heart)
|
||||
setTitle(R.string.upgrade_capod_label)
|
||||
setMessage(R.string.upgrade_capod_description)
|
||||
setPositiveButton(R.string.general_upgrade_action) { _, _ ->
|
||||
|
||||
@@ -6,7 +6,6 @@ import android.content.Context
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import eu.darken.capod.R
|
||||
import eu.darken.capod.common.debug.logging.log
|
||||
import eu.darken.capod.common.debug.logging.logTag
|
||||
import java.util.concurrent.locks.ReentrantLock
|
||||
@@ -41,7 +40,7 @@ class ClipboardHelper @Inject constructor(
|
||||
}
|
||||
|
||||
fun copyToClipboard(text: String) {
|
||||
val clip = ClipData.newPlainText(context.getString(R.string.app_name), text)
|
||||
val clip = ClipData.newPlainText(context.getString(eu.darken.capod.common.R.string.app_name), text)
|
||||
clipboard.setPrimaryClip(clip)
|
||||
}
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ class RecorderService : Service2() {
|
||||
.setPriority(NotificationCompat.PRIORITY_HIGH)
|
||||
.setSmallIcon(R.drawable.ic_baseline_bug_report_24)
|
||||
.setContentText("Idle")
|
||||
.setContentTitle(getString(R.string.app_name))
|
||||
.setContentTitle(getString(eu.darken.capod.common.R.string.app_name))
|
||||
.addAction(NotificationCompat.Action.Builder(0, getString(R.string.general_done_action), stopPi).build())
|
||||
|
||||
startForeground(NOTIFICATION_ID, builder.build())
|
||||
|
||||
@@ -115,18 +115,18 @@ class OverviewFragment : Fragment3(R.layout.main_fragment) {
|
||||
val baseTitle = when (info.type) {
|
||||
UpgradeRepo.Type.GPLAY -> {
|
||||
if (info.isPro) {
|
||||
getString(R.string.app_name_pro)
|
||||
getString(eu.darken.capod.common.R.string.app_name_pro)
|
||||
} else {
|
||||
gplay.isVisible = true
|
||||
getString(R.string.app_name)
|
||||
getString(eu.darken.capod.common.R.string.app_name)
|
||||
}
|
||||
}
|
||||
UpgradeRepo.Type.FOSS -> {
|
||||
if (info.isPro) {
|
||||
getString(R.string.app_name_foss)
|
||||
getString(eu.darken.capod.common.R.string.app_name_foss)
|
||||
} else {
|
||||
donate.isVisible = true
|
||||
getString(R.string.app_name)
|
||||
getString(eu.darken.capod.common.R.string.app_name)
|
||||
}
|
||||
}
|
||||
}.split(" ".toRegex())
|
||||
@@ -141,7 +141,7 @@ class OverviewFragment : Fragment3(R.layout.main_fragment) {
|
||||
}
|
||||
builder.append(colorString(requireContext(), color, baseTitle[1]))
|
||||
} else {
|
||||
getString(R.string.app_name)
|
||||
getString(eu.darken.capod.common.R.string.app_name)
|
||||
}
|
||||
}
|
||||
vm.launchUpgradeFlow.observe2 {
|
||||
|
||||
@@ -7,9 +7,21 @@ import androidx.core.view.isInvisible
|
||||
import eu.darken.capod.R
|
||||
import eu.darken.capod.common.lists.binding
|
||||
import eu.darken.capod.databinding.OverviewPodsDualItemBinding
|
||||
import eu.darken.capod.pods.core.*
|
||||
import eu.darken.capod.pods.core.DualPodDevice
|
||||
import eu.darken.capod.pods.core.HasCase
|
||||
import eu.darken.capod.pods.core.HasChargeDetectionDual
|
||||
import eu.darken.capod.pods.core.HasDualMicrophone
|
||||
import eu.darken.capod.pods.core.HasEarDetectionDual
|
||||
import eu.darken.capod.pods.core.HasPodStyle
|
||||
import eu.darken.capod.pods.core.HasStateDetection
|
||||
import eu.darken.capod.pods.core.apple.DualApplePods
|
||||
import eu.darken.capod.pods.core.apple.DualApplePods.LidState
|
||||
import eu.darken.capod.pods.core.firstSeenFormatted
|
||||
import eu.darken.capod.pods.core.getBatteryDrawable
|
||||
import eu.darken.capod.pods.core.getBatteryLevelCase
|
||||
import eu.darken.capod.pods.core.getBatteryLevelLeftPod
|
||||
import eu.darken.capod.pods.core.getBatteryLevelRightPod
|
||||
import eu.darken.capod.pods.core.lastSeenFormatted
|
||||
import java.time.Duration
|
||||
import java.time.Instant
|
||||
|
||||
@@ -42,8 +54,10 @@ class DualPodsCardVH(parent: ViewGroup) :
|
||||
podLeftIcon.setImageResource(device.leftPodIcon)
|
||||
podRightIcon.setImageResource(device.rightPodIcon)
|
||||
|
||||
lastSeen.text = context.getString(R.string.last_seen_x, device.lastSeenFormatted(item.now))
|
||||
firstSeen.text = context.getString(R.string.first_seen_x, device.firstSeenFormatted(item.now))
|
||||
lastSeen.text =
|
||||
context.getString(eu.darken.capod.common.R.string.last_seen_x, device.lastSeenFormatted(item.now))
|
||||
firstSeen.text =
|
||||
context.getString(eu.darken.capod.common.R.string.first_seen_x, device.firstSeenFormatted(item.now))
|
||||
firstSeen.isGone = Duration.between(device.seenFirstAt, device.seenLastAt).toMinutes() < 1
|
||||
|
||||
reception.text = item.getReceptionText()
|
||||
@@ -131,9 +145,9 @@ class DualPodsCardVH(parent: ViewGroup) :
|
||||
device.apply {
|
||||
if (this is DualApplePods) {
|
||||
podCaseLidLabel.text = when (caseLidState) {
|
||||
LidState.OPEN -> context.getString(R.string.pods_case_status_open_label)
|
||||
LidState.CLOSED -> context.getString(R.string.pods_case_status_closed_label)
|
||||
else -> context.getString(R.string.pods_case_unknown_state)
|
||||
LidState.OPEN -> context.getString(eu.darken.capod.common.R.string.pods_case_status_open_label)
|
||||
LidState.CLOSED -> context.getString(eu.darken.capod.common.R.string.pods_case_status_closed_label)
|
||||
else -> context.getString(eu.darken.capod.common.R.string.pods_case_unknown_state)
|
||||
}
|
||||
|
||||
val hideInfo = !listOf(LidState.OPEN, LidState.CLOSED).contains(caseLidState)
|
||||
|
||||
@@ -3,7 +3,6 @@ package eu.darken.capod.main.ui.overview.cards.pods
|
||||
import android.view.ViewGroup
|
||||
import androidx.annotation.LayoutRes
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import eu.darken.capod.R
|
||||
import eu.darken.capod.common.lists.BindableVH
|
||||
import eu.darken.capod.common.lists.differ.DifferItem
|
||||
import eu.darken.capod.common.lists.modular.ModularAdapter
|
||||
@@ -19,7 +18,7 @@ abstract class PodDeviceVH<D : PodDeviceVH.Item, B : ViewBinding>(
|
||||
|
||||
fun Item.getReceptionText(): String = device.getSignalQuality(context)
|
||||
.let { if (showDebug) "$it ${device.seenCounter}" else it }
|
||||
.let { if (isMainPod) "$it\n(${getString(R.string.pods_yours)})" else it }
|
||||
.let { if (isMainPod) "$it\n(${getString(eu.darken.capod.common.R.string.pods_yours)})" else it }
|
||||
|
||||
interface Item : OverviewAdapter.Item {
|
||||
|
||||
|
||||
+2
-2
@@ -32,8 +32,8 @@ class UnknownPodDeviceCardVH(parent: ViewGroup) :
|
||||
reception.text = item.getReceptionText()
|
||||
|
||||
details.text = when (item.device) {
|
||||
is ApplePods -> getString(R.string.pods_unknown_contact_dev)
|
||||
else -> getString(R.string.pods_unknown_label)
|
||||
is ApplePods -> getString(eu.darken.capod.common.R.string.pods_unknown_contact_dev)
|
||||
else -> getString(eu.darken.capod.common.R.string.pods_unknown_label)
|
||||
}
|
||||
|
||||
rawdata.text = device.rawDataHex.joinToString("\n")
|
||||
|
||||
@@ -21,7 +21,19 @@ import eu.darken.capod.common.upgrade.isPro
|
||||
import eu.darken.capod.main.ui.MainActivity
|
||||
import eu.darken.capod.monitor.core.PodDeviceCache
|
||||
import eu.darken.capod.monitor.core.PodMonitor
|
||||
import eu.darken.capod.pods.core.*
|
||||
import eu.darken.capod.pods.core.DualPodDevice
|
||||
import eu.darken.capod.pods.core.HasCase
|
||||
import eu.darken.capod.pods.core.HasChargeDetectionDual
|
||||
import eu.darken.capod.pods.core.HasEarDetection
|
||||
import eu.darken.capod.pods.core.HasEarDetectionDual
|
||||
import eu.darken.capod.pods.core.PodDevice
|
||||
import eu.darken.capod.pods.core.PodFactory
|
||||
import eu.darken.capod.pods.core.SinglePodDevice
|
||||
import eu.darken.capod.pods.core.getBatteryDrawable
|
||||
import eu.darken.capod.pods.core.getBatteryLevelCase
|
||||
import eu.darken.capod.pods.core.getBatteryLevelHeadset
|
||||
import eu.darken.capod.pods.core.getBatteryLevelLeftPod
|
||||
import eu.darken.capod.pods.core.getBatteryLevelRightPod
|
||||
import finish2
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -135,7 +147,7 @@ class WidgetProvider : AppWidgetProvider() {
|
||||
|
||||
setOnClickPendingIntent(R.id.widget_root, pendingIntent)
|
||||
|
||||
setTextViewText(R.id.primary, context.getString(R.string.pods_unknown_label))
|
||||
setTextViewText(R.id.primary, context.getString(eu.darken.capod.common.R.string.pods_unknown_label))
|
||||
}
|
||||
|
||||
private fun createNoDeviceLayout(
|
||||
@@ -151,7 +163,7 @@ class WidgetProvider : AppWidgetProvider() {
|
||||
|
||||
setOnClickPendingIntent(R.id.widget_root, pendingIntent)
|
||||
|
||||
setTextViewText(R.id.primary, context.getString(R.string.overview_nomaindevice_label))
|
||||
setTextViewText(R.id.primary, context.getString(eu.darken.capod.common.R.string.overview_nomaindevice_label))
|
||||
}
|
||||
|
||||
private fun createDualPodLayout(
|
||||
|
||||
@@ -53,9 +53,9 @@ class MonitorNotifications @Inject constructor(
|
||||
setChannelId(NOTIFICATION_CHANNEL_ID)
|
||||
setContentIntent(openPi)
|
||||
priority = NotificationCompat.PRIORITY_LOW
|
||||
setSmallIcon(R.drawable.devic_earbuds_generic_both)
|
||||
setSmallIcon(eu.darken.capod.common.R.drawable.devic_earbuds_generic_both)
|
||||
setOngoing(true)
|
||||
setContentTitle(context.getString(R.string.app_name))
|
||||
setContentTitle(context.getString(eu.darken.capod.common.R.string.app_name))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,9 +64,9 @@ class MonitorNotifications @Inject constructor(
|
||||
return builder.apply {
|
||||
setCustomContentView(null)
|
||||
setStyle(NotificationCompat.BigTextStyle())
|
||||
setContentTitle(context.getString(R.string.pods_none_label_short))
|
||||
setSubText(context.getString(R.string.app_name))
|
||||
setSmallIcon(R.drawable.devic_earbuds_generic_both)
|
||||
setContentTitle(context.getString(eu.darken.capod.common.R.string.pods_none_label_short))
|
||||
setSubText(context.getString(eu.darken.capod.common.R.string.app_name))
|
||||
setSmallIcon(eu.darken.capod.common.R.drawable.devic_earbuds_generic_both)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user