diff --git a/res/drawable/scrollbar_handle_vertical.xml b/res/drawable/scrollbar_handle_vertical.xml
new file mode 100644
index 000000000..5ec5e57a2
--- /dev/null
+++ b/res/drawable/scrollbar_handle_vertical.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/res/xml/webview.xml b/res/xml/webview.xml
new file mode 100644
index 000000000..7dc20a488
--- /dev/null
+++ b/res/xml/webview.xml
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java b/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java
index 96fee9373..c691754c5 100644
--- a/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java
+++ b/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java
@@ -48,13 +48,12 @@ import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.view.menu.ActionMenuItemView;
-import android.support.v7.view.menu.MenuBuilder;
-import android.support.v7.view.menu.MenuItemImpl;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
+import android.util.AttributeSet;
import android.util.Log;
import android.view.ActionMode;
import android.view.KeyEvent;
@@ -74,14 +73,8 @@ import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
-import android.widget.TextView;
import android.widget.Toast;
-import butterknife.BindView;
-import butterknife.ButterKnife;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
+
import org.json.JSONArray;
import org.kiwix.kiwixmobile.database.BookmarksDao;
import org.kiwix.kiwixmobile.database.KiwixDatabase;
@@ -94,6 +87,7 @@ import org.kiwix.kiwixmobile.utils.KiwixTextToSpeech;
import org.kiwix.kiwixmobile.utils.LanguageUtils;
import org.kiwix.kiwixmobile.utils.NetworkUtils;
import org.kiwix.kiwixmobile.utils.RateAppCounter;
+import org.kiwix.kiwixmobile.utils.StyleUtils;
import org.kiwix.kiwixmobile.utils.files.FileReader;
import org.kiwix.kiwixmobile.utils.files.FileUtils;
import org.kiwix.kiwixmobile.views.AnimatedProgressBar;
@@ -101,7 +95,14 @@ import org.kiwix.kiwixmobile.views.CompatFindActionModeCallback;
import org.kiwix.kiwixmobile.views.web.KiwixWebView;
import org.kiwix.kiwixmobile.views.web.ToolbarScrollingKiwixWebView;
import org.kiwix.kiwixmobile.views.web.ToolbarStaticKiwixWebView;
-import org.w3c.dom.Text;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
import static org.kiwix.kiwixmobile.TableDrawerAdapter.DocumentSection;
@@ -597,9 +598,10 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
}
private KiwixWebView getWebView(String url) {
+ AttributeSet attrs = StyleUtils.getAttributes(this, R.xml.webview);
KiwixWebView webView;
if (isHideToolbar) {
- webView = new ToolbarScrollingKiwixWebView(KiwixMobileActivity.this, this, toolbarContainer);
+ webView = new ToolbarScrollingKiwixWebView(KiwixMobileActivity.this, this, toolbarContainer, attrs);
((ToolbarScrollingKiwixWebView) webView).setOnToolbarVisibilityChangeListener(
new ToolbarScrollingKiwixWebView.OnToolbarVisibilityChangeListener() {
@Override
@@ -614,7 +616,7 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
}
);
} else {
- webView = new ToolbarStaticKiwixWebView(KiwixMobileActivity.this, this, toolbarContainer);
+ webView = new ToolbarStaticKiwixWebView(KiwixMobileActivity.this, this, toolbarContainer, attrs);
}
webView.loadUrl(url);
webView.loadPrefs();
diff --git a/src/org/kiwix/kiwixmobile/utils/StyleUtils.java b/src/org/kiwix/kiwixmobile/utils/StyleUtils.java
index e7449d51c..787f47a97 100644
--- a/src/org/kiwix/kiwixmobile/utils/StyleUtils.java
+++ b/src/org/kiwix/kiwixmobile/utils/StyleUtils.java
@@ -19,7 +19,14 @@
package org.kiwix.kiwixmobile.utils;
+import android.content.Context;
+import android.support.annotation.XmlRes;
+import android.util.AttributeSet;
+import android.util.Xml;
+
import org.kiwix.kiwixmobile.KiwixMobileActivity;
+import org.kiwix.kiwixmobile.R;
+import org.xmlpull.v1.XmlPullParser;
public class StyleUtils {
public static int dialogStyle() {
@@ -29,4 +36,16 @@ public class StyleUtils {
return android.support.v7.appcompat.R.style.Theme_AppCompat_Light_Dialog_Alert;
}
}
+
+ public static AttributeSet getAttributes(Context context, @XmlRes int xml) {
+ XmlPullParser parser = context.getResources().getXml(R.xml.webview);
+ try {
+ parser.next();
+ parser.nextTag();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return Xml.asAttributeSet(parser);
+ }
}
diff --git a/src/org/kiwix/kiwixmobile/views/web/KiwixWebView.java b/src/org/kiwix/kiwixmobile/views/web/KiwixWebView.java
index 4b2c53d7a..980f75391 100644
--- a/src/org/kiwix/kiwixmobile/views/web/KiwixWebView.java
+++ b/src/org/kiwix/kiwixmobile/views/web/KiwixWebView.java
@@ -19,8 +19,6 @@
package org.kiwix.kiwixmobile.views.web;
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.ColorMatrixColorFilter;
@@ -30,27 +28,25 @@ import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.preference.PreferenceManager;
-import android.support.v7.widget.Toolbar;
+import android.util.AttributeSet;
import android.util.Log;
import android.view.ContextMenu;
-import android.view.Gravity;
import android.view.MenuItem;
-import android.view.MotionEvent;
import android.view.View;
-import android.view.ViewTreeObserver;
import android.webkit.WebView;
import android.widget.Toast;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
+
import org.kiwix.kiwixmobile.KiwixMobileActivity;
import org.kiwix.kiwixmobile.KiwixWebChromeClient;
import org.kiwix.kiwixmobile.KiwixWebViewClient;
import org.kiwix.kiwixmobile.R;
import org.kiwix.kiwixmobile.WebViewCallback;
-import org.kiwix.kiwixmobile.utils.DimenUtils;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
public class KiwixWebView extends WebView {
@@ -126,8 +122,8 @@ public class KiwixWebView extends WebView {
}
};
- public KiwixWebView(Context context, WebViewCallback callback) {
- super(context);
+ public KiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs) {
+ super(context, attrs);
this.callback = callback;
setWebViewClient(new KiwixWebViewClient(callback));
setWebChromeClient(new KiwixWebChromeClient(callback));
@@ -207,5 +203,7 @@ public class KiwixWebView extends WebView {
getSettings().setBuiltInZoomControls(true);
getSettings().setDisplayZoomControls(false);
}
+
+
}
diff --git a/src/org/kiwix/kiwixmobile/views/web/ToolbarScrollingKiwixWebView.java b/src/org/kiwix/kiwixmobile/views/web/ToolbarScrollingKiwixWebView.java
index dee4f5a28..ef8e97b11 100644
--- a/src/org/kiwix/kiwixmobile/views/web/ToolbarScrollingKiwixWebView.java
+++ b/src/org/kiwix/kiwixmobile/views/web/ToolbarScrollingKiwixWebView.java
@@ -20,6 +20,7 @@
package org.kiwix.kiwixmobile.views.web;
import android.content.Context;
+import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
@@ -35,8 +36,8 @@ public class ToolbarScrollingKiwixWebView extends KiwixWebView {
private OnToolbarVisibilityChangeListener listener;
private float startY;
- public ToolbarScrollingKiwixWebView(Context context, WebViewCallback callback, View toolbarView) {
- super(context, callback);
+ public ToolbarScrollingKiwixWebView(Context context, WebViewCallback callback, View toolbarView, AttributeSet attrs) {
+ super(context, callback, attrs);
this.toolbarView = toolbarView;
}
diff --git a/src/org/kiwix/kiwixmobile/views/web/ToolbarStaticKiwixWebView.java b/src/org/kiwix/kiwixmobile/views/web/ToolbarStaticKiwixWebView.java
index 48c06523a..60a8966fa 100644
--- a/src/org/kiwix/kiwixmobile/views/web/ToolbarStaticKiwixWebView.java
+++ b/src/org/kiwix/kiwixmobile/views/web/ToolbarStaticKiwixWebView.java
@@ -1,6 +1,7 @@
package org.kiwix.kiwixmobile.views.web;
import android.content.Context;
+import android.util.AttributeSet;
import android.view.ViewGroup;
import org.kiwix.kiwixmobile.KiwixMobileActivity;
@@ -17,8 +18,8 @@ public class ToolbarStaticKiwixWebView extends KiwixWebView {
private int statusBarHeight;
private ViewGroup viewGroup;
- public ToolbarStaticKiwixWebView(Context context, WebViewCallback callback, ViewGroup toolbarLayout) {
- super(context, callback);
+ public ToolbarStaticKiwixWebView(Context context, WebViewCallback callback, ViewGroup toolbarLayout, AttributeSet attrs) {
+ super(context, callback, attrs);
statusBarHeight = DimenUtils.getTranslucentStatusBarHeight(context);
viewGroup = toolbarLayout;
viewGroup.setTranslationY(statusBarHeight);