diff --git a/CodenameOne/src/com/codename1/components/AudioRecorderComponent.java b/CodenameOne/src/com/codename1/components/AudioRecorderComponent.java index 69bf947a50..31cbe7b533 100644 --- a/CodenameOne/src/com/codename1/components/AudioRecorderComponent.java +++ b/CodenameOne/src/com/codename1/components/AudioRecorderComponent.java @@ -140,10 +140,6 @@ public void actionPerformed(ActionEvent evt) { break; case Accepted: - removeAll(); - revalidateLater(); - break; - case Canceled: removeAll(); revalidateLater(); diff --git a/CodenameOne/src/com/codename1/facebook/FBObject.java b/CodenameOne/src/com/codename1/facebook/FBObject.java index 411c6c5dc1..b7f20a02a5 100644 --- a/CodenameOne/src/com/codename1/facebook/FBObject.java +++ b/CodenameOne/src/com/codename1/facebook/FBObject.java @@ -97,14 +97,24 @@ private void init(Hashtable props) { * {@inheritDoc} */ public boolean equals(Object obj) { - return id.equals(((FBObject) obj).id); + if (this == obj) { + return true; + } + if (!(obj instanceof FBObject)) { + return false; + } + FBObject other = (FBObject) obj; + if (id == null) { + return other.id == null; + } + return id.equals(other.id); } /** * {@inheritDoc} */ public int hashCode() { - return id.hashCode(); + return id != null ? id.hashCode() : 0; } diff --git a/CodenameOne/src/com/codename1/io/JSONParser.java b/CodenameOne/src/com/codename1/io/JSONParser.java index 589a5760b9..be7ca1fc17 100644 --- a/CodenameOne/src/com/codename1/io/JSONParser.java +++ b/CodenameOne/src/com/codename1/io/JSONParser.java @@ -683,15 +683,16 @@ public Map parseJSON(Reader i) throws IOException { */ public Hashtable parse(Reader i) throws IOException { modern = false; - state = new Hashtable(); - parseStack = new Vector(); + Hashtable legacyState = new Hashtable(); + state = legacyState; + parseStack = new Vector(); currentKey = null; if (!strict) { String cleaned = JSONSanitizer.sanitize(Util.readToString(i)); i = new CharArrayReader(cleaned.toCharArray()); } parse(i, this); - return (Hashtable) state; + return legacyState; } private boolean isStackHash() { diff --git a/CodenameOne/src/com/codename1/payment/Purchase.java b/CodenameOne/src/com/codename1/payment/Purchase.java index 7e231e5d3c..cd9747958a 100644 --- a/CodenameOne/src/com/codename1/payment/Purchase.java +++ b/CodenameOne/src/com/codename1/payment/Purchase.java @@ -54,6 +54,7 @@ public abstract class Purchase { private static final String RECEIPTS_REFRESH_TIME_KEY = "CN1SubscriptionsDataRefreshTime.dat"; private static final String PENDING_PURCHASE_KEY = "PendingPurchases.dat"; private static final Object synchronizationLock = new Object(); + private static final Object receiptsLock = new Object(); private static ReceiptStore receiptStore; private static List receipts; private static Date receiptsRefreshTime; @@ -131,7 +132,7 @@ public final void setReceiptStore(ReceiptStore store) { * @return List of receipts for purchases this app. */ public final List getReceipts() { - synchronized (RECEIPTS_KEY) { + synchronized (receiptsLock) { if (receipts == null) { if (Storage.getInstance().exists(RECEIPTS_KEY)) { Receipt.registerExternalizable(); @@ -157,7 +158,7 @@ public final List getReceipts() { * @param data */ private void setReceipts(List data) { - synchronized (RECEIPTS_KEY) { + synchronized (receiptsLock) { receipts = new ArrayList(); receipts.addAll(data); Storage.getInstance().writeObject(RECEIPTS_KEY, receipts); @@ -187,7 +188,7 @@ public final Receipt[] getReceipts(String... skus) { * @return */ private Date getReceiptsRefreshTime() { - synchronized (RECEIPTS_KEY) { + synchronized (receiptsLock) { if (receiptsRefreshTime == null) { if (Storage.getInstance().exists(RECEIPTS_REFRESH_TIME_KEY)) { receiptsRefreshTime = (Date) Storage.getInstance().readObject(RECEIPTS_REFRESH_TIME_KEY); @@ -205,7 +206,7 @@ private Date getReceiptsRefreshTime() { * @param time */ private void setReceiptsRefreshTime(Date time) { - synchronized (RECEIPTS_KEY) { + synchronized (receiptsLock) { receiptsRefreshTime = time; Storage.getInstance().writeObject(RECEIPTS_REFRESH_TIME_KEY, receiptsRefreshTime); } @@ -569,15 +570,16 @@ public void onSucess(Boolean value) { public void run() { - while (!complete[0]) { - synchronized (complete) { - try { - complete.wait(); - } catch (Exception ex) { - + while (!complete[0]) { + synchronized (complete) { + try { + complete.wait(); + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + return; + } } } - } } }); @@ -777,8 +779,9 @@ public void run() { synchronized (complete) { try { complete.wait(); - } catch (Exception ex) { - + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + return; } } } diff --git a/CodenameOne/src/com/codename1/processing/Result.java b/CodenameOne/src/com/codename1/processing/Result.java index 35a4b1df69..d5ebe8eb43 100644 --- a/CodenameOne/src/com/codename1/processing/Result.java +++ b/CodenameOne/src/com/codename1/processing/Result.java @@ -433,7 +433,7 @@ public long getAsLong(final String path) throws IllegalArgumentException { if (s == null) { return 0; } - return new Double(Double.parseDouble(s)).longValue(); + return (long) Double.parseDouble(s); } /** diff --git a/CodenameOne/src/com/codename1/properties/UiBinding.java b/CodenameOne/src/com/codename1/properties/UiBinding.java index 86a7367d66..da8fd09d9b 100644 --- a/CodenameOne/src/com/codename1/properties/UiBinding.java +++ b/CodenameOne/src/com/codename1/properties/UiBinding.java @@ -476,7 +476,7 @@ public Object convert(Object source) { return null; } if (source instanceof Boolean) { - return ((Boolean) source).booleanValue(); + return source; } if (source instanceof String) { String s = ((String) source).toLowerCase(); diff --git a/CodenameOne/src/com/codename1/push/PushBuilder.java b/CodenameOne/src/com/codename1/push/PushBuilder.java index 5a90351ac2..303ae2bebe 100644 --- a/CodenameOne/src/com/codename1/push/PushBuilder.java +++ b/CodenameOne/src/com/codename1/push/PushBuilder.java @@ -160,6 +160,7 @@ public String build() { switch (type) { case 0: case 1: + case 5: sb.append(body); break; case 2: @@ -171,11 +172,7 @@ public String build() { case 4: sb.append(title).append(";").append(body); break; - case 5: - sb.append(body); - break; case 6: - case 100: sb.append(badge); break; diff --git a/CodenameOne/src/com/codename1/ui/BrowserComponent.java b/CodenameOne/src/com/codename1/ui/BrowserComponent.java index 5689870f3f..488d231b7c 100644 --- a/CodenameOne/src/com/codename1/ui/BrowserComponent.java +++ b/CodenameOne/src/com/codename1/ui/BrowserComponent.java @@ -1797,7 +1797,7 @@ public JSType getJSType() { * @return */ public int getInt() { - return new Double(Double.parseDouble(value)).intValue(); + return (int) Double.parseDouble(value); } /** diff --git a/CodenameOne/src/com/codename1/ui/Component.java b/CodenameOne/src/com/codename1/ui/Component.java index b4cea2e01e..63142c4aa9 100644 --- a/CodenameOne/src/com/codename1/ui/Component.java +++ b/CodenameOne/src/com/codename1/ui/Component.java @@ -2602,11 +2602,6 @@ public void run() { switch (elevation) { case 1: - //drawShadow(g, img, relativeX, relativeY, 0, 1, 1, 0, 0, 0.14f); - //drawShadow(g, img, relativeX, relativeY, 0, 2, 1, -1, 0, 0.12f); - drawShadow(g, img, relativeX, relativeY, 0, 1, 3, 0, 0, 0.2f); - break; - case 2: //drawShadow(g, img, relativeX, relativeY, 0, 1, 1, 0, 0, 0.14f); //drawShadow(g, img, relativeX, relativeY, 0, 2, 1, -1, 0, 0.12f); diff --git a/CodenameOne/src/com/codename1/ui/Container.java b/CodenameOne/src/com/codename1/ui/Container.java index 3f056595f0..f4bf0e8212 100644 --- a/CodenameOne/src/com/codename1/ui/Container.java +++ b/CodenameOne/src/com/codename1/ui/Container.java @@ -2951,17 +2951,13 @@ public Component getComponentAt(int x, int y) { } else { // No children found here - if (top == null) { - if (cmp.respondsToPointerEvents() || !(cmp instanceof Container)) { - top = cmp; - } + if (top == null && cmp.respondsToPointerEvents()) { + top = cmp; } } } else { if (top == null) { - if (cmp.respondsToPointerEvents() || !(cmp instanceof Container)) { - top = cmp; - } + top = cmp; } } if (!overlaps) { diff --git a/CodenameOne/src/com/codename1/ui/Display.java b/CodenameOne/src/com/codename1/ui/Display.java index 0afb859162..4e568059ef 100644 --- a/CodenameOne/src/com/codename1/ui/Display.java +++ b/CodenameOne/src/com/codename1/ui/Display.java @@ -2579,7 +2579,7 @@ public int convertToPixels(float value, byte unitType, boolean horizontal) { case Style.UNIT_TYPE_VMIN: return Math.round(value / 100f * Math.min(CN.getDisplayWidth(), CN.getDisplayHeight())); case Style.UNIT_TYPE_VMAX: - return Math.round(value / 100f * Math.min(CN.getDisplayWidth(), CN.getDisplayHeight())); + return Math.round(value / 100f * Math.max(CN.getDisplayWidth(), CN.getDisplayHeight())); case Style.UNIT_TYPE_DIPS: return Display.getInstance().convertToPixels(value); case Style.UNIT_TYPE_SCREEN_PERCENTAGE: diff --git a/CodenameOne/src/com/codename1/ui/Font.java b/CodenameOne/src/com/codename1/ui/Font.java index 193b1bbd55..a863adff5f 100644 --- a/CodenameOne/src/com/codename1/ui/Font.java +++ b/CodenameOne/src/com/codename1/ui/Font.java @@ -595,14 +595,26 @@ public Object getNativeFont() { * {@inheritDoc} */ public boolean equals(Object o) { - if (ttf && o != null) { - return ((Font) o).font != null && ((Font) o).ttf && ((Font) o).font.equals(font); + if (this == o) { + return true; } - if (o != null && o.getClass() == getClass()) { - Font f = (Font) o; - return !f.ttf && f.getFace() == getFace() && f.getSize() == getSize() && f.getStyle() == getStyle(); + if (!(o instanceof Font)) { + return false; } - return false; + Font f = (Font) o; + if (ttf || f.ttf) { + if (!ttf || !f.ttf) { + return false; + } + if (font == null) { + return f.font == null; + } + return font.equals(f.font); + } + if (f.getClass() != getClass()) { + return false; + } + return f.getFace() == getFace() && f.getSize() == getSize() && f.getStyle() == getStyle(); } /** diff --git a/CodenameOne/src/com/codename1/ui/List.java b/CodenameOne/src/com/codename1/ui/List.java index ab4c7e5362..1e4b6ce247 100644 --- a/CodenameOne/src/com/codename1/ui/List.java +++ b/CodenameOne/src/com/codename1/ui/List.java @@ -1961,13 +1961,8 @@ private void pointerReleasedImpl(int x, int y, boolean isHover, boolean longPres } else { boolean vertical = getOrientation() == VERTICAL; float speed = getDragSpeed(vertical); - if (vertical) { - fixedDraggedMotion = Motion.createFrictionMotion(-fixedDraggedAnimationPosition, - Integer.MAX_VALUE, speed, 0.0007f); - } else { - fixedDraggedMotion = Motion.createFrictionMotion(-fixedDraggedAnimationPosition, - Integer.MAX_VALUE, speed, 0.0007f); - } + fixedDraggedMotion = Motion.createFrictionMotion(-fixedDraggedAnimationPosition, + Integer.MAX_VALUE, speed, 0.0007f); fixedDraggedPosition = fixedDraggedAnimationPosition; Form p = getComponentForm(); if (p != null) { diff --git a/CodenameOne/src/com/codename1/ui/SideMenuBar.java b/CodenameOne/src/com/codename1/ui/SideMenuBar.java index 0648232d81..12f9fe1813 100644 --- a/CodenameOne/src/com/codename1/ui/SideMenuBar.java +++ b/CodenameOne/src/com/codename1/ui/SideMenuBar.java @@ -1159,12 +1159,14 @@ public void run() { Display.getInstance().invokeAndBlock(new Runnable() { public void run() { - while (Display.getInstance().getCurrent() != parent) { - try { - Thread.sleep(40); - } catch (Exception ex) { - } - } + while (Display.getInstance().getCurrent() != parent) { + try { + Thread.sleep(40); + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + return; + } + } } }); @@ -1819,12 +1821,14 @@ public void actionPerformed(ActionEvent evt) { } synchronized (LOCK) { - while (Display.getInstance().getCurrent() != parent) { - try { - LOCK.wait(40); - } catch (Exception ex) { - } - } + while (Display.getInstance().getCurrent() != parent) { + try { + LOCK.wait(40); + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + return; + } + } } Display.getInstance().callSerially(this); } diff --git a/CodenameOne/src/com/codename1/ui/TextSelection.java b/CodenameOne/src/com/codename1/ui/TextSelection.java index f00369535a..e289de3440 100644 --- a/CodenameOne/src/com/codename1/ui/TextSelection.java +++ b/CodenameOne/src/com/codename1/ui/TextSelection.java @@ -91,37 +91,34 @@ public int compare(Component o1, Component o2) { double y1 = getScaledY(o1); double y2 = getScaledY(o2); + int compareY; if (y1 < y2) { - return -1; + compareY = -1; } else if (y1 > y2) { + compareY = 1; + } else { + compareY = 0; + } + if (compareY != 0) { + return compareY; + } + if (x1 < x2) { + return -1; + } else if (x1 > x2) { return 1; - } else { //(y1 == y2) { - if (x1 < x2) { - return -1; - } else if (x1 > x2) { - return 1; - } else { // x1==x2 - int w1 = o1.getWidth(); - int w2 = o2.getWidth(); - int h1 = o1.getHeight(); - int h2 = o2.getHeight(); - - // larger goes first - if (h1 > h2) { - return -1; - } else if (h1 < h2) { - return 1; - } else { // h1==h2 - if (w1 > w2) { - return -1; - } else if (w1 > w2) { - return 1; - } else { - return 0; - } - } - } } + int w1 = o1.getWidth(); + int w2 = o2.getWidth(); + int h1 = o1.getHeight(); + int h2 = o2.getHeight(); + + if (h1 != h2) { + return h1 > h2 ? -1 : 1; + } + if (w1 != w2) { + return w1 > w2 ? -1 : 1; + } + return 0; } }; @@ -153,37 +150,34 @@ public int compare(Component o1, Component o2) { double y1 = getScaledY(o1); double y2 = getScaledY(o2); + int compareY; if (y1 < y2) { - return -1; + compareY = -1; } else if (y1 > y2) { + compareY = 1; + } else { + compareY = 0; + } + if (compareY != 0) { + return compareY; + } + if (x1 < x2) { return 1; - } else { //(y1 == y2) { - if (x1 < x2) { - return 1; - } else if (x1 > x2) { - return -1; - } else { // x1==x2 - int w1 = o1.getWidth(); - int w2 = o2.getWidth(); - int h1 = o1.getHeight(); - int h2 = o2.getHeight(); - - // larger goes first - if (h1 > h2) { - return -1; - } else if (h1 < h2) { - return 1; - } else { // h1==h2 - if (w1 > w2) { - return -1; - } else if (w1 > w2) { - return 1; - } else { - return 0; - } - } - } + } else if (x1 > x2) { + return -1; + } + int w1 = o1.getWidth(); + int w2 = o2.getWidth(); + int h1 = o1.getHeight(); + int h2 = o2.getHeight(); + + if (h1 != h2) { + return h1 > h2 ? -1 : 1; + } + if (w1 != w2) { + return w1 > w2 ? -1 : 1; } + return 0; } }; diff --git a/CodenameOne/src/com/codename1/ui/Toolbar.java b/CodenameOne/src/com/codename1/ui/Toolbar.java index 924752d994..0bb80e3db0 100644 --- a/CodenameOne/src/com/codename1/ui/Toolbar.java +++ b/CodenameOne/src/com/codename1/ui/Toolbar.java @@ -2308,15 +2308,11 @@ public boolean animate() { final Container actualPane = f.getActualPane(); int val = hideShowMotion.getValue(); setY(val); - if (!layered) { - actualPane.setY(actualPaneInitialY + val); - if (showing) { - actualPane.setHeight(actualPaneInitialH - val); - } else { - actualPane.setHeight(actualPaneInitialH - val); - } - actualPane.doLayout(); - } + if (!layered) { + actualPane.setY(actualPaneInitialY + val); + actualPane.setHeight(actualPaneInitialH - val); + actualPane.doLayout(); + } f.repaint(); boolean finished = hideShowMotion.isFinished(); if (finished) { @@ -2602,11 +2598,11 @@ protected Component getTitleComponent() { @Override protected void initMenuBar(Form parent) { - Component ta = parent.getTitleArea(); - if (ta instanceof Container) { - ((Container) ta).setSafeArea(true); - } - parent.removeComponentFromForm(ta); + Container ta = parent.getTitleArea(); + if (ta != null) { + ta.setSafeArea(true); + parent.removeComponentFromForm(ta); + } super.initMenuBar(parent); if (layered) { Container layeredPane = parent.getLayeredPane(); diff --git a/CodenameOne/src/com/codename1/ui/geom/Dimension.java b/CodenameOne/src/com/codename1/ui/geom/Dimension.java index 8009d19ff5..99ef56a8fd 100644 --- a/CodenameOne/src/com/codename1/ui/geom/Dimension.java +++ b/CodenameOne/src/com/codename1/ui/geom/Dimension.java @@ -119,7 +119,14 @@ public int hashCode() { * {@inheritDoc} */ public boolean equals(Object arg0) { - return arg0 != null && ((Dimension) arg0).width == width && ((Dimension) arg0).height == height; + if (this == arg0) { + return true; + } + if (!(arg0 instanceof Dimension)) { + return false; + } + Dimension other = (Dimension) arg0; + return other.width == width && other.height == height; } diff --git a/CodenameOne/src/com/codename1/ui/html/CSSEngine.java b/CodenameOne/src/com/codename1/ui/html/CSSEngine.java index a14523a745..3aefc73bf9 100644 --- a/CodenameOne/src/com/codename1/ui/html/CSSEngine.java +++ b/CodenameOne/src/com/codename1/ui/html/CSSEngine.java @@ -1629,8 +1629,8 @@ private void applyStyleToUIElement(Component ui, CSSElement selector, HTMLElemen Container bulletCont = (Container) firstComp; if (bulletCont.getComponentCount() > 0) { Component listItemCmp = bulletCont.getComponentAt(0); - if (listItemCmp instanceof Component) { - HTMLListItem listItem = ((HTMLListItem) listItemCmp); + if (listItemCmp instanceof HTMLListItem) { + HTMLListItem listItem = (HTMLListItem) listItemCmp; listItem.setStyleType(listType); listItem.setImage(listImg); } diff --git a/CodenameOne/src/com/codename1/ui/html/HTMLComponent.java b/CodenameOne/src/com/codename1/ui/html/HTMLComponent.java index e025eb3da0..115dfefa30 100644 --- a/CodenameOne/src/com/codename1/ui/html/HTMLComponent.java +++ b/CodenameOne/src/com/codename1/ui/html/HTMLComponent.java @@ -997,7 +997,9 @@ private void cancelCurrent() { System.out.println("Waiting for previous page to cancel " + System.currentTimeMillis()); try { Thread.sleep(50); - } catch (Exception e) { + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + break; } waitTime += 50; @@ -3137,8 +3139,6 @@ private void processTag(HTMLElement element, int align) { pushContainer(child); break; case HTMLElement.TAG_BUTTON: - handleInput(child, curAlign); - break; case HTMLElement.TAG_INPUT: handleInput(child, curAlign); break; diff --git a/CodenameOne/src/com/codename1/ui/layouts/LayeredLayout.java b/CodenameOne/src/com/codename1/ui/layouts/LayeredLayout.java index bd49f2c2ae..4fdeb6a696 100644 --- a/CodenameOne/src/com/codename1/ui/layouts/LayeredLayout.java +++ b/CodenameOne/src/com/codename1/ui/layouts/LayeredLayout.java @@ -2674,11 +2674,7 @@ public int calcPreferredValue(Container parent, Component cmp) { preferredValue = Display.getInstance().convertToPixels(value); break; case UNIT_PERCENT: - preferredValue = 0; - break; case UNIT_AUTO: - preferredValue = 0; - break; case UNIT_BASELINE: preferredValue = 0; break; @@ -2723,8 +2719,6 @@ public int calcPreferredValue(Container parent, Component cmp) { preferredValue = baseValue + Display.getInstance().convertToPixels(value); break; case UNIT_PERCENT: - preferredValue = baseValue; - break; case UNIT_AUTO: preferredValue = baseValue; break; @@ -2775,24 +2769,20 @@ private int calcBaseValue(int top, int left, int bottom, int right) {//, int pad return baseValue; } - if (referencePosition != 0) { - switch (side) { - case Component.TOP: - baseValue = (int) ((float) h * referencePosition); - break; - case Component.BOTTOM: - baseValue = (int) ((float) h * referencePosition); - break; - case Component.LEFT: - baseValue = (int) ((float) w * referencePosition); - break; - case Component.RIGHT: - baseValue = (int) ((float) w * referencePosition); - break; - default: - throw new RuntimeException("Illegal side for inset: " + side); + if (referencePosition != 0) { + switch (side) { + case Component.TOP: + case Component.BOTTOM: + baseValue = (int) (h * referencePosition); + break; + case Component.LEFT: + case Component.RIGHT: + baseValue = (int) (w * referencePosition); + break; + default: + throw new RuntimeException("Illegal side for inset: " + side); + } } - } calculatedBaseValue = baseValue; return baseValue; } diff --git a/CodenameOne/src/com/codename1/ui/layouts/mig/CC.java b/CodenameOne/src/com/codename1/ui/layouts/mig/CC.java index 232d1398cc..32acfa640a 100644 --- a/CodenameOne/src/com/codename1/ui/layouts/mig/CC.java +++ b/CodenameOne/src/com/codename1/ui/layouts/mig/CC.java @@ -265,7 +265,7 @@ public CC growX() { * @return this so it is possible to chain calls. E.g. new ComponentConstraint().noGrid().gap().fill(). */ public CC growX(float w) { - hor.setGrow(new Float(w)); + hor.setGrow(Float.valueOf(w)); return this; } @@ -283,9 +283,9 @@ public CC grow(float... widthHeight) { default: throw new IllegalArgumentException("Illegal argument count: " + widthHeight.length); case 2: - growY(new Float(widthHeight[1])); + growY(Float.valueOf(widthHeight[1])); case 1: - growX(new Float(widthHeight[0])); + growX(widthHeight[0]); } return this; } diff --git a/CodenameOne/src/com/codename1/ui/plaf/DefaultLookAndFeel.java b/CodenameOne/src/com/codename1/ui/plaf/DefaultLookAndFeel.java index 5f7f5bcb1e..7b96114f94 100644 --- a/CodenameOne/src/com/codename1/ui/plaf/DefaultLookAndFeel.java +++ b/CodenameOne/src/com/codename1/ui/plaf/DefaultLookAndFeel.java @@ -1661,6 +1661,7 @@ private void drawLabelImageValign(Graphics g, Label l, Image icon, int x, int y, break; default: g.drawImage(icon, x, y + iconStringHGap); + break; } } diff --git a/CodenameOne/src/com/codename1/ui/plaf/Style.java b/CodenameOne/src/com/codename1/ui/plaf/Style.java index 8f790ce7d7..b73ff3d39a 100644 --- a/CodenameOne/src/com/codename1/ui/plaf/Style.java +++ b/CodenameOne/src/com/codename1/ui/plaf/Style.java @@ -2261,12 +2261,12 @@ private int convertUnit(byte[] unitType, float v, int orientation) { return Math.round(v * Font.getDefaultFont().getHeight()); case UNIT_TYPE_VH: return Math.round(v / 100f * CN.getDisplayHeight()); - case UNIT_TYPE_VW: - return Math.round(v / 100f * CN.getDisplayWidth()); - case UNIT_TYPE_VMIN: - return Math.round(v / 100f * Math.min(CN.getDisplayWidth(), CN.getDisplayHeight())); - case UNIT_TYPE_VMAX: - return Math.round(v / 100f * Math.min(CN.getDisplayWidth(), CN.getDisplayHeight())); + case UNIT_TYPE_VW: + return Math.round(v / 100f * CN.getDisplayWidth()); + case UNIT_TYPE_VMIN: + return Math.round(v / 100f * Math.min(CN.getDisplayWidth(), CN.getDisplayHeight())); + case UNIT_TYPE_VMAX: + return Math.round(v / 100f * Math.max(CN.getDisplayWidth(), CN.getDisplayHeight())); case UNIT_TYPE_DIPS: return Display.getInstance().convertToPixels(v); case UNIT_TYPE_SCREEN_PERCENTAGE: diff --git a/CodenameOne/src/com/codename1/ui/spinner/DateSpinner3D.java b/CodenameOne/src/com/codename1/ui/spinner/DateSpinner3D.java index 6fcdc46618..6799942b6b 100644 --- a/CodenameOne/src/com/codename1/ui/spinner/DateSpinner3D.java +++ b/CodenameOne/src/com/codename1/ui/spinner/DateSpinner3D.java @@ -106,7 +106,7 @@ void initSpinner() { @Override public String format(String input) { if (input != null) { - return String.valueOf(new Double(Double.parseDouble(input)).intValue()); + return String.valueOf((int) Double.parseDouble(input)); } return null; } @@ -116,9 +116,9 @@ public String format(String input) { month.setRowFormatter(new SpinnerNode.RowFormatter() { @Override public String format(String input) { - if (input != null) { - Calendar c = Calendar.getInstance(); - c.set(Calendar.MONTH, new Double(Double.parseDouble(input)).intValue() - 1); + if (input != null) { + Calendar c = Calendar.getInstance(); + c.set(Calendar.MONTH, (int) Double.parseDouble(input) - 1); c.set(Calendar.DAY_OF_MONTH, 15); return monthFormat.format(c.getTime()); } @@ -132,7 +132,7 @@ public String format(String input) { @Override public String format(String input) { if (input != null) { - return String.valueOf(new Double(Double.parseDouble(input)).intValue()); + return String.valueOf((int) Double.parseDouble(input)); } return null; } diff --git a/CodenameOne/src/com/codename1/ui/spinner/TimeSpinner3D.java b/CodenameOne/src/com/codename1/ui/spinner/TimeSpinner3D.java index 4110e47a5f..0fa72411f1 100644 --- a/CodenameOne/src/com/codename1/ui/spinner/TimeSpinner3D.java +++ b/CodenameOne/src/com/codename1/ui/spinner/TimeSpinner3D.java @@ -89,7 +89,7 @@ void initSpinner() { @Override public String format(String input) { if (input != null) { - return "" + new Double(Double.parseDouble(input)).intValue(); + return Integer.toString((int) Double.parseDouble(input)); } return null; } @@ -105,19 +105,15 @@ public String format(String input) { @Override public String format(String input) { if (input != null) { - Integer value = null; try { - value = Integer.valueOf(new Double(Double.parseDouble(input)).intValue()); - } catch (Throwable t) { - - } - if (value != null && value instanceof Integer) { - int i = value.intValue(); + int i = (int) Double.parseDouble(input); if (i < 10) { return "0" + i; } else { - return "" + i; + return Integer.toString(i); } + } catch (Throwable t) { + // ignore and return null below } } return null; diff --git a/CodenameOne/src/com/codename1/ui/table/Table.java b/CodenameOne/src/com/codename1/ui/table/Table.java index acec39e357..3d96c75f35 100644 --- a/CodenameOne/src/com/codename1/ui/table/Table.java +++ b/CodenameOne/src/com/codename1/ui/table/Table.java @@ -23,6 +23,7 @@ */ package com.codename1.ui.table; +import com.codename1.io.Log; import com.codename1.io.Util; import com.codename1.ui.Button; import com.codename1.ui.CheckBox; @@ -451,13 +452,22 @@ public int compare(Object o1, Object o2) { return ccmp.compare((String) o1, (String) o2); } try { - double d = Util.toDoubleValue(o1) - Util.toDoubleValue(o2); - if (d > 0) { + double d1 = Util.toDoubleValue(o1); + double d2 = Util.toDoubleValue(o2); + if (d1 < d2) { + return -1; + } + if (d1 > d2) { return 1; } - if (d < 0) { + long bits1 = Double.doubleToLongBits(d1); + long bits2 = Double.doubleToLongBits(d2); + if (bits1 < bits2) { return -1; } + if (bits1 > bits2) { + return 1; + } } catch (IllegalArgumentException err) { long dd = Util.toDateValue(o1).getTime() - Util.toDateValue(o2).getTime(); return (int) dd; @@ -752,7 +762,7 @@ private void updateMargins() { try { cmp = t.getComponentAt(row, col); } catch (Exception e) { - // parent of cmp can be null as well - TODO - check why + Log.e(e); } if (cmp != null) { int leftMargin = (col == 0) ? hSpace : 0; diff --git a/CodenameOne/src/com/codename1/ui/util/Effects.java b/CodenameOne/src/com/codename1/ui/util/Effects.java index 69483fe2b2..9c928786fc 100644 --- a/CodenameOne/src/com/codename1/ui/util/Effects.java +++ b/CodenameOne/src/com/codename1/ui/util/Effects.java @@ -144,16 +144,7 @@ public static Image verticalPerspective(Image i, float topScaleRatio, float bott int[] destinationArray = new int[destinationWidth * destinationHeight]; // faster than math.min - float diff; - if (bottomScaleRatio < topScaleRatio) { - float smaller = bottomScaleRatio; - float larger = topScaleRatio; - diff = smaller - larger; - } else { - float larger = bottomScaleRatio; - float smaller = topScaleRatio; - diff = larger - smaller; - } + float diff = bottomScaleRatio - topScaleRatio; if (destinationWidth > sourceWidth) { for (int y = 0; y < destinationHeight; y++) { diff --git a/CodenameOne/src/com/codename1/ui/util/Resources.java b/CodenameOne/src/com/codename1/ui/util/Resources.java index 961db0a818..cf2cdf93d2 100644 --- a/CodenameOne/src/com/codename1/ui/util/Resources.java +++ b/CodenameOne/src/com/codename1/ui/util/Resources.java @@ -477,6 +477,7 @@ private void openFileImpl(InputStream input) throws IOException { readHeader(); continue; case MAGIC_THEME: + case MAGIC_THEME_LEGACY: setResource(id, MAGIC_THEME, loadTheme(id, magic == MAGIC_THEME)); continue; case MAGIC_IMAGE: @@ -504,9 +505,6 @@ private void openFileImpl(InputStream input) throws IOException { case MAGIC_INDEXED_IMAGE_LEGACY: setResource(id, MAGIC_IMAGE, createPackedImage8()); continue; - case MAGIC_THEME_LEGACY: - setResource(id, MAGIC_THEME, loadTheme(id, magic == MAGIC_THEME)); - continue; case MAGIC_FONT_LEGACY: setResource(id, MAGIC_FONT, loadFont(this.input, id, false)); continue; diff --git a/maven/core-unittests/spotbugs-exclude.xml b/maven/core-unittests/spotbugs-exclude.xml index 8f68393469..31d323a711 100644 --- a/maven/core-unittests/spotbugs-exclude.xml +++ b/maven/core-unittests/spotbugs-exclude.xml @@ -8,4 +8,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +