Browse Source

Fixed errors while running.

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
A117870935 2 years ago
parent
commit
3db2c7db04

+ 15 - 1
app/src/main/java/com/nextcloud/ui/fileactions/FileActionsBottomSheet.kt

@@ -43,13 +43,16 @@ import androidx.lifecycle.ViewModelProvider
 import com.google.android.material.bottomsheet.BottomSheetDialogFragment
 import com.nextcloud.android.common.ui.theme.utils.ColorRole
 import com.nextcloud.client.account.CurrentAccountProvider
+import com.nextcloud.client.core.Clock
 import com.nextcloud.client.di.Injectable
 import com.nextcloud.client.di.ViewModelFactory
+import com.nextcloud.client.preferences.AppPreferences
 import com.owncloud.android.R
 import com.owncloud.android.databinding.FileActionsBottomSheetBinding
 import com.owncloud.android.databinding.FileActionsBottomSheetItemBinding
 import com.owncloud.android.datamodel.FileDataStorageManager
 import com.owncloud.android.datamodel.OCFile
+import com.owncloud.android.datamodel.SyncedFolderProvider
 import com.owncloud.android.datamodel.ThumbnailsCacheManager
 import com.owncloud.android.lib.resources.files.model.FileLockType
 import com.owncloud.android.ui.activity.ComponentsGetter
@@ -72,6 +75,14 @@ class FileActionsBottomSheet private constructor() : BottomSheetDialogFragment()
     @Inject
     lateinit var storageManager: FileDataStorageManager
 
+    @Inject
+    lateinit var preferences: AppPreferences
+
+    @Inject
+    lateinit var clock: Clock
+
+    lateinit var syncedFolderProvider: SyncedFolderProvider
+
     lateinit var viewModel: FileActionsViewModel
 
     private var _binding: FileActionsBottomSheetBinding? = null
@@ -90,6 +101,8 @@ class FileActionsBottomSheet private constructor() : BottomSheetDialogFragment()
         viewModel = ViewModelProvider(this, vmFactory)[FileActionsViewModel::class.java]
         _binding = FileActionsBottomSheetBinding.inflate(inflater, container, false)
 
+        syncedFolderProvider = SyncedFolderProvider(requireContext().contentResolver, preferences, clock)
+
         viewModel.uiState.observe(viewLifecycleOwner, this::handleState)
 
         viewModel.clickActionId.observe(viewLifecycleOwner) { id ->
@@ -141,7 +154,8 @@ class FileActionsBottomSheet private constructor() : BottomSheetDialogFragment()
                 context,
                 binding.thumbnailLayout.thumbnailShimmer,
                 null,
-                viewThemeUtils
+                viewThemeUtils,
+                syncedFolderProvider
             )
         }
     }

+ 7 - 1
app/src/main/java/com/nextcloud/utils/ShortcutUtil.kt

@@ -33,8 +33,10 @@ import androidx.core.content.pm.ShortcutInfoCompat
 import androidx.core.content.pm.ShortcutManagerCompat
 import androidx.core.graphics.drawable.IconCompat
 import androidx.core.graphics.drawable.toBitmap
+import com.nextcloud.client.account.User
 import com.owncloud.android.R
 import com.owncloud.android.datamodel.OCFile
+import com.owncloud.android.datamodel.SyncedFolderProvider
 import com.owncloud.android.datamodel.ThumbnailsCacheManager
 import com.owncloud.android.ui.activity.FileActivity
 import com.owncloud.android.ui.activity.FileDisplayActivity
@@ -49,7 +51,10 @@ class ShortcutUtil @Inject constructor(private val mContext: Context) {
      *
      * @param file The file/folder to which a pinned shortcut should be added to the home screen.
      */
-    fun addShortcutToHomescreen(file: OCFile, viewThemeUtils: ViewThemeUtils) {
+    fun addShortcutToHomescreen(
+        file: OCFile, viewThemeUtils: ViewThemeUtils,
+        user: User, syncedFolderProvider: SyncedFolderProvider
+    ) {
         if (ShortcutManagerCompat.isRequestPinShortcutSupported(mContext)) {
             val intent = Intent(mContext, FileDisplayActivity::class.java)
             intent.action = FileDisplayActivity.OPEN_FILE
@@ -68,6 +73,7 @@ class ShortcutUtil @Inject constructor(private val mContext: Context) {
                     file.isSharedWithMe || file.isSharedWithSharee,
                     file.isSharedViaLink,
                     file.isEncrypted,
+                    syncedFolderProvider.findByRemotePathAndAccount(file.remotePath, user),
                     file.isGroupFolder,
                     file.mountType,
                     mContext,

+ 11 - 1
app/src/main/java/com/owncloud/android/ui/dialog/ConflictsResolveDialog.java

@@ -31,11 +31,14 @@ import android.widget.Toast;
 
 import com.google.android.material.dialog.MaterialAlertDialogBuilder;
 import com.nextcloud.client.account.User;
+import com.nextcloud.client.core.Clock;
 import com.nextcloud.client.di.Injectable;
+import com.nextcloud.client.preferences.AppPreferences;
 import com.owncloud.android.R;
 import com.owncloud.android.databinding.ConflictResolveDialogBinding;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.datamodel.SyncedFolderProvider;
 import com.owncloud.android.datamodel.ThumbnailsCacheManager;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.adapter.LocalFileListAdapter;
@@ -71,6 +74,10 @@ public class ConflictsResolveDialog extends DialogFragment implements Injectable
     private final List<ThumbnailsCacheManager.ThumbnailGenerationTask> asyncTasks = new ArrayList<>();
     private Button positiveButton;
     @Inject ViewThemeUtils viewThemeUtils;
+    @Inject AppPreferences preferences;
+    @Inject Clock clock;
+
+    private SyncedFolderProvider syncedFolderProvider;
 
     private static final String KEY_NEW_FILE = "file";
     private static final String KEY_EXISTING_FILE = "ocfile";
@@ -155,6 +162,8 @@ public class ConflictsResolveDialog extends DialogFragment implements Injectable
         // Inflate the layout for the dialog
         binding = ConflictResolveDialogBinding.inflate(requireActivity().getLayoutInflater());
 
+        syncedFolderProvider = new SyncedFolderProvider(requireContext().getContentResolver(), preferences, clock);
+
         viewThemeUtils.platform.themeCheckbox(binding.newCheckbox);
         viewThemeUtils.platform.themeCheckbox(binding.existingCheckbox);
 
@@ -212,7 +221,8 @@ public class ConflictsResolveDialog extends DialogFragment implements Injectable
                                   getContext(),
                                   null,
                                   null,
-                                  viewThemeUtils);
+                                  viewThemeUtils,
+                                  syncedFolderProvider);
 
         View.OnClickListener checkBoxClickListener = v ->
             positiveButton.setEnabled(binding.newCheckbox.isChecked() || binding.existingCheckbox.isChecked());

+ 1 - 1
app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -1186,7 +1186,7 @@ public class OCFileListFragment extends ExtendedListFragment implements
             } else if (itemId == R.id.action_unlock_file) {
                 mContainerActivity.getFileOperationsHelper().toggleFileLock(singleFile, false);
             } else if (itemId == R.id.action_pin_to_homescreen) {
-                shortcutUtil.addShortcutToHomescreen(singleFile, viewThemeUtils);
+                shortcutUtil.addShortcutToHomescreen(singleFile, viewThemeUtils, accountManager.getUser(), syncedFolderProvider);
                 return true;
             }
         }