blob: 19421800a47b5e5f37002b228a5907367b2a0c04 (
plain)
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
|
/*
* Copyright (c) 2012-2014 Arne Schwabe
* Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
*/
package de.blinkt.openvpn.fragments;
import android.content.Context;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.text.Html;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import de.blinkt.openvpn.R;
public class FaqViewAdapter extends RecyclerView.Adapter<FaqViewAdapter.FaqViewHolder> {
private final FaqFragment.FAQEntry[] mFaqItems;
private final Spanned[] mHtmlEntries;
private final Spanned[] mHtmlEntriesTitle;
public FaqViewAdapter(Context context, FaqFragment.FAQEntry[] faqItems) {
mFaqItems = faqItems;
mHtmlEntries = new Spanned[faqItems.length];
mHtmlEntriesTitle = new Spanned[faqItems.length];
for (int i =0; i < faqItems.length; i++) {
String versionText = mFaqItems[i].getVersionsString(context);
String title;
String textColor="";
if (mFaqItems[i].title==-1)
title ="";
else
title = context.getString(faqItems[i].title);
if (!mFaqItems[i].runningVersion())
textColor= "<font color=\"gray\">";
if (versionText != null) {
mHtmlEntriesTitle[i] = (Spanned) TextUtils.concat(Html.fromHtml(textColor + title),
Html.fromHtml( textColor + "<br><small>" + versionText + "</small>"));
} else {
mHtmlEntriesTitle[i] = Html.fromHtml(title);
}
mHtmlEntries[i] = Html.fromHtml(textColor + context.getString(faqItems[i].description));
// Add hack R.string.faq_system_dialogs_title -> R.string.faq_system_dialog_xposed
if (faqItems[i].title == R.string.faq_system_dialogs_title)
{
Spanned xPosedtext = Html.fromHtml(textColor + context.getString(R.string.faq_system_dialog_xposed));
mHtmlEntries[i] = (Spanned) TextUtils.concat(mHtmlEntries[i], xPosedtext);
}
}
}
public static class FaqViewHolder extends RecyclerView.ViewHolder {
private final CardView mView;
private final TextView mBody;
private final TextView mHead;
public FaqViewHolder(View itemView) {
super(itemView);
mView = (CardView) itemView;
mBody = (TextView)mView.findViewById(R.id.faq_body);
mHead = (TextView)mView.findViewById(R.id.faq_head);
mBody.setMovementMethod(LinkMovementMethod.getInstance());
}
}
@Override
public FaqViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.faqcard, viewGroup, false);
return new FaqViewHolder(view);
}
@Override
public void onBindViewHolder(FaqViewHolder faqViewHolder, int i) {
faqViewHolder.mHead.setText(mHtmlEntriesTitle[i]);
faqViewHolder.mBody.setText(mHtmlEntries[i]);
}
@Override
public int getItemCount() {
return mFaqItems.length;
}
}
|