+ mTextPreviewList.setVisibility(View.VISIBLE);
+ }
+ }
+
+ private class TextLineAdapter extends BaseAdapter {
+ private static final int LIST_ITEM_LAYOUT = R.layout.text_file_preview_list_item;
+ private final List<String> items = new ArrayList<>();
+
+ private void add(String line) {
+ items.add(line);
+ notifyDataSetChanged();
+ }
+
+ private void clear() {
+ items.clear();
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getCount() {
+ return items.size();
+ }
+
+ @Override
+ public String getItem(int position) {
+ if (position >= items.size())
+ throw new IllegalArgumentException();
+ return items.get(position);
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ ViewHolder viewHolder;
+ if (convertView == null) {
+ convertView =
+ ((LayoutInflater) getActivity().getApplicationContext()
+ .getSystemService(Context.LAYOUT_INFLATER_SERVICE))
+ .inflate(
+ LIST_ITEM_LAYOUT, null);
+ viewHolder = new ViewHolder();
+ viewHolder.setLineView((TextView) convertView.findViewById(R.id.text_preview));
+ convertView.setTag(viewHolder);
+ } else {
+ viewHolder = (ViewHolder) convertView.getTag();
+ }
+
+ viewHolder.getLineView().setText(items.get(position));
+
+ return convertView;
+ }
+ }
+
+ private static class ViewHolder {
+ private TextView lineView;
+
+ private ViewHolder() {
+ }
+
+ public TextView getLineView() {
+ return lineView;
+ }
+
+ public void setLineView(TextView lineView) {
+ this.lineView = lineView;