All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ly.count.android.api.MessagingAdapter Maven / Gradle / Ivy

package ly.count.android.api;

import android.app.Activity;
import android.content.Context;
import android.util.Log;

import java.lang.reflect.Method;

public class MessagingAdapter {
    private static final String TAG = "MessagingAdapter";
    private final static String MESSAGING_CLASS_NAME = "ly.count.android.api.messaging.CountlyMessaging";

    public static boolean isMessagingAvailable() {
        boolean messagingAvailable = false;
        try {
            Class.forName(MESSAGING_CLASS_NAME);
            messagingAvailable = true;
        }
        catch (ClassNotFoundException ignored) {}
        return messagingAvailable;
    }

    public static boolean init(Activity activity, Class activityClass, String sender, String[] buttonNames) {
        try {
            final Class cls = Class.forName(MESSAGING_CLASS_NAME);
            final Method method = cls.getMethod("init", Activity.class, Class.class, String.class, String[].class);
            method.invoke(null, activity, activityClass, sender, buttonNames);
            return true;
        }
        catch (Throwable logged) {
            Log.e(TAG, "Couldn't init Countly Messaging", logged);
            return false;
        }
    }

    public static boolean storeConfiguration(Context context, String serverURL, String appKey, String deviceID, DeviceId.Type idMode) {
        try {
            final Class cls = Class.forName(MESSAGING_CLASS_NAME);
            final Method method = cls.getMethod("storeConfiguration", Context.class, String.class, String.class, String.class, DeviceId.Type.class);
            method.invoke(null, context, serverURL, appKey, deviceID, idMode);
            return true;
        }
        catch (Throwable logged) {
            Log.e(TAG, "Couldn't store configuration in Countly Messaging", logged);
            return false;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy