Skip to content

Instantly share code, notes, and snippets.

@Xiryl
Xiryl / YourUi.kt
Created February 11, 2023 11:02
driveapimedium-github-2
Button(
onClick = {
startForResult.launch(getGoogleSignInClient(ctx).signInIntent)
},
modifier = Modifier()
) {
Text(text = "Sign in with Google")
}
@Xiryl
Xiryl / Helpers.kt
Created February 11, 2023 12:50
driveapimedium-github-2
fun getGoogleSignInClient(context: Context): GoogleSignInClient {
val signInOptions = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestScopes(Scope(DriveScopes.DRIVE_FILE), Scope(DriveScopes.DRIVE))
.build()
return GoogleSignIn.getClient(context, signInOptions)
}
@Xiryl
Xiryl / DriveInstance.kt
Created February 11, 2023 12:57
driveapimedium-github-3
GoogleSignIn.getLastSignedInAccount(context)?.let { googleAccount ->
// get credentials
val credential = GoogleAccountCredential.usingOAuth2(
context, listOf(DriveScopes.DRIVE, DriveScopes.DRIVE_FILE)
)
credential.selectedAccount = googleAccount.account!!
// get Drive Instance
val drive = Drive
@Xiryl
Xiryl / ViewModel.kt
Last active March 6, 2023 15:56
driveapimedium-github-4
viewModelScope.launch(Dispatchers.IO) {
// Define a Folder
val gFolder = com.google.api.services.drive.model.File()
// Set file name and MIME
gFolder.name = "My Cool Folder Name"
gFolder.mimeType = "application/vnd.google-apps.folder"
// You can also specify where to create the new Google folder
// passing a parent Folder Id
val parents: MutableList<String> = ArrayList(1)
@Xiryl
Xiryl / ViewModel.kt
Created February 11, 2023 13:06
driveapimedium-github-5
for (file in files) {
val gfile = com.google.api.services.drive.model.File()
val fileContent = FileContent("your_mime", file)
gfile.name = file.name
val parents: MutableList<String> = ArrayList(1)
parents.add("folder_id") // Here you need to get the parent folder id
gfile.parents = parents