Giter Site home page Giter Site logo

sunshine-conversations-android's Introduction

Bintray License

Sign up and get an integration id: https://app.smooch.io/signup.

Add the dependencies right into your build.gradle file

implementation 'io.smooch:core:9.4.0'
implementation 'io.smooch:ui:9.4.0'

Initialize Smooch in your Application class

import android.app.Application;
import io.smooch.core.Settings;
import io.smooch.core.Smooch;
import io.smooch.core.SmoochCallback;

public class YourApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Smooch.init(this, new Settings("YOUR_INTEGRATION_ID"), new SmoochCallback<InitializationStatus>() {
            @Override
            public void run(Response<InitializationStatus> response) {
                // Handle init result
            }
        });
    }
}

Show the ConversationActivity

import io.smooch.ui.ConversationActivity;

...

ConversationActivity.builder().show(this);

For more details see our docs and full install guide.

Dependencies

Smooch uses the following dependencies:

    // Core dependencies
    implementation 'com.google.firebase:firebase-messaging:23.0.0'
    implementation 'com.google.code.gson:gson:2.10.1'
    implementation 'com.squareup.okhttp3:okhttp:4.9.0'
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    implementation 'com.google.dagger:dagger:2.47'

    annotationProcessor 'com.google.dagger:dagger-compiler:2.47'

    // UI dependencies
    implementation 'com.github.bumptech.glide:glide:4.11.0'
    implementation 'com.google.android.gms:play-services-location:21.0.1'
    implementation 'com.davemorrissey.labs:subsampling-scale-image-view-androidx:3.10.0'

If your app also uses Firebase or support libraries, their version must match the ones used by Smooch to avoid runtime errors. If you need to update the version used by Smooch to match yours, you can do so by updating the dependencies in your app's build.gradle file.


dependencies {
    // Smooch
    implementation 'io.smooch:core:9.4.0'
    implementation 'io.smooch:ui:9.4.0'

    // Libraries imported by Smooch
    implementation "com.google.firebase:firebase-messaging:23.0.0"
    implementation "androidx.appcompat:appcompat:1.3.1"
    implementation "androidx.legacy:legacy-support-v4:1.0.0"
    implementation "androidx.exifinterface:exifinterface:1.3.3"
    implementation "androidx.recyclerview:recyclerview:1.2.1"
    implementation "androidx.media:media:1.4.3"
    implementation "com.google.android.gms:play-services-location:21.0.1"

    // Your other app dependencies
}

sunshine-conversations-android's People

Contributors

alavers avatar dannytranlx avatar jpjoyal avatar jugarrit avatar smooch-ci-android avatar wmora avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sunshine-conversations-android's Issues

Crash

Fatal Exception: java.lang.IncompatibleClassChangeError: Couldn't find com.google.gson.annotations.SerializedName.value
at libcore.reflect.AnnotationAccess.toAnnotationInstance(AnnotationAccess.java:659)
at libcore.reflect.AnnotationAccess.toAnnotationInstance(AnnotationAccess.java:641)
at libcore.reflect.AnnotationAccess.getDeclaredAnnotation(AnnotationAccess.java:170)
at java.lang.reflect.Field.getAnnotation(Field.java:242)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getFieldName(Unknown Source)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getFieldName(Unknown Source)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(Unknown Source)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(Unknown Source)
at com.google.gson.Gson.getAdapter(Unknown Source)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getFieldAdapter(Unknown Source)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.access$100(Unknown Source)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.(Unknown Source)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(Unknown Source)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(Unknown Source)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(Unknown Source)
at com.google.gson.Gson.getAdapter(Unknown Source)
at com.google.gson.Gson.fromJson(Unknown Source)
at com.google.gson.Gson.fromJson(Unknown Source)
at com.google.gson.Gson.fromJson(Unknown Source)
at com.google.gson.Gson.fromJson(Unknown Source)
at io.smooch.core.facade.impl.a.a(Unknown Source)
at io.smooch.core.facade.g.a(Unknown Source)
at io.smooch.core.facade.impl.f.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6145)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

I am seeing this crash on Samsung SM-A500G on Android 5.0.2

Looks like the following link has some solution.
google/gson#726

ConversationActivity.show(this) crashed application with the exception Didn't find class \"io.smooch.ui.R$layout\" on path: DexPathList

Hi,

I am trying to integrate Smooch in my Android application, I have completed all the steps mentioned in the link -

