Hey @smittytone. I have upgraded to the new SDK.
In all honesty, the new SDK is poorly packaged and does not represent the quality that ElectricImp provides.
Once I got the SDK to work fine on my debug environment by attempting to understand the changes I need to make from your “sample” projects, I realised once I signed it that the build will fail.
That is because I’d need to add okhttp3 and retrofit’s proguard configuration. The build passed after that and the app was published, only to notice that now blinking up crashes the app with:
java.math.BigInteger.<init> (BigInteger.java:236)
com.electricimp.blinkup.BlinkupPacket.access$000 (BlinkupPacket.java)
com.electricimp.blinkup.BlinkupPacket.access$000 (BlinkupPacket.java)
com.electricimp.blinkup.BlinkupPacket.access$000 (BlinkupPacket.java)
com.electricimp.blinkup.BaseBlinkupGLActivity.access$000 (BaseBlinkupGLActivity.java)
com.electricimp.blinkup.BaseBlinkupGLActivity.access$000 (BaseBlinkupGLActivity.java)
com.electricimp.blinkup.BaseBlinkupGLActivity$PreBlinkupTokenAcquireCallback.onError (BaseBlinkupGLActivity.java)
com.electricimp.blinkup.ImpController$1.onFailure (ImpController.java)
retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run (ExecutorCallAdapterFactory.java)
android.os.Handler.handleCallback (Handler.java:739)
android.os.Handler.dispatchMessage (Handler.java:95)
android.os.Looper.loop (Looper.java:148)
android.app.ActivityThread.main (ActivityThread.java:7325)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1230)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1120)
I had to add a new proguard configuration to keep all your classes, which is nowhere mentioned in the sample projects.
-keep class com.electricimp.** { *; }
Now, can we for new versions have the following, which I would expect from any modern company:
- Release changes
- How to migrate from version X to version Y.
- A library that can be installed using Gradle, not by manually copying files.
- A library that does not require me to add more libraries to my dependencies, and then have to configure these dependencies.
- A list of proguard rules that have to be added.
And most importantly:
- An easy to read documentation centre for all of the above, with user guides and API reference.
Thanks,
Zaid.