Bug fixes and cleanup (#405)
This commit is contained in:
parent
4221d299ce
commit
e11759b23f
@ -17,42 +17,42 @@ class OnedriveClientFactory private constructor() {
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
fun createInstance(context: Context, token: String?, sharedPreferencesHandler: SharedPreferencesHandler): GraphServiceClient<Request> {
|
fun createInstance(context: Context, encryptedToken: String, sharedPreferencesHandler: SharedPreferencesHandler): GraphServiceClient<Request> {
|
||||||
val tokenAuthenticationProvider = object : BaseAuthenticationProvider() {
|
val tokenAuthenticationProvider = object : BaseAuthenticationProvider() {
|
||||||
|
val token = CompletableFuture.completedFuture(CredentialCryptor.getInstance(context).decrypt(encryptedToken))
|
||||||
override fun getAuthorizationTokenAsync(requestUrl: URL): CompletableFuture<String> {
|
override fun getAuthorizationTokenAsync(requestUrl: URL): CompletableFuture<String> {
|
||||||
return if (shouldAuthenticateRequestWithUrl(requestUrl)) {
|
return if (shouldAuthenticateRequestWithUrl(requestUrl)) {
|
||||||
val decryptedToken = CredentialCryptor.getInstance(context).decrypt(token)
|
token
|
||||||
CompletableFuture.completedFuture(decryptedToken)
|
|
||||||
} else {
|
} else {
|
||||||
CompletableFuture.completedFuture(null)
|
CompletableFuture.completedFuture(null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val logger = object : ILogger {
|
||||||
|
override fun getLoggingLevel(): LoggerLevel {
|
||||||
|
return if(sharedPreferencesHandler.debugMode()) {
|
||||||
|
LoggerLevel.DEBUG
|
||||||
|
} else {
|
||||||
|
LoggerLevel.ERROR
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun logDebug(message: String) {
|
||||||
|
Timber.tag("OnedriveClientFactory").d(message)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun logError(message: String, throwable: Throwable?) {
|
||||||
|
Timber.tag("OnedriveClientFactory").e(throwable, message)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun setLoggingLevel(level: LoggerLevel) {}
|
||||||
|
}
|
||||||
|
|
||||||
return GraphServiceClient //
|
return GraphServiceClient //
|
||||||
.builder() //
|
.builder() //
|
||||||
.authenticationProvider(tokenAuthenticationProvider) //
|
.authenticationProvider(tokenAuthenticationProvider) //
|
||||||
.logger(object : ILogger {
|
.logger(logger)
|
||||||
override fun getLoggingLevel(): LoggerLevel {
|
|
||||||
return if(sharedPreferencesHandler.debugMode()) {
|
|
||||||
LoggerLevel.DEBUG
|
|
||||||
} else {
|
|
||||||
LoggerLevel.ERROR
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun logDebug(message: String) {
|
|
||||||
Timber.tag("OnedriveClientFactory").d(message)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun logError(message: String, throwable: Throwable?) {
|
|
||||||
Timber.tag("OnedriveClientFactory").e(throwable, message)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun setLoggingLevel(level: LoggerLevel) {
|
|
||||||
TODO("Not yet implemented") // FIXME
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.buildClient()
|
.buildClient()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,6 @@ internal class OnedriveCloudContentRepository(private val cloud: OnedriveCloud,
|
|||||||
|
|
||||||
private fun throwWrongCredentialsExceptionIfRequired(e: Exception) {
|
private fun throwWrongCredentialsExceptionIfRequired(e: Exception) {
|
||||||
if (isAuthenticationError(e)) {
|
if (isAuthenticationError(e)) {
|
||||||
logout(cloud)
|
|
||||||
throw WrongCredentialsException(cloud)
|
throw WrongCredentialsException(cloud)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,6 @@ import org.cryptomator.util.file.LruFileCacheUtil.Companion.retrieveFromLruCache
|
|||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.io.OutputStream
|
import java.io.OutputStream
|
||||||
import java.util.ArrayList
|
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
import java.util.concurrent.CompletableFuture
|
import java.util.concurrent.CompletableFuture
|
||||||
import java.util.concurrent.ExecutionException
|
import java.util.concurrent.ExecutionException
|
||||||
|
@ -219,9 +219,9 @@ class DispatchingCloudContentRepository @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun delegateFor(cloud: Cloud): CloudContentRepository<Cloud, CloudNode, CloudFolder, CloudFile> {
|
private fun delegateFor(cloud: Cloud): CloudContentRepository<Cloud, CloudNode, CloudFolder, CloudFile> {
|
||||||
return delegates.getOrPut(cloud, {
|
return delegates.getOrPut(cloud) {
|
||||||
createCloudContentRepositoryFor(cloud)
|
createCloudContentRepositoryFor(cloud)
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createCloudContentRepositoryFor(cloud: Cloud): CloudContentRepository<Cloud, CloudNode, CloudFolder, CloudFile> {
|
private fun createCloudContentRepositoryFor(cloud: Cloud): CloudContentRepository<Cloud, CloudNode, CloudFolder, CloudFile> {
|
||||||
|
@ -11,7 +11,7 @@ class CryptoCloudModel(cloud: Cloud) : CloudModel(cloud) {
|
|||||||
throw IllegalStateException("Should not be invoked")
|
throw IllegalStateException("Should not be invoked")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun username(): String? {
|
override fun username(): String {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,7 +49,6 @@ import org.cryptomator.presentation.intent.IntentBuilder
|
|||||||
import org.cryptomator.presentation.intent.Intents
|
import org.cryptomator.presentation.intent.Intents
|
||||||
import org.cryptomator.presentation.model.CloudFileModel
|
import org.cryptomator.presentation.model.CloudFileModel
|
||||||
import org.cryptomator.presentation.model.CloudFolderModel
|
import org.cryptomator.presentation.model.CloudFolderModel
|
||||||
import org.cryptomator.presentation.model.CloudModel
|
|
||||||
import org.cryptomator.presentation.model.CloudNodeModel
|
import org.cryptomator.presentation.model.CloudNodeModel
|
||||||
import org.cryptomator.presentation.model.ImagePreviewFilesStore
|
import org.cryptomator.presentation.model.ImagePreviewFilesStore
|
||||||
import org.cryptomator.presentation.model.ProgressModel
|
import org.cryptomator.presentation.model.ProgressModel
|
||||||
@ -224,10 +223,7 @@ class BrowseFilesPresenter @Inject constructor( //
|
|||||||
|
|
||||||
@Callback
|
@Callback
|
||||||
fun getCloudListAfterAuthentication(result: ActivityResult, cloudFolderModel: CloudFolderModel) {
|
fun getCloudListAfterAuthentication(result: ActivityResult, cloudFolderModel: CloudFolderModel) {
|
||||||
val cloudModel = result.getSingleResult(CloudModel::class.java)
|
getCloudList(cloudFolderModel)
|
||||||
cloudFolderModel.toCloudNode().withCloud(cloudModel.toCloud())?.let {
|
|
||||||
getCloudList(cloudFolderModelMapper.toModel(it))
|
|
||||||
} ?: throw FatalBackendException("cloudFolderModel with updated Cloud shouldn't be null")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onCreateFolderPressed(cloudFolder: CloudFolderModel, folderName: String?) {
|
fun onCreateFolderPressed(cloudFolder: CloudFolderModel, folderName: String?) {
|
||||||
@ -245,16 +241,16 @@ class BrowseFilesPresenter @Inject constructor( //
|
|||||||
private fun copyFile(downloadFiles: List<DownloadFile>) {
|
private fun copyFile(downloadFiles: List<DownloadFile>) {
|
||||||
downloadFiles.forEach { downloadFile ->
|
downloadFiles.forEach { downloadFile ->
|
||||||
try {
|
try {
|
||||||
val source = FileInputStream(fileUtil.fileFor(cloudFileModelMapper.toModel(downloadFile.downloadFile)))
|
FileInputStream(fileUtil.fileFor(cloudFileModelMapper.toModel(downloadFile.downloadFile))).use {
|
||||||
|
copyDataUseCase //
|
||||||
copyDataUseCase //
|
.withSource(it) //
|
||||||
.withSource(source) //
|
.andTarget(downloadFile.dataSink) //
|
||||||
.andTarget(downloadFile.dataSink) //
|
.run(object : DefaultResultHandler<Void>() {
|
||||||
.run(object : DefaultResultHandler<Void>() {
|
override fun onFinished() {
|
||||||
override fun onFinished() {
|
view?.showMessage(R.string.screen_file_browser_msg_file_exported)
|
||||||
view?.showMessage(R.string.screen_file_browser_msg_file_exported)
|
}
|
||||||
}
|
})
|
||||||
})
|
}
|
||||||
} catch (e: FileNotFoundException) {
|
} catch (e: FileNotFoundException) {
|
||||||
showError(e)
|
showError(e)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user