[Libreoffice-commits] core.git: android/source

brainbreaker gautamprajapati06 at gmail.com
Sun Mar 12 10:21:37 UTC 2017


 android/source/res/layout/file_explorer_grid_item.xml                 |    4 
 android/source/res/layout/file_list_item.xml                          |    8 
 android/source/res/values/arrays.xml                                  |    1 
 android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java |  153 ++--------
 4 files changed, 41 insertions(+), 125 deletions(-)

New commits:
commit 686651c30a9697463c9910f71736abe607efb270
Author: brainbreaker <gautamprajapati06 at gmail.com>
Date:   Mon Feb 27 18:02:56 2017 +0530

    Combine List Item & Grid Item Adapters of File Explorer View
    
     This commit will combine the code of ListItemAdapter &
      GridItemAdapter in LibreOfficeUIActivity to one
      ExplorerItemAdapter which will handle both the view
      types.
    
    Change-Id: I45c1f5124afee82ff0b78f13609acd37be87fde1
    Reviewed-on: https://gerrit.libreoffice.org/34680
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Aleksandar Stefanović <theonewithideas at gmail.com>
    Tested-by: Aleksandar Stefanović <theonewithideas at gmail.com>

diff --git a/android/source/res/layout/file_explorer_grid_item.xml b/android/source/res/layout/file_explorer_grid_item.xml
index 5604fe2..e64fdc2 100644
--- a/android/source/res/layout/file_explorer_grid_item.xml
+++ b/android/source/res/layout/file_explorer_grid_item.xml
@@ -14,7 +14,7 @@
     android:orientation="vertical" >
 
     <ImageView
-        android:id="@+id/grid_item_image"
+        android:id="@+id/file_item_icon"
         tools:src="@drawable/ic_folder_black_24dp"
         tools:tint="@color/text_color_secondary"
         android:layout_width="100dp"
@@ -25,7 +25,7 @@
     </ImageView>
 
     <TextView
-        android:id="@+id/grid_item_label"
+        android:id="@+id/file_item_name"
         tools:text="file or dirname"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/android/source/res/layout/file_list_item.xml b/android/source/res/layout/file_list_item.xml
index 6ffc928..518885d 100644
--- a/android/source/res/layout/file_list_item.xml
+++ b/android/source/res/layout/file_list_item.xml
@@ -15,7 +15,7 @@
     android:layout_marginEnd="@dimen/list_item_margin"
     android:layout_marginRight="@dimen/list_item_margin">
     <ImageView
-        android:id="@+id/file_list_item_icon"
+        android:id="@+id/file_item_icon"
         tools:src="@drawable/ic_folder_black_24dp"
         tools:tint="@color/text_color_secondary"
         android:layout_height="match_parent"
@@ -29,7 +29,7 @@
         android:layout_height="48dp"
         android:orientation="horizontal">
         <TextView
-            android:id="@+id/file_list_item_name"
+            android:id="@+id/file_item_name"
             tools:text="file or dirname"
             style="@style/ListItemText"
             android:layout_height="match_parent"
@@ -38,14 +38,14 @@
             android:ellipsize="end"
             android:maxLines="1"/>
         <TextView
-            android:id="@+id/file_list_item_size"
+            android:id="@+id/file_item_size"
             tools:text="filesize"
             style="@style/ListItemText"
             android:layout_height="match_parent"
             android:layout_width="0dp"
             android:layout_weight="1" />
         <TextView
-            android:id="@+id/file_list_item_date"
+            android:id="@+id/file_item_date"
             tools:text="date/time"
             style="@style/ListItemText"
             android:layout_height="match_parent"
diff --git a/android/source/res/values/arrays.xml b/android/source/res/values/arrays.xml
index 783a371..671424b 100644
--- a/android/source/res/values/arrays.xml
+++ b/android/source/res/values/arrays.xml
@@ -29,7 +29,6 @@
         <item >0</item>
         <item >1</item>
     </string-array>
-
     <string-array name="FilterTypeNames">
         <item>Everything</item>
         <item>Documents</item>
