Skip to content

Commit bd96d6a

Browse files
Add options to gallery activity intent
1 parent ee3f2a9 commit bd96d6a

File tree

15 files changed

+243
-48
lines changed

15 files changed

+243
-48
lines changed

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
![Compose gallery picker](logo.svg)
22

33
<p align="start">
4-
<a href="https://github.com/nabla-run/Compose-gallery-picker/blob/main/LICENSE"><img alt="license" src="https://img.shields.io/github/license/nabla-run/Compose-gallery-picker"/></a>
4+
<a href="https://central.sonatype.com/artifact/run.nabla/gallery-picker"><img alt="maven" src="https://img.shields.io/maven-central/v/run.nabla/gallery-picker"/></a>
5+
<a href="https://github.com/nabla-run/Compose-gallery-picker"><img alt="kotlin" src="https://img.shields.io/badge/Kotlin-100%25-brightgreen"/></a>
56
<a href="https://developer.android.com/about/versions/nougat/android-7.0"><img alt="API" src="https://img.shields.io/badge/API-24%2B-brightgreen.svg?style=flat"/></a>
7+
<a href="https://github.com/nabla-run/Compose-gallery-picker/blob/main/LICENSE"><img alt="license" src="https://img.shields.io/github/license/nabla-run/Compose-gallery-picker"/></a>
68
</p>
79

