Added Android code
[wl-app.git] / Android / r2-streamer / sample / src / main / java / org / readium / sample / adapters / SearchListAdapter.java
1 package org.readium.sample.adapters;
2
3 import android.content.Context;
4 import android.support.annotation.NonNull;
5 import android.view.LayoutInflater;
6 import android.view.View;
7 import android.view.ViewGroup;
8 import android.widget.ArrayAdapter;
9 import android.widget.LinearLayout;
10 import android.widget.TextView;
11
12 import com.readium.sample.R;
13
14 import org.readium.r2_streamer.model.searcher.SearchResult;
15
16 import java.util.List;
17
18 /**
19  * Created by Shrikant Badwaik on 17-Feb-17.
20  */
21
22 public class SearchListAdapter extends ArrayAdapter<String> {
23     private Context context;
24     private List<SearchResult> list;
25     private TextView view_1, view_2;
26
27     public SearchListAdapter(Context context, List<SearchResult> list) {
28         super(context, 0);
29         this.context = context;
30         this.list = list;
31     }
32
33     @Override
34     public int getCount() {
35         return list.size();
36     }
37
38     @NonNull
39     @Override
40     public View getView(int position, View convertView, ViewGroup parent) {
41         LinearLayout layout = null;
42         if (convertView == null) {
43             LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
44             layout = (LinearLayout) layoutInflater.inflate(R.layout.searchlist_adapter_resource, null);
45         } else {
46             layout = (LinearLayout) convertView;
47         }
48
49         view_1 = (TextView) layout.findViewById(R.id.titleText);
50         view_2 = (TextView) layout.findViewById(R.id.matchingText);
51
52         SearchResult searchResult = list.get(position);
53         view_1.setText(searchResult.getTitle());
54         view_2.setText(stripHtmlTags(searchResult.getMatchString()));
55
56         return layout;
57     }
58
59     private String stripHtmlTags(String htmlText) {
60         String plainText = htmlText.replaceAll("<[^>]+>", "");
61         plainText = plainText.replaceAll("<[^>]*", "");
62         plainText = plainText.replaceAll("[^<]*>", "");
63         return plainText;
64     }
65 }