Skip to content
Open
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
14 changes: 12 additions & 2 deletions .github/workflows/on_push_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,19 @@ jobs:
storage-core-remote:
needs: storage-core-local
name: Publish Core Package to Sonatype
secrets: inherit
strategy:
matrix:
package-name:
[
"core",
"core-restful-common"
]
uses: ./.github/workflows/build_and_publish_to_maven_remotely.yml
with:
package-name: :packages:core
package-name: :packages:${{ matrix.package-name }}
destination-repository: snapshot
secrets: inherit


# Build and publish snapshots of all plugins to Sonatype
# this workflow uses local projects
Expand All @@ -58,7 +66,9 @@ jobs:
"plugin-googledrive-gms",
"plugin-googledrive-non-gms",
"plugin-onedrive",
"plugin-onedrive-restful",
"plugin-dropbox",
"plugin-dropbox-restful"
]
uses: ./.github/workflows/build_and_publish_to_maven_remotely.yml
with:
Expand Down
12 changes: 10 additions & 2 deletions .github/workflows/publish_core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,15 @@ jobs:
publish:
name: Publish Core Package
uses: ./.github/workflows/build_and_publish_to_maven_remotely.yml
secrets: inherit
strategy:
matrix:
package-name:
[
"core",
"core-restful-common"
]
with:
package-name: :packages:core
package-name: :packages:${{ matrix.package-name }}
destination-repository: ${{ github.event.inputs.destination-repository }}
secrets: inherit

21 changes: 21 additions & 0 deletions .github/workflows/publish_plugin_dropbox_restful.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Publish Dropbox Plugin

on:
workflow_dispatch:
inputs:
destination-repository:
type: choice
required: true
description: Destination repository
options:
- snapshot
- release

jobs:
publish:
name: Publish Dropbox restful Plugin
uses: ./.github/workflows/build_and_publish_to_maven_remotely.yml
with:
package-name: :packages:plugin-dropbox-restful
destination-repository: ${{ github.event.inputs.destination-repository }}
secrets: inherit
21 changes: 21 additions & 0 deletions .github/workflows/publish_plugin_onedrive_restful.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Publish Onedrive Plugin

on:
workflow_dispatch:
inputs:
destination-repository:
type: choice
required: true
description: Destination repository
options:
- snapshot
- release

