Skip to content

Commit 50daaa5

Browse files
author
Kelly Johnson
committed
Merge remote-tracking branch 'origin/develop'
2 parents 1ca69e7 + 2030505 commit 50daaa5

File tree

12 files changed

+182
-5
lines changed

12 files changed

+182
-5
lines changed

AndroidSDK/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ android {
4444
}
4545

4646
// Move the tests to tests/java, tests/res, etc...
47-
instrumentTest.setRoot('tests')
47+
androidTest.setRoot('tests')
4848

4949
// Move the build types to build-types/<type>
5050
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...

AndroidSDK/res/values/strings.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version='1.0' encoding='utf-8'?>
22
<resources>
33

44
<string name="app_name">Android SDK</string>
5+
<string name="sdk_version">4.1.1</string>
56

6-
</resources>
7+
</resources>

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2142,4 +2142,13 @@ private static void parseVariantDebugInfo(JSONObject response) {
21422142
VarCache.setVariantDebugInfo(variantDebugInfo);
21432143
}
21442144
}
2145+
2146+
/**
2147+
* Clears cached values for messages, variables and test assignments.
2148+
* Use sparingly as if the app is updated, you'll have to deal with potentially
2149+
* inconsistent state or user experience.
2150+
*/
2151+
public static void clearUserContent() {
2152+
VarCache.clearUserContent();
2153+
}
21452154
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public class Constants {
3636
public static int SOCKET_PORT = 80;
3737
public static int NETWORK_TIMEOUT_SECONDS = 10;
3838
public static int NETWORK_TIMEOUT_SECONDS_FOR_DOWNLOADS = 10;
39-
public static String LEANPLUM_VERSION = "4.1.0";
39+
public static String LEANPLUM_VERSION = "4.1.1";
4040
public static String CLIENT = "android";
4141

4242
static final String LEANPLUM_PACKAGE_IDENTIFIER = BuildConfig.LEANPLUM_PACKAGE_IDENTIFIER;

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -901,6 +901,22 @@ public static void saveUserAttributes() {
901901
SharedPreferencesUtil.commitChanges(editor);
902902
}
903903

904+
public static void clearUserContent() {
905+
vars.clear();
906+
variants.clear();
907+
variantDebugInfo.clear();
908+
909+
diffs.clear();
910+
messageDiffs.clear();
911+
messages = null;
912+
userAttributes = null;
913+
merged = null;
914+
915+
devModeValuesFromServer = null;
916+
devModeFileAttributesFromServer = null;
917+
devModeActionDefinitionsFromServer = null;
918+
}
919+
904920
/**
905921
* Resets the VarCache to stock state.
906922
*/

AndroidSDKTests/build.gradle

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,19 @@ android {
1919
}
2020
}
2121
testOptions {
22+
unitTests.all {
23+
maxParallelForks = 2
24+
25+
// set heap size for the test JVM(s)
26+
minHeapSize = "128m"
27+
maxHeapSize = "512m"
28+
29+
beforeTest { descriptor ->
30+
logger.lifecycle("Running test: " + descriptor)
31+
}
32+
33+
34+
}
2235
unitTests {
2336
includeAndroidResources = true
2437
}
@@ -59,4 +72,4 @@ configurations {
5972
}
6073
artifacts {
6174
unitTestArtifact jarTests
62-
}
75+
}

Makefile

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
####################################################################
2+
#
3+
# Rules used to build and release the SDK.
4+
#
5+
####################################################################
6+
7+
SDK_BUILD_IMAGE:=leanplum/android-sdk-build:latest
8+
DOCKER_RUN:=docker run \
9+
--tty --interactive --rm \
10+
--volume `pwd`:/leanplum \
11+
--workdir /leanplum \
12+
${SDK_BUILD_IMAGE}
13+
14+
clean-local-properties:
15+
rm -f local.properties
16+
17+
sdk: clean-local-properties
18+
./gradlew clean assembleDebug testDebugUnitTest --info
19+
20+
sdk-in-container:
21+
${DOCKER_RUN} make sdk
22+
23+
shell:
24+
${DOCKER_RUN} bash
25+
26+
build-image:
27+
docker build -t ${SDK_BUILD_IMAGE} . -f Tools/jenkins/build.dockerfile
28+
docker push ${SDK_BUILD_IMAGE}
29+
30+
.PHONY: build

Tools/create-release.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/usr/bin/env python2.7
2+
3+
import semver
4+
import xml.etree.ElementTree as ET
5+
import sys
6+
7+
ANDROID_STRINGS_XML = "AndroidSDK/res/values/strings.xml"
8+
9+
def get_current_version(root):
10+
for element in root.iter("string"):
11+
if element.attrib.get("name") == "sdk_version":
12+
return element.text
13+
14+
def update_version(root, xml, version):
15+
for element in root.iter("string"):
16+
if element.attrib.get("name") == "sdk_version":
17+
element.text = str(version)
18+
xml.write(ANDROID_STRINGS_XML, encoding='utf-8', xml_declaration=True)
19+
20+
"""Type: Major/Minor/Patch"""
21+
22+
"""
23+
1. Read in values.xml
24+
2. Increment the SDK version value based on correct semVers
25+
3. Return: new version number
26+
"""
27+
def main():
28+
release_type = sys.argv[1]
29+
xml = ET.parse(ANDROID_STRINGS_XML)
30+
root = xml.getroot()
31+
32+
current_version = get_current_version(root)
33+
34+
if release_type == "patch":
35+
release_version = semver.bump_patch(current_version)
36+
elif release_type == "minor":
37+
release_version = semver.bump_minor(current_version)
38+
elif release_type == "major":
39+
release_version = semver.bump_major(current_version)
40+
else:
41+
raise Exception("Please pick one patch/minor/major")
42+
43+
update_version(root, xml, release_version)
44+
sys.stdout.write(release_version)
45+
46+
if __name__ == "__main__":
47+
main()

Tools/jenkins/build.dockerfile

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
FROM jangrewe/gitlab-ci-android
2+
3+
ARG emulator_platform=android-26
4+
ARG system_image="system-images;${emulator_platform};google_apis;x86"
5+
ARG platform_image="platforms;${emulator_platform}"
6+
7+
RUN apt-get update && \
8+
apt-get install -y --no-install-recommends \
9+
nodejs=6.11.4~dfsg-1ubuntu1 \
10+
build-essential \
11+
&& rm -rf /var/lib/apt/lists/*
12+
13+
ENV PATH="$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin"
14+
15+
RUN sdkmanager emulator tools platform-tools ${platform_image} ${system_image} --verbose && \
16+
echo no | avdmanager create avd -n "device1" --package ${system_image} --tag google_apis

Tools/jenkins/pipelines/ci.groovy

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/**
2+
* Jenkins pipeline for Build and Test of Android SDK.
3+
*/
4+
5+
pipeline {
6+
agent { label 'base-lp-agent'}
7+
stages {
8+
stage("Build and Test the SDK") {
9+
steps {
10+
timestamps {
11+
ansiColor('xterm') {
12+
buildAndTest()
13+
}
14+
}
15+
}
16+
}
17+
}
18+
}
19+
20+
def buildAndTest() {
21+
def buildImage = docker.build(
22+
"leanplum/android-sdk-build",
23+
"-f ./Tools/jenkins/build.dockerfile .")
24+
buildImage.inside {
25+
sh 'make sdk'
26+
}
27+
}

0 commit comments

Comments
 (0)