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