1 /* ownCloud Android client application 
   2  *   Copyright (C) 2011  Bartek Przybylski 
   4  *   This program is free software: you can redistribute it and/or modify 
   5  *   it under the terms of the GNU General Public License as published by 
   6  *   the Free Software Foundation, either version 3 of the License, or 
   7  *   (at your option) any later version. 
   9  *   This program is distributed in the hope that it will be useful, 
  10  *   but WITHOUT ANY WARRANTY; without even the implied warranty of 
  11  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
  12  *   GNU General Public License for more details. 
  14  *   You should have received a copy of the GNU General Public License 
  15  *   along with this program.  If not, see <http://www.gnu.org/licenses/>. 
  18 package eu
.alefzero
.owncloud
.ui
.adapter
; 
  20 import java
.util
.Vector
; 
  22 import eu
.alefzero
.owncloud
.DisplayUtils
; 
  23 import eu
.alefzero
.owncloud
.R
; 
  24 import eu
.alefzero
.owncloud
.datamodel
.DataStorageManager
; 
  25 import eu
.alefzero
.owncloud
.datamodel
.OCFile
; 
  27 import android
.content
.Context
; 
  28 import android
.database
.DataSetObserver
; 
  29 import android
.util
.Log
; 
  30 import android
.view
.LayoutInflater
; 
  31 import android
.view
.View
; 
  32 import android
.view
.ViewGroup
; 
  33 import android
.widget
.ImageView
; 
  34 import android
.widget
.ListAdapter
; 
  35 import android
.widget
.TextView
; 
  38  * This Adapter populates a ListView with all files and folders in an ownCloud 
  41  * @author Bartek Przybylski 
  44 public class FileListListAdapter 
implements ListAdapter 
{ 
  45     private Context mContext
; 
  47     private Vector
<OCFile
> mFiles
; 
  48     private DataStorageManager mStorageManager
; 
  50     public FileListListAdapter(OCFile file
, DataStorageManager storage_man
, 
  53         mStorageManager 
= storage_man
; 
  54         mFiles 
= mStorageManager
.getDirectoryContent(mFile
); 
  59     public boolean areAllItemsEnabled() { 
  64     public boolean isEnabled(int position
) { 
  65         // TODO Auto-generated method stub 
  70     public int getCount() { 
  71         return mFiles 
!= null ? mFiles
.size() : 0; 
  75     public Object 
getItem(int position
) { 
  76         if (mFiles
.size() <= position
) 
  78         return mFiles
.get(position
); 
  82     public long getItemId(int position
) { 
  83         return mFiles 
!= null ? mFiles
.get(position
).getFileId() : 0; 
  87     public int getItemViewType(int position
) { 
  88         // TODO Auto-generated method stub 
  93     public View 
getView(int position
, View convertView
, ViewGroup parent
) { 
  94         View view 
= convertView
; 
  96             LayoutInflater inflator 
= (LayoutInflater
) mContext
 
  97                     .getSystemService(Context
.LAYOUT_INFLATER_SERVICE
); 
  98             view 
= inflator
.inflate(R
.layout
.list_layout
, null
); 
 100         if (mFiles
.size() > position
) { 
 101             OCFile file 
= mFiles
.get(position
); 
 102             TextView fileName 
= (TextView
) view
.findViewById(R
.id
.Filename
); 
 103             String name 
= file
.getFileName(); 
 105             fileName
.setText(name
); 
 106             ImageView fileIcon 
= (ImageView
) view
.findViewById(R
.id
.imageView1
); 
 107             if (file
.getMimetype() == null 
|| !file
.getMimetype().equals("DIR")) { 
 108                 fileIcon
.setImageResource(R
.drawable
.file
); 
 110                 fileIcon
.setImageResource(R
.drawable
.ic_menu_archive
); 
 112             ImageView down 
= (ImageView
) view
.findViewById(R
.id
.imageView2
); 
 113             if (file
.getStoragePath() != null
) 
 114                 down
.setVisibility(View
.VISIBLE
); 
 116                 down
.setVisibility(View
.INVISIBLE
); 
 118             if (!file
.isDirectory()) { 
 119                 view
.findViewById(R
.id
.file_size
).setVisibility(View
.VISIBLE
); 
 120                 view
.findViewById(R
.id
.last_mod
).setVisibility(View
.VISIBLE
); 
 121                 ((TextView
)view
.findViewById(R
.id
.file_size
)).setText(DisplayUtils
.bytesToHumanReadable(file
.getFileLength())); 
 122                 ((TextView
)view
.findViewById(R
.id
.last_mod
)).setText(DisplayUtils
.unixTimeToHumanReadable(file
.getModificationTimestamp())); 
 124                view
.findViewById(R
.id
.file_size
).setVisibility(View
.GONE
); 
 125                view
.findViewById(R
.id
.last_mod
).setVisibility(View
.GONE
); 
 133     public int getViewTypeCount() { 
 138     public boolean hasStableIds() { 
 143     public boolean isEmpty() { 
 144         return mFiles 
!= null ? mFiles
.isEmpty() : false
; 
 148     public void registerDataSetObserver(DataSetObserver observer
) { 
 149         // TODO Auto-generated method stub 
 154     public void unregisterDataSetObserver(DataSetObserver observer
) { 
 155         // TODO Auto-generated method stub