导航菜单

页面标题

页面副标题

xDrip+ v04633772025.07.16 - RegistrationIntentService.java 源代码

正在查看: xDrip+ v04633772025.07.16 应用的 RegistrationIntentService.java JAVA 源代码文件

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


package com.eveningoutpost.dexdrip;

import android.app.IntentService;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.PowerManager;
import android.preference.PreferenceManager;
import android.util.Log;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import androidx.work.Constraints;
import androidx.work.NetworkType;
import androidx.work.OneTimeWorkRequest;
import androidx.work.PeriodicWorkRequest;
import androidx.work.WorkManager;
import com.eveningoutpost.dexdrip.models.JoH;
import com.eveningoutpost.dexdrip.services.PlusSyncService;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.messaging.FirebaseMessaging;
import java.util.concurrent.TimeUnit;
import org.json.JSONObject;

public class RegistrationIntentService extends IntentService {
    private static final String[] PREDEF = {"global"};
    private static final String[] PREDEF2 = {"global2"};

    public RegistrationIntentService() {
        super("jamorham regService");
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        SharedPreferences defaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
        PowerManager.WakeLock wakeLock = JoH.getWakeLock("registration-intent", 120000);
        try {
            try {
                String token = FirebaseInstanceId.getInstance().getToken();
                try {
                    String string = new JSONObject(token).getString("token");
                    if (string.length() > 10) {
                        token = string;
                    }
                    Log.d("jamorham regService", "Used json method");
                } catch (Exception unused) {
                }
                Log.i("jamorham regService", "GCM Registration Token: " + token);
                GcmActivity.token = token;
                subscribeTpcs(token);
                sendRegistrationToServer(token);
                defaultSharedPreferences.edit().putBoolean("GCMsentTokenToServer", true).apply();
                LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent("GCMregistrationComplete"));
            } catch (Exception e) {
                Log.e("jamorham regService", "Failed to complete token refresh", e);
                defaultSharedPreferences.edit().putBoolean("GCMsentTokenToServer", false).apply();
            }
        } finally {
            JoH.releaseWakeLock(wakeLock);
        }
    }

    private synchronized void sendRegistrationToServer(String str) {
        try {
            Log.d("jamorham regService", "Scheduling tasks");
            PeriodicWorkRequest build = new PeriodicWorkRequest.Builder(TaskService.class, 12L, TimeUnit.HOURS).addTag("unmetered").setConstraints(new Constraints.Builder().setRequiredNetworkType(NetworkType.UNMETERED).build()).build();
            OneTimeWorkRequest build2 = new OneTimeWorkRequest.Builder(TaskService.class).addTag("unmetered").build();
            WorkManager.getInstance(getApplicationContext()).cancelAllWorkByTag("unmetered");
            WorkManager.getInstance(getApplicationContext()).enqueue(build2);
            WorkManager.getInstance(getApplicationContext()).enqueue(build);
            PlusSyncService.startSyncService(getApplicationContext(), "RegistrationToServer");
            GcmActivity.queueCheckOld(getApplicationContext());
        } catch (Exception e) {
            Log.e("jamorham regService", "Exception in sendRegistration: " + e.toString());
        }
    }

    private void subscribeTpcs(String str) {
        FirebaseMessaging.getInstance().subscribeToTopic(GcmActivity.myIdentity());
        for (String str2 : PREDEF) {
            FirebaseMessaging.getInstance().unsubscribeFromTopic(str2);
        }
        for (String str3 : PREDEF2) {
            FirebaseMessaging.getInstance().subscribeToTopic(str3);
        }
    }
}