http://docs.smooch.io/android/#configuring-push-notifications

But, the app is getting crashed with the exception -

"stackTrace":"java.lang.NoClassDefFoundError: Failed resolution of: Lio/smooch/ui/R$layout;\n\tat io.smooch.ui.ConversationActivity.setup(Unknown Source)\n\tat io.smooch.ui.ConversationActivity.onCreate(Unknown Source)\n\tat android.app.Activity.performCreate(Activity.java:6303)\n\tat android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)\n\tat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376)\n\tat android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483)\n\tat android.app.ActivityThread.access$900(ActivityThread.java:153)\n\tat android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)\n\tat android.os.Handler.dispatchMessage(Handler.java:102)\n\tat android.os.Looper.loop(Looper.java:148)\n\tat android.app.ActivityThread.main(ActivityThread.java:5438)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)\nCaused by: java.lang.ClassNotFoundException: Didn\u0027t find class "io.smooch.ui.R$layout" on path: DexPathList[[zip file "/data/app/com.exclusife.business-1/base.apk"],nativeLibraryDirectories\u003d[/data/app/com.exclusife.business-1/lib/arm, /data/app/com.exclusife.business-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]\n\tat dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)\n\tat java.lang.ClassLoader.loadClass(ClassLoader.java:511)\n\tat java.lang.ClassLoader.loadClass(ClassLoader.java:469)\n\t... 14 more\n\tSuppressed: java.lang.ClassNotFoundException: io.smooch.ui.R$layout\n\t\tat java.lang.Class.classForName(Native Method)\n\t\tat java.lang.BootClassLoader.findClass(ClassLoader.java:781)\n\t\tat java.lang.BootClassLoader.loadClass(ClassLoader.java:841)\n\t\tat java.lang.ClassLoader.loadClass(ClassLoader.java:504)\n\t\t... 15 more\n\tCaused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available\njava.lang.ClassNotFoundException: Didn\u0027t find class "io.smooch.ui.R$layout" on path: DexPathList[[zip file "/data/app/com.exclusife.business-1/base.apk"],nativeLibraryDirectories\u003d[/data/app/com.exclusife.business-1/lib/arm, /data/app/com.exclusife.business-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]\n\tat dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)

Can some one please help me out with this issue.

Thanks in advance - Nikesh Yadav

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/iid/InstanceID

I am getting this crash on the first launch after install.
Am I missing anything?

FATAL EXCEPTION: IntentService[GcmRegIntentService]
Process: com.xxxxxxxxxx.android, PID: 20519
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/iid/InstanceID;
at io.smooch.core.GcmRegistrationIntentService.onHandleIntent(Unknown Source)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.iid.InstanceID" on path: DexPathList[[zip file "/data/app/com.xxxxxxx.android-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at io.smooch.core.GcmRegistrationIntentService.onHandleIntent(Unknown Source)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)
Suppressed: java.lang.ClassNotFoundException: com.google.android.gms.iid.InstanceID
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 6 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack availabl

Crash due to ConcurrentModificationException in Smooch

I implemented Smooch in my Android app, and it has been working fine so far. Just now, however, I sent a message and the app crashed with this stack trace:

E/AndroidRuntime: FATAL EXCEPTION: main
  Process: (my process name), PID: 32130
  java.util.ConcurrentModificationException
      at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)
      at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:96)
      at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:61)
      at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
      at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:112)
      at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:239)
      at com.google.gson.Gson.toJson(Gson.java:661)
      at com.google.gson.Gson.toJson(Gson.java:640)
      at com.google.gson.Gson.toJson(Gson.java:595)
      at com.google.gson.Gson.toJson(Gson.java:575)
      at io.smooch.core.b.a.c.a(Unknown Source)
      at io.smooch.core.b.c.a(Unknown Source)
      at io.smooch.core.service.SmoochService.a(Unknown Source)
      at io.smooch.core.service.SmoochService.b(Unknown Source)
      at io.smooch.core.service.SmoochService$10$1.a(Unknown Source)
      at io.smooch.core.service.SmoochService$10$1.a(Unknown Source)
      at io.smooch.core.b.f$7.a(Unknown Source)
      at io.smooch.core.b.a.b$1$2.run(Unknown Source)
      at android.os.Handler.handleCallback(Handler.java:739)
(snip)

This only happened once so far, so can't really say what caused it. I'm using 4.0.2. Just noticed 4.0.4 is out, going to try with that version now.

