正在查看: Vesuvius v228 应用的 FirebaseNotificationsService.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Vesuvius v228 应用的 FirebaseNotificationsService.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package anywheresoftware.b4a.objects;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Intent;
import android.os.Handler;
import android.os.Looper;
import android.os.Parcelable;
import anywheresoftware.b4a.AbsObjectWrapper;
import anywheresoftware.b4a.BA;
import anywheresoftware.b4a.keywords.Common;
import anywheresoftware.b4a.objects.collections.Map;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.messaging.FirebaseMessaging;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
import java.util.Map;
public class FirebaseNotificationsService extends FirebaseMessagingService {
private static Class<?> ReceiverClass = null;
private static Class<?> ServiceClass = null;
private static boolean firstMessage = true;
private static Handler handler;
public void onCreate() {
super.onCreate();
try {
handler = new Handler(Looper.getMainLooper());
Class<?> cls = Class.forName(String.valueOf(getPackageName()) + ".firebasemessaging");
ServiceClass = cls;
if (BroadcastReceiver.class.isAssignableFrom(cls)) {
ReceiverClass = ServiceClass;
} else {
ReceiverClass = Class.forName(String.valueOf(getPackageName()) + ".firebasemessaging$firebasemessaging_BR");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
BA.LogError("FirebaseMessaging not found.");
}
}
public static Intent createIntent(Service service, String str) {
Intent intent = new Intent(service, ReceiverClass);
intent.setAction("b4a_firebasemessaging");
intent.putExtra("event", str);
return intent;
}
public void onNewToken(String str) {
sendBroadcast(createIntent(this, "b4a_tokenrefresh"));
}
public void onMessageReceived(final RemoteMessage remoteMessage) {
handler.post(new Runnable() {
@Override
public void run() {
final Intent createIntent = FirebaseNotificationsService.createIntent(FirebaseNotificationsService.this, "b4a_messagereceived");
createIntent.putExtra("message", (Parcelable) remoteMessage);
try {
if (!FirebaseNotificationsService.firstMessage && Common.IsPaused(null, FirebaseNotificationsService.ServiceClass)) {
BA.handler.postDelayed(new Runnable() {
@Override
public void run() {
FirebaseNotificationsService.this.sendBroadcast(createIntent);
}
}, 500L);
return;
}
FirebaseNotificationsService.firstMessage = false;
FirebaseNotificationsService.this.sendBroadcast(createIntent);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
});
}
@BA.Version(3.1f)
@BA.ShortName("FirebaseMessaging")
public static class FirebaseMessageWrapper extends AbsObjectWrapper<FirebaseMessaging> {
private BA ba;
private String eventName;
private String token = "";
public void Initialize(BA ba, String str) {
setObject(FirebaseMessaging.getInstance());
this.ba = ba;
this.eventName = str.toLowerCase(BA.cul);
updateToken();
}
private void updateToken() {
FirebaseMessaging.getInstance().getToken().addOnSuccessListener(new OnSuccessListener<String>() {
public void onSuccess(String str) {
FirebaseMessageWrapper.this.token = str;
FirebaseMessageWrapper.this.ba.raiseEventFromUI(this, String.valueOf(FirebaseMessageWrapper.this.eventName) + "_tokenrefresh", FirebaseMessageWrapper.this.token);
}
});
}
public boolean HandleIntent(Intent intent) {
if (intent == null || !"b4a_firebasemessaging".equals(intent.getAction())) {
return false;
}
intent.setExtrasClassLoader(RemoteMessage.class.getClassLoader());
String stringExtra = intent.getStringExtra("event");
if (stringExtra.equals("b4a_tokenrefresh")) {
updateToken();
} else if (stringExtra.equals("b4a_messagereceived")) {
RemoteMessage parcelableExtra = intent.getParcelableExtra("message");
this.ba.raiseEventFromUI(this, String.valueOf(this.eventName) + "_messagearrived", AbsObjectWrapper.ConvertToWrapper(new RemoteMessageWrapper(), parcelableExtra));
}
return true;
}
public String getToken() {
return BA.returnString(this.token);
}
public void SubscribeToTopic(String str) {
getObject().subscribeToTopic(str);
}
public void UnsubscribeFromTopic(String str) {
getObject().unsubscribeFromTopic(str);
}
}
@BA.ShortName("RemoteMessage")
public static class RemoteMessageWrapper extends AbsObjectWrapper<RemoteMessage> {
public String getCollapseKey() {
return BA.returnString(getObject().getCollapseKey());
}
public String getFrom() {
return BA.returnString(getObject().getFrom());
}
public String getMessageId() {
return getObject().getMessageId();
}
public long getSentTime() {
return getObject().getSentTime();
}
public Map GetData() {
Map map = new Map();
map.Initialize();
if (getObject().getData() != null) {
for (Map.Entry entry : getObject().getData().entrySet()) {
map.Put(entry.getKey(), entry.getValue());
}
}
return map;
}
}
}