jobs:
publish:
name: Publish Onedrive Plugin
uses: ./.github/workflows/build_and_publish_to_maven_remotely.yml
with:
package-name: :packages:plugin-onedrive-restful
destination-repository: ${{ github.event.inputs.destination-repository }}
secrets: inherit
5 changes: 5 additions & 0 deletions apps/storage-sample/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -140,16 +140,21 @@ dependencies {
// Use local implementation instead of dependencies
if (useLocalProjects) {
implementation(project(":packages:core"))
implementation(project(":packages:core-restful-common"))
implementation(project(":packages:plugin-googledrive-gms"))
implementation(project(":packages:plugin-googledrive-non-gms"))
implementation(project(":packages:plugin-onedrive"))
implementation(project(":packages:plugin-onedrive-restful"))
implementation(project(":packages:plugin-dropbox"))
implementation(project(":packages:plugin-dropbox-restful"))
} else {
implementation("com.openmobilehub.android.storage:core:2.0.6-alpha")
implementation("com.openmobilehub.android.storage:plugin-googledrive-gms:2.1.0-alpha")
implementation("com.openmobilehub.android.storage:plugin-googledrive-non-gms:2.1.0-alpha")
implementation("com.openmobilehub.android.storage:plugin-onedrive:2.1.0-alpha")
implementation("com.openmobilehub.android.storage:plugin-dropbox:2.1.0-alpha")
implementation("com.openmobilehub.android.storage:plugin-onedrive-restful:2.1.0-alpha")
implementation("com.openmobilehub.android.storage:plugin-dropbox-restful:2.1.0-alpha")
}

testImplementation(Libs.junit)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,10 @@ class AuthModule {
): OmhAuthClient {
return when (sessionRepository.getStorageAuthProvider()) {
StorageAuthProvider.GOOGLE -> googleAuthClient.get()
StorageAuthProvider.DROPBOX -> dropboxAuthClient.get()
StorageAuthProvider.MICROSOFT -> microsoftAuthClient.get()
StorageAuthProvider.DROPBOX, StorageAuthProvider.DROPBOX_RESTFUL ->
dropboxAuthClient.get()
StorageAuthProvider.MICROSOFT, StorageAuthProvider.MICROSOFT_RESTFUL ->
microsoftAuthClient.get()
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,11 @@ import com.openmobilehub.android.auth.core.OmhAuthClient
import com.openmobilehub.android.storage.core.OmhStorageClient
import com.openmobilehub.android.storage.core.OmhStorageProvider
import com.openmobilehub.android.storage.plugin.dropbox.DropboxOmhStorageFactory
import com.openmobilehub.android.storage.plugin.dropbox.restful.DropboxRestfulOmhStorageClientFactory
import com.openmobilehub.android.storage.plugin.googledrive.gms.GoogleDriveGmsConstants
import com.openmobilehub.android.storage.plugin.googledrive.nongms.GoogleDriveNonGmsConstants
import com.openmobilehub.android.storage.plugin.onedrive.OneDriveOmhStorageFactory
import com.openmobilehub.android.storage.plugin.onedrive.restful.OneDriveRestfulOmhStorageClientFactory
import com.openmobilehub.android.storage.sample.domain.model.StorageAuthProvider
import com.openmobilehub.android.storage.sample.domain.repository.SessionRepository
import dagger.Module
Expand All @@ -37,19 +39,24 @@ import javax.inject.Singleton

@Module
@InstallIn(SingletonComponent::class)
@Suppress("LongParameterList")
class StorageModule {

@Provides
fun providesOmhStorageClient(
@Named("google") googleStorageClient: Provider<OmhStorageClient>,
@Named("dropbox") dropboxStorageClient: Provider<OmhStorageClient>,
@Named("microsoft") microsoftStorageClient: Provider<OmhStorageClient>,
@Named("dropbox_restful") dropboxRestfulStorageClient: Provider<OmhStorageClient>,
@Named("onedrive_restful") microsoftRestfulStorageClient: Provider<OmhStorageClient>,
sessionRepository: SessionRepository
): OmhStorageClient {
return when (sessionRepository.getStorageAuthProvider()) {
StorageAuthProvider.GOOGLE -> googleStorageClient.get()
StorageAuthProvider.DROPBOX -> dropboxStorageClient.get()
StorageAuthProvider.MICROSOFT -> microsoftStorageClient.get()
StorageAuthProvider.DROPBOX_RESTFUL -> dropboxRestfulStorageClient.get()
StorageAuthProvider.MICROSOFT_RESTFUL -> microsoftRestfulStorageClient.get()
}
}

Expand Down Expand Up @@ -81,4 +88,17 @@ class StorageModule {
return OneDriveOmhStorageFactory().getStorageClient(omhAuthClient)
}

@Named("dropbox_restful")
@Provides
@Singleton
fun providesDropboxRestfulOmhStorageClient(omhAuthClient: OmhAuthClient): OmhStorageClient {
return DropboxRestfulOmhStorageClientFactory().getStorageClient(omhAuthClient)
}

@Named("onedrive_restful")
@Provides
@Singleton
fun providesOneDriveRestfulOmhStorageClient(omhAuthClient: OmhAuthClient): OmhStorageClient {
return OneDriveRestfulOmhStorageClientFactory().getStorageClient(omhAuthClient)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,7 @@ package com.openmobilehub.android.storage.sample.domain.model
enum class StorageAuthProvider {
GOOGLE,
DROPBOX,
MICROSOFT
MICROSOFT,
DROPBOX_RESTFUL,
MICROSOFT_RESTFUL
}
Original file line number Diff line number Diff line change
Expand Up @@ -115,15 +115,15 @@ class FileViewerViewModel @Inject constructor(
private val isPermanentlyDeleteSupported: Boolean =
when (storageAuthProvider) {
StorageAuthProvider.GOOGLE -> true
StorageAuthProvider.DROPBOX -> false
StorageAuthProvider.MICROSOFT -> false
StorageAuthProvider.DROPBOX, StorageAuthProvider.DROPBOX_RESTFUL -> false
StorageAuthProvider.MICROSOFT, StorageAuthProvider.MICROSOFT_RESTFUL -> false
}

private val isFolderUpdateSupported: Boolean =
when (storageAuthProvider) {
StorageAuthProvider.GOOGLE -> true
StorageAuthProvider.DROPBOX -> false
StorageAuthProvider.MICROSOFT -> false
StorageAuthProvider.DROPBOX, StorageAuthProvider.DROPBOX_RESTFUL -> false
StorageAuthProvider.MICROSOFT, StorageAuthProvider.MICROSOFT_RESTFUL -> false
}

init {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,37 +104,37 @@ class FileMetadataDialog : BottomSheetDialogFragment() {

header.fileName.text = getString(R.string.file_name, file.name)

fileId.label.text = getString(R.string.file_id, file.id)
fileCreatedTime.label.text =
fileIdLabel.text = getString(R.string.file_id, file.id)
fileCreatedTimeLabel.text =
getString(R.string.file_created_time, file.createdTime?.toRFC3339String())
fileModifiedTime.label.text =
fileModifiedTimeLabel.text =
getString(R.string.file_modified_time, file.modifiedTime?.toRFC3339String())
fileParentId.label.text = getString(R.string.file_parent_id, file.parentId)
fileMimeType.label.text = getString(R.string.file_mime_type, mimeType)
fileExtension.label.text = getString(R.string.file_extension, extension)
fileSize.label.text = getString(R.string.file_size, size.toString())
fileParentIdLabel.text = getString(R.string.file_parent_id, file.parentId)
fileMimeTypeLabel.text = getString(R.string.file_mime_type, mimeType)
fileExtensionLabel.text = getString(R.string.file_extension, extension)
fileSizeLabel.text = getString(R.string.file_size, size.toString())

if (file.isFolder()) {
fileMimeType.label.visibility = View.GONE
fileExtension.label.visibility = View.GONE
fileSize.label.visibility = View.GONE
fileMimeTypeLabel.visibility = View.GONE
fileExtensionLabel.visibility = View.GONE
fileSizeLabel.visibility = View.GONE
}

when (originalMetadata) {
is GoogleDriveFile -> { // Google Drive GMS
extraMetadata.label.text = originalMetadata.toString()
extraMetadata.text = originalMetadata.toString()
}

is String -> { // Google Drive Non-GMS
extraMetadata.label.text = originalMetadata
extraMetadata.text = originalMetadata
}

is DriveItem -> { // OneDrive
extraMetadata.label.text = originalMetadata.serializeToString()
extraMetadata.text = originalMetadata.serializeToString()
}

is Metadata -> { // Dropbox
extraMetadata.label.text = originalMetadata.toString()
extraMetadata.text = originalMetadata.toString()
}
}
}
Expand All @@ -161,4 +161,3 @@ class FileMetadataDialog : BottomSheetDialogFragment() {
}
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,15 @@ class FilePermissionsViewModel @Inject constructor(
private val isDeletingInheritedPermissionsSupported: Boolean =
when (storageAuthProvider) {
StorageAuthProvider.GOOGLE -> true
StorageAuthProvider.DROPBOX -> true
StorageAuthProvider.MICROSOFT -> false
StorageAuthProvider.DROPBOX, StorageAuthProvider.DROPBOX_RESTFUL -> true
StorageAuthProvider.MICROSOFT, StorageAuthProvider.MICROSOFT_RESTFUL -> false
}

@StringRes val permissionCaveats: Int? =
when (storageAuthProvider) {
StorageAuthProvider.GOOGLE -> null
StorageAuthProvider.DROPBOX -> R.string.permission_caveats_dropbox
StorageAuthProvider.MICROSOFT -> null
StorageAuthProvider.DROPBOX, StorageAuthProvider.DROPBOX_RESTFUL -> R.string.permission_caveats_dropbox
StorageAuthProvider.MICROSOFT, StorageAuthProvider.MICROSOFT_RESTFUL -> null
}

fun getPermissions(file: OmhStorageEntity) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,11 @@ class CreatePermissionViewModel @Inject constructor(
val roles = OmhPermissionRole.values().filter { it != OmhPermissionRole.OWNER }.toTypedArray()
var disabledRoles: Set<OmhPermissionRole> = when (storageAuthProvider) {
StorageAuthProvider.GOOGLE -> emptySet()
StorageAuthProvider.DROPBOX -> setOf(
StorageAuthProvider.DROPBOX, StorageAuthProvider.DROPBOX_RESTFUL -> setOf(
OmhPermissionRole.READER
)

StorageAuthProvider.MICROSOFT -> setOf(
StorageAuthProvider.MICROSOFT, StorageAuthProvider.MICROSOFT_RESTFUL -> setOf(
OmhPermissionRole.COMMENTER
)
}
Expand All @@ -61,8 +61,10 @@ class CreatePermissionViewModel @Inject constructor(
MutableStateFlow(
when (storageAuthProvider) {
StorageAuthProvider.GOOGLE -> OmhPermissionRole.READER
StorageAuthProvider.DROPBOX -> OmhPermissionRole.COMMENTER
StorageAuthProvider.MICROSOFT -> OmhPermissionRole.READER
StorageAuthProvider.DROPBOX, StorageAuthProvider.DROPBOX_RESTFUL
-> OmhPermissionRole.COMMENTER
StorageAuthProvider.MICROSOFT, StorageAuthProvider.MICROSOFT_RESTFUL
-> OmhPermissionRole.READER
}
)
val role: StateFlow<OmhPermissionRole> = _role
Expand All @@ -78,13 +80,13 @@ class CreatePermissionViewModel @Inject constructor(
val types = PermissionType.values()
val disabledTypes: Set<PermissionType> = when (storageAuthProvider) {
StorageAuthProvider.GOOGLE -> emptySet()
StorageAuthProvider.DROPBOX -> setOf(
StorageAuthProvider.DROPBOX, StorageAuthProvider.DROPBOX_RESTFUL -> setOf(
PermissionType.ANYONE,
PermissionType.DOMAIN,
PermissionType.GROUP,
)

StorageAuthProvider.MICROSOFT -> setOf(
StorageAuthProvider.MICROSOFT, StorageAuthProvider.MICROSOFT_RESTFUL -> setOf(
PermissionType.ANYONE,
PermissionType.DOMAIN
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,17 @@ class EditPermissionViewModel @Inject constructor(
val roles = OmhPermissionRole.values().filter { it != OmhPermissionRole.OWNER }.toTypedArray()
var role: OmhPermissionRole = when (storageAuthProvider) {
StorageAuthProvider.GOOGLE -> OmhPermissionRole.READER
StorageAuthProvider.DROPBOX -> OmhPermissionRole.COMMENTER
StorageAuthProvider.MICROSOFT -> OmhPermissionRole.READER
StorageAuthProvider.DROPBOX, StorageAuthProvider.DROPBOX_RESTFUL
-> OmhPermissionRole.COMMENTER
StorageAuthProvider.MICROSOFT, StorageAuthProvider.MICROSOFT_RESTFUL
-> OmhPermissionRole.READER
}
val disabledRoles: Set<OmhPermissionRole> = when (storageAuthProvider) {
StorageAuthProvider.GOOGLE -> emptySet()
StorageAuthProvider.DROPBOX -> setOf(
StorageAuthProvider.DROPBOX, StorageAuthProvider.DROPBOX_RESTFUL -> setOf(
OmhPermissionRole.READER
)

StorageAuthProvider.MICROSOFT -> setOf(
StorageAuthProvider.MICROSOFT, StorageAuthProvider.MICROSOFT_RESTFUL -> setOf(
OmhPermissionRole.COMMENTER
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,21 @@ class LoginFragment : BaseFragment<LoginViewModel, LoginViewState, LoginViewEven
): View {
binding = FragmentLoginBinding.inflate(layoutInflater)

binding.btnLoginGoogle.setOnClickListener { dispatchEvent(LoginViewEvent.LoginWithGoogleClicked) }
binding.btnLoginDropbox.setOnClickListener { dispatchEvent(LoginViewEvent.LoginWithDropboxClicked) }
binding.btnLoginMicrosoft.setOnClickListener { dispatchEvent(LoginViewEvent.LoginWithMicrosoftClicked) }
binding.btnLoginGoogle.setOnClickListener {
dispatchEvent(LoginViewEvent.LoginWithGoogleClicked)
}
binding.btnLoginDropbox.setOnClickListener {
dispatchEvent(LoginViewEvent.LoginWithDropboxClicked)
}
binding.btnLoginMicrosoft.setOnClickListener {
dispatchEvent(LoginViewEvent.LoginWithMicrosoftClicked)
}
binding.btnLoginDropboxRestful.setOnClickListener {
dispatchEvent(LoginViewEvent.LoginWithDropboxRestfulClicked)
}
binding.btnLoginMicrosoftRestful.setOnClickListener {
dispatchEvent(LoginViewEvent.LoginWithMicrosoftRestfulClicked)
}

return binding.root
}
Expand Down
Loading
Loading