diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 0f9b9ab..7b68d0c 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -3,8 +3,8 @@ + android:versionCode="70" + android:versionName="4.0.2a" > diff --git a/src/acr/browser/lightning/AnimatedProgressBar.java b/src/acr/browser/lightning/AnimatedProgressBar.java index f87a70e..102f2c4 100644 --- a/src/acr/browser/lightning/AnimatedProgressBar.java +++ b/src/acr/browser/lightning/AnimatedProgressBar.java @@ -61,7 +61,7 @@ public class AnimatedProgressBar extends LinearLayout { * @param attrs is the attribute set passed by the constructor */ private void init(final Context context, AttributeSet attrs) { - + this.setLayerType(LAYER_TYPE_HARDWARE, null); TypedArray array = context.getTheme().obtainStyledAttributes(attrs, R.styleable.AnimatedProgressBar, 0, 0); int backgroundColor; int progressColor; diff --git a/src/acr/browser/lightning/BrowserActivity.java b/src/acr/browser/lightning/BrowserActivity.java index ee15db4..d70c050 100644 --- a/src/acr/browser/lightning/BrowserActivity.java +++ b/src/acr/browser/lightning/BrowserActivity.java @@ -1185,7 +1185,7 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl } } - protected synchronized void newTab(String url, boolean show) { + protected synchronized boolean newTab(String url, boolean show) { mIsNewIntent = false; LightningView startingTab = new LightningView(mActivity, url); if (mIdGenerator == 0) { @@ -1199,6 +1199,7 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl mDrawerListLeft.setItemChecked(mWebViews.size() - 1, true); showTab(startingTab); } + return true; } private synchronized void deleteTab(int position) { @@ -1594,7 +1595,7 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl filter = new ColorMatrixColorFilter(colorMatrix); paint.setColorFilter(filter); } - + c.drawBitmap(favicon, 0, 0, paint); holder.favicon.setImageBitmap(grayscaleBitmap); } @@ -2064,8 +2065,8 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl Message click = mClickHandler.obtainMessage(); if (click != null) { click.setTarget(mClickHandler); + mCurrentView.getWebView().requestFocusNodeHref(click); } - mCurrentView.getWebView().requestFocusNodeHref(click); } @Override @@ -2077,7 +2078,11 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl callback.onCustomViewHidden(); return; } - view.setKeepScreenOn(true); + try{ + view.setKeepScreenOn(true); + } catch (SecurityException e){ + Log.e(Constants.TAG, "WebView is not allowed to keep the screen on"); + } mOriginalOrientation = getRequestedOrientation(); FrameLayout decor = (FrameLayout) getWindow().getDecorView(); mFullscreenContainer = new FullscreenHolder(this); @@ -2103,7 +2108,11 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl } Log.d(Constants.TAG, "onHideCustomView"); mCurrentView.setVisibility(View.VISIBLE); - mCustomView.setKeepScreenOn(false); + try{ + mCustomView.setKeepScreenOn(false); + } catch (SecurityException e){ + Log.e(Constants.TAG, "WebView is not allowed to keep the screen on"); + } setFullscreen(mPreferences.getBoolean(PreferenceConstants.HIDE_STATUS_BAR, false)); FrameLayout decor = (FrameLayout) getWindow().getDecorView(); if (decor != null) { @@ -2217,10 +2226,11 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl if (resultMsg == null) { return; } - newTab("", true); - WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj; - transport.setWebView(mCurrentView.getWebView()); - resultMsg.sendToTarget(); + if (newTab("", true)) { + WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj; + transport.setWebView(mCurrentView.getWebView()); + resultMsg.sendToTarget(); + } } @Override diff --git a/src/acr/browser/lightning/LightningView.java b/src/acr/browser/lightning/LightningView.java index 31951b9..e2ada31 100644 --- a/src/acr/browser/lightning/LightningView.java +++ b/src/acr/browser/lightning/LightningView.java @@ -329,7 +329,13 @@ public class LightningView { mTextReflow = true; mSettings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); if (API >= android.os.Build.VERSION_CODES.KITKAT) { - mSettings.setLayoutAlgorithm(LayoutAlgorithm.TEXT_AUTOSIZING); + try { + mSettings.setLayoutAlgorithm(LayoutAlgorithm.TEXT_AUTOSIZING); + } catch (Exception e) { + // This shouldn't be necessary, but there are a number + // of KitKat devices that crash trying to set this + Log.e(Constants.TAG, "Problem setting LayoutAlgorithm to TEXT_AUTOSIZING"); + } } } else { mTextReflow = false;