导航菜单

页面标题

页面副标题

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

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

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


package com.eveningoutpost.dexdrip.utilitymodels;

import android.R;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Build;
import androidx.appcompat.app.AlertDialog;
import androidx.core.app.NotificationCompat;
import com.eveningoutpost.dexdrip.Home;
import com.eveningoutpost.dexdrip.models.JoH;
import com.eveningoutpost.dexdrip.models.UserError;
import com.eveningoutpost.dexdrip.services.G5BaseService;
import com.eveningoutpost.dexdrip.utils.DexCollectionType;
import com.eveningoutpost.dexdrip.webservices.XdripWebService;
import com.eveningoutpost.dexdrip.xdrip;

public class CompatibleApps extends BroadcastReceiver {
    public static final String TAG = "CompatibleApps";

    public enum Feature {
        UNKNOWN,
        CHOICE,
        CANCEL,
        ENABLE_GARMIN_FEATURES,
        ENABLE_ANDROIDAPS_FEATURE1,
        ENABLE_ANDROIDAPS_FEATURE2,
        ENABLE_FITBIT_FEATURES,
        ENABLE_LIBRE_ALARM,
        ENABLE_OOP,
        ENABLE_WEAR_OS_SYNC,
        HARD_RESET_TRANSMITTER,
        ENABLE_TASKER,
        FEATURE_X
    }

    public static void notifyAboutCompatibleApps() {
        throw new UnsupportedOperationException("Method not decompiled: com.eveningoutpost.dexdrip.utilitymodels.CompatibleApps.notifyAboutCompatibleApps():void");
    }

    private static void enableAndroid10Workarounds() {
        if (Build.VERSION.SDK_INT < 29 || PersistentStore.getBoolean("ANDROID_10_WORKAROUND_MARKER", false)) {
            return;
        }
        UserError.Log.ueh(CompatibleApps.class.getSimpleName(), "Enabling default workarounds for Android 10+ setting minimize/avoid scanning to enabled");
        Pref.setBoolean("ob1_minimize_scanning", true);
        PersistentStore.setBoolean("ANDROID_10_WORKAROUND_MARKER", true);
    }

    private static void checkMemoryConstraints() {
        ((ActivityManager) xdrip.getAppContext().getSystemService("activity")).getMemoryInfo(new ActivityManager.MemoryInfo());
    }

    private static String gs(int i) {
        return xdrip.getAppContext().getString(i);
    }

    private static int notify(String str, String str2, int i, Feature feature) {
        String string = xdrip.getAppContext().getString(2131757056, str);
        showNotification(string, str2, createActionIntent(i, i + 1, feature), createActionIntent(i, i + 2, Feature.CANCEL), createChoiceIntent(i, i + 3, feature, string, str2), i);
        return i + 4;
    }

    public static void showNotification(String str, String str2, PendingIntent pendingIntent, PendingIntent pendingIntent2, PendingIntent pendingIntent3, int i) {
        NotificationCompat.Builder addAction = new NotificationCompat.Builder(xdrip.getAppContext(), null).setSmallIcon(2131230884).setContentTitle(str).setContentText(str2).setContentIntent(pendingIntent3).setPriority(2).addAction(2131230987, gs(2131757071), pendingIntent).addAction(R.drawable.ic_delete, gs(2131755900), pendingIntent2);
        NotificationManager notificationManager = (NotificationManager) xdrip.getAppContext().getSystemService("notification");
        if (notificationManager != null) {
            notificationManager.notify(i, XdripNotificationCompat.build(addAction));
        } else {
            JoH.static_toast_long("Cannot notify!");
        }
    }

    public static PendingIntent createActionIntent(int i, int i2, Feature feature) {
        return PendingIntent.getBroadcast(xdrip.getAppContext(), i2, new Intent(xdrip.getAppContext(), (Class<?>) CompatibleApps.class).putExtra("action", feature).putExtra("id", i).putExtra("auth", "4c27cfc5-cbe6-49d2-a28e-c676bde4caa7"), 134217728);
    }