ConversationActivity crashing when rendering smoochButtons

For api version 16 and when you send an action button to the user, the ConversationActivity crashes due to java.lang.ArrayIndexOutOfBoundsException: length=16; index=17 at android.widget.RelativeLayout$LayoutParams.addRule(RelativeLayout.java:1204)
at io.smooch.ui.widget.MessageView.addSmoochButton

There is no image share feature.

Not able to share image feature. Only way to share images is to share via REST API. Would be great if you could add support for this.

NPE after selecting an image from gallery/library (4.0.2)

When I try to share an image from gallery (library) I get a NullPointerException. The gallery opens, but when I click on an image the app crashes. Using "last photo" works like a charm.

java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
  at io.smooch.ui.fragment.ConversationFragment.scaleBitmap(Unknown Source)
  at io.smooch.ui.fragment.ConversationFragment.smartDecode(Unknown Source)
  at io.smooch.ui.fragment.ConversationFragment.access$1100(Unknown Source)
  at io.smooch.ui.fragment.ConversationFragment$17.run(Unknown Source)
  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
  at java.lang.Thread.run(Thread.java:818)

Can't initialise Smooch

Description:
While running my app with smooch I'm unable to start it and initialise it
I have followed the example for android. But I have also used for ios with no issue.

Results:
I keep getting this error:
"An unexpected error occurred when validating the app token. Retrying in 10 seconds..."

Steps:

  1. I have tried the demo app and everything works fine
  2. I add the same init , dependencies etc etc to my app. but then I get that error.
compile 'com.google.code.gson:gson:2.4'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'io.smooch:core:latest.release'
compile 'io.smooch:ui:latest.release'

Note:
I have tried several combination for google service up to 9.0.2 and at this point I can't find the solution, which I have tried with the demo app and all seems fine.

  • The google-service plugin in my gradle is added at the end.

For the conflicts and merge sake

  • I use crashlytics, onesignal, facebook, parse libs.

I was just wondering what's actualy smooch doing to get this error and debug a bit more, since it is obfuscated I can't take it really seriously at:

"
....
} else if(var1.a() == 404) {
SmoochService.this.a(InitializationStatus.InvalidToken);
Log.e("SmoochService", "No app was found matching the supplied app token. Please make sure you have entered it correctly.");
} else {
int var2 = SmoochService.this.h.b();
if(SmoochService.this.C != io.smooch.core.service.a.Connected) {
SmoochService.this.y = true;
SmoochService.this.B = InitializationStatus.Unknown;
} else {
Log.e("SmoochService", String.format("An unexpected error occurred when validating the app token. Retrying in %d seconds...", new Object[]{Integer.valueOf(var2)}));
SmoochService.this.a(InitializationStatus.Error);
SmoochService.this.a(SmoochService.this.b, (long)(var2 * 1000));
}
}
"

Thanks

ConversationActivity.show(this); Crashing

Gradle dependencies

compile 'io.smooch:core:latest.release'
compile 'io.smooch:ui:latest.release'

