Browse Source

Update class FileListAdapter to show new icon for a file and folder that includes 'S' in the permission property. Changed list item layout for showing 'sharedlink' and 'shared with me' icons.

jabarros 11 năm trước cách đây
mục cha
commit
1e8337fbce

+ 20 - 0
res/layout/list_item.xml

@@ -103,15 +103,35 @@
 
     </LinearLayout>
 
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:gravity="center_vertical"
+        android:orientation="vertical">
+
+    <ImageView
+        android:id="@+id/shareWithMeIcon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical"
+        android:layout_marginLeft="4dp"
+        android:layout_marginRight="4dp"
+        android:layout_marginBottom="4dp"
+        android:src="@drawable/shared_with_me"
+        android:visibility="gone" />
+
     <ImageView
         android:id="@+id/shareIcon"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="center_vertical"
         android:layout_marginLeft="4dp"
+        android:layout_marginTop="4dp"
         android:layout_marginRight="4dp"
         android:src="@drawable/sharedlink" />
 
+    </LinearLayout>
+
     <ImageView
         android:id="@+id/custom_checkbox"
         android:layout_width="wrap_content"

+ 33 - 12
src/com/owncloud/android/ui/adapter/FileListListAdapter.java

@@ -17,8 +17,10 @@
  */
 package com.owncloud.android.ui.adapter;
 
+import java.util.Vector;
+
 import android.accounts.Account;
-import android.content.Context;
+import android.content.Context;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -28,9 +30,6 @@ import android.widget.ListAdapter;
 import android.widget.ListView;
 import android.widget.TextView;
 
-
-import java.util.Vector;
-
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountUtils;
 import com.owncloud.android.datamodel.FileDataStorageManager;
@@ -49,6 +48,9 @@ import com.owncloud.android.utils.DisplayUtils;
  * 
  */
 public class FileListListAdapter extends BaseAdapter implements ListAdapter {
+    private final static String PERMISSION_SHARED_WITH_ME = "S";
+    private final static String FILE_CONTENTTYPE_FOLDER = "DIR";
+
     private Context mContext;
     private OCFile mFile = null;
     private Vector<OCFile> mFiles = null;
@@ -113,7 +115,33 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
 
             fileName.setText(name);
             ImageView fileIcon = (ImageView) view.findViewById(R.id.imageView1);
-            fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype(), file.getFileName()));
+            ImageView shareIconV = (ImageView) view.findViewById(R.id.shareIcon);
+            ImageView shareWithMeIconV = (ImageView) view.findViewById(R.id.shareWithMeIcon);
+
+            if (file.isShareByLink()) {
+                shareIconV.setVisibility(View.VISIBLE);
+            } else {
+                shareIconV.setVisibility(View.GONE);
+            }
+
+            // Checks if parent folder does not include 'S' permission
+            if (mFile.getPermissions() != null && !mFile.getPermissions().contains(PERMISSION_SHARED_WITH_ME)) {
+
+                // Checks if file/folder is shared with me
+                if (file.getPermissions() != null && file.getPermissions().contains(PERMISSION_SHARED_WITH_ME)) {
+
+                    // For folders, also update left icon
+                    if (file.getMimetype().equals(FILE_CONTENTTYPE_FOLDER)) {
+                        fileIcon.setImageResource(R.drawable.shared_with_me_folder);
+                    } else {
+                        fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype(), file.getFileName()));
+                    }
+                    shareWithMeIconV.setVisibility(View.VISIBLE);
+                } else {
+                    fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype(), file.getFileName()));
+                }
+            }
+
             ImageView localStateView = (ImageView) view.findViewById(R.id.imageView2);
             FileDownloaderBinder downloaderBinder = mTransferServiceGetter.getFileDownloaderBinder();
             FileUploaderBinder uploaderBinder = mTransferServiceGetter.getFileUploaderBinder();
@@ -169,13 +197,6 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                 checkBoxV.setVisibility(View.GONE);
                 view.findViewById(R.id.imageView3).setVisibility(View.GONE);
             }
-            
-            ImageView shareIconV = (ImageView) view.findViewById(R.id.shareIcon);
-            if (file.isShareByLink()) {
-                shareIconV.setVisibility(View.VISIBLE);
-            } else {
-                shareIconV.setVisibility(View.INVISIBLE);
-            }
         }
 
         return view;