diff --git a/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java b/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java index c5ecf5006..e5715102a 100644 --- a/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java +++ b/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java @@ -575,6 +575,25 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal 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) { KiwixWebView webView; if (isHideToolbar) { @@ -583,23 +602,12 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal new ToolbarScrollingKiwixWebView.OnToolbarVisibilityChangeListener() { @Override public void onToolbarDisplayed() { - 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); + shrinkDrawers(); } @Override public void onToolbarHidden() { - ViewGroup.MarginLayoutParams leftLayoutMargins = (ViewGroup.MarginLayoutParams) tabDrawerLeftContainer.getLayoutParams(), - rightLayoutMargins = (ViewGroup.MarginLayoutParams) tableDrawerRightContainer.getLayoutParams(); - leftLayoutMargins.topMargin = 0; - rightLayoutMargins.topMargin = 0; - tabDrawerLeftContainer.setLayoutParams(leftLayoutMargins); - tableDrawerRightContainer.setLayoutParams(rightLayoutMargins); + expandDrawers(); } } ); @@ -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(); diff --git a/src/org/kiwix/kiwixmobile/views/web/ToolbarStaticKiwixWebView.java b/src/org/kiwix/kiwixmobile/views/web/ToolbarStaticKiwixWebView.java index 308d29dd6..48c06523a 100644 --- a/src/org/kiwix/kiwixmobile/views/web/ToolbarStaticKiwixWebView.java +++ b/src/org/kiwix/kiwixmobile/views/web/ToolbarStaticKiwixWebView.java @@ -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) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec - heightDifference); + if ((KiwixMobileActivity.isFullscreenOpened)) { + setTranslationY(0); + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } else { + setTranslationY(heightDifference); + super.onMeasure(widthMeasureSpec, heightMeasureSpec - heightDifference); + } } }