Skip to content

Commit 3f638ab

Browse files
committed
chore: bump libs
1 parent 1002b8b commit 3f638ab

File tree

24 files changed

+328
-409
lines changed

24 files changed

+328
-409
lines changed

composeApp/build.gradle.kts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,11 @@ kotlin {
6666
implementation(libs.compose.constraintlayout)
6767
implementation(libs.bundles.coil)
6868
implementation(libs.qr.code)
69-
implementation(libs.bundles.compose.settings)
69+
implementation(libs.compose.preferences)
7070
implementation(libs.compose.calendar)
71-
implementation(libs.jetlime)
71+
implementation(libs.compose.jetlime)
7272
implementation(libs.bundles.voyager)
7373
implementation(libs.bundles.reveal)
74-
implementation(libs.ptr)
7574
implementation(libs.compose.icons.simpleicons)
7675
implementation(libs.bundles.connectivity)
7776
implementation(libs.sonner)

composeApp/src/androidMain/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
<uses-feature android:name="android.hardware.camera" />
88
<uses-feature android:name="android.hardware.camera.autofocus" android:required="true" />
99
<uses-permission android:name="android.permission.CAMERA" />
10+
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
1011

1112
<!-- Remove unnecessary permissions from Firebase dependency -->
1213
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" tools:node="remove" />
1314
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" tools:node="remove" />
14-
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
1515
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" tools:node="remove" />
1616
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove" />
1717

composeApp/src/androidMain/kotlin/utils/PlatformUtils.android.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ import android.content.ClipboardManager
66
import android.content.ContentValues
77
import android.content.Context
88
import android.content.Intent
9-
import android.net.Uri
109
import android.os.Build
1110
import android.os.Environment
1211
import android.provider.MediaStore
1312
import android.widget.Toast
1413
import androidx.core.content.FileProvider
14+
import androidx.core.net.toUri
1515
import dev.icerock.moko.resources.PluralsResource
1616
import dev.icerock.moko.resources.StringResource
1717
import dev.icerock.moko.resources.format
@@ -29,7 +29,7 @@ actual class PlatformUtils(private var context: Context) {
2929
}
3030

3131
actual fun openURI(uri: String) {
32-
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(uri))
32+
val intent = Intent(Intent.ACTION_VIEW, uri.toUri())
3333
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
3434
context.startActivity(intent)
3535
}
@@ -69,7 +69,7 @@ actual class PlatformUtils(private var context: Context) {
6969
projection,
7070
selection,
7171
selectionArgs,
72-
null
72+
null,
7373
)
7474

