Browse Source

wip

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
tobiasKaminsky 4 years ago
parent
commit
1136aa3748

+ 1 - 1
build.gradle

@@ -64,7 +64,7 @@ ext {
 	daggerVersion = "2.39.1"
     markwonVersion =  "4.6.2"
     prismVersion = "2.0.0"
-    androidLibraryVersion = "master-SNAPSHOT"
+    androidLibraryVersion = "searchProviders-SNAPSHOT"
     mockitoVersion = "3.12.4"
     mockkVersion = "1.10.4"
     powermockVersion = "2.0.9"

+ 1 - 1
settings.gradle

@@ -1,3 +1,3 @@
 rootProject.name = 'Nextcloud'
 
-include ':nextcloud-android-library'
+include ':'

+ 0 - 7
src/main/java/com/nextcloud/client/di/ComponentsModule.java

@@ -78,7 +78,6 @@ import com.owncloud.android.ui.fragment.FileDetailSharingFragment;
 import com.owncloud.android.ui.fragment.GalleryFragment;
 import com.owncloud.android.ui.fragment.LocalFileListFragment;
 import com.owncloud.android.ui.fragment.OCFileListFragment;
-import com.owncloud.android.ui.fragment.PhotoFragment;
 import com.owncloud.android.ui.fragment.UnifiedSearchFragment;
 import com.owncloud.android.ui.fragment.contactsbackup.BackupFragment;
 import com.owncloud.android.ui.fragment.contactsbackup.BackupListFragment;
@@ -180,15 +179,9 @@ abstract class ComponentsModule {
     @ContributesAndroidInjector abstract PreviewTextFileFragment previewTextFileFragment();
     @ContributesAndroidInjector abstract PreviewTextStringFragment previewTextStringFragment();
 
-    @ContributesAndroidInjector
-    abstract PhotoFragment photoFragment();
-
     @ContributesAndroidInjector
     abstract UnifiedSearchFragment searchFragment();
 
-    @ContributesAndroidInjector
-    abstract PreviewTextStringFragment previewTextStringFragment();
-
     @ContributesAndroidInjector
     abstract GalleryFragment photoFragment();
 

+ 0 - 1
src/main/java/com/nextcloud/client/di/ViewModelModule.kt

@@ -23,7 +23,6 @@ import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import com.nextcloud.client.etm.EtmViewModel
 import com.nextcloud.client.logger.ui.LogsViewModel
-import com.owncloud.android.ui.activities.ActivitiesViewModel
 import com.owncloud.android.ui.unifiedsearch.UnifiedSearchViewModel
 import dagger.Binds
 import dagger.Module

+ 1 - 0
src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java

@@ -56,6 +56,7 @@ import com.bumptech.glide.load.resource.file.FileToStreamDecoder;
 import com.caverock.androidsvg.SVG;
 import com.nextcloud.client.account.CurrentAccountProvider;
 import com.nextcloud.client.network.ClientFactory;
+import com.nextcloud.common.NextcloudClient;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.databinding.ActivityListItemBinding;

+ 67 - 0
src/main/java/com/owncloud/android/ui/asynctasks/GetRemoteFileTask.kt

@@ -0,0 +1,67 @@
+/*
+ * Nextcloud Android client application
+ *
+ * @author Chris Narkiewicz
+ * Copyright (C) 2020 Chris Narkiewicz <hello@ezaquarii.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.owncloud.android.ui.asynctasks
+
+import android.content.Context
+import com.nextcloud.client.account.User
+import com.owncloud.android.datamodel.FileDataStorageManager
+import com.owncloud.android.datamodel.OCFile
+import com.owncloud.android.lib.common.OwnCloudClient
+import com.owncloud.android.lib.common.operations.RemoteOperation
+import com.owncloud.android.lib.resources.files.ReadFileRemoteOperation
+import com.owncloud.android.lib.resources.files.model.RemoteFile
+import com.owncloud.android.operations.RefreshFolderOperation
+import com.owncloud.android.utils.FileStorageUtils
+
+class GetRemoteFileTask(
+    private val context: Context,
+    private val fileUrl: String,
+    private val client: OwnCloudClient,
+    private val storageManager: FileDataStorageManager,
+    private val user: User
+) : () -> GetRemoteFileTask.Result {
+
+    data class Result(val success: Boolean = false, val file: OCFile = OCFile("/"))
+
+    override fun invoke(): Result {
+        val result = ReadFileRemoteOperation(fileUrl).execute(client)
+        if (result.isSuccess) {
+            val remoteFile = result.getData().get(0) as RemoteFile
+            val temp = FileStorageUtils.fillOCFile(remoteFile)
+            val remoteOcFile = storageManager.saveFileWithParent(temp, context)
+            if (remoteOcFile.isFolder()) {
+                // perform folder synchronization
+                val synchFolderOp: RemoteOperation = RefreshFolderOperation(
+                    remoteOcFile,
+                    System.currentTimeMillis(),
+                    false,
+                    true,
+                    storageManager,
+                    user.toPlatformAccount(),
+                    context
+                )
+                synchFolderOp.execute(client)
+            }
+            return Result(true, remoteOcFile)
+        } else {
+            return Result(false, OCFile(""))
+        }
+    }
+}

+ 1 - 1
src/main/java/com/owncloud/android/ui/fragment/UnifiedSearchFragment.kt

@@ -37,9 +37,9 @@ import com.owncloud.android.databinding.ListFragmentBinding
 import com.owncloud.android.datamodel.FileDataStorageManager
 import com.owncloud.android.lib.common.SearchResult
 import com.owncloud.android.lib.common.SearchResultEntry
-import com.owncloud.android.ui.activities.GetRemoteFileTask
 import com.owncloud.android.ui.activity.FileDisplayActivity
 import com.owncloud.android.ui.adapter.UnifiedSearchListAdapter
+import com.owncloud.android.ui.asynctasks.GetRemoteFileTask
 import com.owncloud.android.ui.interfaces.UnifiedSearchListInterface
 import com.owncloud.android.ui.unifiedsearch.UnifiedSearchViewModel
 import javax.inject.Inject

+ 1 - 1
src/main/java/com/owncloud/android/ui/unifiedsearch/UnifiedSearchViewModel.kt

@@ -31,7 +31,7 @@ import com.owncloud.android.R
 import com.owncloud.android.datamodel.FileDataStorageManager
 import com.owncloud.android.lib.common.SearchResult
 import com.owncloud.android.lib.common.utils.Log_OC
-import com.owncloud.android.ui.activities.GetRemoteFileTask
+import com.owncloud.android.ui.asynctasks.GetRemoteFileTask
 import javax.inject.Inject
 
 @Suppress("LongParameterList")

+ 2 - 3
src/main/java/com/owncloud/android/utils/glide/HttpStreamFetcher.kt

@@ -24,7 +24,7 @@ package com.owncloud.android.utils.glide
 
 import com.bumptech.glide.Priority
 import com.bumptech.glide.load.data.DataFetcher
-import com.nextcloud.client.account.CurrentAccountProvider
+import com.nextcloud.client.account.User
 import com.nextcloud.client.network.ClientFactory
 import com.owncloud.android.lib.common.operations.RemoteOperation
 import com.owncloud.android.lib.common.utils.Log_OC
@@ -39,13 +39,12 @@ import java.io.InputStream
  */
 @Suppress("TooGenericExceptionCaught")
 class HttpStreamFetcher internal constructor(
-    private val currentAccount: CurrentAccountProvider,
+    private val user: User,
     private val clientFactory: ClientFactory,
     private val url: String
 ) : DataFetcher<InputStream?> {
     @Throws(Exception::class)
     override fun loadData(priority: Priority): InputStream? {
-        val user = currentAccount.user
         val client = clientFactory.create(user)
         if (client != null) {
             var get: GetMethod? = null