From d30bca302e8eec264596e15408e96cde6ad2b356 Mon Sep 17 00:00:00 2001
From: Arne Schwabe <arne@rfc2549.org>
Date: Tue, 17 Feb 2015 22:28:40 +0100
Subject: More fixes to the FAQ

---
 .../de/blinkt/openvpn/fragments/FaqFragment.java   | 27 ++++++++------
 .../blinkt/openvpn/fragments/FaqViewAdapter.java   | 42 +++++++++++++++++-----
 main/src/main/res/values/strings.xml               |  3 ++
 3 files changed, 52 insertions(+), 20 deletions(-)

(limited to 'main/src')

diff --git a/main/src/main/java/de/blinkt/openvpn/fragments/FaqFragment.java b/main/src/main/java/de/blinkt/openvpn/fragments/FaqFragment.java
index 0bebe98a..13e0c0c2 100644
--- a/main/src/main/java/de/blinkt/openvpn/fragments/FaqFragment.java
+++ b/main/src/main/java/de/blinkt/openvpn/fragments/FaqFragment.java
@@ -48,16 +48,21 @@ public class FaqFragment extends Fragment {
                     return true;
 
                 String release = Build.VERSION.RELEASE;
-                boolean isAtLeast442 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT &&
-                        !release.startsWith("4.4.3") && !release.startsWith("4.4.3")
-                        && !release.startsWith("4.4.4") && !release.startsWith("4.4.5") && !release.startsWith("4.4.6");
+                boolean isOlderThan443 =  !release.startsWith("4.4.3")  && !release.startsWith("4.4.4") &&
+                        !release.startsWith("4.4.5") && !release.startsWith("4.4.6");
 
-                boolean isAtLeast443 = isAtLeast442 && !release.startsWith("4.4.2");
-                if (endVersion == -441 && !isAtLeast442)
-                    return true;
+                boolean isOlderThan442 = isOlderThan443 && !release.startsWith("4.4.2");
 
-                if (endVersion == -442 && !isAtLeast443)
-                    return true;
+
+                if(Build.VERSION.SDK_INT== Build.VERSION_CODES.KITKAT) {
+                    if (endVersion == -441 && isOlderThan442)
+                        return true;
+
+                    if (endVersion == -442 && isOlderThan443)
+                        return true;
+                } else if (endVersion == -441 || endVersion == -442) {
+                    return Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT;
+                }
 
 
             }
@@ -140,10 +145,10 @@ public class FaqFragment extends Fragment {
             new FAQEntry(Build.VERSION_CODES.KITKAT, -441, R.string.ab_kitkat_mss_title, R.string.ab_kitkat_mss),
             new FAQEntry(Build.VERSION_CODES.ICE_CREAM_SANDWICH, -1, R.string.copying_log_entries, R.string.faq_copying),
 
-            new FAQEntry(Build.VERSION_CODES.KITKAT, -442, R.string.ab_persist_tun),
+            new FAQEntry(Build.VERSION_CODES.KITKAT, -442, R.string.ab_persist_tun_title, R.string.ab_persist_tun),
             new FAQEntry(Build.VERSION_CODES.KITKAT, -1, R.string.faq_routing_title, R.string.faq_routing),
-            new FAQEntry(Build.VERSION_CODES.KITKAT, Build.VERSION_CODES.KITKAT, R.string.ab_kitkat_reconnect),
-            new FAQEntry(Build.VERSION_CODES.KITKAT, Build.VERSION_CODES.KITKAT, R.string.ab_vpn_reachability_44),
+            new FAQEntry(Build.VERSION_CODES.KITKAT, Build.VERSION_CODES.KITKAT, R.string.ab_kitkat_reconnect_title, R.string.ab_kitkat_reconnect),
+            new FAQEntry(Build.VERSION_CODES.KITKAT, Build.VERSION_CODES.KITKAT, R.string.ab_vpn_reachability_44_title,  R.string.ab_vpn_reachability_44),
 
 
             new FAQEntry(Build.VERSION_CODES.ICE_CREAM_SANDWICH, -1, R.string.ab_only_cidr_title, R.string.ab_only_cidr),
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;
     }
 
 
diff --git a/main/src/main/res/values/strings.xml b/main/src/main/res/values/strings.xml
index 973ab46c..fd7936a4 100755
--- a/main/src/main/res/values/strings.xml
+++ b/main/src/main/res/values/strings.xml
@@ -372,5 +372,8 @@
     <string name="custom_connection_options_warng">Specify custom connection specific options. Use with care</string>
     <string name="custom_connection_options">Custom Options</string>
     <string name="remove_connection_entry">Remove connection entry</string>
+    <string name="ab_kitkat_reconnect_title">Random disconnects from mobile network</string>
+    <string name="ab_vpn_reachability_44_title">Remote networks not reachable</string>
+    <string name="ab_persist_tun_title">Persist tun mode</string>
 
 </resources>
-- 
cgit v1.2.3