import java.util.Comparator;
import android.content.Context;
+import android.content.SharedPreferences;
import android.graphics.Bitmap;
+import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.owncloud.android.utils.BitmapUtils;
import com.owncloud.android.utils.DisplayUtils;
import com.owncloud.android.utils.MimetypeIconUtil;
+import com.owncloud.android.utils.FileStorageUtils;
/**
* This Adapter populates a ListView with all files and directories contained
private Context mContext;
private File mDirectory;
private File[] mFiles = null;
+ private SharedPreferences mAppPreferences;
public LocalFileListAdapter(File directory, Context context) {
mContext = context;
+
+ mAppPreferences = PreferenceManager
+ .getDefaultSharedPreferences(mContext);
+
+ // Read sorting order, default to sort by name ascending
+ FileStorageUtils.mSortOrder = mAppPreferences.getInt("sortOrder", 0);
+ FileStorageUtils.mSortAscending = mAppPreferences.getBoolean("sortAscending", true);
+
swapDirectory(directory);
}
fileIcon.setTag(file.hashCode());
TextView fileSizeV = (TextView) view.findViewById(R.id.file_size);
+ TextView fileSizeSeparatorV = (TextView) view.findViewById(R.id.file_separator);
TextView lastModV = (TextView) view.findViewById(R.id.last_mod);
ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox);
if (!file.isDirectory()) {
+ fileSizeSeparatorV.setVisibility(View.VISIBLE);
fileSizeV.setVisibility(View.VISIBLE);
fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.length()));
checkBoxV.setVisibility(View.GONE);
} else {
if (parentList.isItemChecked(position)) {
- checkBoxV.setImageResource(android.R.drawable.checkbox_on_background);
+ checkBoxV.setImageResource(R.drawable.ic_checkbox_marked);
} else {
- checkBoxV.setImageResource(android.R.drawable.checkbox_off_background);
+ checkBoxV.setImageResource(R.drawable.ic_checkbox_blank_outline);
}
checkBoxV.setVisibility(View.VISIBLE);
}
}
} else {
+ fileSizeSeparatorV.setVisibility(View.GONE);
fileSizeV.setVisibility(View.GONE);
lastModV.setVisibility(View.GONE);
checkBoxV.setVisibility(View.GONE);
public void swapDirectory(File directory) {
mDirectory = directory;
mFiles = (mDirectory != null ? mDirectory.listFiles() : null);
- if (mFiles != null) {
+ if (mFiles != null && mFiles.length > 0) {
Arrays.sort(mFiles, new Comparator<File>() {
@Override
public int compare(File lhs, File rhs) {
}
});
+
+ mFiles = FileStorageUtils.sortLocalFolder(mFiles);
}
notifyDataSetChanged();
}
+
+ public void setSortOrder(Integer order, boolean ascending) {
+ SharedPreferences.Editor editor = mAppPreferences.edit();
+ editor.putInt("sortOrder", order);
+ editor.putBoolean("sortAscending", ascending);
+ editor.commit();
+
+ FileStorageUtils.mSortOrder = order;
+ FileStorageUtils.mSortAscending = ascending;
+
+ mFiles = FileStorageUtils.sortLocalFolder(mFiles);
+ notifyDataSetChanged();
+
+ }
}