소스 검색

OCFileListDelegate: fix detekt

Signed-off-by: Álvaro Brey Vilas <alvaro.brey@nextcloud.com>
Álvaro Brey Vilas 3 년 전
부모
커밋
ff3833c62f
1개의 변경된 파일65개의 추가작업 그리고 42개의 파일을 삭제
  1. 65 42
      app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt

+ 65 - 42
app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt

@@ -36,6 +36,7 @@ import com.owncloud.android.utils.DisplayUtils
 import com.owncloud.android.utils.theme.ThemeColorUtils
 import com.owncloud.android.utils.theme.ThemeDrawableUtils
 
+@Suppress("LongParameterList", "TooManyFunctions")
 class OCFileListDelegate(
     private val context: Context,
     private val ocFileListFragmentInterface: OCFileListFragmentInterface,
@@ -86,6 +87,7 @@ class OCFileListDelegate(
     }
 
     fun bindGridViewHolder(gridViewHolder: ListGridImageViewHolder, file: OCFile) {
+        // thumbnail
         gridViewHolder.thumbnail.tag = file.fileId
         DisplayUtils.setThumbnail(
             file,
@@ -98,6 +100,47 @@ class OCFileListDelegate(
             gridViewHolder.shimmerThumbnail,
             preferences
         )
+        // item layout + click listeners
+        bindGridItemLayout(file, gridViewHolder)
+
+        // unread comments
+        bindUnreadComments(file, gridViewHolder)
+
+        // multiSelect (Checkbox)
+        if (isMultiSelect) {
+            gridViewHolder.checkbox.visibility = View.VISIBLE
+        } else {
+            gridViewHolder.checkbox.visibility = View.GONE
+        }
+
+        // download state
+        gridViewHolder.localFileIndicator.visibility = View.INVISIBLE // default first
+
+        // metadata (downloaded, favorite)
+        bindGridMetadataViews(file, gridViewHolder)
+
+        // shares
+        val shouldHideShare = gridView || hideItemOptions || file.isFolder && !file.canReshare()
+        if (shouldHideShare) {
+            gridViewHolder.shared.visibility = View.GONE
+        } else {
+            showShareIcon(gridViewHolder, file)
+        }
+    }
+
+    private fun bindUnreadComments(file: OCFile, gridViewHolder: ListGridImageViewHolder) {
+        if (file.unreadCommentsCount > 0) {
+            gridViewHolder.unreadComments.visibility = View.VISIBLE
+            gridViewHolder.unreadComments.setOnClickListener {
+                ocFileListFragmentInterface
+                    .showActivityDetailView(file)
+            }
+        } else {
+            gridViewHolder.unreadComments.visibility = View.GONE
+        }
+    }
+
+    private fun bindGridItemLayout(file: OCFile, gridViewHolder: ListGridImageViewHolder) {
         if (highlightedItem != null && file.fileId == highlightedItem!!.fileId) {
             gridViewHolder.itemLayout.setBackgroundColor(
                 context.resources
@@ -127,60 +170,40 @@ class OCFileListDelegate(
                 )
             }
         }
+    }
 
-        // unread comments
-        if (file.unreadCommentsCount > 0) {
-            gridViewHolder.unreadComments.visibility = View.VISIBLE
-            gridViewHolder.unreadComments.setOnClickListener {
-                ocFileListFragmentInterface
-                    .showActivityDetailView(file)
-            }
-        } else {
-            gridViewHolder.unreadComments.visibility = View.GONE
-        }
-
-        // multiSelect (Checkbox)
-        if (isMultiSelect) {
-            gridViewHolder.checkbox.visibility = View.VISIBLE
+    private fun bindGridMetadataViews(file: OCFile, gridViewHolder: ListGridImageViewHolder) {
+        if (showMetadata) {
+            showLocalFileIndicator(file, gridViewHolder)
+            gridViewHolder.favorite.visibility = if (file.isFavorite) View.VISIBLE else View.GONE
         } else {
-            gridViewHolder.checkbox.visibility = View.GONE
+            gridViewHolder.localFileIndicator.visibility = View.GONE
+            gridViewHolder.favorite.visibility = View.GONE
         }
+    }
 
-        // download state
-        gridViewHolder.localFileIndicator.visibility = View.INVISIBLE // default first
-        if (showMetadata) {
-            val operationsServiceBinder = transferServiceGetter.operationsServiceBinder
-            val fileDownloaderBinder = transferServiceGetter.fileDownloaderBinder
-            val fileUploaderBinder = transferServiceGetter.fileUploaderBinder
-            if (operationsServiceBinder != null && operationsServiceBinder.isSynchronizing(user, file)) {
-                // synchronizing
-                gridViewHolder.localFileIndicator.setImageResource(R.drawable.ic_synchronizing)
-                gridViewHolder.localFileIndicator.visibility = View.VISIBLE
-            } else if (fileDownloaderBinder != null && fileDownloaderBinder.isDownloading(user, file)) {
-                // downloading
+    private fun showLocalFileIndicator(file: OCFile, gridViewHolder: ListGridImageViewHolder) {
+        val operationsServiceBinder = transferServiceGetter.operationsServiceBinder
+        val fileDownloaderBinder = transferServiceGetter.fileDownloaderBinder
+        val fileUploaderBinder = transferServiceGetter.fileUploaderBinder
+        when {
+            operationsServiceBinder?.isSynchronizing(user, file) == true ||
+                fileDownloaderBinder?.isDownloading(user, file) == true ||
+                fileUploaderBinder?.isUploading(user, file) == true -> {
+                // synchronizing, downloading or uploading
                 gridViewHolder.localFileIndicator.setImageResource(R.drawable.ic_synchronizing)
                 gridViewHolder.localFileIndicator.visibility = View.VISIBLE
-            } else if (fileUploaderBinder != null && fileUploaderBinder.isUploading(user, file)) {
-                // uploading
-                gridViewHolder.localFileIndicator.setImageResource(R.drawable.ic_synchronizing)
-                gridViewHolder.localFileIndicator.visibility = View.VISIBLE
-            } else if (file.etagInConflict != null) {
+            }
+            file.etagInConflict != null -> {
                 // conflict
                 gridViewHolder.localFileIndicator.setImageResource(R.drawable.ic_synchronizing_error)
                 gridViewHolder.localFileIndicator.visibility = View.VISIBLE
-            } else if (file.isDown) {
+            }
+            file.isDown -> {
+                // downloaded
                 gridViewHolder.localFileIndicator.setImageResource(R.drawable.ic_synced)
                 gridViewHolder.localFileIndicator.visibility = View.VISIBLE
             }
-            gridViewHolder.favorite.visibility = if (file.isFavorite) View.VISIBLE else View.GONE
-        } else {
-            gridViewHolder.localFileIndicator.visibility = View.GONE
-            gridViewHolder.favorite.visibility = View.GONE
-        }
-        if (gridView || hideItemOptions || file.isFolder && !file.canReshare()) {
-            gridViewHolder.shared.visibility = View.GONE
-        } else {
-            showShareIcon(gridViewHolder, file)
         }
     }