Crash
java.lang.AssertionError: Missing field in io.smooch.core.c.i at com.google.gson.b.a.r.<init>(TypeAdapters.java:812) at com.google.gson.b.a.q$24.a(TypeAdapters.java:838) at com.google.gson.f.a(Gson.java:416) at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:135) at com.google.gson.b.a.k$1.<init>(ReflectiveTypeAdapterFactory.java:105) at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:104) at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:160) at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:96) at com.google.gson.f.a(Gson.java:416) at com.google.gson.b.a.b.a(CollectionTypeAdapterFactory.java:53) at com.google.gson.f.a(Gson.java:416) at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:135) at com.google.gson.b.a.k$1.<init>(ReflectiveTypeAdapterFactory.java:105) at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:104) at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:160) at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:96) at com.google.gson.f.a(Gson.java:416) at com.google.gson.f.a(Gson.java:653) at com.google.gson.f.a(Gson.java:640) at com.google.gson.f.b(Gson.java:595) at com.google.gson.f.b(Gson.java:575) at io.smooch.core.b.a.d.a(Unknown Source) at io.smooch.core.b.g.a(Unknown Source) at io.smooch.core.service.SmoochService.k(Unknown Source) at io.smooch.core.q$6.run(Unknown Source) at io.smooch.core.q.a(Unknown Source) at io.smooch.core.q.i(Unknown Source) at io.smooch.core.c.c(Unknown Source) at io.smooch.ui.c.a.onResume(Unknown Source) at android.support.v4.app.Fragment.performResume(Fragment.java:2020) at android.support.v4.app.ag.a(FragmentManager.java:1107) at android.support.v4.app.ag.a(FragmentManager.java:1252) at android.support.v4.app.ag.a(FragmentManager.java:1234) at android.support.v4.app.ag.p(FragmentManager.java:2056) at android.support.v4.app.ac.i(FragmentController.java:196) at android.support.v4.app.y.onResumeFragments(FragmentActivity.java:504) at android.support.v4.app.y.onPostResume(FragmentActivity.java:493) at android.support.v7.a.m.onPostResume(AppCompatActivity.java:178) at android.app.Activity.performResume(Activity.java:5095) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2565) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2603) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2089) at android.app.ActivityThread.access$600(ActivityThread.java:130) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NoSuchFieldException: Unsent at java.lang.Class.getField(Class.java:787) at com.google.gson.b.a.r.<init>(TypeAdapters.java:801) at com.google.gson.b.a.q$24.a(TypeAdapters.java:838)  at com.google.gson.f.a(Gson.java:416)  at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:135)  at com.google.gson.b.a.k$1.<init>(ReflectiveTypeAdapterFactory.java:105)  at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:104)  at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:160)  at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:96)  at com.google.gson.f.a(Gson.java:416)  at com.google.gson.b.a.b.a(CollectionTypeAdapterFactory.java:53)  at com.google.gson.f.a(Gson.java:416)  at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:135)  at com.google.gson.b.a.k$1.<init>(ReflectiveTypeAdapterFactory.java:105)  at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:104)  at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:160)  at com.google.gson.b.a.k.a(ReflectiveTypeAdapterFactory.java:96)  at com.google.gson.f.a(Gson.java:416)  at com.google.gson.f.a(Gson.java:653)  at com.google.gson.f.a(Gson.java:640)  at com.google.gson.f.b(Gson.java:595)  at com.google.gson.f.b(Gson.java:575)  at io.smooch.core.b.a.d.a(Unknown Source)  at io.smooch.core.b.g.a(Unknown Source)  at io.smooch.core.service.SmoochService.k(Unknown Source)  at io.smooch.core.q$6.run(Unknown Source)  at io.smooch.core.q.a(Unknown Source)  at io.smooch.core.q.i(Unknown Source)  at io.smooch.core.c.c(Unknown Source)  at io.smooch.ui.c.a.onResume(Unknown Source)  at android.support.v4.app.Fragment.performResume(Fragment.java:2020)  at android.support.v4.app.ag.a(FragmentManager.java:1107)  at android.support.v4.app.ag.a(FragmentManager.java:1252)  at android.support.v4.app.ag.a(FragmentManager.java:1234)  at android.support.v4.app.ag.p(FragmentManager.java:2056)  at android.support.v4.app.ac.i(FragmentController.java:196)  at android.support.v4.app.y.onResumeFragments(FragmentActivity.java:504)  at android.support.v4.app.y.onPostResume(FragmentActivity.java:493)  at android.support.v7.a.m.onPostResume(AppCompatActivity.java:178)  at android.app.Activity.performResume(Activity.java:5095)  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2565)  at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2603)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2089)  at android.app.ActivityThread.access$600(ActivityThread.java:130)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)  at android.os.Handler.dispatchMessage(Handler.java:99)  at android.os.Looper.loop(Looper.java:137)  at android.app.ActivityThread.main(ActivityThread.java:4745)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:511)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)  at dalvik.system.NativeStart.main(Native Method)

AssertionError

I use last version of smooch libraries (2.1.8). After Smooch.init I get that error

