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);