Simple delete file button in files control set

pull/14/head
Sam Bosley 12 years ago
parent 33c318befc
commit 28c8fe0645

@ -1,10 +1,13 @@
package com.todoroo.astrid.files; package com.todoroo.astrid.files;
import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import android.app.Activity; import android.app.Activity;
import android.content.DialogInterface;
import android.view.Gravity; import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.widget.LinearLayout; import android.widget.LinearLayout;
@ -18,6 +21,7 @@ import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria; import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
@ -31,6 +35,7 @@ public class FilesControlSet extends PopupControlSet {
private final ArrayList<Metadata> files = new ArrayList<Metadata>(); private final ArrayList<Metadata> files = new ArrayList<Metadata>();
private final LinearLayout fileList; private final LinearLayout fileList;
private final LayoutInflater inflater;
public FilesControlSet(Activity activity, int viewLayout, int displayViewLayout, int title) { public FilesControlSet(Activity activity, int viewLayout, int displayViewLayout, int title) {
super(activity, viewLayout, displayViewLayout, title); super(activity, viewLayout, displayViewLayout, title);
@ -38,16 +43,18 @@ public class FilesControlSet extends PopupControlSet {
displayText.setText(activity.getString(R.string.TEA_control_files)); displayText.setText(activity.getString(R.string.TEA_control_files));
fileList = (LinearLayout) getDisplayView().findViewById(R.id.files_list); fileList = (LinearLayout) getDisplayView().findViewById(R.id.files_list);
inflater = (LayoutInflater) activity.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
} }
@Override @Override
protected void refreshDisplayView() { protected void refreshDisplayView() {
fileList.removeAllViews(); fileList.removeAllViews();
for (final Metadata m : files) { for (final Metadata m : files) {
TextView textView = new TextView(activity); View fileRow = inflater.inflate(R.layout.file_row, null);
TextView textView = (TextView) fileRow.findViewById(R.id.file_text);
String name = parseName(m); String name = parseName(m);
textView.setText(name); textView.setText(name);
textView.setTextAppearance(activity, R.style.TextAppearance_EditRowDisplay);
if (m.getValue(FileMetadata.FILE_TYPE) == FileMetadata.FILE_TYPE_AUDIO) { if (m.getValue(FileMetadata.FILE_TYPE) == FileMetadata.FILE_TYPE_AUDIO) {
textView.setOnClickListener(new OnClickListener() { textView.setOnClickListener(new OnClickListener() {
@Override @Override
@ -57,9 +64,28 @@ public class FilesControlSet extends PopupControlSet {
}); });
} }
View clearFile = fileRow.findViewById(R.id.remove_file);
clearFile.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
DialogUtilities.okCancelDialog(activity, "Are you sure? Cannont be undone",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
File f = new File(m.getValue(FileMetadata.FILE_PATH));
if (f.delete()) {
metadataService.delete(m);
files.remove(m);
refreshDisplayView();
}
}
}, null);
}
});
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.gravity = Gravity.RIGHT; lp.gravity = Gravity.RIGHT;
fileList.addView(textView, lp); fileList.addView(fileRow, lp);
} }
} }

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal" >
<TextView
android:id="@+id/file_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.EditRowDisplay"/>
<ImageView
android:id="@+id/remove_file"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/close_clear_cancel"/>
</LinearLayout>
Loading…
Cancel
Save