Fixed bug where rotating device caused webview height to be incorrect
This commit is contained in:
parent
9ea98e13ad
commit
e0ace14029
@ -5,7 +5,6 @@
|
|||||||
package acr.browser.lightning.activity;
|
package acr.browser.lightning.activity;
|
||||||
|
|
||||||
import android.animation.ArgbEvaluator;
|
import android.animation.ArgbEvaluator;
|
||||||
import android.animation.LayoutTransition;
|
|
||||||
import android.animation.ValueAnimator;
|
import android.animation.ValueAnimator;
|
||||||
import android.animation.ValueAnimator.AnimatorUpdateListener;
|
import android.animation.ValueAnimator.AnimatorUpdateListener;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@ -132,6 +131,9 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
|
|||||||
private static final String INTENT_PANIC_TRIGGER = "info.guardianproject.panic.action.TRIGGER";
|
private static final String INTENT_PANIC_TRIGGER = "info.guardianproject.panic.action.TRIGGER";
|
||||||
|
|
||||||
// Static Layout
|
// Static Layout
|
||||||
|
@Bind(R.id.main_layout)
|
||||||
|
View mRootLayout;
|
||||||
|
|
||||||
@Bind(R.id.drawer_layout)
|
@Bind(R.id.drawer_layout)
|
||||||
DrawerLayout mDrawerLayout;
|
DrawerLayout mDrawerLayout;
|
||||||
|
|
||||||
@ -1031,23 +1033,31 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConfigurationChanged(Configuration newConfig) {
|
public void onConfigurationChanged(final Configuration newConfig) {
|
||||||
super.onConfigurationChanged(newConfig);
|
super.onConfigurationChanged(newConfig);
|
||||||
int toolbarSize;
|
|
||||||
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
|
|
||||||
toolbarSize = Utils.dpToPx(56);
|
|
||||||
} else {
|
|
||||||
toolbarSize = Utils.dpToPx(48);
|
|
||||||
}
|
|
||||||
mToolbar.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, toolbarSize));
|
|
||||||
mToolbar.setMinimumHeight(toolbarSize);
|
|
||||||
mToolbar.requestLayout();
|
|
||||||
|
|
||||||
if (mFullScreen) {
|
if (mFullScreen) {
|
||||||
showActionBar();
|
showActionBar();
|
||||||
mBrowserFrame.setTranslationY(0);
|
mBrowserFrame.setTranslationY(0);
|
||||||
mToolbarLayout.setTranslationY(0);
|
mToolbarLayout.setTranslationY(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
initializeTabHeight();
|
||||||
|
|
||||||
|
doOnLayout(mRootLayout, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
int toolbarSize;
|
||||||
|
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
|
||||||
|
toolbarSize = Utils.dpToPx(56);
|
||||||
|
} else {
|
||||||
|
toolbarSize = Utils.dpToPx(48);
|
||||||
|
}
|
||||||
|
mToolbar.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, toolbarSize));
|
||||||
|
mToolbar.setMinimumHeight(toolbarSize);
|
||||||
|
mToolbar.requestLayout();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void closeBrowser() {
|
public void closeBrowser() {
|
||||||
@ -1798,28 +1808,35 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initializeTabHeight() {
|
private void initializeTabHeight() {
|
||||||
mUiLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
doOnLayout(mRootLayout, new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void onGlobalLayout() {
|
public void run() {
|
||||||
setTabHeight();
|
setTabHeight();
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
|
|
||||||
mUiLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
|
|
||||||
} else {
|
|
||||||
mUiLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void doOnLayout(@NonNull final View view, @NonNull final Runnable runnable) {
|
||||||
|
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||||
|
@Override
|
||||||
|
public void onGlobalLayout() {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||||
|
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||||
|
} else {
|
||||||
|
view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
|
||||||
|
}
|
||||||
|
runnable.run();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setTabHeight() {
|
private void setTabHeight() {
|
||||||
if (mUiLayout.getHeight() == 0) {
|
if (mRootLayout.getHeight() == 0) {
|
||||||
mUiLayout.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
|
mRootLayout.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mFullScreen) {
|
if (mFullScreen) {
|
||||||
mBrowserFrame.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, mUiLayout.getHeight()));
|
mBrowserFrame.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, mRootLayout.getHeight()));
|
||||||
} else {
|
} else {
|
||||||
mBrowserFrame.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
|
mBrowserFrame.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user