mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-08-03 10:46:53 -04:00
Change style of webview scrollbar to fix visibility #17
This solution is rather hacky but it was the best that I could come up with that allowed for the use of an XML attribute and a constructor.
This commit is contained in:
parent
c8bbf07881
commit
e1abe7cbd1
6
res/drawable/scrollbar_handle_vertical.xml
Normal file
6
res/drawable/scrollbar_handle_vertical.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<gradient android:startColor="#885a5a5a" android:endColor="#885a5a5a"
|
||||
android:angle="0"/>
|
||||
</shape>
|
8
res/xml/webview.xml
Normal file
8
res/xml/webview.xml
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<org.kiwix.kiwixmobile.views.web.KiwixWebView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scrollbarThumbVertical="@drawable/scrollbar_handle_vertical"
|
||||
android:scrollbarSize="15px"
|
||||
/>
|
@ -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();
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user