Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ jobs:
fetch-depth: 0

- name: Validate gradle wrapper checksum
uses: gradle/actions/wrapper-validation@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6.3.0
uses: gradle/actions/wrapper-validation@3f5f9adaf7d9fecd50b5935e54106014257a94e6 # v6.4.0

- name: Set up JDK 21
uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c # v6.0.0
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: 21
Expand Down
1 change: 0 additions & 1 deletion app/src/main/java/com/chiller3/bcr/RecorderThread.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import android.telecom.Call
import android.util.Log
import androidx.core.net.toFile
import androidx.documentfile.provider.DocumentFile
import com.chiller3.bcr.RecorderThread.Companion.BYTES_PER_SAMPLE
import com.chiller3.bcr.extension.deleteIfEmptyDir
import com.chiller3.bcr.extension.listFilesWithPathsRecursively
import com.chiller3.bcr.extension.phoneNumber
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import com.chiller3.bcr.extension.phoneNumber
import com.chiller3.bcr.withContactsByPhoneNumber
import java.time.Instant
import java.time.ZoneId
import java.time.ZonedDateTime

class CallMetadataCollector(
private val context: Context,
Expand Down Expand Up @@ -210,7 +209,7 @@ class CallMetadataCollector(
allowBlockingCalls: Boolean,
): CallMetadata {
val instant = Instant.ofEpochMilli(parentDetails.creationTimeMillis)
val timestamp = ZonedDateTime.ofInstant(instant, ZoneId.systemDefault())
val timestamp = instant.atZone(ZoneId.systemDefault())
val packageName = parentDetails.accountHandle.componentName.packageName

// AOSP's telephony framework has internal documentation that specifies that the call
Expand Down Expand Up @@ -329,4 +328,4 @@ class CallMetadataCollector(
private const val CALL_LOG_QUERY_TIMEOUT_NANOS = 2_000_000_000L
private const val CALL_LOG_QUERY_RETRY_DELAY_MILLIS = 100L
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -288,27 +288,22 @@ class OutputFilenameGenerator(

const val DATE_VAR = "date"

private fun isValidCodePoint(codePoint: Int): Boolean {
if (codePoint in 0x00..0x1f) {
return false
}

return when (codePoint) {
'"'.code,
'*'.code,
'/'.code,
':'.code,
'<'.code,
'>'.code,
'?'.code,
'\\'.code,
'|'.code,
0x7F -> false
else -> !UCharacter.hasBinaryProperty(
codePoint,
UProperty.DEFAULT_IGNORABLE_CODE_POINT,
)
}
private fun isValidCodePoint(codePoint: Int): Boolean = when (codePoint) {
'"'.code,
'*'.code,
'/'.code,
':'.code,
'<'.code,
'>'.code,
'?'.code,
'\\'.code,
'|'.code,
in 0x00..0x1f -> false
0x7F -> false
else -> !UCharacter.hasBinaryProperty(
codePoint,
UProperty.DEFAULT_IGNORABLE_CODE_POINT,
)
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ package com.chiller3.bcr.rule
import android.content.res.Configuration
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
Expand Down Expand Up @@ -61,7 +60,6 @@ fun PickContactGroupScreen(
}
}

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
private fun PickContactGroupContent(
groups: List<ContactGroupInfo>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import android.os.Parcelable
import android.telephony.SubscriptionManager
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
Expand Down Expand Up @@ -66,7 +65,6 @@ sealed interface RecordRuleChoiceResult : Parcelable {
data class InitialState(val initialState: RecordRule.InitialState) : RecordRuleChoiceResult
}

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
fun RecordRuleChoiceDialog(
action: RecordRuleChoiceAction,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ import android.telephony.SubscriptionManager
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
Expand Down Expand Up @@ -169,7 +168,6 @@ fun RecordRuleEditorScreen(
}
}

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
fun RecordRuleEditorContent(
rule: RecordRule,
Expand Down
3 changes: 0 additions & 3 deletions app/src/main/java/com/chiller3/bcr/rule/RecordRulesScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import androidx.compose.animation.core.animateDpAsState
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
import androidx.compose.material3.Surface
import androidx.compose.material3.SwipeToDismissBox
import androidx.compose.material3.Text
Expand Down Expand Up @@ -47,7 +46,6 @@ import com.chiller3.bcr.ui.theme.AppTheme
import sh.calvin.reorderable.ReorderableItem
import sh.calvin.reorderable.rememberReorderableLazyListState

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
fun RecordRulesScreen(
onBack: () -> Unit,
Expand Down Expand Up @@ -112,7 +110,6 @@ fun RecordRulesScreen(
}
}

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
private fun RecordRulesContent(
rules: List<DisplayableRule>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ package com.chiller3.bcr.settings
import android.os.Parcelable
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
Expand Down Expand Up @@ -83,7 +82,6 @@ sealed interface FormatChoiceResult : Parcelable {
}
}

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
fun FormatChoiceDialog(
action: FormatChoiceAction,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import android.net.Uri
import android.provider.DocumentsContract
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
Expand Down Expand Up @@ -99,7 +98,6 @@ fun OutputDirectoryScreen(onBack: () -> Unit) {
}
}

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
private fun OutputDirectoryContent(
outputDir: Uri,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ package com.chiller3.bcr.settings

import android.content.res.Configuration
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
Expand Down Expand Up @@ -92,7 +91,6 @@ fun OutputFormatScreen(onBack: () -> Unit) {
}
}

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
private fun OutputFormatContent(
format: Format,
Expand Down
2 changes: 0 additions & 2 deletions app/src/main/java/com/chiller3/bcr/settings/SettingsScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import android.provider.DocumentsContract
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
Expand Down Expand Up @@ -223,7 +222,6 @@ fun SettingsScreen(viewModel: SettingsViewModel = viewModel()) {
}
}

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
private fun SettingsContent(
callRecording: Boolean,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import com.chiller3.bcr.BuildConfig
import java.lang.invoke.MethodHandles
import java.nio.file.Path
import java.nio.file.Paths
import kotlin.io.path.ExperimentalPathApi
import kotlin.io.path.deleteIfExists
import kotlin.io.path.isRegularFile
import kotlin.io.path.readBytes
Expand Down Expand Up @@ -53,7 +52,6 @@ private fun ByteArray.indexOfSubarray(needle: ByteArray, start: Int = 0): Int {
return -1
}

@OptIn(ExperimentalPathApi::class)
private fun clearPackageManagerCache(appId: String): Boolean {
// The current implementation of the package cache uses PackageImpl.writeToParcel(), which
// serializes the cache entry to the file as a Parcel. The current Parcel implementation stores
Expand Down
5 changes: 0 additions & 5 deletions app/src/main/java/com/chiller3/bcr/ui/Preferences.kt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.foundation.rememberOverscrollEffect
import androidx.compose.foundation.selection.toggleable
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
import androidx.compose.material3.Icon
import androidx.compose.material3.ListItemColors
import androidx.compose.material3.ListItemDefaults
Expand Down Expand Up @@ -53,7 +52,6 @@ import androidx.compose.ui.unit.dp
import com.chiller3.bcr.Preferences
import com.chiller3.bcr.ui.theme.Icons

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
object PreferenceDefaults {
val HorizontalPadding = 16.dp
val SegmentedGap = ListItemDefaults.SegmentedGap
Expand Down Expand Up @@ -158,7 +156,6 @@ fun PreferenceCategory(
}
}

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
fun Preference(
onClick: () -> Unit,
Expand Down Expand Up @@ -210,7 +207,6 @@ private fun PreferenceSwitch(
)
}

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
fun SwitchPreference(
checked: Boolean,
Expand Down Expand Up @@ -256,7 +252,6 @@ fun SwitchPreference(
)
}

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
fun PreferenceGap(
modifier: Modifier = Modifier,
Expand Down
3 changes: 0 additions & 3 deletions app/src/main/java/com/chiller3/bcr/ui/SegmentedList.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,11 @@
package com.chiller3.bcr.ui

import androidx.compose.foundation.shape.CornerBasedShape
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
import androidx.compose.material3.ListItemDefaults
import androidx.compose.material3.ListItemDefaults.shapes
import androidx.compose.material3.ListItemShapes
import androidx.compose.runtime.Composable

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
fun betterSegmentedShapes(
index: Int,
Expand All @@ -39,7 +37,6 @@ fun betterSegmentedShapes(
return ListItemDefaults.segmentedShapes(index, count, defaultShapes)
}

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
object BetterSegmentedShapes {
@Composable
fun top() = betterSegmentedShapes(0, 3)
Expand Down
14 changes: 7 additions & 7 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
[versions]
android-gradle-plugin = "9.4.0"
android-gradle-plugin = "9.4.1"
androidx-activity = "1.13.0"
androidx-compose-bom = "2026.08.00"
androidx-compose-material3 = "1.5.0-alpha27"
androidx-core = "1.19.0"
androidx-compose-bom = "2026.09.00"
androidx-compose-material3 = "1.5.0-beta01"
androidx-core = "1.19.1"
androidx-documentfile = "1.1.0"
androidx-lifecycle-viewmodel-compose = "2.11.0"
androidx-preference = "1.2.1"
jgit = "7.7.1.202607240634-r"
jgit = "7.8.0.202609011348-r"
json = "20260814"
junit = "1.3.0"
kotlin = "2.4.10"
kotlin = "2.4.21"
kotlinx-serialization = "1.11.0"
kudzu = "6.1.2"
libphonenumber = "9.0.38"
libphonenumber = "9.0.41"
material = "1.14.0"
reorderable = "3.1.0"

Expand Down
Loading
Loading