Преглед на файлове

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 години
родител
ревизия
1e8337fbce
променени са 2 файла, в които са добавени 53 реда и са изтрити 12 реда
  1. 20 0
      res/layout/list_item.xml
  2. 33 12
      src/com/owncloud/android/ui/adapter/FileListListAdapter.java

+ 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;