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

View File

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