Browse Source

Fix UI

Signed-off-by: Mario Danic <mario@lovelyhq.com>
Mario Danic 8 years ago
parent
commit
7ebc48b2bb
1 changed files with 61 additions and 42 deletions
  1. 61 42
      src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java

+ 61 - 42
src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java

@@ -69,8 +69,8 @@ import java.util.List;
 
 public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
 
-    public static final int HEADER_TYPE=100;
-    public static final int ACTIVITY_TYPE=101;
+    public static final int HEADER_TYPE = 100;
+    public static final int ACTIVITY_TYPE = 101;
     private final ActivityListInterface activityListInterface;
     private final int px;
     private OwnCloudClient mClient;
@@ -81,23 +81,23 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
     public ActivityListAdapter(Context context, ActivityListInterface activityListInterface) {
         this.mValues = new ArrayList<>();
         this.context = context;
-        this.activityListInterface=activityListInterface;
-        px=getThumbnailDimension();
+        this.activityListInterface = activityListInterface;
+        px = getThumbnailDimension();
     }
 
-    public void setActivityItems(List<Object> activityItems,OwnCloudClient client) {
-        this.mClient=client;
+    public void setActivityItems(List<Object> activityItems, OwnCloudClient client) {
+        this.mClient = client;
         mValues.clear();
-        String sTime="";
+        String sTime = "";
         for (Object o : activityItems) {
             Activity activity = (Activity) o;
-            String time=DisplayUtils.getRelativeTimestamp(context,
+            String time = DisplayUtils.getRelativeTimestamp(context,
                     activity.getDatetime().getTime()).toString();
-            if(sTime.equalsIgnoreCase(time)){
+            if (sTime.equalsIgnoreCase(time)) {
                 mValues.add(activity);
-            }else{
+            } else {
 
-                sTime=time;
+                sTime = time;
                 mValues.add(sTime);
                 mValues.add(activity);
             }
@@ -108,10 +108,10 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
 
     @Override
     public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-        if(viewType==ACTIVITY_TYPE) {
+        if (viewType == ACTIVITY_TYPE) {
             View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_list_item, parent, false);
             return new ActivityViewHolder(v);
-        }else {
+        } else {
             View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_list_item_header, parent, false);
             return new ActivityViewHeaderHolder(v);
         }
@@ -121,8 +121,8 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
     @Override
     public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
 
-        if(holder instanceof ActivityViewHolder) {
-            ActivityViewHolder activityViewHolder=(ActivityViewHolder) holder;
+        if (holder instanceof ActivityViewHolder) {
+            final ActivityViewHolder activityViewHolder = (ActivityViewHolder) holder;
             Activity activity = (Activity) mValues.get(position);
             if (activity.getDatetime() != null) {
                 activityViewHolder.dateTime.setText(DisplayUtils.getRelativeTimestamp(context,
@@ -134,7 +134,8 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
 
             if (!TextUtils.isEmpty(activity.getSubject())) {
                 activityViewHolder.subject.setMovementMethod(LinkMovementMethod.getInstance());
-                activityViewHolder.subject.setText(addClickablePart(activity.getRichElement()), TextView.BufferType.SPANNABLE);
+                activityViewHolder.subject.setText(addClickablePart(activity.getRichSubjectElement()),
+                        TextView.BufferType.SPANNABLE);
                 activityViewHolder.subject.setVisibility(View.VISIBLE);
             } else {
                 activityViewHolder.subject.setVisibility(View.GONE);
@@ -151,29 +152,46 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
                 downloadIcon(activity.getIcon(), activityViewHolder.activityIcon);
             }
 
-            if(activity.getRichElement()!=null && activity.getRichElement().getRichObjectList().size()>0) {
+            if (activity.getRichSubjectElement() != null &&
+                    activity.getRichSubjectElement().getRichObjectList().size() > 0) {
 
+                activityViewHolder.list.setVisibility(View.VISIBLE);
                 activityViewHolder.list.removeAllViews();
-                for (RichObject richObject : activity.getRichElement().getRichObjectList()) {
-                    ImageView imageView=createThumbnail(richObject);
+
+                activityViewHolder.list.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        int w = activityViewHolder.list.getMeasuredWidth();
+
+                        int elPxSize = px + 20;
+                        int totalColumnCount = (int) Math.floor(w / elPxSize);
+                        activityViewHolder.list.setColumnCount(totalColumnCount);
+                    }
+                });
+
+
+                for (RichObject richObject : activity.getRichSubjectElement().getRichObjectList()) {
+                    ImageView imageView = createThumbnail(richObject);
                     activityViewHolder.list.addView(imageView);
                 }
 
+            } else {
+                activityViewHolder.list.removeAllViews();
+                activityViewHolder.list.setVisibility(View.GONE);
             }
-
-        }else{
-            ActivityViewHeaderHolder activityViewHeaderHolder=(ActivityViewHeaderHolder)holder;
-            activityViewHeaderHolder.title.setText((String)mValues.get(position));
+        } else {
+            ActivityViewHeaderHolder activityViewHeaderHolder = (ActivityViewHeaderHolder) holder;
+            activityViewHeaderHolder.title.setText((String) mValues.get(position));
         }
     }
 
-    public ImageView createThumbnail(final RichObject richObject){
+    private ImageView createThumbnail(final RichObject richObject) {
         OCFile file = new OCFile("/" + richObject.getPath());
         file.setRemoteId(richObject.getId());
 
-        LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(px,px);
-        params.setMargins(10,10,10,10);
-        ImageView imageView=new ImageView(context);
+        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(px, px);
+        params.setMargins(10, 10, 10, 10);
+        ImageView imageView = new ImageView(context);
         imageView.setLayoutParams(params);
         imageView.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -181,16 +199,16 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
                 activityListInterface.onActivityClicked(richObject);
             }
         });
-        setBitmap(file,imageView);
+        setBitmap(file, imageView);
 
         return imageView;
     }
 
-    public void setBitmap(OCFile file, ImageView fileIcon) {
+    private void setBitmap(OCFile file, ImageView fileIcon) {
         // No Folder
         if (!file.isFolder()) {
-            if ((MimeTypeUtil.isImage(file) || MimeTypeUtil.isVideo(file)) ) {
-                String uri = mClient.getBaseUri()+ "" +
+            if ((MimeTypeUtil.isImage(file) || MimeTypeUtil.isVideo(file))) {
+                String uri = mClient.getBaseUri() + "" +
                         "/index.php/apps/files/api/v1/thumbnail/" +
                         px + "/" + px + Uri.encode(file.getRemotePath(), "/");
 
@@ -234,16 +252,16 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
     }
 
     private SpannableStringBuilder addClickablePart(RichElement richElement) {
-        String text=richElement.getRichSubject();
+        String text = richElement.getRichSubject();
         SpannableStringBuilder ssb = new SpannableStringBuilder(text);
 
         int idx1 = text.indexOf("{");
         int idx2;
         while (idx1 != -1) {
             idx2 = text.indexOf("}", idx1) + 1;
-            final String clickString = text.substring(idx1+1, idx2-1);
-            final RichObject richObject=searchObjectByName(richElement.getRichObjectList(),clickString);
-            if(richObject!=null) {
+            final String clickString = text.substring(idx1 + 1, idx2 - 1);
+            final RichObject richObject = searchObjectByName(richElement.getRichObjectList(), clickString);
+            if (richObject != null) {
                 String name = richObject.getName();
                 ssb.replace(idx1, idx2, name);
                 text = ssb.toString();
@@ -262,9 +280,9 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
         return ssb;
     }
 
-    public RichObject searchObjectByName(ArrayList<RichObject> richObjectList,String name){
+    public RichObject searchObjectByName(ArrayList<RichObject> richObjectList, String name) {
         for (RichObject richObject : richObjectList) {
-            if(richObject.getTag().equalsIgnoreCase(name))
+            if (richObject.getTag().equalsIgnoreCase(name))
                 return richObject;
         }
         return null;
@@ -273,7 +291,7 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
 
     @Override
     public int getItemViewType(int position) {
-        if(mValues.get(position) instanceof Activity)
+        if (mValues.get(position) instanceof Activity)
             return ACTIVITY_TYPE;
         else
             return HEADER_TYPE;
@@ -286,16 +304,17 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
 
     /**
      * Converts size of file icon from dp to pixel
+     *
      * @return int
      */
-    private int getThumbnailDimension(){
+    private int getThumbnailDimension() {
         // Converts dp to pixel
         Resources r = MainApp.getAppContext().getResources();
-        Double d = Math.pow(2,Math.floor(Math.log(r.getDimension(R.dimen.file_icon_size_grid))/Math.log(2)));
+        Double d = Math.pow(2, Math.floor(Math.log(r.getDimension(R.dimen.file_icon_size_grid)) / Math.log(2))) / 2;
         return d.intValue();
     }
 
-    class ActivityViewHolder extends RecyclerView.ViewHolder {
+    private class ActivityViewHolder extends RecyclerView.ViewHolder {
 
         private final ImageView activityIcon;
         private final TextView subject;
@@ -313,7 +332,7 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
         }
     }
 
-    class ActivityViewHeaderHolder extends RecyclerView.ViewHolder {
+    private class ActivityViewHeaderHolder extends RecyclerView.ViewHolder {
 
         private final TextView title;