Fatal Exception: java.lang.AssertionError
       at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.(Unknown Source)
       at com.google.gson.internal.bind.TypeAdapters$26.create(Unknown Source)
       at com.google.gson.Gson.doubleAdapter(Unknown Source)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.excludeField(Unknown Source)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.excludeField(Unknown Source)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.(Unknown Source)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.excludeField(Unknown Source)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.excludeField(Unknown Source)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.excludeField(Unknown Source)
       at com.google.gson.Gson.doubleAdapter(Unknown Source)
       at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(Unknown Source)
       at com.google.gson.Gson.doubleAdapter(Unknown Source)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.excludeField(Unknown Source)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.excludeField(Unknown Source)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.(Unknown Source)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.excludeField(Unknown Source)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.excludeField(Unknown Source)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.excludeField(Unknown Source)
       at com.google.gson.Gson.doubleAdapter(Unknown Source)
       at com.google.gson.Gson.doubleAdapter(Unknown Source)
       at com.google.gson.Gson.doubleAdapter(Unknown Source)
       at com.google.gson.Gson.floatAdapter(Unknown Source)
       at com.google.gson.Gson.floatAdapter(Unknown Source)
       at io.smooch.core.facade.impl.h.a(Unknown Source)
       at io.smooch.core.facade.c.a(Unknown Source)
       at io.smooch.core.service.SmoochService.k(Unknown Source)
       at io.smooch.core.i.run(Unknown Source)
       at io.smooch.core.e.a(Unknown Source)
       at io.smooch.core.e.i(Unknown Source)
       at io.smooch.core.User.getCurrentUser(Unknown Source)
       at io.smooch.core.User.getCurrentUser(Unknown Source)
       at io.smooch.core.p.run(Unknown Source)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:148)
       at android.app.ActivityThread.main(ActivityThread.java:5417)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

App crashes on start

My build.gradle looks like

compile 'com.google.android.gms:play-services-gcm:9.0.2'
    compile 'com.google.android.gms:play-services-analytics:9.0.2'
    compile "com.google.android.gms:play-services-location:9.0.2"
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.squareup.okhttp3:okhttp:3.3.1'
    compile 'io.smooch:core:3.2.1'
    compile 'io.smooch:ui:3.2.1'

It crashes on SmoothService and throws a ClassCastException.

I also enabled Proguard

Sending Key Value of the context

I am trying to send some key, value pairs of the user context like which screen the user invoked the feedback, what the user is viewing.

I tried using the following code. But its not working. The mail/slack app never shows this value.
I thought this will work like crashlytics's key value setting :(

  final Map<String, Object> customProperties = new HashMap<>();
  customProperties.put("flightSearchFrom", userEnteredFrom);
  User.getCurrentUser().addProperties(customProperties);
  ConversationActivity.show(thisActivity, Intent.FLAG_ACTIVITY_NEW_TASK);

Change color theme for send button

The color themes XML can all be edited to our custom theme, except the "send" button it is still in violet, do you have any idea how?

Properly include all dependencies

Please include all the necessary dependencies in your libraries pom.xml so they don't have to be added manually. In your docs it says you don't include these dependencies as "[..] many applications already feature [them]" which doesn't seem like a valid argument as the Gradle dependency management takes care of this.

ref http://docs.smooch.io/android/#android-studio-with-gradle

Smooch depends on a few external libraries that many applications already feature. For this reason, it does not bundle those dependencies inside the AAR or JAR packages.

Crash on links

When I send %[Button label here](http://anyurl.com) or %[Button label here](reply:PAYLOAD_HERE) then app crashes with following message:

 java.lang.ArrayIndexOutOfBoundsException: length=16; index=17
at android.widget.RelativeLayout$LayoutParams.addRule(RelativeLayout.java:1204)
at io.smooch.ui.widget.MessageView.addSmoochButton(Unknown Source)
at io.smooch.ui.adapter.MessageListAdapter.addMessage(Unknown Source)
at io.smooch.ui.adapter.MessageListAdapter.getItemView(Unknown Source)
at io.smooch.ui.adapter.MessageListAdapter.getView(Unknown Source)

I'm using latest 4.0.3 sdk

Client receive messages already read

After have a conversation with a user, if He unninstall and install again the aplication Smoochio show a new notification with the old message when he starts the applications.
If he installs the application in other devices but he has the same email the notification is shown too.

critical bug

When i called Smooch.track("bla_bla"); than app crashed with exception:

E: FATAL EXCEPTION: main
Process: ..., PID: 28907
java.lang.NoSuchMethodError: No virtual method getState()Ljava/lang/String; in class Lio/smooch/core/MessageAction; or its super classes (declaration of 'io.smooch.core.MessageAction' appears in /data/app/.../base.apk)
at io.smooch.ui.adapter.MessageListAdapter.getItemView(Unknown Source)
at io.smooch.ui.adapter.MessageListAdapter.getView(Unknown Source)
at android.widget.AbsListView.obtainView(AbsListView.java:2346)
at android.widget.ListView.makeAndAddView(ListView.java:1876)
at android.widget.ListView.fillDown(ListView.java:702)
at android.widget.ListView.fillFromTop(ListView.java:763)
at android.widget.ListView.layoutChildren(ListView.java:1671)
at android.widget.AbsListView.onLayout(AbsListView.java:2148)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:435)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2171)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1931)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Transmit more recognizable device names