    public static PendingIntent createChoiceIntent(int i, int i2, Feature feature, String str, String str2) {
        return PendingIntent.getBroadcast(xdrip.getAppContext(), i2, new Intent(xdrip.getAppContext(), (Class<?>) CompatibleApps.class).putExtra("action", Feature.CHOICE).putExtra("choice", feature).putExtra("id", i).putExtra("title", str).putExtra("msg", str2).putExtra("auth", "4c27cfc5-cbe6-49d2-a28e-c676bde4caa7"), 134217728);
    }

    public static void showChoiceDialog(Activity activity, final Intent intent) {
        if (intent == null) {
            return;
        }
        try {
            AlertDialog.Builder builder = new AlertDialog.Builder(activity);
            builder.setTitle(intent.getStringExtra("title"));
            builder.setMessage(intent.getStringExtra("msg"));
            builder.setPositiveButton(2131757071, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialogInterface.dismiss();
                    try {
                        CompatibleApps.createActionIntent(intent.getIntExtra("id", 555), intent.getIntExtra("id", 555) + 1, (Feature) intent.getSerializableExtra("choice")).send();
                    } catch (Exception unused) {
                    }
                }
            });
            builder.setNegativeButton(2131755900, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialogInterface.dismiss();
                }
            });
            builder.create().show();
        } catch (Exception unused) {
            JoH.static_toast_long("Error: in compatible apps dialog");
        }
    }

    private static void cancelSourceNotification(Intent intent) {
        JoH.cancelNotification(intent.getIntExtra("id", 555));
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action != null && action.equals("android.intent.action.PACKAGE_ADDED")) {
            if (JoH.ratelimit("package-added-check", 10)) {
                notifyAboutCompatibleApps();
                return;
            }
            return;
        }
        String stringExtra = intent.getStringExtra("auth");
        if (stringExtra != null && stringExtra.equals("4c27cfc5-cbe6-49d2-a28e-c676bde4caa7")) {
            context.sendBroadcast(new Intent("android.intent.action.CLOSE_SYSTEM_DIALOGS"));
            Feature feature = (Feature) intent.getSerializableExtra("action");
            switch (AnonymousClass3.$SwitchMap$com$eveningoutpost$dexdrip$utilitymodels$CompatibleApps$Feature[feature.ordinal()]) {
                case 1:
                    Intent intent2 = new Intent(context, (Class<?>) Home.class);
                    intent2.setFlags(268435456);
                    intent2.putExtra("choice-intent", "jamorham");
                    intent2.putExtra("choice-intentx", intent);
                    context.startActivity(intent2);
                    break;
                case 2:
                    cancelSourceNotification(intent);
                    break;
                case 3:
                case 4:
                    enableBoolean("xdrip_webservice", "xDrip Web Service Enabled!", intent);
                    XdripWebService.immortality();
                    break;
                case 5:
                    enableBoolean("broadcast_data_through_intents", "Local Broadcast Enabled!", intent);
                    break;
                case 6:
                    addStringtoSpaceDelimitedPreference("local_broadcast_specific_package_destination", "info.nightscout.androidaps");
                    JoH.static_toast_long("Enabling broadcast to info.nightscout.androidaps !");
                    cancelSourceNotification(intent);
                    break;
                case 7:
                    addStringtoSpaceDelimitedPreference("local_broadcast_specific_package_destination", "net.dinglisch.android.tasker net.dinglisch.android.taskerm");
                    JoH.static_toast_long("Setting specific package broadcast for Tasker");
                    cancelSourceNotification(intent);
                    break;
                case 8:
                    DexCollectionType.setDexCollectionType(DexCollectionType.LibreAlarm);
                    cancelSourceNotification(intent);
                    break;
                case 9:
                    enableBoolean("external_blukon_algorithm", "Enabled External Calibration App!", intent);
                    break;
                case 10:
                    enableBoolean("wear_sync", "Enabled Wear OS Sync!", intent);
                    break;
                case 11:
                    G5BaseService.setHardResetTransmitterNow();
                    break;
                default:
                    JoH.static_toast_long("Unhandled action: " + feature);
                    break;
            }
        }
        JoH.static_toast_long("Invalid xDrip Authorization");
    }

    static class AnonymousClass3 {
        static final int[] $SwitchMap$com$eveningoutpost$dexdrip$utilitymodels$CompatibleApps$Feature;

        static {
            int[] iArr = new int[Feature.values().length];
            $SwitchMap$com$eveningoutpost$dexdrip$utilitymodels$CompatibleApps$Feature = iArr;
            try {
                iArr[Feature.CHOICE.ordinal()] = 1;
            } catch (NoSuchFieldError unused) {
            }
            try {
                $SwitchMap$com$eveningoutpost$dexdrip$utilitymodels$CompatibleApps$Feature[Feature.CANCEL.ordinal()] = 2;
            } catch (NoSuchFieldError unused2) {
            }
            try {
                $SwitchMap$com$eveningoutpost$dexdrip$utilitymodels$CompatibleApps$Feature[Feature.ENABLE_GARMIN_FEATURES.ordinal()] = 3;
            } catch (NoSuchFieldError unused3) {
            }
            try {
                $SwitchMap$com$eveningoutpost$dexdrip$utilitymodels$CompatibleApps$Feature[Feature.ENABLE_FITBIT_FEATURES.ordinal()] = 4;
            } catch (NoSuchFieldError unused4) {
            }
            try {
                $SwitchMap$com$eveningoutpost$dexdrip$utilitymodels$CompatibleApps$Feature[Feature.ENABLE_ANDROIDAPS_FEATURE1.ordinal()] = 5;
            } catch (NoSuchFieldError unused5) {
            }
            try {
                $SwitchMap$com$eveningoutpost$dexdrip$utilitymodels$CompatibleApps$Feature[Feature.ENABLE_ANDROIDAPS_FEATURE2.ordinal()] = 6;
            } catch (NoSuchFieldError unused6) {
            }
            try {
                $SwitchMap$com$eveningoutpost$dexdrip$utilitymodels$CompatibleApps$Feature[Feature.ENABLE_TASKER.ordinal()] = 7;
            } catch (NoSuchFieldError unused7) {
            }
            try {
                $SwitchMap$com$eveningoutpost$dexdrip$utilitymodels$CompatibleApps$Feature[Feature.ENABLE_LIBRE_ALARM.ordinal()] = 8;
            } catch (NoSuchFieldError unused8) {
            }
            try {
                $SwitchMap$com$eveningoutpost$dexdrip$utilitymodels$CompatibleApps$Feature[Feature.ENABLE_OOP.ordinal()] = 9;
            } catch (NoSuchFieldError unused9) {
            }
            try {
                $SwitchMap$com$eveningoutpost$dexdrip$utilitymodels$CompatibleApps$Feature[Feature.ENABLE_WEAR_OS_SYNC.ordinal()] = 10;
            } catch (NoSuchFieldError unused10) {
            }
            try {
                $SwitchMap$com$eveningoutpost$dexdrip$utilitymodels$CompatibleApps$Feature[Feature.HARD_RESET_TRANSMITTER.ordinal()] = 11;
            } catch (NoSuchFieldError unused11) {
            }
        }
    }

    private void enableBoolean(String str, String str2, Intent intent) {
        Pref.setBoolean(str, true);
        JoH.static_toast_long(str2);
        cancelSourceNotification(intent);
    }

    private void addStringtoSpaceDelimitedPreference(String str, String str2) {
        String string = Pref.getString(str, "");
        if (string.length() > 3) {
            for (String str3 : string.split(" ")) {
                if (str3 != null && str3.length() > 3 && str3.equals(str2)) {
                    return;
                }
            }
            str2 = string + " " + str2;
        }
        Pref.setString(str, str2);
    }
}