summaryrefslogtreecommitdiff
path: root/main/src/main/java/de/blinkt/openvpn/fragments/FaqViewAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/main/java/de/blinkt/openvpn/fragments/FaqViewAdapter.java')
-rw-r--r--main/src/main/java/de/blinkt/openvpn/fragments/FaqViewAdapter.java42
1 files changed, 33 insertions, 9 deletions
diff --git a/main/src/main/java/de/blinkt/openvpn/fragments/FaqViewAdapter.java b/main/src/main/java/de/blinkt/openvpn/fragments/FaqViewAdapter.java
index 19421800..c99e073a 100644
--- a/main/src/main/java/de/blinkt/openvpn/fragments/FaqViewAdapter.java
+++ b/main/src/main/java/de/blinkt/openvpn/fragments/FaqViewAdapter.java
@@ -6,6 +6,7 @@
package de.blinkt.openvpn.fragments;
import android.content.Context;
+import android.os.AsyncTask;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.text.Html;
@@ -23,23 +24,45 @@ public class FaqViewAdapter extends RecyclerView.Adapter<FaqViewAdapter.FaqViewH
private final FaqFragment.FAQEntry[] mFaqItems;
private final Spanned[] mHtmlEntries;
private final Spanned[] mHtmlEntriesTitle;
-
+ private final Context mContext;
+ private boolean loaded =false;
public FaqViewAdapter(Context context, FaqFragment.FAQEntry[] faqItems) {
mFaqItems = faqItems;
+ mContext = context;
mHtmlEntries = new Spanned[faqItems.length];
mHtmlEntriesTitle = new Spanned[faqItems.length];
+ new FetchStrings().execute(faqItems);
+
+ }
+
+ private class FetchStrings extends AsyncTask<FaqFragment.FAQEntry,Void,Void> {
+
+ @Override
+ protected void onPostExecute(Void aVoid) {
+ loaded=true;
+ notifyDataSetChanged();
+ }
+
+ @Override
+ protected Void doInBackground(FaqFragment.FAQEntry... params) {
+ fetchStrings(params);
+ return null;
+ }
+ }
+
+ private void fetchStrings(FaqFragment.FAQEntry[] faqItems) {
for (int i =0; i < faqItems.length; i++) {
- String versionText = mFaqItems[i].getVersionsString(context);
+ String versionText = mFaqItems[i].getVersionsString(mContext);
String title;
String textColor="";
if (mFaqItems[i].title==-1)
title ="";
else
- title = context.getString(faqItems[i].title);
+ title = mContext.getString(faqItems[i].title);
if (!mFaqItems[i].runningVersion())
@@ -48,22 +71,20 @@ public class FaqViewAdapter extends RecyclerView.Adapter<FaqViewAdapter.FaqViewH
if (versionText != null) {
mHtmlEntriesTitle[i] = (Spanned) TextUtils.concat(Html.fromHtml(textColor + title),
- Html.fromHtml( textColor + "<br><small>" + versionText + "</small>"));
+ Html.fromHtml(textColor + "<br><small>" + versionText + "</small>"));
} else {
mHtmlEntriesTitle[i] = Html.fromHtml(title);
}
- mHtmlEntries[i] = Html.fromHtml(textColor + context.getString(faqItems[i].description));
+ mHtmlEntries[i] = Html.fromHtml(textColor + mContext.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));
+ Spanned xPosedtext = Html.fromHtml(textColor + mContext.getString(R.string.faq_system_dialog_xposed));
mHtmlEntries[i] = (Spanned) TextUtils.concat(mHtmlEntries[i], xPosedtext);
}
-
}
-
}
public static class FaqViewHolder extends RecyclerView.ViewHolder {
@@ -100,7 +121,10 @@ public class FaqViewAdapter extends RecyclerView.Adapter<FaqViewAdapter.FaqViewH
@Override
public int getItemCount() {
- return mFaqItems.length;
+ if(loaded)
+ return mFaqItems.length;
+ else
+ return 0;
}