What about using this library for more recognizable device names? I'm using this library in our app and it works like a charm. It's as simple as DeviceName.getDeviceName().
E.g. for the 1. Generation Motorola Moto G it gives Moto G (1. Gen) instead of Moto G.

Cannot find symbol GcmService

I'm using the code
GcmService.triggerSmoochGcm(intent.getExtras(), context);

but seems to me the new Smooch SDK has deprecated this class

Give us more power on UI

The main point is customize chat UI. For example give us method that returns root view so we could call getRootView().findViewByid(R.id.camera).setVisibility(View.GONE).
In my case I need DrawerLayout to add right side menu and one custom button to open it.

Be able to know if the user has read our message

Would be great to know if the user has read our message.
I use slack as integration, I would like to ask slack which is the las message the user has read, in the same way that we ask for the profile

Getting error "Error:warning: Ignoring InnerClasses attribute for an anonymous inner class" while obfuscating.

Please find the log.

Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.devmarvel.creditcardentry.internal.f) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.devmarvel.creditcardentry.internal.g) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.devmarvel.creditcardentry.internal.b) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.devmarvel.creditcardentry.internal.c) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.devmarvel.creditcardentry.internal.d) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.devmarvel.creditcardentry.internal.e) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.devmarvel.creditcardentry.internal.h) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.devmarvel.creditcardentry.internal.i) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.devmarvel.creditcardentry.internal.l) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.devmarvel.creditcardentry.library.d) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.devmarvel.creditcardentry.library.e) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.ui.a) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.ui.adapter.a) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.ui.b) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.ui.c) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.ui.fragment.f) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.ui.fragment.g) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.ui.notification.a) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.ui.fragment.a) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.ui.fragment.b) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.ui.fragment.c) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.ui.fragment.d) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.ui.fragment.e) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.ui.fragment.h) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.ui.widget.a) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.saulpower.fayeclient.g) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.saulpower.fayeclient.c) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.saulpower.fayeclient.f) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.saulpower.fayeclient.h) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.saulpower.fayeclient.i) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.a) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.b) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.c) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.f) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.g) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.h) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.i) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.impl.b) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.impl.d) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.impl.e) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.impl.f) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.impl.g) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.j) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.k) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.l) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.m) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.n) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.o) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.l) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.p) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.facade.r) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.g) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.h) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.j) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.i) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.k) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.m) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.n) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.o) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.p) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.aa) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.h) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.ab) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.d) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.e) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.f) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.g) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.i) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.j) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.s) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.t) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.k) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.l) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.w) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.m) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.n) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.o) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.p) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.q) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.u) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.r) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.v) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.x) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.y) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(io.smooch.core.service.z) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is not an inner class.
:app:validateDebugSigning
:app:packageDebug FAILED
Error:A problem was found with the configuration of task ':app:packageDebug'.

File '/Users/rajesh/Desktop/Turboapp/app/build/intermediates/res/resources-debug-stripped.ap_' specified for property 'resourceFile' does not exist.
Information:BUILD FAILED
Information:Total time: 37.351 secs
Information:681 errors
Information:0 warnings
Information:See complete output in console

Google Play Services 7.5.0 out of date please upgrade to 9.4.0

Hello,
I love smooch(infact, I have been using it since it was supportkit.io) however of late, I when I was implementing Firebase services(which is now included in play services by default) there has been a sharp conflict between firebase and smooch and I would love to use both services. Please let me know if at all you will be fixing this issue any time soon.

NPE when clicking on "Take Photo" (4.0.2)

java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.contains(java.lang.CharSequence)' on a null object reference
  at io.smooch.ui.fragment.ConversationFragment.dispatchTakePhotoIntent(Unknown Source)
  at io.smooch.ui.fragment.ConversationFragment.access$2300(Unknown Source)
  at io.smooch.ui.fragment.ConversationFragment$6.onClick(Unknown Source)
  at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1082)
  at android.widget.AdapterView.performItemClick(AdapterView.java:305)
  at android.widget.AbsListView.performItemClick(AbsListView.java:1148)
  at android.widget.AbsListView$PerformClick.run(AbsListView.java:3059)
  at android.widget.AbsListView$3.run(AbsListView.java:3866)
  at android.os.Handler.handleCallback(Handler.java:739)
  at android.os.Handler.dispatchMessage(Handler.java:95)
  at android.os.Looper.loop(Looper.java:135)
  at android.app.ActivityThread.main(ActivityThread.java:5294)
  at java.lang.reflect.Method.invoke(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:372)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)

