소스 검색

show comments in grid view, but then no share icon

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
tobiasKaminsky 6 년 전
부모
커밋
9e115d91d0

+ 27 - 21
src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java

@@ -293,17 +293,18 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
                         ocFileListFragmentInterface.onLongItemClicked(file));
             }
 
+            // unread comments
+            if (file.getUnreadCommentsCount() > 0) {
+                gridViewHolder.unreadComments.setVisibility(View.VISIBLE);
+                gridViewHolder.unreadComments.setOnClickListener(view -> ocFileListFragmentInterface
+                    .showActivityDetailView(file));
+            } else {
+                gridViewHolder.unreadComments.setVisibility(View.GONE);
+            }
+
             if (holder instanceof OCFileListItemViewHolder) {
                 OCFileListItemViewHolder itemViewHolder = (OCFileListItemViewHolder) holder;
 
-                if (file.getUnreadCommentsCount() > 0) {
-                    itemViewHolder.unreadComments.setVisibility(View.VISIBLE);
-                    itemViewHolder.unreadComments.setOnClickListener(view ->
-                            ocFileListFragmentInterface.showActivityDetailView(file));
-                } else {
-                    itemViewHolder.unreadComments.setVisibility(View.GONE);
-                }
-
                 if (onlyOnDevice) {
                     File localFile = new File(file.getStoragePath());
 
@@ -504,19 +505,24 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
 
     private void showShareIcon(OCFileListGridImageViewHolder gridViewHolder, OCFile file) {
         ImageView sharedIconView = gridViewHolder.shared;
-        sharedIconView.setVisibility(View.VISIBLE);
-
-        if (file.isSharedWithSharee() || file.isSharedWithMe()) {
-            sharedIconView.setImageResource(R.drawable.shared_via_users);
-            sharedIconView.setContentDescription(mContext.getString(R.string.shared_icon_shared));
-        } else if (file.isSharedViaLink()) {
-            sharedIconView.setImageResource(R.drawable.shared_via_link);
-            sharedIconView.setContentDescription(mContext.getString(R.string.shared_icon_shared_via_link));
+
+        if (gridViewHolder instanceof OCFileListItemViewHolder) {
+            sharedIconView.setVisibility(View.VISIBLE);
+
+            if (file.isSharedWithSharee() || file.isSharedWithMe()) {
+                sharedIconView.setImageResource(R.drawable.shared_via_users);
+                sharedIconView.setContentDescription(mContext.getString(R.string.shared_icon_shared));
+            } else if (file.isSharedViaLink()) {
+                sharedIconView.setImageResource(R.drawable.shared_via_link);
+                sharedIconView.setContentDescription(mContext.getString(R.string.shared_icon_shared_via_link));
+            } else {
+                sharedIconView.setImageResource(R.drawable.ic_unshared);
+                sharedIconView.setContentDescription(mContext.getString(R.string.shared_icon_share));
+            }
+            sharedIconView.setOnClickListener(view -> ocFileListFragmentInterface.onShareIconClick(file));
         } else {
-            sharedIconView.setImageResource(R.drawable.ic_unshared);
-            sharedIconView.setContentDescription(mContext.getString(R.string.shared_icon_share));
+            sharedIconView.setVisibility(View.GONE);
         }
-        sharedIconView.setOnClickListener(view -> ocFileListFragmentInterface.onShareIconClick(file));
     }
 
     /**
@@ -819,7 +825,6 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
         private final TextView fileSize;
         private final TextView lastModification;
         private final ImageView overflowMenu;
-        private final ImageView unreadComments;
 
         private OCFileListItemViewHolder(View itemView) {
             super(itemView);
@@ -827,7 +832,6 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
             fileSize = itemView.findViewById(R.id.file_size);
             lastModification = itemView.findViewById(R.id.last_mod);
             overflowMenu = itemView.findViewById(R.id.overflow_menu);
-            unreadComments = itemView.findViewById(R.id.unreadComments);
         }
     }
 
@@ -848,6 +852,7 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
         private final ImageView localFileIndicator;
         private final ImageView shared;
         private final ImageView checkbox;
+        protected final ImageView unreadComments;
         private final LinearLayout itemLayout;
 
         private OCFileListGridImageViewHolder(View itemView) {
@@ -859,6 +864,7 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
             localFileIndicator = itemView.findViewById(R.id.localFileIndicator);
             shared = itemView.findViewById(R.id.sharedIcon);
             checkbox = itemView.findViewById(R.id.custom_checkbox);
+            unreadComments = itemView.findViewById(R.id.unreadComments);
             itemLayout = itemView.findViewById(R.id.ListItemLayout);
         }
     }

+ 3 - 1
src/main/java/com/owncloud/android/ui/fragment/FileDetailActivitiesFragment.java

@@ -50,6 +50,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.resources.activities.GetActivitiesRemoteOperation;
 import com.owncloud.android.lib.resources.activities.model.RichObject;
+import com.owncloud.android.lib.resources.comments.MarkCommentsAsReadRemoteOperation;
 import com.owncloud.android.lib.resources.files.ReadFileVersionsRemoteOperation;
 import com.owncloud.android.lib.resources.files.model.FileVersion;
 import com.owncloud.android.lib.resources.status.OCCapability;
@@ -359,7 +360,8 @@ public class FileDetailActivitiesFragment extends Fragment implements ActivityLi
     public void markCommentsAsRead() {
         new Thread(() -> {
             if (file.getUnreadCommentsCount() > 0) {
-                MarkCommentsAsReadOperation unreadOperation = new MarkCommentsAsReadOperation(file.getLocalId());
+                MarkCommentsAsReadRemoteOperation unreadOperation = new MarkCommentsAsReadRemoteOperation(
+                    file.getLocalId());
                 RemoteOperationResult remoteOperationResult = unreadOperation.execute(ownCloudClient);
 
                 if (remoteOperationResult.isSuccess()) {

+ 16 - 1
src/main/res/layout/grid_image.xml

@@ -13,7 +13,7 @@
 
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-  
+
 -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/ListItemLayout"
@@ -59,6 +59,21 @@
             android:contentDescription="@string/shared_icon_shared_via_link"
             android:src="@drawable/shared_via_link" />
 
+        <ImageView
+            android:id="@+id/unreadComments"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="top|end"
+            android:layout_marginEnd="@dimen/standard_quarter_margin"
+            android:layout_marginRight="@dimen/standard_quarter_margin"
+            android:layout_marginTop="@dimen/grid_image_shared_icon_layout_top_margin"
+            android:clickable="true"
+            android:contentDescription="@string/unread_comments"
+            android:focusable="true"
+            android:alpha="0.3"
+            android:src="@drawable/ic_comment"
+            android:visibility="gone" />
+
         <ImageView
             android:id="@+id/localFileIndicator"
             android:layout_width="@dimen/grid_image_local_file_indicator_layout_width"

+ 17 - 2
src/main/res/layout/grid_item.xml

@@ -13,7 +13,7 @@
 
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-  
+
 -->
 <com.owncloud.android.ui.SquareLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/ListItemLayout"
@@ -57,6 +57,21 @@
             android:src="@drawable/shared_via_link"
             android:contentDescription="@string/shared_icon_shared_via_link"/>
 
+        <ImageView
+            android:id="@+id/unreadComments"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:clickable="true"
+            android:contentDescription="@string/unread_comments"
+            android:focusable="true"
+            android:layout_gravity="top|end"
+            android:layout_marginTop="@dimen/grid_item_shared_icon_layout_top_margin"
+            android:layout_marginRight="@dimen/standard_quarter_margin"
+            android:layout_marginEnd="@dimen/standard_quarter_margin"
+            android:alpha="0.3"
+            android:src="@drawable/ic_comment"
+            android:visibility="gone" />
+
         <ImageView
             android:id="@+id/localFileIndicator"
             android:layout_width="@dimen/grid_item_local_file_indicator_layout_width"
@@ -105,4 +120,4 @@
         android:textColor="@color/textColor"
         android:textSize="@dimen/grid_item_text_size" />
 
-</com.owncloud.android.ui.SquareLinearLayout>
+</com.owncloud.android.ui.SquareLinearLayout>