diff --git a/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java b/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
index 40726c3..a4daa45 100644
--- a/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
+++ b/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
@@ -268,13 +268,8 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings
 
         FileUtilities.sortFiles(filePaths, sortMode);
         // refresh view
-        if (viewMode == GRID_VIEW) {
-            fileRecyclerView.setLayoutManager(new GridLayoutManager(this, 3));
-            fileRecyclerView.setAdapter(new GridItemAdapter(this, filePaths));
-        } else {
-            fileRecyclerView.setLayoutManager(new LinearLayoutManager(this));
-            fileRecyclerView.setAdapter(new ListItemAdapter(this, filePaths));
-        }
+        fileRecyclerView.setLayoutManager(isViewModeList() ? new LinearLayoutManager(this) : new GridLayoutManager(this, 3));
+        fileRecyclerView.setAdapter(new ExplorerItemAdapter(this, filePaths));
         // close drawer if it was open
         drawerLayout.closeDrawer(navigationDrawer);
     }
@@ -328,6 +323,10 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings
         }
     }
 
+    private boolean isViewModeList(){
+        return viewMode == LIST_VIEW;
+    }
+
     private void switchToDocumentProvider(IDocumentProvider provider) {
 
         new AsyncTask<IDocumentProvider, Void, Void>() {
@@ -875,15 +874,14 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings
         }
     }
 
-
-    class ListItemAdapter extends RecyclerView.Adapter<ListItemAdapter.ViewHolder> {
+    class ExplorerItemAdapter extends RecyclerView.Adapter<ExplorerItemAdapter.ViewHolder> {
 
         private Activity mActivity;
         private List<IFile> filePaths;
         private final long KB = 1024;
         private final long MB = 1048576;
 
-        ListItemAdapter(Activity activity, List<IFile> filePaths) {
+        ExplorerItemAdapter(Activity activity, List<IFile> filePaths) {
             this.mActivity = activity;
             this.filePaths = filePaths;
         }
@@ -891,7 +889,7 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings
         @Override
         public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
             View item = LayoutInflater.from(parent.getContext())
-                    .inflate(R.layout.file_list_item, parent, false);
+                    .inflate(isViewModeList() ? R.layout.file_list_item : R.layout.file_explorer_grid_item, parent, false);
             return new ViewHolder(item);
         }
 
@@ -917,24 +915,6 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings
             });
 
             holder.filenameView.setText(file.getName());