7575
if (cursor != null && cursor.count > 0) {
@@ -80,7 +80,7 @@ actual class PlatformUtils(private var context: Context) {
8080
MR.strings.photo_filename_format.resourceId,
8181
fileName.substringBeforeLast("."),
8282
counter,
83-
fileName.substringAfterLast(".")
83+
fileName.substringAfterLast("."),
8484
)
8585
counter++
8686
cursor.moveToPosition(-1)

composeApp/src/commonMain/kotlin/App.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ fun App(onReady: () -> Unit, modifier: Modifier = Modifier) {
4747
),
4848
)
4949
httpConnectivity.start()
50-
val isHttpMonitoring by httpConnectivity.isMonitoring.collectAsState()
5150
val httpStatus by httpConnectivity.statusUpdates.collectAsState(Connectivity.Status.Connected(false))
5251
LaunchedEffect(state.isConnected) {
5352
httpConnectivity.stop()
@@ -69,7 +68,7 @@ fun App(onReady: () -> Unit, modifier: Modifier = Modifier) {
6968
AppStateBanners(
7069
newUpdate = isThereAnUpdate,
7170
noInternet = !state.isConnected && state.isMonitoring,
72-
cantReach = httpStatus !is Connectivity.Status.Connected && isHttpMonitoring,
71+
cantReach = httpStatus !is Connectivity.Status.Connected && httpConnectivity.isMonitoring,
7372
modifier = Modifier.fillMaxWidth(),
7473
)
7574
Navigator(screen = if (preferences.isLoggedIn.get()) HomeScreen else LoginScreen) {

composeApp/src/commonMain/kotlin/presentation/MaterialPullRefreshIndicator.kt

Lines changed: 0 additions & 20 deletions
This file was deleted.

composeApp/src/commonMain/kotlin/presentation/TimeTable.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,9 @@ fun TimeTableLayout(
167167
endHour: LocalTime,
168168
days: ImmutableList<DayOfWeek>,
169169
events: ImmutableList<TimeTableEventData>,
170-
content: @Composable () -> Unit,
171170
modifier: Modifier = Modifier,
172171
hourHeight: Dp = 60.dp,
172+
content: @Composable () -> Unit,
173173
) {
174174
Layout(
175175
modifier = modifier,

composeApp/src/commonMain/kotlin/presentation/WheelPicker.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ fun WheelNumberPicker(
5353
modifier: Modifier = Modifier,
5454
startIndex: Int = 0,
5555
size: DpSize = DpSize(128.dp, 128.dp),
56-
onSelectionChanged: (index: Int) -> Unit = {},
56+
onSelectionChange: (index: Int) -> Unit = {},
5757
backgroundContent: (@Composable (size: DpSize) -> Unit)? = {
5858
WheelPickerDefaults.Background(size = it)
5959
},
@@ -63,7 +63,7 @@ fun WheelNumberPicker(
6363
startIndex = startIndex,
6464
items = items,
6565
size = size,
66-
onSelectionChanged = onSelectionChanged,
66+
onSelectionChange = onSelectionChange,
6767
manualInputType = KeyboardType.Number,
6868
backgroundContent = backgroundContent,
6969
) {
@@ -77,7 +77,7 @@ fun WheelTextPicker(
7777
modifier: Modifier = Modifier,
7878
startIndex: Int = 0,
7979
size: DpSize = DpSize(128.dp, 128.dp),
80-
onSelectionChanged: (index: Int) -> Unit = {},
80+
onSelectionChange: (index: Int) -> Unit = {},
8181
backgroundContent: (@Composable (size: DpSize) -> Unit)? = {
8282
WheelPickerDefaults.Background(size = it)
8383
},
@@ -87,7 +87,7 @@ fun WheelTextPicker(
8787
startIndex = startIndex,
8888
items = items,
8989
size = size,
90-
onSelectionChanged = onSelectionChanged,
90+
onSelectionChange = onSelectionChange,
9191
backgroundContent = backgroundContent,
9292
) {
9393
WheelPickerDefaults.Item(text = it)
@@ -101,7 +101,7 @@ private fun <T> WheelPicker(
101101
modifier: Modifier = Modifier,
102102
startIndex: Int = 0,
103103
size: DpSize = DpSize(128.dp, 128.dp),
104-
onSelectionChanged: (index: Int) -> Unit = {},
104+
onSelectionChange: (index: Int) -> Unit = {},
105105
manualInputType: KeyboardType? = null,
106106
backgroundContent: (@Composable (size: DpSize) -> Unit)? = {
107107
WheelPickerDefaults.Background(size = it)
@@ -114,10 +114,10 @@ private fun <T> WheelPicker(
114114
var internalIndex by remember { mutableIntStateOf(startIndex) }
115115
val internalOnSelectionChanged: (Int) -> Unit = {
116116
internalIndex = it
117-
onSelectionChanged(it)
117+
onSelectionChange(it)
118118
}
119119

120-
LaunchedEffect(lazyListState, onSelectionChanged) {
120+
LaunchedEffect(lazyListState, onSelectionChange) {
121121
snapshotFlow { lazyListState.firstVisibleItemScrollOffset }
122122
.map { calculateSnappedItemIndex(lazyListState) }
123123
.distinctUntilChanged()

composeApp/src/commonMain/kotlin/presentation/theme/Theme.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ package presentation.theme
22

33
import androidx.compose.foundation.isSystemInDarkTheme
44
import androidx.compose.material3.ColorScheme
5-
import androidx.compose.material3.MaterialTheme
5+
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
6+
import androidx.compose.material3.MaterialExpressiveTheme
67
import androidx.compose.material3.darkColorScheme
78
import androidx.compose.material3.lightColorScheme
89
import androidx.compose.runtime.Composable
@@ -89,6 +90,7 @@ private val darkScheme = darkColorScheme(
8990
surfaceContainerHighest = surfaceContainerHighestDark,
9091
)
9192

93+
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
9294
@Composable
9395
fun AppTheme(content: @Composable () -> Unit) {
9496
val preferences = koinInject<BasePreferences>()
@@ -108,7 +110,7 @@ fun AppTheme(content: @Composable () -> Unit) {
108110
DarkMode.Light -> if (materialYou) MaterialYouColorScheme(false) else lightScheme
109111
}
110112

111-
MaterialTheme(
113+
MaterialExpressiveTheme(
112114
colorScheme = colorScheme,
113115
content = content,
114116
)

composeApp/src/commonMain/kotlin/ui/home/HomeScreen.kt

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import androidx.compose.material.icons.rounded.Settings
3636
import androidx.compose.material.icons.rounded.Share
3737
import androidx.compose.material.icons.rounded.Title
3838
import androidx.compose.material3.ExperimentalMaterial3Api
39+
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
3940
import androidx.compose.material3.FilledIconButton
4041
import androidx.compose.material3.HorizontalDivider
4142
import androidx.compose.material3.Icon
@@ -45,6 +46,7 @@ import androidx.compose.material3.MaterialTheme
4546
import androidx.compose.material3.Scaffold
4647
import androidx.compose.material3.Text
4748
import androidx.compose.material3.TopAppBar
49+
import androidx.compose.material3.pulltorefresh.PullToRefreshBox
4850
import androidx.compose.runtime.Composable
4951
import androidx.compose.runtime.CompositionLocalProvider
5052
import androidx.compose.runtime.LaunchedEffect
@@ -86,8 +88,6 @@ import com.svenjacobs.reveal.shapes.balloon.Arrow
8688
import com.svenjacobs.reveal.shapes.balloon.Balloon
8789
import dev.icerock.moko.resources.StringResource
8890
import dev.icerock.moko.resources.compose.stringResource
89-
import dev.materii.pullrefresh.PullRefreshLayout
90-
import dev.materii.pullrefresh.rememberPullRefreshState
9191
import kotlinx.coroutines.Dispatchers
9292
import kotlinx.coroutines.IO
9393
import kotlinx.coroutines.launch
@@ -101,7 +101,6 @@ import org.koin.compose.koinInject
101101
import preferences.BasePreferences
102102
import presentation.BoxButton
103103
import presentation.ErrorScreenContent
104-
import presentation.MaterialPullRefreshIndicator
105104
import presentation.NotificationPromptTrigger
106105
import presentation.Pulsation
107106
import presentation.PulsationType
@@ -129,21 +128,6 @@ object HomeScreen : Screen {
129128
val screenModel = koinScreenModel<HomeScreenModel>()
130129
var isRefreshing by remember { mutableStateOf(false) }
131130
val toasterState = koinInject<ToasterState>()
132-
val ptrState = rememberPullRefreshState(
133-
refreshing = isRefreshing,
134-
onRefresh = {
135-
isRefreshing = true
136-
screenModel.screenModelScope.launch(Dispatchers.IO) {
137-
try {
138-
screenModel.refresh()
139-
} catch (e: Exception) {
140-
if (!e.isNetworkError) FirebaseUtils.reportException(e)
141-
toasterState.show(errorToast(e.stackTraceToString()))
142-
}
143-
isRefreshing = false
144-
}
145-
},
146-
)
147131
LaunchedEffect(Unit) {
148132
screenModel.screenModelScope.launch(Dispatchers.IO) {
149133
try {
@@ -173,12 +157,22 @@ object HomeScreen : Screen {
173157
) { paddingValues ->
174158
val data by screenModel.data.collectAsState()
175159
val nextSchedule by screenModel.nextSchedule.collectAsState()
176-
PullRefreshLayout(
177-
ptrState,
160+
PullToRefreshBox(
161+
isRefreshing = isRefreshing,
162+
onRefresh = {
163+
screenModel.screenModelScope.launch(Dispatchers.IO) {
164+
try {
165+
screenModel.refresh()
166+
} catch (e: Exception) {
167+
if (!e.isNetworkError) FirebaseUtils.reportException(e)
168+
toasterState.show(errorToast(e.stackTraceToString()))
169+
}
170+
isRefreshing = false
171+
}
172+
},
178173
modifier = Modifier
179174
.padding(paddingValues)
180175
.fillMaxSize(),
181-
indicator = { MaterialPullRefreshIndicator(ptrState) },
182176
) {
183177
data.DisplayResult(
184178
onLoading = { HomeScreenContent(null, null) },
@@ -374,6 +368,7 @@ object HomeScreen : Screen {
374368
}
375369
}
376370

371+
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
377372
@Composable
378373
fun ProfileTile(
379374
card: StudentCardModel?,

composeApp/src/commonMain/kotlin/ui/home/accommodation/AccommodationScreen.kt

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import androidx.compose.material3.MaterialTheme
1919
import androidx.compose.material3.Scaffold
2020
import androidx.compose.material3.Text
2121
import androidx.compose.material3.TopAppBar
22+
import androidx.compose.material3.pulltorefresh.PullToRefreshBox
2223
import androidx.compose.runtime.Composable
2324
import androidx.compose.runtime.CompositionLocalProvider
2425
import androidx.compose.runtime.collectAsState
@@ -46,8 +47,6 @@ import com.pushpal.jetlime.JetLimeDefaults
4647
import com.pushpal.jetlime.JetLimeEvent
4748
import com.pushpal.jetlime.JetLimeEventDefaults
4849
import dev.icerock.moko.resources.compose.stringResource
49-
import dev.materii.pullrefresh.PullRefreshLayout
50-
import dev.materii.pullrefresh.rememberPullRefreshState
5150
import kotlinx.collections.immutable.ImmutableList
5251
import kotlinx.coroutines.Dispatchers
5352
import kotlinx.coroutines.IO
@@ -56,7 +55,6 @@ import mehiz.abdallah.progres.domain.models.AccommodationModel
5655
import mehiz.abdallah.progres.i18n.MR
5756
import org.koin.compose.koinInject
5857
import presentation.ErrorScreenContent
59-
import presentation.MaterialPullRefreshIndicator
6058
import presentation.NoDataScreen
6159
import presentation.errorToast
6260
import utils.FirebaseUtils
@@ -74,21 +72,6 @@ object AccommodationScreen : Screen {
7472
val accommodation by screenModel.accommodations.collectAsState()
7573
var isRefreshing by remember { mutableStateOf(false) }
7674
val toasterState = koinInject<ToasterState>()
77-
val ptrState = rememberPullRefreshState(
78-
refreshing = isRefreshing,
79-
onRefresh = {
80-
isRefreshing = true
81-
screenModel.screenModelScope.launch(Dispatchers.IO) {
82-
try {
83-
screenModel.refresh()
84-
} catch (e: Exception) {
85-
if (!e.isNetworkError) FirebaseUtils.reportException(e)
86-
toasterState.show(errorToast(e.message!!))
87-
}
88-
isRefreshing = false
89-
}
90-
},
91-
)
9275
Scaffold(
9376
topBar = {
9477
TopAppBar(
@@ -103,9 +86,20 @@ object AccommodationScreen : Screen {
10386
)
10487
},
10588
) { paddingValues ->
106-
PullRefreshLayout(
107-
ptrState,
108-
indicator = { MaterialPullRefreshIndicator(ptrState) },
89+
PullToRefreshBox(
90+
isRefreshing = isRefreshing,
91+
onRefresh = {
92+
isRefreshing = true
93+
screenModel.screenModelScope.launch(Dispatchers.IO) {
94+
try {
95+
screenModel.refresh()
96+
} catch (e: Exception) {
97+
if (!e.isNetworkError) FirebaseUtils.reportException(e)
98+
toasterState.show(errorToast(e.message!!))
99+
}
100+
isRefreshing = false
101+
}
102+
},
109103
modifier = Modifier.padding(paddingValues),
110104
) {
111105
accommodation.DisplayResult(

0 commit comments

Comments
 (0)