Crashe

Around 298 users got the following Crash.
Device distribution.
samsung43%
LENOVO11%
Micromax7%
Other…39%

OS version happening:
5 36%
6 33%
4 30%
Other…1%

16% of the crash happened in "App In Focus"
Please let me know if you need anymore details to reproduce the crash.

Fatal Exception: java.lang.IllegalStateException: Fragment a{3f95ef31} not attached to Activity
at android.support.v4.app.Fragment.getResources(SourceFile:636)
at android.support.v4.app.Fragment.getString(SourceFile:658)
at io.smooch.ui.fragment.ConversationFragment$12.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5292)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)

Is there a stable version of smooch? I see some crashes on every release.

Add Changelog.md file in the repo

Please consider adding the changelog.md file and update the info for each release. Gives app developers clear view about what's changed in the library and the severity of the issue, before upgrading the production builds.

smooch_btn_send_normal.png: Duplicate file error

Hey there!

I'm not quite sure what changed, but I'm getting this error now when syncing Gradle:
...android-app/build/intermediates/res/merged/dev/debug/drawable-xhdpi-v4/smooch_btn_send_normal.png: error: Duplicate file.

...android-app/build/intermediates/res/merged/dev/debug/drawable-xhdpi/smooch_btn_send_normal.png: Original is here. The version qualifier may be implied.

screen shot 2016-05-09 at 5 23 27 pm

I'm using build tools 22.0.1 (unchanged) and including the following in our gradle.build file:

compile 'io.smooch:core:latest.release'
compile 'io.smooch:ui:latest.release'

Any thoughts on this one? I've tried a full clean, rebuild, etc.

Thanks!

Log shows FileNotFoundException when launching ConversationActivity

Do I have to worry about this? Everything works fine... It's just in the log

I/cr_BrowserStartup: Initializing chromium process, singleProcess=true
E/ApkAssets: Error while loading asset assets/natives_blob_64.bin: java.io.FileNotFoundException: assets/natives_blob_64.bin
E/ApkAssets: Error while loading asset assets/snapshot_blob_64.bin: java.io.FileNotFoundException: assets/snapshot_blob_64.bin

Opening my app on push notification tap

I tuned push notifications, but I want to open my app when user tap on it. How can I use my own push notification builder? Or how can I set pending intent on your notification?

Attribute "src" has already been defined

I have integrated smooch on my android app using version 2.3.1, and build perfectly but when I try to update to new version 3.2.1, the Gradle build fails.

It appears this error:
"Attribute "src" has already been defined"

:app:mergeProductionReleaseResources
:app:processProductionReleaseResources
AGPBI: {"kind":"error","text":"Attribute \"src\" has already been defined","sources":[{"file":"/..../app/build/intermediates/res/merged/production/release/values/values.xml","position":{"startLine":446}}],"original":"","tool":"AAPT"}

FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processProductionReleaseResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/....../Library/Android/sdk/build-tools/23.0.3/aapt'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

The line 446 of values.xml is:
<declare-styleable name="SubsamplingScaleImageView"><attr format="reference" name="src"/><attr

I'm using build tools 23.0.3 and support version 23.2.1.

Searching, I found this issue on /subsampling-scale-image-view which I suppose that smooch uses.

Someone could help me?

Firebase push notifications are intercepted by own app subclass of FirebaseMessagingService

My app overrides FirebaseMessagingService and accordingly, it receives all the push messages, even those from smooch so the smooch firebase service is never called.

How to fix this? Can I somehow forward the smooch push notifications to your firebase service from inside my firebase service? I do not want to reimplement myself the smooch logic of parsing the messages and showing a notification. How to solve this @jugarrit ?

EDIT: If I am in the app, when the push message comes, the notification is shown by smooch. However, when I am outside the app, there is no smooch notification.

Unable to start service Intent

Unable to start service Intent { cmp=io.smooch.demoapp/io.smooch.core.service.SmoochService } U=0: not found

