导航菜单

页面标题

页面副标题

Brevistay v5.8.2 - FirebaseMessagingServiceProxy.java 源代码

正在查看: Brevistay v5.8.2 应用的 FirebaseMessagingServiceProxy.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.brevistay.app.view;

import android.content.Context;
import android.util.Log;
import com.clevertap.android.sdk.pushnotification.fcm.CTFcmMessageHandler;
import com.clevertap.android.sdk.pushnotification.fcm.FcmMessageListenerService;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class FirebaseMessagingServiceProxy extends FirebaseMessagingService {
    private List<FirebaseMessagingService> messagingServices;

    interface GCAction1<T> {
        void run(T t);
    }

    public FirebaseMessagingServiceProxy() {
        ArrayList arrayList = new ArrayList(2);
        this.messagingServices = arrayList;
        arrayList.add(new FcmMessageListenerService());
    }

    public void onNewToken(final String s) {
        delegate(new GCAction1() {
            @Override
            public final void run(Object obj) {
                FirebaseMessagingServiceProxy.this.lambda$onNewToken$0(s, (FirebaseMessagingService) obj);
            }
        });
        getSharedPreferences("_", 0).edit().putString("fb", s).apply();
        Log.d("adjusttoken", s);
    }

    public void lambda$onNewToken$0(String str, FirebaseMessagingService firebaseMessagingService) {
        injectContext(firebaseMessagingService);
        firebaseMessagingService.onNewToken(str);
    }

    public static String getToken(Context context) {
        return context.getSharedPreferences("_", 0).getString("fb", "empty");
    }

    public void onMessageReceived(final RemoteMessage remoteMessage) {
        delegate(new GCAction1() {
            @Override
            public final void run(Object obj) {
                FirebaseMessagingServiceProxy.this.lambda$onMessageReceived$1(remoteMessage, (FirebaseMessagingService) obj);
            }
        });
        new CTFcmMessageHandler().createNotification(getApplicationContext(), remoteMessage);
        Log.d("CT_onMessageReceived", "onMessageReceived: working");
    }

    public void lambda$onMessageReceived$1(RemoteMessage remoteMessage, FirebaseMessagingService firebaseMessagingService) {
        injectContext(firebaseMessagingService);
        firebaseMessagingService.onMessageReceived(remoteMessage);
    }

    private void delegate(GCAction1<FirebaseMessagingService> action) {
        Iterator<FirebaseMessagingService> it = this.messagingServices.iterator();
        while (it.hasNext()) {
            action.run(it.next());
        }
    }

    private void injectContext(FirebaseMessagingService service) {
        setField(service, "mBase", this);
    }

    private boolean setField(Object targetObject, String fieldName, Object fieldValue) {
        Field field;
        try {
            field = targetObject.getClass().getDeclaredField(fieldName);
        } catch (NoSuchFieldException unused) {
            field = null;
        }
        Class<? super Object> superclass = targetObject.getClass().getSuperclass();
        while (field == null && superclass != null) {
            try {
                field = superclass.getDeclaredField(fieldName);
            } catch (NoSuchFieldException unused2) {
                superclass = superclass.getSuperclass();
            }
        }
        if (field == null) {
            return false;
        }
        field.setAccessible(true);
        try {
            field.set(targetObject, fieldValue);
            return true;
        } catch (IllegalAccessException unused3) {
            return false;
        }
    }
}