Skip to content

Commit 22f2993

Browse files
authored
Release/5.4.2 (#420)
* beta version * beta bump * bump beta * Bump beta to test travis token * Bump beta to test CI * Bump beta with new changes * Fix logging of exception stacktrace * Fix local push canceling (#418) * Set correct number type in Var.value (#419) * Bump beta version * Make release version
1 parent f59c0eb commit 22f2993

File tree

4 files changed

+47
-40
lines changed

4 files changed

+47
-40
lines changed

AndroidSDKCore/src/main/java/com/leanplum/Var.java

Lines changed: 43 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -294,49 +294,56 @@ public void setOverrideResId(int resId) {
294294
overrideResId = resId;
295295
}
296296

297+
/**
298+
* Applies correct number type to the value member based on defaultValue type.
299+
*/
297300
@SuppressWarnings("unchecked")
301+
private void modifyValue(Number src) {
302+
if (src == null)
303+
return;
304+
305+
if (defaultValue instanceof Byte) {
306+
value = (T) (Byte) src.byteValue();
307+
} else if (defaultValue instanceof Short) {
308+
value = (T) (Short) src.shortValue();
309+
} else if (defaultValue instanceof Integer) {
310+
value = (T) (Integer) src.intValue();
311+
} else if (defaultValue instanceof Long) {
312+
value = (T) (Long) src.longValue();
313+
} else if (defaultValue instanceof Float) {
314+
value = (T) (Float) src.floatValue();
315+
} else if (defaultValue instanceof Double) {
316+
value = (T) (Double) src.doubleValue();
317+
} else if (defaultValue instanceof Character) {
318+
value = (T) (Character) (char) src.intValue();
319+
}
320+
}
321+
322+
/**
323+
* Parses src to initialize numberValue. If not parsable it uses the defaultValue.
324+
*/
325+
private void modifyNumberValue(String src) {
326+
try {
327+
numberValue = Double.valueOf(src);
328+
} catch (NumberFormatException e) {
329+
numberValue = null;
330+
if (defaultValue instanceof Number) {
331+
numberValue = ((Number) defaultValue).doubleValue();
332+
}
333+
}
334+
}
335+
298336
private void cacheComputedValues() {
299337
if (value instanceof String) {
300338
stringValue = (String) value;
301-
try {
302-
numberValue = Double.valueOf(stringValue);
303-
} catch (NumberFormatException e) {
304-
numberValue = null;
305-
if (defaultValue instanceof Short) {
306-
value = (T) (Short) ((Number) defaultValue).shortValue();
307-
numberValue = Double.valueOf(((Number) defaultValue).shortValue());
308-
} else if (defaultValue instanceof Integer) {
309-
value = (T) (Integer) ((Number) defaultValue).intValue();
310-
numberValue = Double.valueOf(((Number) defaultValue).intValue());
311-
} else if (defaultValue instanceof Long) {
312-
value = (T) (Long) ((Number) defaultValue).longValue();
313-
numberValue = Double.valueOf(((Number) defaultValue).longValue());
314-
} else if (defaultValue instanceof Float) {
315-
value = (T) (Float) ((Number) defaultValue).floatValue();
316-
numberValue = Double.valueOf(((Number) defaultValue).floatValue());
317-
} else if (defaultValue instanceof Double) {
318-
value = (T) (Double) ((Number) defaultValue).doubleValue();
319-
numberValue = Double.valueOf(((Number) defaultValue).doubleValue());
320-
}
321-
}
339+
modifyNumberValue(stringValue);
340+
modifyValue(numberValue);
341+
322342
} else if (value instanceof Number) {
323343
stringValue = "" + value;
324344
numberValue = ((Number) value).doubleValue();
325-
if (defaultValue instanceof Byte) {
326-
value = (T) (Byte) ((Number) value).byteValue();
327-
} else if (defaultValue instanceof Short) {
328-
value = (T) (Short) ((Number) value).shortValue();
329-
} else if (defaultValue instanceof Integer) {
330-
value = (T) (Integer) ((Number) value).intValue();
331-
} else if (defaultValue instanceof Long) {
332-
value = (T) (Long) ((Number) value).longValue();
333-
} else if (defaultValue instanceof Float) {
334-
value = (T) (Float) ((Number) value).floatValue();
335-
} else if (defaultValue instanceof Double) {
336-
value = (T) (Double) ((Number) value).doubleValue();
337-
} else if (defaultValue instanceof Character) {
338-
value = (T) (Character) (char) ((Number) value).intValue();
339-
}
345+
modifyValue((Number) value);
346+
340347
} else if (value != null &&
341348
!(value instanceof Iterable<?>) && !(value instanceof Map<?, ?>)) {
342349
stringValue = value.toString();

AndroidSDKCore/src/main/java/com/leanplum/internal/Log.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public static void exception(Throwable throwable) {
103103
Request request = RequestBuilder.withLogAction()
104104
.andParam(Constants.Params.TYPE, Constants.Values.SDK_LOG)
105105
.andParam(Constants.Params.VERSION_NAME, versionName)
106-
.andParam(Constants.Params.MESSAGE, writer.toString())
106+
.andParam(Constants.Params.MESSAGE, stringWriter.toString())
107107
.create();
108108
RequestSender.getInstance().send(request);
109109
} catch (Throwable t2) {

AndroidSDKPush/src/main/java/com/leanplum/internal/LeanplumLocalPushHelper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,9 @@ static boolean scheduleLocalPush(ActionContext actionContext, String messageId,
146146
*/
147147
static void cancelLocalPush(Context context, String messageId) {
148148
try {
149-
Intent intentAlarm = new Intent(context, LeanplumLocalPushListenerService.class);
149+
Intent intentAlarm = LeanplumLocalPushListenerService.getIntent(context);
150150
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
151-
PendingIntent existingIntent = PendingIntent.getService(
151+
PendingIntent existingIntent = PendingIntent.getBroadcast(
152152
context, messageId.hashCode(), intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT);
153153
if (alarmManager != null && existingIntent != null) {
154154
alarmManager.cancel(existingIntent);

sdk-version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5.4.0
1+
5.4.2

0 commit comments

Comments
 (0)