Fullscreen fix #353

This commit is contained in:
mhutti1 2017-02-06 22:34:15 +00:00
parent 1c736ee33b
commit 8aa0fa391d
2 changed files with 38 additions and 28 deletions

View File

@ -575,14 +575,7 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
getCurrentWebView().loadUrl("javascript:(" + documentParserJs + ")()");
}
private KiwixWebView getWebView(String url) {
KiwixWebView webView;
if (isHideToolbar) {
webView = new ToolbarScrollingKiwixWebView(KiwixMobileActivity.this, this, toolbarContainer);
((ToolbarScrollingKiwixWebView) webView).setOnToolbarVisibilityChangeListener(
new ToolbarScrollingKiwixWebView.OnToolbarVisibilityChangeListener() {
@Override
public void onToolbarDisplayed() {
private void shrinkDrawers() {
ViewGroup.MarginLayoutParams leftLayoutMargins = (ViewGroup.MarginLayoutParams) tabDrawerLeftContainer.getLayoutParams(),
rightLayoutMargins = (ViewGroup.MarginLayoutParams) tableDrawerRightContainer.getLayoutParams();
@ -592,8 +585,7 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
tableDrawerRightContainer.setLayoutParams(rightLayoutMargins);
}
@Override
public void onToolbarHidden() {
private void expandDrawers() {
ViewGroup.MarginLayoutParams leftLayoutMargins = (ViewGroup.MarginLayoutParams) tabDrawerLeftContainer.getLayoutParams(),
rightLayoutMargins = (ViewGroup.MarginLayoutParams) tableDrawerRightContainer.getLayoutParams();
leftLayoutMargins.topMargin = 0;
@ -601,6 +593,22 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
tabDrawerLeftContainer.setLayoutParams(leftLayoutMargins);
tableDrawerRightContainer.setLayoutParams(rightLayoutMargins);
}
private KiwixWebView getWebView(String url) {
KiwixWebView webView;
if (isHideToolbar) {
webView = new ToolbarScrollingKiwixWebView(KiwixMobileActivity.this, this, toolbarContainer);
((ToolbarScrollingKiwixWebView) webView).setOnToolbarVisibilityChangeListener(
new ToolbarScrollingKiwixWebView.OnToolbarVisibilityChangeListener() {
@Override
public void onToolbarDisplayed() {
shrinkDrawers();
}
@Override
public void onToolbarHidden() {
expandDrawers();
}
}
);
} else {
@ -783,10 +791,6 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
toolbarContainer.setVisibility(View.GONE);
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 classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
getWindow().addFlags(fullScreenFlag);
@ -795,15 +799,13 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean(PREF_FULLSCREEN, true);
editor.apply();
expandDrawers();
isFullscreenOpened = true;
getCurrentWebView().requestLayout();
}
private void closeFullScreen() {
toolbarContainer.setVisibility(View.VISIBLE);
if (menu != null) {
menu.findItem(R.id.menu_fullscreen)
.setTitle(getResources().getString(R.string.menu_fullscreen));
}
exitFullscreenButton.setVisibility(View.INVISIBLE);
int fullScreenFlag = WindowManager.LayoutParams.FLAG_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();
editor.putBoolean(PREF_FULLSCREEN, false);
editor.apply();
shrinkDrawers();
isFullscreenOpened = false;
getCurrentWebView().requestLayout();
}
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_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);
searchItem.setVisible(true);
final String zimFile = ZimContentProvider.getZimFile();

View File

@ -3,6 +3,7 @@ package org.kiwix.kiwixmobile.views.web;
import android.content.Context;
import android.view.ViewGroup;
import org.kiwix.kiwixmobile.KiwixMobileActivity;
import org.kiwix.kiwixmobile.WebViewCallback;
import org.kiwix.kiwixmobile.utils.DimenUtils;
@ -13,16 +14,26 @@ import org.kiwix.kiwixmobile.utils.DimenUtils;
public class ToolbarStaticKiwixWebView extends KiwixWebView {
private int heightDifference;
private int statusBarHeight;
private ViewGroup viewGroup;
public ToolbarStaticKiwixWebView(Context context, WebViewCallback callback, ViewGroup toolbarLayout) {
super(context, callback);
toolbarLayout.setTranslationY(DimenUtils.getTranslucentStatusBarHeight(context));
statusBarHeight = DimenUtils.getTranslucentStatusBarHeight(context);
viewGroup = toolbarLayout;
viewGroup.setTranslationY(statusBarHeight);
heightDifference = DimenUtils.getToolbarAndStatusBarHeight(context);
setTranslationY(heightDifference);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if ((KiwixMobileActivity.isFullscreenOpened)) {
setTranslationY(0);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
} else {
setTranslationY(heightDifference);
super.onMeasure(widthMeasureSpec, heightMeasureSpec - heightDifference);
}
}
}