예제 #1
0
  public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater =
        (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View gridView;

    if (convertView == null) {
      gridView = new View(mContext);
    } else {
      gridView = (View) convertView;
    }

    // get layout from mobile.xml
    gridView = inflater.inflate(R.layout.file_explorer_grid_item, null);

    // set value into textview
    TextView textView = (TextView) gridView.findViewById(R.id.grid_item_label);
    textView.setText(filePaths[position].getName());
    // set image based on selected text
    ImageView imageView = (ImageView) gridView.findViewById(R.id.grid_item_image);
    if (filePaths[position].isDirectory()) // Is a folder
    {
      // Default view is a generic folder icon.
      imageView.setImageResource(R.drawable.folder);
      // How should we handle empty folders / folders with no thumbnails? -> new files
      gridView = inflater.inflate(R.layout.file_explorer_folder_icon, null);
      org.libreoffice.ui.FolderIconView icon =
          (org.libreoffice.ui.FolderIconView) gridView.findViewById(R.id.folder_icon);
      icon.setDir(filePaths[position]);
      textView = (TextView) gridView.findViewById(R.id.grid_item_label);
      textView.setText(filePaths[position].getName());
      return gridView;
    } else {
      File thumbnailFile =
          new File(
              filePaths[position].getParent(),
              "." + filePaths[position].getName().split("[.]")[0] + ".png");
      BitmapFactory factory = new BitmapFactory();
      Bitmap thumb = factory.decodeFile(thumbnailFile.getAbsolutePath());
      if (thumb != null) {
        Log.i("GRID", "true");
      } else {
        Log.i("GRID", thumbnailFile.getAbsolutePath());
      }
      switch (FileUtilities.getType(filePaths[position].getName())) {
        case FileUtilities.DOC:
          if (thumb != null) {
            imageView.setImageBitmap(thumb);
            break;
          }
          imageView.setImageResource(R.drawable.writer);
          break;
        case FileUtilities.CALC:
          imageView.setImageResource(R.drawable.calc);
          break;
        case FileUtilities.DRAWING: // FIXME: only for now ...
        case FileUtilities.IMPRESS:
          imageView.setImageResource(R.drawable.impress);
          break;
        case FileUtilities.UNKNOWN:
        default:
          break; // FIXME something prettier ?
      }
    }
    return gridView;
  }