-
-            if (!file.isDirectory()) {
-                String size;
-                long length = filePaths.get(position).getSize();
-                if (length < KB){
-                    size = Long.toString(length) + "B";
-                } else if (length < MB){
-                    size = Long.toString(length/KB) + "KB";
-                } else {
-                    size = Long.toString(length/MB) + "MB";
-                }
-                holder.fileSizeView.setText(size);
-            }
-            SimpleDateFormat df = new SimpleDateFormat("dd MMM yyyy hh:ss");
-            Date date = file.getLastModified();
-            //TODO format date
-            holder.fileDateView.setText(df.format(date));
-
             switch (FileUtilities.getType(file.getName())) {
                 case FileUtilities.DOC:
                     holder.iconView.setImageResource(R.drawable.writer);
@@ -954,96 +934,28 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings
                 //Eventually have thumbnails of each sub file on a black circle
                 //For now just a folder icon
                 holder.iconView.setImageResource(R.drawable.ic_folder_black_24dp);
-                holder.iconView.setColorFilter(ContextCompat.getColor(mActivity,R.color.text_color_secondary));
-            }
-        }
-
-        @Override
-        public int getItemCount() {
-            return filePaths.size();
-        }
-
-        class ViewHolder extends RecyclerView.ViewHolder {
-
-            View itemView;
-            TextView filenameView, fileSizeView, fileDateView;
-            ImageView iconView;
-
-            ViewHolder(View itemView) {
-                super(itemView);
-                this.itemView = itemView;
-                filenameView = (TextView) itemView.findViewById(R.id.file_list_item_name);
-                fileSizeView = (TextView) itemView.findViewById(R.id.file_list_item_size);
-                fileDateView = (TextView) itemView.findViewById(R.id.file_list_item_date);
-                iconView = (ImageView) itemView.findViewById(R.id.file_list_item_icon);
+                holder.iconView.setColorFilter(ContextCompat.getColor(mActivity, R.color.text_color_secondary));
             }
-        }
-    }
-
-    class GridItemAdapter extends RecyclerView.Adapter<GridItemAdapter.ViewHolder> {
-
-        private Activity mActivity;
-        private List<IFile> filePaths;
-
-        GridItemAdapter(Activity mActivity, List<IFile> filePaths) {
-            this.mActivity = mActivity;
-            this.filePaths = filePaths;
-        }
-
-        @Override
-        public GridItemAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-            View item = LayoutInflater.from(parent.getContext())
-                    .inflate(R.layout.file_explorer_grid_item, parent, false);
-            return new ViewHolder(item);
-        }
-
-        @Override
-        public void onBindViewHolder(final GridItemAdapter.ViewHolder holder, final int position) {
-            final IFile file = filePaths.get(position);
 
-            holder.itemView.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View view) {
-                    open(position);
-                }
-            });
-
-            holder.itemView.setOnLongClickListener(new OnLongClickListener() {
-                @Override
-                public boolean onLongClick(View view) {
-                    //to be picked out by floating context menu (workaround-ish)
-                    currentlySelectedFile = position;
-                    //must return false so the click is not consumed
-                    return false;
+            // Date and Size field only exist when we are displaying items in a list.
+            if(isViewModeList()) {
+                if (!file.isDirectory()) {
+                    String size;
+                    long length = filePaths.get(position).getSize();
+                    if (length < KB) {
+                        size = Long.toString(length) + "B";
+                    } else if (length < MB) {
+                        size = Long.toString(length / KB) + "KB";
+                    } else {
+                        size = Long.toString(length / MB) + "MB";
+                    }
+                    holder.fileSizeView.setText(size);
                 }
-            });
-
-            String filename = file.getName();
-
-            holder.filenameView.setText(filename);
-
-            switch (FileUtilities.getType(filename)) {
-                case FileUtilities.DOC:
-                    holder.iconView.setImageResource(R.drawable.writer);
-                    break;
-                case FileUtilities.CALC:
-                    holder.iconView.setImageResource(R.drawable.calc);
-                    break;
-                case FileUtilities.DRAWING:
-                    holder.iconView.setImageResource(R.drawable.draw);
-                    break;
-                case FileUtilities.IMPRESS:
-                    holder.iconView.setImageResource(R.drawable.impress);
-                    break;
-            }
-
-            if (file.isDirectory()) {
-                //Eventually have thumbnails of each sub file on a black circle
-                //For now just a folder icon
-                holder.iconView.setImageResource(R.drawable.ic_folder_black_24dp);
-                holder.iconView.setColorFilter(ContextCompat.getColor(mActivity,R.color.text_color_secondary));
+                SimpleDateFormat df = new SimpleDateFormat("dd MMM yyyy hh:ss");
+                Date date = file.getLastModified();
+                //TODO format date
+                holder.fileDateView.setText(df.format(date));
             }
-
         }
 
         @Override
@@ -1054,14 +966,19 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings
         class ViewHolder extends RecyclerView.ViewHolder {
 
             View itemView;
-            TextView filenameView;
+            TextView filenameView, fileSizeView, fileDateView;
             ImageView iconView;
 
             ViewHolder(View itemView) {
                 super(itemView);
                 this.itemView = itemView;
-                this.filenameView = (TextView) itemView.findViewById(R.id.grid_item_label);
-                this.iconView = (ImageView) itemView.findViewById(R.id.grid_item_image);
+                filenameView = (TextView) itemView.findViewById(R.id.file_item_name);
+                iconView = (ImageView) itemView.findViewById(R.id.file_item_icon);
+                // Check if view mode is List, only then initialise Size and Date field
+                if (isViewModeList()) {
+                    fileSizeView = (TextView) itemView.findViewById(R.id.file_item_size);
+                    fileDateView = (TextView) itemView.findViewById(R.id.file_item_date);
+                }
             }
         }
     }


More information about the Libreoffice-commits mailing list