810
Compose-gallery-picker is a library for Android Jetpack Compose that provides a gallery and an image
@@ -19,7 +21,7 @@ repositories {
1921
```
2022

2123
```kotlin
22-
implementation("run.nabla:gallery-picker:1.0.0")
24+
implementation("run.nabla:gallery-picker:1.1.0")
2325
```
2426

2527
## Screenshots
@@ -68,7 +70,7 @@ SideEffect {
6870
.setTitleSize(25)
6971
.setBackgroundColor(Color.White.value.toLong())
7072
.setTitleColor(Color.Black.value.toLong())
71-
.setShowBackButton(false)
73+
.showExitAction(false)
7274
.build()
7375
)
7476
}

app/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ dependencies {
5151
implementation(project(":gallery-picker"))
5252
implementation("androidx.activity:activity-compose:1.7.2")
5353
implementation("androidx.compose.material:material:1.4.3")
54+
implementation("androidx.core:core-splashscreen:1.0.1")
5455
implementation("androidx.compose.ui:ui")
5556
implementation("androidx.navigation:navigation-compose:2.6.0")
5657
implementation("androidx.compose.ui:ui-tooling-preview")

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
android:label="@string/app_name"
1212
android:roundIcon="@mipmap/ic_launcher_round"
1313
android:supportsRtl="true"
14-
android:theme="@style/Theme.GalleryPicker"
14+
android:theme="@style/Theme.App.SplashScreen"
1515
tools:targetApi="31">
1616
<activity
1717
android:name=".example.MainActivity"

app/src/main/kotlin/run/nabla/gallerypicker/example/ExampleScreen.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,30 @@ package run.nabla.gallerypicker.example
22

33
import androidx.activity.compose.rememberLauncherForActivityResult
44
import androidx.compose.runtime.Composable
5-
import androidx.compose.runtime.SideEffect
5+
import androidx.compose.runtime.LaunchedEffect
66
import androidx.compose.ui.graphics.Color
77
import run.nabla.gallerypicker.picker.result.GalleryContract
88
import run.nabla.gallerypicker.picker.result.GalleryRequest
99

1010
@Composable
11-
fun ExampleScreen() {
11+
fun GalleryIntentScreen() {
1212
val pickPhotoLauncher = rememberLauncherForActivityResult(
1313
contract = GalleryContract(),
1414
onResult = { uri ->
1515

1616
}
1717
)
1818

19-
SideEffect {
19+
LaunchedEffect(Unit) {
2020
pickPhotoLauncher.launch(
2121
GalleryRequest.Builder()
2222
.setTitle("Pick one")
2323
.setTitleSize(25)
2424
.setBackgroundColor(Color.White.value.toLong())
2525
.setTitleColor(Color.Black.value.toLong())
26-
.setShowBackButton(false)
26+
.showExitAction(false)
27+
.setItemsRoundedCornerSize(5)
28+
.setGridColumns(3)
2729
.build()
2830
)
2931
}

app/src/main/kotlin/run/nabla/gallerypicker/example/MainActivity.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class MainActivity : ComponentActivity() {
2222
val permission = Manifest.permission.READ_EXTERNAL_STORAGE
2323
val permissionGranted =
2424
ContextCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED
25-
val startDestination = if (permissionGranted) EXAMPLE_SCREEN else PERMISSION_SCREEN
25+
val startDestination = if (permissionGranted) GALLERY_INTENT_SCREEN else PERMISSION_SCREEN
2626

2727
setContent {
2828
val navController = rememberNavController()
@@ -33,7 +33,7 @@ class MainActivity : ComponentActivity() {
3333
permissionScreen(
3434
onPermissionGranted = {
3535
// navController.navigate(GALLERY_SCREEN) // Gallery as compose screen
36-
navController.navigate(EXAMPLE_SCREEN) // Gallery as Activity launch intent
36+
navController.navigate(GALLERY_INTENT_SCREEN) // Gallery as Activity launch intent
3737
}
3838
)
3939
galleryPicker(
@@ -44,7 +44,7 @@ class MainActivity : ComponentActivity() {
4444
imageEditor(
4545
onBackClick = navController::navigateUp
4646
)
47-
exampleScreen()
47+
galleryIntentScreen()
4848
}
4949
}
5050
}

app/src/main/kotlin/run/nabla/gallerypicker/example/Navigation.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import run.nabla.gallerypicker.templates.rememberTemplateState
1919
const val PERMISSION_SCREEN = "permission-screen"
2020
const val GALLERY_SCREEN = "gallery-screen"
2121
const val IMAGE_EDITOR_SCREEN = "image-editor"
22-
const val EXAMPLE_SCREEN = "example-screen"
22+
const val GALLERY_INTENT_SCREEN = "gallery-intent-screen"
2323

2424
fun NavGraphBuilder.permissionScreen(
2525
onPermissionGranted: () -> Unit
@@ -82,11 +82,11 @@ fun NavGraphBuilder.imageEditor(
8282
}
8383
}
8484

85-
fun NavGraphBuilder.exampleScreen(
85+
fun NavGraphBuilder.galleryIntentScreen(
8686
) {
8787
composable(
88-
route = EXAMPLE_SCREEN
88+
route = GALLERY_INTENT_SCREEN
8989
) {
90-
ExampleScreen()
90+
GalleryIntentScreen()
9191
}
9292
}

app/src/main/res/values/themes.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,15 @@
44
<item name="android:windowLightStatusBar">false</item>
55
<item name="android:windowLightNavigationBar" tools:targetApi="27">false</item>
66
</style>
7+
<!-- SplashScreen -->
8+
<style name="Theme.App.SplashScreen" parent="Theme.SplashScreen">
9+
<item name="android:windowLightStatusBar">true</item>
10+
<item name="android:windowLightNavigationBar" tools:targetApi="27">true</item>
11+
<item name="windowSplashScreenAnimationDuration">2500</item>
12+
<item name="postSplashScreenTheme">@style/Theme.GalleryPicker</item>
13+
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_default_photo</item>
14+
<item name="windowSplashScreenBackground">@color/white</item>
15+
<item name="android:windowSplashScreenBehavior" tools:targetApi="33">icon_preferred
16+
</item>
17+
</style>
718
</resources>

gallery-picker/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ publishing {
5050
register<MavenPublication>("release") {
5151
groupId = "run.nabla"
5252
artifactId = "gallery-picker"
53-
version = "1.0.0"
53+
version = "1.1.0"
5454
afterEvaluate {
5555
from(components["release"])
5656
}

gallery-picker/src/main/AndroidManifest.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
66

77
<application>
8-
<activity android:name="run.nabla.gallerypicker.picker.GalleryPickerActivity" />
8+
<activity
9+
android:name="run.nabla.gallerypicker.picker.GalleryPickerActivity"
10+
android:exported="true"
11+
android:screenOrientation="nosensor"
12+
android:theme="@android:style/Theme.Material.NoActionBar"
13+
android:windowSoftInputMode="adjustResize" />
914
</application>
1015
</manifest>

gallery-picker/src/main/kotlin/run/nabla/gallerypicker/picker/GalleryHeader.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import androidx.compose.material.Text
99
import androidx.compose.material.icons.Icons
1010
import androidx.compose.material.icons.filled.Close
1111
import androidx.compose.runtime.Composable
12+
import androidx.compose.ui.Alignment
1213
import androidx.compose.ui.Modifier
1314
import androidx.compose.ui.graphics.Color
1415
import androidx.compose.ui.graphics.vector.ImageVector
@@ -18,6 +19,8 @@ import androidx.compose.ui.unit.sp
1819

1920
const val DEFAULT_HEADER_TITLE = "PICK A PHOTO"
2021
const val DEFAULT_HEADER_TITLE_SIZE = 25
22+
const val DEFAULT_HEADER_PADDING_VERTICAL = 15
23+
const val DEFAULT_HEADER_PADDING_HORIZONTAL = 0
2124

2225
@Composable
2326
fun GalleryHeader(
@@ -26,13 +29,16 @@ fun GalleryHeader(
2629
titleSize: Int = DEFAULT_HEADER_TITLE_SIZE,
2730
titleColor: Long = Color.White.value.toLong(),
2831
actionIcon: ImageVector = Icons.Default.Close,
32+
paddingVertical: Int = DEFAULT_HEADER_PADDING_VERTICAL,
33+
paddingHorizontal: Int = DEFAULT_HEADER_PADDING_HORIZONTAL,
2934
onLeftActionClick: (() -> Unit)? = null
3035
) {
3136
if (title.isEmpty()) return
3237
Row(
3338
modifier = modifier
3439
.fillMaxWidth()
35-
.padding(vertical = 20.dp)
40+
.padding(vertical = paddingVertical.dp, horizontal = paddingHorizontal.dp),
41+
verticalAlignment = Alignment.CenterVertically
3642
) {
3743
Text(
3844
modifier = Modifier.weight(1f),

0 commit comments

Comments
 (0)