package in.ceeq.explorer;
import in.ceeq.R;
import java.util.ArrayList;
import java.util.HashMap;
import android.content.Context;
import android.view.ActionMode;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView.MultiChoiceModeListener;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;
public class ExplorerGridAdapter extends BaseAdapter implements MultiChoiceModeListener
{
public static final int CONTACT_FILE = 1;
public static final int MESSAGE_FILE = 2;
public static final int CALLS_FILE = 3;
public static final int DICTIONARY_FILE = 4;
private LayoutInflater inflater;
private HashMap<String, ArrayList<String>> fileProperties;
private ArrayList<String> fileNames;
private ArrayList<Integer> selectedFiles = new ArrayList<Integer>();
private GridView gridView;
public static ExplorerGridAdapter getInstance(Context context, GridView gridView) {
return new ExplorerGridAdapter(context, gridView);
}
public ExplorerGridAdapter(Context context, GridView gridView) {
// if (filesHelper.haveBackupFiles()) {
// fileNames = new
// ArrayList<String>(filesHelper.getFileNames(filesHelper.getFiles(FilesHelper.BACKUP_PATH)).keySet());
// fileProps = filesHelper.getFileNames(filesHelper
// .getFiles(FilesHelper.BACKUP_PATH));
this.gridView = gridView;
this.inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// }
}
public int getCount() {
if (fileNames != null)
return fileNames.size();
else
return 0;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
TextView displayImage;
if (convertView == null) {
convertView = inflater.inflate(R.layout.grid_columns, null);
}
displayImage = (TextView) convertView.findViewById(R.id.fileIcon);
if (fileNames.get(position).contains("contact")) {
displayImage.setText("C");
displayImage.setTag(R.string.file_name, fileNames.get(position));
displayImage.setTag(R.string.file_type, CONTACT_FILE);
}
else if (fileNames.get(position).contains("message")) {
displayImage.setText("M");
displayImage.setTag(R.string.file_name, fileNames.get(position));
displayImage.setTag(R.string.file_type, MESSAGE_FILE);
}
else if (fileNames.get(position).contains("call")) {
displayImage.setText("L");
displayImage.setTag(R.string.file_name, fileNames.get(position));
displayImage.setTag(R.string.file_type, CALLS_FILE);
}
else if (fileNames.get(position).contains("dictionary")) {
displayImage.setText("D");
displayImage.setTag(R.string.file_name, fileNames.get(position));
displayImage.setTag(R.string.file_type, DICTIONARY_FILE);
}
return convertView;
}
@Override
public void onItemCheckedStateChanged(ActionMode mode, int position,
long id, boolean checked) {
if (checked) {
// gridView.getChildAt(position).setBackgroundColor(
// getResources().getColor(R.color.light_blue));
// selectedFiles.add((Integer) position);
} else {
// gridView.getChildAt(position).setBackgroundColor(
// getResources().getColor(R.color.background));
// selectedFiles.remove((Integer) position);
}
}
// public int getTotalSize(ArrayList<Integer> selectedFiles) {
// int total = 0;
// for (Integer i : selectedFiles)
// // total += Integer.parseInt(fileProps.get(
// // gridView.getChildAt(selectedFiles.get(i))
// // .findViewById(R.id.gDisplayName)
// // .getTag(R.string.file_name).toString()).get(1));
// return total;
// }
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
// switch (item.getItemId()) {
//
// case R.id.restore:
// String fileName;
// int fileType;
// try {
// // for (int i = 0; i < selectedFiles.size(); i++) {
// // fileType = (Integer) gridView.getChildAt(
// // selectedFiles.get(i))
// // .getTag(R.string.file_type);
// // fileName = gridView.getChildAt(selectedFiles.get(i))
// // .getTag(R.string.file_name).toString();
// // switch (fileType) {
// // case 1:
// // Logger.d(fileName);
// // break;
// // case 2:
// // break;
// // case 3:
// // break;
// // case 4:
// // break;
// }
return false;
}
//
// if (selectedFiles.size() == 1)
// Toast.makeText(Explorer.this,
// selectedFiles.size() + " file restored.",
// Toast.LENGTH_SHORT).show();
// else
// Toast.makeText(Explorer.this,
// selectedFiles.size() + " files restored.",
// Toast.LENGTH_SHORT).show();
// } catch (Exception e) {
// e.printStackTrace();
// } finally {
// selectedFiles.clear();
// if (filesHelper.haveBackupFiles()) {
// fileNames = new ArrayList<String>(
// filesHelper
// .getFileNames(
// filesHelper
// .getFiles(FilesHelper.BACKUP_PATH))
// .keySet());
// }
// gridViewAdapter.notifyDataSetChanged();
// gridView.setAdapter(gridViewAdapter);
// }
// return true;
//
// case R.id.delete:
// String[] deleteFiles = new String[selectedFiles.size()];
// try {
// for (int i = 0; i < selectedFiles.size(); i++) {
// deleteFiles[i] = gridView
// .getChildAt(selectedFiles.get(i))
// .findViewById(R.id.gDisplayName)
// .getTag(R.string.file_name).toString();
// }
// filesHelper
// .deleteFile(FilesHelper.BACKUP_PATH, deleteFiles);
// if (selectedFiles.size() == 1)
// Toast.makeText(Explorer.this,
// selectedFiles.size() + " file deleted.",
// Toast.LENGTH_SHORT).show();
// else
// Toast.makeText(Explorer.this,
// selectedFiles.size() + " files deleted.",
// Toast.LENGTH_SHORT).show();
// } catch (Exception e) {
// e.printStackTrace();
// } finally {
// selectedFiles.clear();
// if (filesHelper.haveBackupFiles()) {
// fileNames = new ArrayList<String>(
// filesHelper
// .getFileNames(
// filesHelper
// .getFiles(FilesHelper.BACKUP_PATH))
// .keySet());
// } else {
// findViewById(R.id.help02).setVisibility(TextView.GONE);
// gridView.setVisibility(TextView.GONE);
// findViewById(R.id.help01).setVisibility(
// TextView.VISIBLE);
// }
// gridViewAdapter.notifyDataSetChanged();
// gridView.setAdapter(gridViewAdapter);
// }
// return true;
// case R.id.props:
// AlertDialog.Builder builder = new AlertDialog.Builder(
// Explorer.this);
// LayoutInflater inflater = (LayoutInflater)
// getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// View v;
// TextView text;
// builder.setTitle("Properties");
// if (selectedFiles.size() > 1) {
// v = inflater.inflate(R.layout.dialog_selection_details,
// null);
// text = (TextView) v.findViewById(R.id.vfileTotalSize);
// text.setText(getTotalSize(selectedFiles) + "KB");
// builder.setView(v)
// .setNegativeButton(R.string.close,
// new DialogInterface.OnClickListener() {
// public void onClick(
// DialogInterface dialog, int id) {
// dialog.cancel();
// }
// }).create().show();
// } else {
// v = inflater.inflate(R.layout.dialog_file_details, null);
// text = (TextView) v.findViewById(R.id.vfileName);
// if (!selectedFiles.isEmpty()) {
// text.setText(gridView.getChildAt(selectedFiles.get(0))
// .findViewById(R.id.gDisplayName)
// .getTag(R.string.file_name).toString());
// text = (TextView) v.findViewById(R.id.vfileType);
// text.setText(fileProps.get(
// gridView.getChildAt(selectedFiles.get(0))
// .findViewById(R.id.gDisplayName)
// .getTag(R.string.file_name).toString())
// .get(0));
// text = (TextView) v.findViewById(R.id.vfileDate);
// text.setText(fileProps.get(
// gridView.getChildAt(selectedFiles.get(0))
// .findViewById(R.id.gDisplayName)
// .getTag(R.string.file_name).toString())
// .get(2));
// text = (TextView) v.findViewById(R.id.vfileSize);
// text.setText(fileProps.get(
// gridView.getChildAt(selectedFiles.get(0))
// .findViewById(R.id.gDisplayName)
// .getTag(R.string.file_name).toString())
// .get(1)
// + "KB");
//
// builder.setView(v)
// .setNegativeButton(R.string.close,
// new DialogInterface.OnClickListener() {
// public void onClick(
// DialogInterface dialog,
// int id) {
// dialog.cancel();
// }
// }).create().show();
// }
// return true;
// }
// default:
// return false;
// }
// }
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.display, menu);
return true;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
// for (int i = 0; i < selectedFiles.size(); i++) {
// gridView.getChildAt(selectedFiles.get(i)).setBackgroundColor(getResources().getColor(R.color.background));
// }
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
}