Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.4.0
-
None
-
None
-
Likely affects all pre-Jelly Bean Android devices. Tested on Android 4.0.4 with a Samsung Galaxy phone (Samsung-SGH-I437).
-
Patch
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:
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) {
Attachments
Issue Links
- links to