Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
b87b6ed
Add support for TLS 1.2 on API 16+
farhanjkhan May 8, 2018
2931d51
Add back final keyword
farhanjkhan May 9, 2018
5bab855
Bumping the minSdkVersion from 15 to 16
farhanjkhan May 9, 2018
f853d84
Merge branch 'next-release' into feature/tls_1_2
arun251 Aug 14, 2018
024a75b
Merge pull request #64 from launchdarkly/feature/tls_1_2
arun251 Aug 14, 2018
ff65ca3
Merge branch 'master' into next-release
arun251 Sep 12, 2018
44eed4a
Circle CI 2.0
nejifresh Sep 25, 2018
ba1fe52
Created new branch for multi-environment sdk feature
torchhound Oct 1, 2018
c47d2d5
Stub out new LDConfig and LDConfig.Builder code for multi-environment.
gavwhela Oct 1, 2018
73e4b98
Added overloaded init method in LDClient for creating secondary insta…
torchhound Oct 2, 2018
3962f10
Added getForMobileKey methods
torchhound Oct 2, 2018
c020ff9
Added LDClient init test for secondary environment, added exception t…
torchhound Oct 2, 2018
1956014
Move primary instance into general instances map. Begin on methods ef…
gavwhela Oct 2, 2018
cf10753
Removed incorrect LDClient test
torchhound Oct 2, 2018
a09191d
Fixed 1 failing test in LDClient, added multi-environment test file, …
torchhound Oct 2, 2018
e318b61
Removed unnecessary ListenableFuture in LDClient init, changed identi…
torchhound Oct 2, 2018
0fbe675
Added setOnlineStatus multi-environment changes
torchhound Oct 3, 2018
afe797a
Moved primaryEnvironmentName to LDConfig, simplifying by removing pri…
gavwhela Oct 6, 2018
babd1cd
Add back in constructor without environment to UserManager
gavwhela Oct 6, 2018
33fd8d7
Specialize HttpFeatureFlagFetcher to the environment, looks like User…
gavwhela Oct 6, 2018
eb93b8c
Added SharedPreferences migration strategy
Oct 6, 2018
43ded05
Merged UserManager changes
Oct 6, 2018
b595b6c
All tests pass, fixed migration strategy to conform to spec, fixed pr…
torchhound Oct 8, 2018
e8ac421
Update StreamUpdateProcessor construct to take an environment for the…
gavwhela Oct 9, 2018
441fa93
Fix issue with LDConfig mobileKeys hashmap creation.
gavwhela Oct 9, 2018
f0b68e6
Combine futures so LDClient init future waits on all online instances…
gavwhela Oct 10, 2018
1a039e1
Propagate IOException on closing instances to caller.
gavwhela Oct 10, 2018
baea3ff
Merge futures for identify call.
gavwhela Oct 10, 2018
fc665cf
Some changes from code review.
gavwhela Oct 11, 2018
783375d
Removed static from instanceId and now old SharedPreferences will onl…
Oct 11, 2018
f82c03f
Fixed instanceId
torchhound Oct 11, 2018
be1dd1c
Updates from PR review.
gavwhela Oct 17, 2018
f647f3b
Merge pull request #83 from launchdarkly/circlecimigrate
arun251 Oct 17, 2018
3dbab83
Merge branch 'master' into next-release
arun251 Oct 25, 2018
a8d4b53
Added version and flagVersion, if available
jamesthacker Nov 6, 2018
f2c456e
refactor(LDClient, LDConfig): changes for PR
torchhound Dec 12, 2018
9215b65
refactor(LDClient): changed isInternetConnected behavior for PR
torchhound Dec 12, 2018
5cce5b8
refactor(LDClient): removed async getForMobileKeys and wait seconds v…
torchhound Dec 12, 2018
f2d1343
Bugfix/timber cleanup (#92)
jamesthacker Jan 12, 2019
081ee16
Merge pull request #91 from launchdarkly/bugfix/ping-event-versions
gavwhela Jan 12, 2019
cac1e27
Fix crash when example app is backgrounded twice.
gwhelanLD Jan 14, 2019
ceaa85a
Merge pull request #93 from launchdarkly/bugfix/example-background-crash
torchhound Jan 15, 2019
84569fe
Merge remote-tracking branch 'remotes/origin/multi-environment' into …
gwhelanLD Jan 16, 2019
cd02ea3
Add security provider update mechanism using Google Play Services to
gwhelanLD Jan 22, 2019
6b135f4
Shared Preferences Fix for Multi Environment (#94)
torchhound Jan 22, 2019
55eef13
Fix edge cases in how multi-environment handles connection changes.
gwhelanLD Jan 22, 2019
562fd56
fix(UserManagerTest.java): incorrect number of arguments to UserManag…
Jan 22, 2019
9edb050
Remove line of testing code accidentally left in and refactor shared
gwhelanLD Jan 22, 2019
34c942a
Final fixes to store migration. Should be fairly future proof.
gwhelanLD Jan 22, 2019
fd0560c
Merge branch 'master' into next-release
gwhelanLD Jan 24, 2019
6ca1acd
Merge branch 'master' into next-release
gwhelanLD Jan 24, 2019
3b8faca
Merge branch 'master' into next-release
gwhelanLD Feb 4, 2019
964c5cd
Fix issue with primitive variation calls always returning null if fal…
gwhelanLD Feb 6, 2019
5fcd6b1
Remove CircleCI V1 config file. (#97)
gwhelanLD Feb 6, 2019
1f5eb1f
Remove getting/comparing versions as floats (#99)
gwhelanLD Feb 11, 2019
ae3791a
Include values in unknown summary events and compare values for (#100)
gwhelanLD Feb 11, 2019
a6061cf
simplify flag property deserialization
eli-darkly Feb 12, 2019
21677be
rm debugging
eli-darkly Feb 12, 2019
8d23b67
misc cleanup
eli-darkly Feb 12, 2019
86fb7f9
rm debugging
eli-darkly Feb 12, 2019
dc2d450
add eval reason data model classes
eli-darkly Feb 12, 2019
1b785e9
Merge branch 'next-release' into eb/ch31900/store-query-properties
eli-darkly Feb 12, 2019
2a76698
Merge branch 'eb/ch31900/store-query-properties' into eb/ch31891/eval…
eli-darkly Feb 12, 2019
18a488d
misc fixes
eli-darkly Feb 12, 2019
eb5a98f
serialize reason
eli-darkly Feb 12, 2019
eea98fc
Merge pull request #101 from launchdarkly/eb/ch31900/store-query-prop…
eli-darkly Feb 13, 2019
352eb42
add ability to receive evaluation reasons from LD
eli-darkly Feb 13, 2019
a82e02d
Merge pull request #102 from launchdarkly/eb/ch31891/eval-reasons
eli-darkly Feb 14, 2019
c544f75
Merge pull request #103 from launchdarkly/eb/ch31891/get-reasons
eli-darkly Feb 14, 2019
503cfcb
Changed shared preferences store system to user a single FlagStore
gwhelanLD Feb 14, 2019
213dd47
add methods to get value with explanation; refactor existing variatio…
eli-darkly Feb 15, 2019
bd6ad95
Abstract FlagStoreManager from FlagStore, new FlagStoreFactory class …
gwhelanLD Feb 15, 2019
8460f0c
Handle null case in allFlags, actually commit changes to UserManager.
gwhelanLD Feb 15, 2019
d7e5d64
Merge branch 'gw/ch29266/flagstore' into eb/ch31891/variation-detail
eli-darkly Feb 15, 2019
f565301
Hopefully fix edge cases in summary event reporting to pass testing.
gwhelanLD Feb 15, 2019
0b3d570
Hopefully fix edge cases in summary event reporting to pass testing.
gwhelanLD Feb 16, 2019
709e107
Simplify getFeaturesJsonObject as no longer using -1 as placeholder f…
gwhelanLD Feb 16, 2019
1804437
Make Flag non-mutable. Move GsonCache to gson package, move custom se…
gwhelanLD Feb 19, 2019
261d90c
Send summary event even if stored flag doesn't exist.
gwhelanLD Feb 21, 2019
f4fb467
Move sendSummaryEvent update code to UserSummaryEventSharedPreference…
gwhelanLD Feb 21, 2019
7489890
Update SharedPrefsFlagStore to hold StoreUpdatedListener in weak refe…
gwhelanLD Feb 22, 2019
5766828
Migration code for upcoming flagstore.
gwhelanLD Feb 22, 2019
57f645d
Remove couple of debug messages.
gwhelanLD Feb 22, 2019
aeec638
Handle todos.
gwhelanLD Feb 22, 2019
c654453
Revert to old String behavior for allFlags, initialize WeakReference …
gwhelanLD Feb 22, 2019
19a9401
Merge branch 'gw/ch29266/flagstore' into eb/ch31891/variation-detail
eli-darkly Feb 22, 2019
69c1c9b
Better implementation of EvaluationReason serialization type adapter.
gwhelanLD Feb 26, 2019
23fd36a
Revert "Better implementation of EvaluationReason serialization type
gwhelanLD Feb 26, 2019
becd7e5
Gw/ch29266/flagstore (#105)
gwhelanLD Feb 26, 2019
76f4650
Return json flags as JsonElement in allFlags map. (#106)
gwhelanLD Feb 26, 2019
c246a27
Merge branch 'next-release' into eb/ch31891/variation-detail
eli-darkly Feb 27, 2019
54ac5cf
Bump ok-http version to 3.9.1 (#107)
gwhelanLD Mar 1, 2019
8e36a32
fix annotations so eval reasons are serialized in events
eli-darkly Mar 2, 2019
85a5adf
Merge pull request #104 from launchdarkly/eb/ch31891/variation-detail
eli-darkly Mar 2, 2019
84ecc29
fix/expand doc comments for public methods
eli-darkly Mar 5, 2019
46948c0
typo
eli-darkly Mar 5, 2019
192e4da
typo
eli-darkly Mar 5, 2019
1a7f34b
Merge pull request #108 from launchdarkly/eb/ch33404/doc-comments
eli-darkly Mar 5, 2019
ea73393
add version string getter method
eli-darkly Mar 6, 2019
12fcfe1
Merge pull request #109 from launchdarkly/eb/ch33470/version-getter
eli-darkly Mar 6, 2019
723363d
Check for null key before file comparison check. (#110)
gwhelanLD Mar 8, 2019
2e6a5bf
[ch33658] Add unsafeReset() for LDClient testing re-initialization (#…
gwhelanLD Mar 12, 2019
7ca817e
[ch33846] Rename tests to not start with capitals and general refacto…
gwhelanLD Mar 12, 2019
071bfb5
Add documentation for flagstore implementation (#113)
gwhelanLD Mar 13, 2019
cf593d8
Merge branch 'master' into next-release
eli-darkly Mar 13, 2019
3777e9d
[ch35150] Unit tests and bug fixes (#114)
gwhelanLD Mar 28, 2019
77eff6f
Add compatibility behavior to stringVariation and allFlags methods. (…
gwhelanLD Mar 28, 2019
6606fa9
Merge branch 'master' of github.com:launchdarkly/android-client into …
gwhelanLD Apr 11, 2019
26ac3ee
Update LDUser not to store all fields as Json. (#116)
gwhelanLD Apr 11, 2019
c1e7510
Merge branch 'master' into next-release
gwhelanLD Apr 23, 2019
5cca201
[ch37794] Run connected emulator tests in CircleCI (#120)
gwhelanLD Apr 29, 2019
496fc69
[ch34533] connection status, removing guava, network restructuring. (…
gwhelanLD Apr 29, 2019
2215275
rename repo and package name and apply markdown templates (#121)
bwoskow-ld Apr 30, 2019
fdede38
Fix issue that stream could be started before stopping when calling i…
gwhelanLD May 2, 2019
697d870
Merge branch 'master' into next-release
gwhelanLD May 2, 2019
0849812
Revert "Fix issue that stream could be started before stopping when c…
bwoskow-ld May 3, 2019
bbbeb81
Revert "rename repo and package name and apply markdown templates (#1…
bwoskow-ld May 3, 2019
146ba99
Revert "Revert "Fix issue that stream could be started before stoppin…
bwoskow-ld May 3, 2019
330e2e2
Revert "Revert "rename repo and package name and apply markdown templ…
bwoskow-ld May 3, 2019
f202096
Merge branch 'master' of github.com:launchdarkly/android-client-sdk-p…
bwoskow-ld May 3, 2019
466318b
Merge branch 'master' into next-release
bwoskow-ld May 6, 2019
6f90344
Merge branch 'master' into next-release
bwoskow-ld May 6, 2019
e49b5f8
Fix thread leak on identify call from restarting EventProcessor witho…
gwhelanLD May 14, 2019
2e2e1a1
Merge branch 'master' into next-release
gwhelanLD May 21, 2019
d458246
Add top level try/catch to migration methods. Check flag version Shar…
gwhelanLD May 21, 2019
26fce01
Bump version and update changelog for 2.8.3
gwhelanLD May 22, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@

All notable changes to the LaunchDarkly Android SDK will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org).

## [2.8.3] - 2019-05-22
### Added
- Improved error handling on flag store migration.
### Fixed
- ClassCastException when migrating flag store from certain early Android SDK versions.

## [2.8.2] - 2019-05-14
### Fixed
- Thread leak (introduced in 2.8.0) when calling `identify()` on `LDClient` instances.
Expand Down
2 changes: 1 addition & 1 deletion example/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ dependencies {
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation project(path: ':launchdarkly-android-client-sdk')
// Comment the previous line and uncomment this one to depend on the published artifact:
//implementation 'com.launchdarkly:launchdarkly-android-client-sdk:2.8.2'
//implementation 'com.launchdarkly:launchdarkly-android-client-sdk:2.8.3'

implementation 'com.jakewharton.timber:timber:4.7.1'

Expand Down
2 changes: 1 addition & 1 deletion launchdarkly-android-client-sdk/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ apply plugin: 'io.codearte.nexus-staging'

allprojects {
group = 'com.launchdarkly'
version = '2.8.2'
version = '2.8.3'
sourceCompatibility = 1.7
targetCompatibility = 1.7
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,19 @@ static void migrateWhenNeeded(Application application, LDConfig config) {
}

if (!migrations.contains("v2.6.0")) {
migrate_2_7_fresh(application, config);
try {
migrate_2_7_fresh(application, config);
} catch (Exception ex) {
Timber.w(ex, "Exception while performing fresh v2.7.0 store migration");
}
}

if (migrations.contains("v2.6.0") && !migrations.contains("v2.7.0")) {
migrate_2_7_from_2_6(application);
try {
migrate_2_7_from_2_6(application);
} catch (Exception ex) {
Timber.w(ex, "Exception while performing v2.6.0 to v2.7.0 store migration");
}
}
}

Expand Down Expand Up @@ -75,8 +83,11 @@ private static void migrate_2_7_fresh(Application application, LDConfig config)
String prefsKey = LDConfig.SHARED_PREFS_BASE_KEY + mobileKey + key + "-flags";
SharedPreferences.Editor userFlagStoreEditor = application.getSharedPreferences(prefsKey, Context.MODE_PRIVATE).edit();
for (String flagKey : flagKeys) {
String flagString = reconstructFlag(flagKey, (String) flagData.get(flagKey), flagValues.get(flagKey));
userFlagStoreEditor.putString(flagKey, flagString);
Object flagVersionData = flagData.get(flagKey);
if (flagVersionData instanceof String) {
String flagString = reconstructFlag(flagKey, (String) flagVersionData, flagValues.get(flagKey));
userFlagStoreEditor.putString(flagKey, flagString);
}
}
stores = stores && userFlagStoreEditor.commit();
}
Expand Down Expand Up @@ -114,8 +125,11 @@ private static void migrate_2_7_from_2_6(Application application) {
Map<String, ?> flagValues = application.getSharedPreferences(LDConfig.SHARED_PREFS_BASE_KEY + mobileKey + key + "-user", Context.MODE_PRIVATE).getAll();
SharedPreferences.Editor userFlagStoreEditor = application.getSharedPreferences(LDConfig.SHARED_PREFS_BASE_KEY + mobileKey + key + "-flags", Context.MODE_PRIVATE).edit();
for (String flagKey : flagKeys) {
String flagString = reconstructFlag(flagKey, (String) flagData.get(flagKey), flagValues.get(flagKey));
userFlagStoreEditor.putString(flagKey, flagString);
Object flagVersionData = flagData.get(flagKey);
if (flagVersionData instanceof String) {
String flagString = reconstructFlag(flagKey, (String) flagVersionData, flagValues.get(flagKey));
userFlagStoreEditor.putString(flagKey, flagString);
}
}
allSuccess = allSuccess && userFlagStoreEditor.commit();
}
Expand Down