You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Andrew (JIRA)" <ji...@apache.org> on 2016/07/14 15:00:24 UTC
[jira] [Updated] (CB-11578) InAppBrowser doesn't open on Android
4.0.4 (regression)
[ https://issues.apache.org/jira/browse/CB-11578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew updated CB-11578:
------------------------
Description:
Some changes made as part of the 1.4.0 release prevent the InAppBrowser from opening on my Android 4.0.4 test device. I traced the problem to some code that appears to have been refactored/removed when it shouldn't have been (setBackground/setBackgroundDrawable calls) and a call to getAdjustViewBounds which doesn't appear to serve any purpose but it is a method that was only made available at API level 16 (Jelly Bean).
I made the following changes to the latest code in the repository to fix this problem:
{noformat}
diff --git a/src/android/InAppBrowser.java b/src/android/InAppBrowser.java
index 30915dc..f1e8222 100644
--- a/src/android/InAppBrowser.java
+++ b/src/android/InAppBrowser.java
@@ -579,11 +579,18 @@ public class InAppBrowser extends CordovaPlugin {
Resources activityRes = cordova.getActivity().getResources();
int backResId = activityRes.getIdentifier("ic_action_previous_item", "drawable", cordova.getActivity().getPackageName());
Drawable backIcon = activityRes.getDrawable(backResId);
- back.setBackground(null);
+
+ if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN)
+ {
+ back.setBackgroundDrawable(null);
+ }
+ else
+ {
+ back.setBackground(null);
+ }
back.setImageDrawable(backIcon);
back.setScaleType(ImageView.ScaleType.FIT_CENTER);
back.setPadding(0, this.dpToPixels(10), 0, this.dpToPixels(10));
- back.getAdjustViewBounds();
back.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
@@ -600,11 +607,18 @@ public class InAppBrowser extends CordovaPlugin {
forward.setId(Integer.valueOf(3));
int fwdResId = activityRes.getIdentifier("ic_action_next_item", "drawable", cordova.getActivity().getPackageName());
Drawable fwdIcon = activityRes.getDrawable(fwdResId);
- forward.setBackground(null);
+
+ if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN)
+ {
+ forward.setBackgroundDrawable(null);
+ }
+ else
+ {
+ forward.setBackground(null);
+ }
forward.setImageDrawable(fwdIcon);
forward.setScaleType(ImageView.ScaleType.FIT_CENTER);
forward.setPadding(0, this.dpToPixels(10), 0, this.dpToPixels(10));
- forward.getAdjustViewBounds();
forward.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
@@ -644,11 +658,18 @@ public class InAppBrowser extends CordovaPlugin {
close.setId(Integer.valueOf(5));
int closeResId = activityRes.getIdentifier("ic_action_remove", "drawable", cordova.getActivity().getPackageName());
Drawable closeIcon = activityRes.getDrawable(closeResId);
- close.setBackground(null);
+
+ if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN)
+ {
+ close.setBackgroundDrawable(null);
+ }
+ else
+ {
+ close.setBackground(null);
+ }
close.setImageDrawable(closeIcon);
close.setScaleType(ImageView.ScaleType.FIT_CENTER);
back.setPadding(0, this.dpToPixels(10), 0, this.dpToPixels(10));
- close.getAdjustViewBounds();
close.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
{noformat}
was:
Some changes made as part of the 1.4.0 release prevent the InAppBrowser from opening on my Android 4.0.4 test device. I traced the problem to some code that appears to have been refactored/removed when it shouldn't have been (setBackground/setBackgroundDrawable calls) and a call to getAdjustViewBounds which doesn't appear to serve any purpose but it is a method that was only made available at API level 16 (Jelly Bean).
I made the following changes to the latest code in the repository to fix this problem:
diff --git a/src/android/InAppBrowser.java b/src/android/InAppBrowser.java
index 30915dc..f1e8222 100644
--- a/src/android/InAppBrowser.java
+++ b/src/android/InAppBrowser.java
@@ -579,11 +579,18 @@ public class InAppBrowser extends CordovaPlugin {
Resources activityRes = cordova.getActivity().getResources();
int backResId = activityRes.getIdentifier("ic_action_previous_item", "drawable", cordova.getActivity().getPackageName());
Drawable backIcon = activityRes.getDrawable(backResId);
- back.setBackground(null);
+
+ if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN)
+ {
+ back.setBackgroundDrawable(null);
+ }
+ else
+ {
+ back.setBackground(null);
+ }
back.setImageDrawable(backIcon);
back.setScaleType(ImageView.ScaleType.FIT_CENTER);
back.setPadding(0, this.dpToPixels(10), 0, this.dpToPixels(10));
- back.getAdjustViewBounds();
back.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
@@ -600,11 +607,18 @@ public class InAppBrowser extends CordovaPlugin {
forward.setId(Integer.valueOf(3));
int fwdResId = activityRes.getIdentifier("ic_action_next_item", "drawable", cordova.getActivity().getPackageName());
Drawable fwdIcon = activityRes.getDrawable(fwdResId);
- forward.setBackground(null);
+
+ if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN)
+ {
+ forward.setBackgroundDrawable(null);
+ }
+ else
+ {
+ forward.setBackground(null);
+ }
forward.setImageDrawable(fwdIcon);
forward.setScaleType(ImageView.ScaleType.FIT_CENTER);
forward.setPadding(0, this.dpToPixels(10), 0, this.dpToPixels(10));
- forward.getAdjustViewBounds();
forward.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
@@ -644,11 +658,18 @@ public class InAppBrowser extends CordovaPlugin {
close.setId(Integer.valueOf(5));
int closeResId = activityRes.getIdentifier("ic_action_remove", "drawable", cordova.getActivity().getPackageName());
Drawable closeIcon = activityRes.getDrawable(closeResId);
- close.setBackground(null);
+
+ if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN)
+ {
+ close.setBackgroundDrawable(null);
+ }
+ else
+ {
+ close.setBackground(null);
+ }
close.setImageDrawable(closeIcon);
close.setScaleType(ImageView.ScaleType.FIT_CENTER);
back.setPadding(0, this.dpToPixels(10), 0, this.dpToPixels(10));
- close.getAdjustViewBounds();
close.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
> InAppBrowser doesn't open on Android 4.0.4 (regression)
> -------------------------------------------------------
>
> Key: CB-11578
> URL: https://issues.apache.org/jira/browse/CB-11578
> Project: Apache Cordova
> Issue Type: Bug
> Components: Plugin InAppBrowser
> Affects Versions: 1.4.0
> Environment: Likely affects all pre-Jelly Bean Android devices. Tested on Android 4.0.4 with a Samsung Galaxy phone (Samsung-SGH-I437).
> Reporter: Andrew
>
> Some changes made as part of the 1.4.0 release prevent the InAppBrowser from opening on my Android 4.0.4 test device. I traced the problem to some code that appears to have been refactored/removed when it shouldn't have been (setBackground/setBackgroundDrawable calls) and a call to getAdjustViewBounds which doesn't appear to serve any purpose but it is a method that was only made available at API level 16 (Jelly Bean).
> I made the following changes to the latest code in the repository to fix this problem:
> {noformat}
> diff --git a/src/android/InAppBrowser.java b/src/android/InAppBrowser.java
> index 30915dc..f1e8222 100644
> --- a/src/android/InAppBrowser.java
> +++ b/src/android/InAppBrowser.java
> @@ -579,11 +579,18 @@ public class InAppBrowser extends CordovaPlugin {
> Resources activityRes = cordova.getActivity().getResources();
> int backResId = activityRes.getIdentifier("ic_action_previous_item", "drawable", cordova.getActivity().getPackageName());
> Drawable backIcon = activityRes.getDrawable(backResId);
> - back.setBackground(null);
> +
> + if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN)
> + {
> + back.setBackgroundDrawable(null);
> + }
> + else
> + {
> + back.setBackground(null);
> + }
> back.setImageDrawable(backIcon);
> back.setScaleType(ImageView.ScaleType.FIT_CENTER);
> back.setPadding(0, this.dpToPixels(10), 0, this.dpToPixels(10));
> - back.getAdjustViewBounds();
>
> back.setOnClickListener(new View.OnClickListener() {
> public void onClick(View v) {
> @@ -600,11 +607,18 @@ public class InAppBrowser extends CordovaPlugin {
> forward.setId(Integer.valueOf(3));
> int fwdResId = activityRes.getIdentifier("ic_action_next_item", "drawable", cordova.getActivity().getPackageName());
> Drawable fwdIcon = activityRes.getDrawable(fwdResId);
> - forward.setBackground(null);
> +
> + if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN)
> + {
> + forward.setBackgroundDrawable(null);
> + }
> + else
> + {
> + forward.setBackground(null);
> + }
> forward.setImageDrawable(fwdIcon);
> forward.setScaleType(ImageView.ScaleType.FIT_CENTER);
> forward.setPadding(0, this.dpToPixels(10), 0, this.dpToPixels(10));
> - forward.getAdjustViewBounds();
>
> forward.setOnClickListener(new View.OnClickListener() {
> public void onClick(View v) {
> @@ -644,11 +658,18 @@ public class InAppBrowser extends CordovaPlugin {
> close.setId(Integer.valueOf(5));
> int closeResId = activityRes.getIdentifier("ic_action_remove", "drawable", cordova.getActivity().getPackageName());
> Drawable closeIcon = activityRes.getDrawable(closeResId);
> - close.setBackground(null);
> +
> + if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN)
> + {
> + close.setBackgroundDrawable(null);
> + }
> + else
> + {
> + close.setBackground(null);
> + }
> close.setImageDrawable(closeIcon);
> close.setScaleType(ImageView.ScaleType.FIT_CENTER);
> back.setPadding(0, this.dpToPixels(10), 0, this.dpToPixels(10));
> - close.getAdjustViewBounds();
>
> close.setOnClickListener(new View.OnClickListener() {
> public void onClick(View v) {
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org