Comments (3)
Sorry @ursusursus API is already defined and we are not able to change it -- technically speaking it is possible and it is easy, but unfortunately it will hit all existing customers :-/
from exponea-android-sdk.
how so? if hashmap extends map, then all callsites should work even if library changes api to map, no?
from exponea-android-sdk.
No, this is opposite.
Hashmap extends from Map AND MutableMap. So you may put items to hashmap at any time and that instance will be updated (technically speaking Hashmap has 'set' operator).
Map is "only" map. So you are unable to put items to existing instance, you'll get a new 'map' instance but a original one will not be updated (has only 'plus' operator).
So from this, you may imagine a case that developer will create a var props = PropertiesList(data)
and then he'll put items into 'data' rather than 'props'. His result will have same result. If we change it to 'Map', he'll get a compilation error.
But back to original question -> you are right that Map has to be used in these cases, with no doubt. But we already release it as part of SDK API and we are unable to change it because it will hit all existing developers and it forces them to reimplement their part of code (potentially).
from exponea-android-sdk.
Related Issues (20)
- How to disable sdk at runtime? HOT 5
- In App Messaging still shows in device even if it was stopped in Dashboard HOT 1
- FetchManagerImpl.fetchInAppMessages - NullPointerException - Parameter specified as non-null is null HOT 3
- Manually tracked token is not tracked HOT 5
- Tracking ActivityLifecycleCallbacks on main thread HOT 1
- Exponea not initialized because of missing Gson Proguard/R8 rules HOT 1
- Lock contention issue HOT 2
- Shutting down the Cloud Messaging API (Legacy) in June, 2024 HOT 1
- Campaign parameter xnpe_cmp should not be required HOT 7
- Doesn't call onNewIntent HOT 1
- Image Decoding on Main Thread HOT 4
- Better way to initialise an AuthorizationProvider class? HOT 1
- Conflict between Exponea SDK WorkManager Initialization and WorkManager initialization in Application. HOT 2
- Timestamp not present in customers/events request body HOT 1
- Notification sound is played while the Notification chanel is set to be silent HOT 3
- Android 14 (Api 34) support HOT 2
- Remove DB calls on Main Thread HOT 3
- Exponea Safe Mode wrapper caught unhandled error java.lang.NoSuchMethodError HOT 9
- Migrate from javax.annotation:jsr250-api:1.0 HOT 2
- 3.15.0 Exponea Init error - java.lang.NoSuchMethodError: No virtual method add HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from exponea-android-sdk.