diff --git a/app/src/foss/java/eu/darken/capod/common/upgrade/core/UpgradeControlFoss.kt b/app/src/foss/java/eu/darken/capod/common/upgrade/core/UpgradeControlFoss.kt index acccd464..7d666378 100644 --- a/app/src/foss/java/eu/darken/capod/common/upgrade/core/UpgradeControlFoss.kt +++ b/app/src/foss/java/eu/darken/capod/common/upgrade/core/UpgradeControlFoss.kt @@ -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" } \ No newline at end of file diff --git a/app/src/main/java/eu/darken/capod/common/ClipboardHelper.kt b/app/src/main/java/eu/darken/capod/common/ClipboardHelper.kt index 4f5902de..dac41740 100644 --- a/app/src/main/java/eu/darken/capod/common/ClipboardHelper.kt +++ b/app/src/main/java/eu/darken/capod/common/ClipboardHelper.kt @@ -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) } diff --git a/app/src/main/java/eu/darken/capod/common/debug/recording/core/RecorderService.kt b/app/src/main/java/eu/darken/capod/common/debug/recording/core/RecorderService.kt index 5825287a..087101d3 100644 --- a/app/src/main/java/eu/darken/capod/common/debug/recording/core/RecorderService.kt +++ b/app/src/main/java/eu/darken/capod/common/debug/recording/core/RecorderService.kt @@ -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()) diff --git a/app/src/main/java/eu/darken/capod/main/ui/overview/OverviewFragment.kt b/app/src/main/java/eu/darken/capod/main/ui/overview/OverviewFragment.kt index 0f699947..3b2df596 100644 --- a/app/src/main/java/eu/darken/capod/main/ui/overview/OverviewFragment.kt +++ b/app/src/main/java/eu/darken/capod/main/ui/overview/OverviewFragment.kt @@ -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 { diff --git a/app/src/main/java/eu/darken/capod/main/ui/overview/cards/pods/DualPodsCardVH.kt b/app/src/main/java/eu/darken/capod/main/ui/overview/cards/pods/DualPodsCardVH.kt index 9883c2d3..7ee3d1d8 100644 --- a/app/src/main/java/eu/darken/capod/main/ui/overview/cards/pods/DualPodsCardVH.kt +++ b/app/src/main/java/eu/darken/capod/main/ui/overview/cards/pods/DualPodsCardVH.kt @@ -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) diff --git a/app/src/main/java/eu/darken/capod/main/ui/overview/cards/pods/PodDeviceVH.kt b/app/src/main/java/eu/darken/capod/main/ui/overview/cards/pods/PodDeviceVH.kt index 7c741017..c0844710 100644 --- a/app/src/main/java/eu/darken/capod/main/ui/overview/cards/pods/PodDeviceVH.kt +++ b/app/src/main/java/eu/darken/capod/main/ui/overview/cards/pods/PodDeviceVH.kt @@ -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( 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 { diff --git a/app/src/main/java/eu/darken/capod/main/ui/overview/cards/pods/UnknownPodDeviceCardVH.kt b/app/src/main/java/eu/darken/capod/main/ui/overview/cards/pods/UnknownPodDeviceCardVH.kt index 90912734..582a9ee4 100644 --- a/app/src/main/java/eu/darken/capod/main/ui/overview/cards/pods/UnknownPodDeviceCardVH.kt +++ b/app/src/main/java/eu/darken/capod/main/ui/overview/cards/pods/UnknownPodDeviceCardVH.kt @@ -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") diff --git a/app/src/main/java/eu/darken/capod/main/ui/widget/WidgetProvider.kt b/app/src/main/java/eu/darken/capod/main/ui/widget/WidgetProvider.kt index c7f31fd4..ace9f44a 100644 --- a/app/src/main/java/eu/darken/capod/main/ui/widget/WidgetProvider.kt +++ b/app/src/main/java/eu/darken/capod/main/ui/widget/WidgetProvider.kt @@ -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( diff --git a/app/src/main/java/eu/darken/capod/monitor/ui/MonitorNotifications.kt b/app/src/main/java/eu/darken/capod/monitor/ui/MonitorNotifications.kt index 39120327..0b6fc856 100644 --- a/app/src/main/java/eu/darken/capod/monitor/ui/MonitorNotifications.kt +++ b/app/src/main/java/eu/darken/capod/monitor/ui/MonitorNotifications.kt @@ -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) } } diff --git a/gradle.properties b/gradle.properties index b301f0d2..cfc84bba 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,6 +18,6 @@ android.useAndroidX=true # Kotlin code style for this project: "official" or "obsolete": kotlin.code.style=official android.defaults.buildfeatures.buildconfig=true -android.nonTransitiveRClass=false +android.nonTransitiveRClass=true android.nonFinalResIds=false org.gradle.unsafe.configuration-cache=false \ No newline at end of file