Skip to content

Commit 679634c

Browse files
committed
refine extract results dialog, use custom adapter
1 parent e81d010 commit 679634c

3 files changed

Lines changed: 100 additions & 2 deletions

File tree

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package it.pgp.xfiles.adapters;
2+
3+
import android.content.Context;
4+
import android.support.annotation.Nullable;
5+
import android.view.LayoutInflater;
6+
import android.view.View;
7+
import android.view.ViewGroup;
8+
import android.widget.BaseAdapter;
9+
import android.widget.TextView;
10+
11+
import java.util.List;
12+
13+
import it.pgp.xfiles.R;
14+
import it.pgp.xfiles.enums.FileOpsErrorCodes;
15+
import it.pgp.xfiles.utils.pathcontent.BasePathContent;
16+
17+
public class ExtractResultsAdapter extends BaseAdapter {
18+
private final Context context;
19+
private final LayoutInflater inflater;
20+
private final List<BasePathContent> srcArchives;
21+
private final List<FileOpsErrorCodes> results;
22+
23+
public ExtractResultsAdapter(Context context, List<BasePathContent> srcArchives, List<FileOpsErrorCodes> results) {
24+
this.context = context;
25+
this.inflater = LayoutInflater.from(context);
26+
this.srcArchives = srcArchives;
27+
this.results = results;
28+
}
29+
30+
public static class ExtractResultsViewHolder {
31+
public TextView srcArchive, result;
32+
33+
ExtractResultsViewHolder(TextView srcArchive, TextView result) {
34+
this.srcArchive = srcArchive;
35+
this.result = result;
36+
}
37+
}
38+
39+
@Override
40+
public int getCount() {
41+
return srcArchives.size();
42+
}
43+
44+
@Override
45+
public Object getItem(int position) {
46+
return null;
47+
}
48+
49+
@Override
50+
public long getItemId(int position) {
51+
return position;
52+
}
53+
54+
@Override
55+
public View getView(int position, @Nullable View convertView, ViewGroup parent) {
56+
TextView srcArchive, result;
57+
58+
if(convertView == null) {
59+
convertView = inflater.inflate(R.layout.extract_results_item, null);
60+
61+
srcArchive = convertView.findViewById(R.id.extract_results_srcArchive);
62+
result = convertView.findViewById(R.id.extract_results_result);
63+
64+
convertView.setTag(new ExtractResultsAdapter.ExtractResultsViewHolder(srcArchive,result));
65+
}
66+
else {
67+
ExtractResultsAdapter.ExtractResultsViewHolder viewHolder = (ExtractResultsAdapter.ExtractResultsViewHolder) convertView.getTag();
68+
srcArchive = viewHolder.srcArchive;
69+
result = viewHolder.result;
70+
}
71+
72+
srcArchive.setText(srcArchives.get(position).toString());
73+
FileOpsErrorCodes res = results.get(position);
74+
if(res==null) res = FileOpsErrorCodes.OK;
75+
result.setText(res.toString());
76+
result.setTextColor(context.getResources().getColor(res == FileOpsErrorCodes.OK ? R.color.green : R.color.red));
77+
78+
return convertView;
79+
}
80+
}

app/src/main/java/it/pgp/xfiles/dialogs/compress/ExtractResultsDialog.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
import android.app.Dialog;
44
import android.content.Context;
5-
import android.widget.ArrayAdapter;
65
import android.widget.ListView;
76

87
import java.util.ArrayList;
98
import java.util.List;
109

1110
import it.pgp.xfiles.R;
11+
import it.pgp.xfiles.adapters.ExtractResultsAdapter;
1212
import it.pgp.xfiles.enums.FileOpsErrorCodes;
1313
import it.pgp.xfiles.utils.Pair;
1414
import it.pgp.xfiles.utils.pathcontent.BasePathContent;
@@ -24,7 +24,7 @@ public ExtractResultsDialog(Context context, List<BasePathContent> srcArchives,
2424
if(res == null) res = FileOpsErrorCodes.OK;
2525
support.add(new Pair<>(srcArchives.get(i).toString(), res.toString()));
2626
}
27-
ArrayAdapter<Pair<String,String>> a = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, support);
27+
ExtractResultsAdapter a = new ExtractResultsAdapter(context, srcArchives, results);
2828
ListView lv = findViewById(R.id.extract_results_view);
2929
lv.setAdapter(a);
3030
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:layout_width="match_parent"
4+
android:layout_height="wrap_content"
5+
android:orientation="horizontal">
6+
7+
<TextView android:id="@+id/extract_results_srcArchive"
8+
android:textColor="#0061d6"
9+
android:layout_weight=".25"
10+
android:layout_width="0dp"
11+
android:layout_height="wrap_content"/>
12+
<TextView android:id="@+id/extract_results_result"
13+
android:textColor="#008d69"
14+
android:layout_weight=".25"
15+
android:layout_width="0dp"
16+
android:layout_height="wrap_content" />
17+
18+
</LinearLayout>

0 commit comments

Comments
 (0)