when i run this code on eclipse then it will gives above Error, and doesn't connect my phone.But on andorid studio it will working well.

ConversationFragment very buggy

I often see "Could not connect to the server" message on top of screen.
Also, when I send messages from web to mobile app I don't see them until activity pause\resume.
I tried ConversationActivity and all works fine, but I have to use fragment because I need navigation drawer on top of chat and custom toolbar.
Also, when I add ConversationFragment it has top margin. And my screen looks like (from top to bottom) toolbar -> blank space -> chat. Could you please rid off this margin? Or make it customizable.

Error on ConversationActivity.show(this);

Hello, i got this errror
java.lang.NoSuchFieldError: No static field Smooch_inputText of type I in class Lio/smooch/ui/R$id;
when i call ConversationActivity.show(this);
Have anyone expierenced the same?

Smooch with Fcm instead of Gcm: crash error

Hello,

I'm migrating my app to Firebase Cloud Messaging instead of GCM. Then i got the error below:

FATAL EXCEPTION: IntentService[GcmRegIntentService] java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/iid/InstanceID;
at io.smooch.core.GcmRegistrationIntentService.onHandleIntent(Unknown Source)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:66)

What can i do in this case? And will smooch work with Fcm?

Ability to override the default behavior when handling message action

Hey guys,

Not sure if this was brought up already, but there does not seem to be possible to override the default behaviour of the Conversation delegate. In iOS, one can do set a delegate to do the following, for example:

- (BOOL)conversation:(SKTConversation *)conversation shouldHandleMessageAction:(SKTMessageAction *)action {
    if ([action.uri.absoluteString hasPrefix:@"special:"]) {
        //Do something special
        return NO;
    } else {
        return YES;
    }
}

Unfortunately, in Android, it seems that one must override the whole Delegate object:

Smooch.getConversation().setDelegate(new Conversation.Delegate() {
            @Override
            public void onMessagesReceived(Conversation conversation, List<Message> list) {

            }

            @Override
            public void onUnreadCountChanged(Conversation conversation, int i) {

            }

            @Override
            public void onMessageSent(Message message, MessageUploadStatus messageUploadStatus) {

            }

            @Override
            public void onInitializationStatusChanged(InitializationStatus initializationStatus) {

            }

            @Override
            public void onPaymentProcessed(MessageAction messageAction, PaymentStatus paymentStatus) {

            }

            @Override
            public boolean shouldTriggerAction(MessageAction messageAction) {
                return false;
            }

            @Override
            public void onCardSummaryLoaded(CardSummary cardSummary) {

            }

            @Override
            public void onSmoochShown() {

            }

            @Override
            public void onSmoochHidden() {

            }
        });

Since I am not interested in all the other methods, there is no way for me to use this without breaking the rest of the functionality. I feel that the solution might be to subclass the ConversationActivity class, and setting it as delegate, but that does not seem possible either.

Crash

Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package com.myapp.android: Couldn't expand RemoteViews for: StatusBarNotification(pkg=com.myapp.android user=UserHandle{0} id=1 tag=Smooch score=10: Notification(pri=1 contentView=com.myapp.android/0x1090064 vibrate=default sound=default defaults=0xffffffff flags=0x11 kind=[null]))
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5292)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
at dalvik.system.NativeStart.main(NativeStart.java)

Manifest merger failure with version 4.0.0 related to FileProvider usage

Hi. I am seeing the following error when trying to build with smooch version 4.0.0

Manifest merger failed : Attribute provider#android.support.v4.content.FileProvider@authorities value=(com.tmy.own.package.name.fileprovider) from AndroidManifest.xml:127:13-59
is also present at [io.smooch:ui:4.0.0] AndroidManifest.xml:41:13-60 value=(io.smooch.ui.fileprovider).
Suggestion: add 'tools:replace="android:authorities"' to element at AndroidManifest.xml:125:

It seems the smooch library is using the FileProvider but my app is also using it. I am not sure if I use tools:replace if I am affecting the behavior of the smooch library.

What do you use the FileProvider for?

Ability to automate messaging

Hello, is it possible to auto-reply to user's message within the app? For example, in response to a button click.

Update: Okay, so looks like this can be done using Conversation.sendMessage(). However, the new message does not show up in the conversation until it's restarted. What am I missing?

Update 2: Turns out, sendMessage() is for sending messages on behalf of the user. Anything to reply them?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.