-
-
Notifications
You must be signed in to change notification settings - Fork 41
Expand file tree
/
Copy pathRecentDocumentDialogFragment.java
More file actions
113 lines (87 loc) · 3.32 KB
/
RecentDocumentDialogFragment.java
File metadata and controls
113 lines (87 loc) · 3.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package at.tomtasche.reader.ui.widget;
import android.app.Dialog;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AlertDialog.Builder;
import androidx.fragment.app.DialogFragment;
import at.tomtasche.reader.R;
import at.tomtasche.reader.background.RecentDocumentsUtil;
import at.tomtasche.reader.ui.activity.MainActivity;
public class RecentDocumentDialogFragment extends DialogFragment implements
OnItemClickListener, OnItemLongClickListener {
public static final String FRAGMENT_TAG = "document_chooser";
private Map<String, String> items;
private ListAdapter adapter;
private ListView listView;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new Builder(getActivity());
builder.setTitle(R.string.dialog_recent_title);
builder.setCancelable(true);
TextView emptyView = new TextView(getActivity());
emptyView.setText(R.string.dialog_loading_title);
listView = new ListView(getActivity());
listView.setEmptyView(emptyView);
listView.setOnItemClickListener(this);
listView.setOnItemLongClickListener(this);
adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, new String[0]);
listView.setAdapter(adapter);
builder.setView(listView);
setCancelable(true);
items = new HashMap<String, String>();
loadRecentDocuments();
listView.setEmptyView(emptyView);
return builder.create();
}
private void loadRecentDocuments() {
items.clear();
try {
items.putAll(RecentDocumentsUtil.getRecentDocuments(getActivity()));
} catch (Exception e) {
e.printStackTrace();
}
if (items.size() == 0) {
items = new HashMap<String, String>();
items.put(
getActivity().getString(
R.string.dialog_list_no_documents_found), null);
}
adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, new ArrayList<String>(
items.keySet()));
listView.setAdapter(adapter);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
if (items == null)
return;
String key = (String) adapter.getItem(arg2);
if (key == null)
return;
String uri = items.get(key);
if (uri == null)
return;
dismiss();
MainActivity activity = ((MainActivity) getActivity());
activity.loadUriFromInternalNavigation(Uri.parse(uri));
}
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
return false;
}
}