Browse Source

Cleanup bind function

Signed-off-by: alperozturk <alper_ozturk@proton.me>
alperozturk 1 year ago
parent
commit
e7e97a8d4f

+ 3 - 3
app/src/main/java/com/owncloud/android/ui/adapter/LocalFileListAdapter.java

@@ -32,6 +32,7 @@ import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
+import com.nextcloud.android.common.ui.theme.utils.ColorRole;
 import com.nextcloud.client.preferences.AppPreferences;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.ThumbnailsCacheManager;
@@ -187,11 +188,10 @@ public class LocalFileListAdapter extends RecyclerView.Adapter<RecyclerView.View
                 } else {
                     gridViewHolder.checkbox.setVisibility(View.VISIBLE);
                     if (isCheckedFile(file)) {
-                        gridViewHolder.itemLayout.setBackgroundColor(mContext.getResources()
-                                                                         .getColor(R.color.selected_item_background));
+                        gridViewHolder.itemLayout.setBackgroundColor(ContextCompat.getColor(mContext, R.color.selected_item_background));
 
                         gridViewHolder.checkbox.setImageDrawable(
-                            viewThemeUtils.platform.tintPrimaryDrawable(mContext, R.drawable.ic_checkbox_marked));
+                            viewThemeUtils.platform.tintDrawable(mContext, R.drawable.ic_checkbox_marked, ColorRole.PRIMARY));
                     } else {
                         gridViewHolder.itemLayout.setBackgroundColor(mContext.getResources().getColor(R.color.bg_default));
                         gridViewHolder.checkbox.setImageResource(R.drawable.ic_checkbox_blank_outline);

+ 30 - 19
app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt

@@ -27,8 +27,10 @@ import android.graphics.drawable.ColorDrawable
 import android.os.AsyncTask
 import android.view.View
 import android.widget.ImageView
+import androidx.core.content.ContextCompat
 import androidx.core.content.res.ResourcesCompat
 import com.elyeproj.loaderviewlibrary.LoaderImageView
+import com.nextcloud.android.common.ui.theme.utils.ColorRole
 import com.nextcloud.client.account.User
 import com.nextcloud.client.preferences.AppPreferences
 import com.owncloud.android.R
@@ -142,7 +144,7 @@ class OCFileListDelegate(
                     storageManager,
                     asyncGalleryTasks,
                     file.remoteId,
-                    context.resources.getColor(R.color.bg_default)
+                    ContextCompat.getColor(context, R.color.bg_default)
                 )
                 var drawable = MimeTypeUtil.getFileTypeIcon(
                     file.mimeType,
@@ -263,24 +265,18 @@ class OCFileListDelegate(
     }
 
     private fun bindGridItemLayout(file: OCFile, gridViewHolder: ListGridImageViewHolder) {
-        if (highlightedItem != null && file.fileId == highlightedItem!!.fileId) {
-            gridViewHolder.itemLayout.setBackgroundColor(
-                context.resources
-                    .getColor(R.color.selected_item_background)
-            )
-        } else if (isCheckedFile(file)) {
-            gridViewHolder.itemLayout.setBackgroundColor(
-                context.resources
-                    .getColor(R.color.selected_item_background)
-            )
-            gridViewHolder.checkbox.setImageDrawable(
-                viewThemeUtils.platform.tintPrimaryDrawable(context, R.drawable.ic_checkbox_marked)
-            )
-        } else {
-            gridViewHolder.itemLayout.setBackgroundColor(context.resources.getColor(R.color.bg_default))
-            gridViewHolder.checkbox.setImageResource(R.drawable.ic_checkbox_blank_outline)
+        setItemLayoutBackgroundColor(file, gridViewHolder)
+        setCheckBoxImage(file, gridViewHolder)
+        setItemLayoutOnClickListeners(file, gridViewHolder)
+
+        gridViewHolder.more?.setOnClickListener {
+            ocFileListFragmentInterface.onOverflowIconClicked(file, it)
         }
+    }
+
+    private fun setItemLayoutOnClickListeners(file: OCFile, gridViewHolder: ListGridImageViewHolder) {
         gridViewHolder.itemLayout.setOnClickListener { ocFileListFragmentInterface.onItemClicked(file) }
+
         if (!hideItemOptions) {
             gridViewHolder.itemLayout.isLongClickable = true
             gridViewHolder.itemLayout.setOnLongClickListener {
@@ -289,9 +285,24 @@ class OCFileListDelegate(
                 )
             }
         }
+    }
 
-        gridViewHolder.more?.setOnClickListener {
-            ocFileListFragmentInterface.onOverflowIconClicked(file, it)
+    private fun setItemLayoutBackgroundColor(file: OCFile, gridViewHolder: ListGridImageViewHolder) {
+        val itemLayoutBackgroundColorId: Int = if (file.fileId == highlightedItem?.fileId || isCheckedFile(file)) {
+            R.color.selected_item_background
+        } else {
+            R.color.bg_default
+        }
+        gridViewHolder.itemLayout.setBackgroundColor(ContextCompat.getColor(context, itemLayoutBackgroundColorId))
+    }
+
+    private fun setCheckBoxImage(file: OCFile, gridViewHolder: ListGridImageViewHolder) {
+        if (isCheckedFile(file)) {
+            gridViewHolder.checkbox.setImageDrawable(
+                viewThemeUtils.platform.tintDrawable(context, R.drawable.ic_checkbox_marked, ColorRole.PRIMARY)
+            )
+        } else {
+            gridViewHolder.checkbox.setImageResource(R.drawable.ic_checkbox_blank_outline)
         }
     }