package com.amaze.filemanager.adapters;
import android.app.Activity;
import android.content.Context;
import android.support.annotation.LayoutRes;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.afollestad.materialdialogs.MaterialDialog;
import com.amaze.filemanager.R;
import com.amaze.filemanager.activities.MainActivity;
import com.amaze.filemanager.filesystem.BaseFile;
import com.amaze.filemanager.filesystem.HFile;
import com.amaze.filemanager.fragments.MainFragment;
import com.amaze.filemanager.services.DeleteTask;
import com.amaze.filemanager.utils.Futils;
import com.amaze.filemanager.utils.OpenMode;
import java.io.File;
import java.util.ArrayList;
/**
* Created by Arpit on 16-11-2014.
*/
public class HiddenAdapter extends RecyclerArrayAdapter<HFile, HiddenAdapter.ViewHolder> {
private Futils utils;
private MainFragment context;
private Context c;
public ArrayList<HFile> items;
private MaterialDialog materialDialog;
private boolean hide;
/// public HashMap<Integer, Boolean> myChecked = new HashMap<Integer, Boolean>();
public HiddenAdapter(Context context, MainFragment mainFrag, Futils utils, @LayoutRes int layoutId,
ArrayList<HFile> items, MaterialDialog materialDialog, boolean hide) {
addAll(items);
this.utils = utils;
this.c = context;
this.context = mainFrag;
this.items = items;
this.hide = hide;
this.materialDialog = materialDialog;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = (LayoutInflater) c
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
View view = mInflater.inflate(R.layout.bookmarkrow, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.render(position, getItem(position));
}
class ViewHolder extends RecyclerView.ViewHolder {
private ImageButton image;
private TextView txtTitle;
private TextView txtDesc;
private LinearLayout row;
ViewHolder(View view) {
super(view);
txtTitle = (TextView) view.findViewById(R.id.text1);
image = (ImageButton) view.findViewById(R.id.delete_button);
txtDesc = (TextView) view.findViewById(R.id.text2);
row = (LinearLayout) view.findViewById(R.id.bookmarkrow);
}
void render(final int position, final HFile file) {
txtTitle.setText(file.getName());
String a = file.getReadablePath(file.getPath());
txtDesc.setText(a);
if (hide)
image.setVisibility(View.GONE);
// TODO: move the listeners to the constructor
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!file.isSmb() && file.isDirectory()) {
ArrayList<BaseFile> a = new ArrayList<>();
BaseFile baseFile = new BaseFile(items.get(position).getPath() + "/.nomedia");
baseFile.setMode(OpenMode.FILE);
a.add(baseFile);
new DeleteTask(context.getActivity().getContentResolver(), c).execute((a));
}
MainActivity.dataUtils.removeHiddenFile(items.get(position).getPath());
items.remove(items.get(position));
notifyDataSetChanged();
}
});
row.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
materialDialog.dismiss();
new Thread(new Runnable() {
@Override
public void run() {
if (file.isDirectory()) {
context.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
context.loadlist(file.getPath(), false, OpenMode.UNKNOWN);
}
});
} else {
if (!file.isSmb()) {
context.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
utils.openFile(new File(file.getPath()), (MainActivity) context.getActivity());
}
});
}
}
}
}).start();
}
});
}
}
public void updateDialog(MaterialDialog dialog) {
materialDialog = dialog;
}
}