mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-08-03 18:56:44 -04:00
Fullscreen fix #353
This commit is contained in:
parent
1c736ee33b
commit
8aa0fa391d
@ -575,6 +575,25 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
|
|||||||
getCurrentWebView().loadUrl("javascript:(" + documentParserJs + ")()");
|
getCurrentWebView().loadUrl("javascript:(" + documentParserJs + ")()");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void shrinkDrawers() {
|
||||||
|
ViewGroup.MarginLayoutParams leftLayoutMargins = (ViewGroup.MarginLayoutParams) tabDrawerLeftContainer.getLayoutParams(),
|
||||||
|
rightLayoutMargins = (ViewGroup.MarginLayoutParams) tableDrawerRightContainer.getLayoutParams();
|
||||||
|
|
||||||
|
leftLayoutMargins.topMargin = DimenUtils.getToolbarHeight(KiwixMobileActivity.this);
|
||||||
|
rightLayoutMargins.topMargin = DimenUtils.getToolbarHeight(KiwixMobileActivity.this);
|
||||||
|
tabDrawerLeftContainer.setLayoutParams(leftLayoutMargins);
|
||||||
|
tableDrawerRightContainer.setLayoutParams(rightLayoutMargins);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void expandDrawers() {
|
||||||
|
ViewGroup.MarginLayoutParams leftLayoutMargins = (ViewGroup.MarginLayoutParams) tabDrawerLeftContainer.getLayoutParams(),
|
||||||
|
rightLayoutMargins = (ViewGroup.MarginLayoutParams) tableDrawerRightContainer.getLayoutParams();
|
||||||
|
leftLayoutMargins.topMargin = 0;
|
||||||
|
rightLayoutMargins.topMargin = 0;
|
||||||
|
tabDrawerLeftContainer.setLayoutParams(leftLayoutMargins);
|
||||||
|
tableDrawerRightContainer.setLayoutParams(rightLayoutMargins);
|
||||||
|
}
|
||||||
|
|
||||||
private KiwixWebView getWebView(String url) {
|
private KiwixWebView getWebView(String url) {
|
||||||
KiwixWebView webView;
|
KiwixWebView webView;
|
||||||
if (isHideToolbar) {
|
if (isHideToolbar) {
|
||||||
@ -583,23 +602,12 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
|
|||||||
new ToolbarScrollingKiwixWebView.OnToolbarVisibilityChangeListener() {
|
new ToolbarScrollingKiwixWebView.OnToolbarVisibilityChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onToolbarDisplayed() {
|
public void onToolbarDisplayed() {
|
||||||
ViewGroup.MarginLayoutParams leftLayoutMargins = (ViewGroup.MarginLayoutParams) tabDrawerLeftContainer.getLayoutParams(),
|
shrinkDrawers();
|
||||||
rightLayoutMargins = (ViewGroup.MarginLayoutParams) tableDrawerRightContainer.getLayoutParams();
|
|
||||||
|
|
||||||
leftLayoutMargins.topMargin = DimenUtils.getToolbarHeight(KiwixMobileActivity.this);
|
|
||||||
rightLayoutMargins.topMargin = DimenUtils.getToolbarHeight(KiwixMobileActivity.this);
|
|
||||||
tabDrawerLeftContainer.setLayoutParams(leftLayoutMargins);
|
|
||||||
tableDrawerRightContainer.setLayoutParams(rightLayoutMargins);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onToolbarHidden() {
|
public void onToolbarHidden() {
|
||||||
ViewGroup.MarginLayoutParams leftLayoutMargins = (ViewGroup.MarginLayoutParams) tabDrawerLeftContainer.getLayoutParams(),
|
expandDrawers();
|
||||||
rightLayoutMargins = (ViewGroup.MarginLayoutParams) tableDrawerRightContainer.getLayoutParams();
|
|
||||||
leftLayoutMargins.topMargin = 0;
|
|
||||||
rightLayoutMargins.topMargin = 0;
|
|
||||||
tabDrawerLeftContainer.setLayoutParams(leftLayoutMargins);
|
|
||||||
tableDrawerRightContainer.setLayoutParams(rightLayoutMargins);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -783,10 +791,6 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
|
|||||||
|
|
||||||
toolbarContainer.setVisibility(View.GONE);
|
toolbarContainer.setVisibility(View.GONE);
|
||||||
exitFullscreenButton.setVisibility(View.VISIBLE);
|
exitFullscreenButton.setVisibility(View.VISIBLE);
|
||||||
if (menu != null) {
|
|
||||||
menu.findItem(R.id.menu_fullscreen)
|
|
||||||
.setTitle(getResources().getString(R.string.menu_exitfullscreen));
|
|
||||||
}
|
|
||||||
int fullScreenFlag = WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
int fullScreenFlag = WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
||||||
int classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
|
int classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
|
||||||
getWindow().addFlags(fullScreenFlag);
|
getWindow().addFlags(fullScreenFlag);
|
||||||
@ -795,15 +799,13 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
|
|||||||
SharedPreferences.Editor editor = settings.edit();
|
SharedPreferences.Editor editor = settings.edit();
|
||||||
editor.putBoolean(PREF_FULLSCREEN, true);
|
editor.putBoolean(PREF_FULLSCREEN, true);
|
||||||
editor.apply();
|
editor.apply();
|
||||||
|
expandDrawers();
|
||||||
isFullscreenOpened = true;
|
isFullscreenOpened = true;
|
||||||
|
getCurrentWebView().requestLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void closeFullScreen() {
|
private void closeFullScreen() {
|
||||||
toolbarContainer.setVisibility(View.VISIBLE);
|
toolbarContainer.setVisibility(View.VISIBLE);
|
||||||
if (menu != null) {
|
|
||||||
menu.findItem(R.id.menu_fullscreen)
|
|
||||||
.setTitle(getResources().getString(R.string.menu_fullscreen));
|
|
||||||
}
|
|
||||||
exitFullscreenButton.setVisibility(View.INVISIBLE);
|
exitFullscreenButton.setVisibility(View.INVISIBLE);
|
||||||
int fullScreenFlag = WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
int fullScreenFlag = WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
||||||
int classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
|
int classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
|
||||||
@ -813,7 +815,9 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
|
|||||||
SharedPreferences.Editor editor = settings.edit();
|
SharedPreferences.Editor editor = settings.edit();
|
||||||
editor.putBoolean(PREF_FULLSCREEN, false);
|
editor.putBoolean(PREF_FULLSCREEN, false);
|
||||||
editor.apply();
|
editor.apply();
|
||||||
|
shrinkDrawers();
|
||||||
isFullscreenOpened = false;
|
isFullscreenOpened = false;
|
||||||
|
getCurrentWebView().requestLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showHelpPage() {
|
public void showHelpPage() {
|
||||||
@ -924,11 +928,6 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
|
|||||||
menu.findItem(R.id.menu_randomarticle).setVisible(true);
|
menu.findItem(R.id.menu_randomarticle).setVisible(true);
|
||||||
menu.findItem(R.id.menu_searchintext).setVisible(true);
|
menu.findItem(R.id.menu_searchintext).setVisible(true);
|
||||||
|
|
||||||
if (isFullscreenOpened) {
|
|
||||||
menu.findItem(R.id.menu_fullscreen)
|
|
||||||
.setTitle(getResources().getString(R.string.menu_exitfullscreen));
|
|
||||||
}
|
|
||||||
|
|
||||||
MenuItem searchItem = menu.findItem(R.id.menu_search);
|
MenuItem searchItem = menu.findItem(R.id.menu_search);
|
||||||
searchItem.setVisible(true);
|
searchItem.setVisible(true);
|
||||||
final String zimFile = ZimContentProvider.getZimFile();
|
final String zimFile = ZimContentProvider.getZimFile();
|
||||||
|
@ -3,6 +3,7 @@ package org.kiwix.kiwixmobile.views.web;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import org.kiwix.kiwixmobile.KiwixMobileActivity;
|
||||||
import org.kiwix.kiwixmobile.WebViewCallback;
|
import org.kiwix.kiwixmobile.WebViewCallback;
|
||||||
import org.kiwix.kiwixmobile.utils.DimenUtils;
|
import org.kiwix.kiwixmobile.utils.DimenUtils;
|
||||||
|
|
||||||
@ -13,16 +14,26 @@ import org.kiwix.kiwixmobile.utils.DimenUtils;
|
|||||||
public class ToolbarStaticKiwixWebView extends KiwixWebView {
|
public class ToolbarStaticKiwixWebView extends KiwixWebView {
|
||||||
|
|
||||||
private int heightDifference;
|
private int heightDifference;
|
||||||
|
private int statusBarHeight;
|
||||||
|
private ViewGroup viewGroup;
|
||||||
|
|
||||||
public ToolbarStaticKiwixWebView(Context context, WebViewCallback callback, ViewGroup toolbarLayout) {
|
public ToolbarStaticKiwixWebView(Context context, WebViewCallback callback, ViewGroup toolbarLayout) {
|
||||||
super(context, callback);
|
super(context, callback);
|
||||||
toolbarLayout.setTranslationY(DimenUtils.getTranslucentStatusBarHeight(context));
|
statusBarHeight = DimenUtils.getTranslucentStatusBarHeight(context);
|
||||||
|
viewGroup = toolbarLayout;
|
||||||
|
viewGroup.setTranslationY(statusBarHeight);
|
||||||
heightDifference = DimenUtils.getToolbarAndStatusBarHeight(context);
|
heightDifference = DimenUtils.getToolbarAndStatusBarHeight(context);
|
||||||
setTranslationY(heightDifference);
|
setTranslationY(heightDifference);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||||
super.onMeasure(widthMeasureSpec, heightMeasureSpec - heightDifference);
|
if ((KiwixMobileActivity.isFullscreenOpened)) {
|
||||||
|
setTranslationY(0);
|
||||||
|
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||||
|
} else {
|
||||||
|
setTranslationY(heightDifference);
|
||||||
|
super.onMeasure(widthMeasureSpec, heightMeasureSpec - heightDifference);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user