导航菜单

页面标题

页面副标题

Jurassic World v1.83.4 - AlarmReceiver.java 源代码

正在查看: Jurassic World v1.83.4 应用的 AlarmReceiver.java JAVA 源代码文件

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


package com.ludia.framework.notification.local;

import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import androidx.core.app.NotificationCompat;
import com.helpshift.util.ConfigValues;
import com.ludia.engine.application.Application;
import com.ludia.engine.application.GameActivity;
import com.microsoft.appcenter.ingestion.models.properties.StringTypedProperty;
import com.unity3d.services.UnityAdsConstants;

public class AlarmReceiver extends BroadcastReceiver {
    public static final String ALARM_ID = "ALARM_ID";
    public static final String CHANNEL_ID = "ALARM_CHANNEL_ID";
    public static final String FIRE_TIME = "ALARM_FIRE_TIME";
    public static final String REPEAT_INTERVAL = "ALARM_REPEAT_INTERVAL";
    public static final String SOUND_ENABLED = "ALARM_SOUND_ENABLED";
    public static final String SOUND_NAME = "ALARM_SOUND_NAME";
    public static final String SUBTITLE = "ALARM_SUBTITLE";
    public static final String TICKER_TEXT = "ALARM_TICKER";
    public static final String TITLE = "ALARM_TITLE";
    private Context m_context;

    @Override
    public void onReceive(Context context, Intent intent) {
        this.m_context = context;
        try {
            Bundle extras = intent.getExtras();
            NotificationData notificationData = new NotificationData();
            notificationData.ticker = extras.getString(TICKER_TEXT);
            notificationData.title = extras.getString(TITLE);
            notificationData.subTitle = extras.getString(SUBTITLE);
            notificationData.repeatInterval = extras.getLong(REPEAT_INTERVAL);
            notificationData.fireTime = extras.getLong(FIRE_TIME);
            notificationData.alarmId = extras.getInt(ALARM_ID);
            notificationData.soundEnabled = extras.getBoolean(SOUND_ENABLED);
            notificationData.soundfileName = extras.getString(SOUND_NAME);
            notificationData.channelId = extras.getString(CHANNEL_ID);
            Application.trace("Notification alarm fired: %d", Integer.valueOf(notificationData.alarmId));
            showNotification(notificationData);
            if (!notificationData.isRepeating()) {
                NotificationBackupManager.unpersistNotification(context, notificationData.alarmId);
            } else {
                notificationData.updateFireTimeToNextRepeat();
                NotificationBackupManager.persistNotification(context, notificationData);
            }
        } catch (Exception unused) {
            Application.trace("Notification not shown - Possible reason: missing extras in intent.", new Object[0]);
        }
    }

    private final void showNotification(NotificationData notificationData) {
        if (NotificationSettings.isNotificationEnabled(this.m_context)) {
            NotificationManager notificationManager = (NotificationManager) this.m_context.getSystemService(ConfigValues.SOURCE_NOTIFICATION);
            Resources resources = this.m_context.getResources();
            String packageName = this.m_context.getPackageName();
            String string = resources.getString(resources.getIdentifier("ic_type", StringTypedProperty.TYPE, packageName));
            String string2 = resources.getString(resources.getIdentifier("ic_notif", StringTypedProperty.TYPE, packageName));
            String string3 = resources.getString(resources.getIdentifier("ic_notif_bar", StringTypedProperty.TYPE, packageName));
            int identifier = resources.getIdentifier(string2, string, packageName);
            int identifier2 = resources.getIdentifier(string3, string, packageName);
            if (identifier2 == 0) {
                identifier2 = identifier != 0 ? identifier : resources.getIdentifier(resources.getString(resources.getIdentifier("ic_launcher", StringTypedProperty.TYPE, packageName)), string, packageName);
            }
            Intent intent = new Intent(this.m_context, (Class<?>) GameActivity.class);
            intent.putExtra("LocalNotification", true);
            intent.putExtra("content", notificationData.subTitle);
            NotificationCompat.Builder autoCancel = new NotificationCompat.Builder(this.m_context, NotificationSettings.hasNotificationChannel(this.m_context, notificationData.channelId) ? notificationData.channelId : NotificationSettings.DEFAULT_CHANNEL_ID).setLargeIcon(BitmapFactory.decodeResource(resources, identifier)).setSmallIcon(identifier2).setContentTitle(notificationData.title).setContentText(notificationData.subTitle).setWhen(System.currentTimeMillis()).setContentIntent(PendingIntent.getActivity(this.m_context, 0, intent, 201326592)).setOnlyAlertOnce(true).setAutoCancel(true);
            autoCancel.setStyle(new NotificationCompat.BigTextStyle().bigText(notificationData.subTitle));
            int i = 4;
            if (notificationData.soundEnabled && NotificationSettings.isSoundEnabled(this.m_context)) {
                if (notificationData.soundfileName.equals("default")) {
                    i = 5;
                } else {
                    autoCancel.setSound(Uri.parse("android.resource://" + packageName + UnityAdsConstants.DefaultUrls.AD_ASSET_PATH + resources.getIdentifier(notificationData.soundfileName, "raw", packageName)));
                }
            }
            if (NotificationSettings.isVibrationEnabled(this.m_context)) {
                i |= 2;
            }
            autoCancel.setDefaults(i);
            notificationManager.notify(1, autoCancel.build());
        }
    }
}