Skip to content

Commit 0cedaa8

Browse files
committed
Add Storage Access Framework sample
1 parent db6dc1d commit 0cedaa8

File tree

23 files changed

+894
-83
lines changed

23 files changed

+894
-83
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Browse the samples inside each topic samples folder:
2121
- [User-interface](https://github.com/android/platform-samples/tree/main/samples/user-interface)
2222
- More to come...
2323

24-
We regularly add new samples to this repository. You can find a list of all the available samples [here](https://github.com/android/platform-samples/tree/main/samples).
24+
We are constantly adding new samples to this repository. You can find a list of all the available samples [here](https://github.com/android/platform-samples/tree/main/samples).
2525

2626
## How to run
2727

app/src/main/java/com/example/platform/app/SampleDemo.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ import com.example.platform.shared.MinSdkBox
6363
import com.example.platform.storage.mediastore.MediaStoreQuerySample
6464
import com.example.platform.storage.mediastore.SelectedPhotosAccessSample
6565
import com.example.platform.storage.photopicker.PhotoPickerSample
66+
import com.example.platform.storage.storageaccessframework.GetContentSample
6667
import com.example.platform.ui.appwidgets.AppWidgets
6768
import com.example.platform.ui.constraintlayout.AdvancedArrangementFragment
6869
import com.example.platform.ui.constraintlayout.AdvancedChainsFragment
@@ -566,6 +567,14 @@ val SAMPLE_DEMOS by lazy {
566567
apiSurface = StorageApiSurface,
567568
content = { MediaStoreQuerySample() },
568569
),
570+
ComposableSampleDemo(
571+
id = "storageaccessframework-getcontent",
572+
name = "Storage Access Framework - GET_CONTENT",
573+
description = "Open a document using the Storage Access Framework",
574+
documentation = "https://developer.android.com/training/data-storage/shared/documents-files#open-file",
575+
apiSurface = StorageApiSurface,
576+
content = { GetContentSample() },
577+
),
569578
ComposableSampleDemo(
570579
id = "selected-photos-access",
571580
name = "Selected Photos Access",

samples/accessibility/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ android {
4242
dependencies {
4343
implementation(platform(libs.androidx.compose.bom))
4444
implementation(libs.androidx.ui)
45+
implementation(libs.androidx.ui.tooling)
4546
implementation(libs.androidx.ui.tooling.preview)
4647
implementation(libs.androidx.material3)
4748
implementation(libs.androidx.fragment)

samples/privacy/transparency/src/main/java/com/example/platform/privacy/transparency/DataAccess.kt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,10 @@ import androidx.compose.ui.platform.LocalContext
4747
import androidx.compose.ui.platform.LocalLifecycleOwner
4848
import androidx.compose.ui.unit.dp
4949
import androidx.core.app.AppOpsManagerCompat
50-
//import androidx.core.content.getSystemService
5150
import androidx.lifecycle.Lifecycle
5251
import androidx.lifecycle.LifecycleEventObserver
5352
import androidx.lifecycle.LifecycleOwner
54-
//import com.example.platform.base.PermissionBox
5553
import com.example.platform.shared.PermissionBox
56-
//import com.google.android.catalog.framework.annotations.Sample
5754
import com.google.android.gms.location.LocationServices
5855
import com.google.android.gms.location.Priority
5956
import com.google.android.gms.tasks.CancellationTokenSource
@@ -62,13 +59,6 @@ import kotlinx.coroutines.launch
6259
import kotlinx.coroutines.tasks.await
6360

6461
@SuppressLint("MissingPermission")
65-
//@Sample(
66-
// name = "Data Access",
67-
// description = "Demonstrates how to implement data access auditing for your app to identify " +
68-
// "unexpected data access, even from third-party SDKs and libraries.",
69-
// documentation = "https://developer.android.com/guide/topics/data/audit-access",
70-
//)
71-
7262
@RequiresApi(Build.VERSION_CODES.R)
7363
@Composable
7464
fun DataAccessSample() {

samples/privacy/transparency/src/main/java/com/example/platform/privacy/transparency/ScreenshotDetection.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,6 @@ import androidx.fragment.app.Fragment
3939
import java.text.DateFormat
4040
import java.util.Date
4141

42-
//@Sample(
43-
// name = "Screenshot Detection",
44-
// description = "This sample shows how to detect that the user capture the screen in Android 14 onwards",
45-
//)
4642
@RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
4743
class ScreenshotDetectionSample : Fragment() {
4844

samples/storage/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ dependencies {
4343
implementation(platform(libs.androidx.compose.bom))
4444
implementation(libs.androidx.ui)
4545
implementation(libs.androidx.ui.graphics)
46+
implementation(libs.androidx.ui.tooling)
4647
implementation(libs.androidx.ui.tooling.preview)
4748
implementation(libs.androidx.material3)
4849

samples/storage/src/main/java/com/example/platform/storage/StorageSampleActivity.kt

Lines changed: 0 additions & 43 deletions
This file was deleted.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
package com.example.platform.storage.fileprovider
2+

samples/storage/src/main/java/com/example/platform/storage/mediastore/MediaStoreQuery.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,10 @@ import androidx.compose.ui.platform.LocalContext
4545
import androidx.compose.ui.text.style.TextOverflow
4646
import androidx.compose.ui.unit.dp
4747
import coil.compose.AsyncImage
48-
//import com.example.platform.base.PermissionBox
4948
import com.example.platform.shared.PermissionBox
50-
//import com.google.android.catalog.framework.annotations.Sample
5149
import kotlinx.coroutines.Dispatchers
5250
import kotlinx.coroutines.withContext
5351

54-
//@Sample(
55-
// name = "MediaStore - Query",
56-
// description = "Query files indexed by MediaStore",
57-
// documentation = "https://developer.android.com/training/data-storage/shared/media#media_store",
58-
//)
5952
@SuppressLint("MissingPermission")
6053
@Composable
6154
fun MediaStoreQuerySample() {

samples/storage/src/main/java/com/example/platform/storage/mediastore/SelectedPhotosAccess.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,6 @@ import kotlinx.coroutines.Dispatchers
4848
import kotlinx.coroutines.launch
4949
import kotlinx.coroutines.withContext
5050

51-
//@Sample(
52-
// name = "Selected Photos Access",
53-
// description = "Check and request storage permissions",
54-
// documentation = "https://developer.android.com/about/versions/14/changes/partial-photo-video-access",
55-
//)
56-
//@RequiresPermission(anyOf = [READ_MEDIA_IMAGES, READ_MEDIA_VIDEO, READ_EXTERNAL_STORAGE])
5751
@Composable
5852
fun SelectedPhotosAccessSample() {
5953
val context = LocalContext.current

0 commit comments

Comments
 (0)