导航菜单

页面标题

页面副标题

Glean v1.1.34 - HealthConnect.java 源代码

正在查看: Glean v1.1.34 应用的 HealthConnect.java JAVA 源代码文件

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


package co.tryterra.terra.healthconnect;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Build;
import android.provider.Settings;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContract;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.health.connect.client.HealthConnectClient;
import androidx.health.connect.client.PermissionController;
import androidx.health.connect.client.response.ChangesResponse;
import co.tryterra.terra.HTTPRequestClient;
import co.tryterra.terra.TerraError;
import co.tryterra.terra.TerraManager;
import co.tryterra.terra.UnexpectedError;
import co.tryterra.terra.enums.Connections;
import co.tryterra.terra.enums.DataTypes;
import co.tryterra.terra.enums.Permissions;
import co.tryterra.terra.healthconnect.getters.Activity;
import co.tryterra.terra.healthconnect.getters.Body;
import co.tryterra.terra.healthconnect.getters.Daily;
import co.tryterra.terra.healthconnect.getters.Nutrition;
import co.tryterra.terra.healthconnect.getters.Sleep;
import co.tryterra.terra.models.Update;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import kotlin.Lazy;
import kotlin.LazyKt;
import kotlin.Metadata;
import kotlin.NoWhenBranchMatchedException;
import kotlin.Pair;
import kotlin.TuplesKt;
import kotlin.Unit;
import kotlin.collections.MapsKt;
import kotlin.coroutines.CoroutineContext;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.functions.Function2;
import kotlin.jvm.functions.Function3;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
import kotlinx.coroutines.BuildersKt;
import kotlinx.coroutines.CompletableJob;
import kotlinx.coroutines.CoroutineScope;
import kotlinx.coroutines.CoroutineStart;
import kotlinx.coroutines.ExecutorsKt;
import kotlinx.coroutines.Job;
import kotlinx.coroutines.JobKt;

@Metadata(d1 = {"\u0000¼\u0001\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\"\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0011\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0010\u000b\n\u0002\u0018\u0002\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0007\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\b\b\u0000\u0018\u0000 R2\u00020\u0001:\u0001RBu\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0006\u0010\u0004\u001a\u00020\u0005\u0012\f\u0010\u0006\u001a\b\u0012\u0004\u0012\u00020\u00050\u0007\u0012\u0014\u0010\b\u001a\u0010\u0012\n\u0012\b\u0012\u0004\u0012\u00020\u00050\u0007\u0018\u00010\t\u0012\u0014\u0010\n\u001a\u0010\u0012\n\u0012\b\u0012\u0004\u0012\u00020\u00050\u000b\u0018\u00010\t\u0012\b\u0010\f\u001a\u0004\u0018\u00010\r\u0012\u001a\u0010\u000e\u001a\u0016\u0012\u0004\u0012\u00020\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0011\u0012\u0004\u0012\u00020\u00120\u000f¢\u0006\u0002\u0010\u0013J.\u00102\u001a\u00020\u00122\b\u0010\f\u001a\u0004\u0018\u00010\r2\u001a\u0010\u000e\u001a\u0016\u0012\u0004\u0012\u00020\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0011\u0012\u0004\u0012\u00020\u00120\u000fH\u0002J*\u00103\u001a\u0002042\f\u00105\u001a\b\u0012\u0004\u0012\u0002060\u00072\u0012\u0010\u000e\u001a\u000e\u0012\u0004\u0012\u00020\u0005\u0012\u0004\u0012\u00020\u001207H\u0002JX\u00108\u001a\u00020\u00122\u0006\u00109\u001a\u00020:2\u0006\u0010;\u001a\u00020<2\u0006\u0010=\u001a\u00020<2\b\b\u0002\u0010>\u001a\u00020\u00102\b\b\u0002\u0010?\u001a\u00020\u00102$\b\u0002\u0010@\u001a\u001e\u0012\u0004\u0012\u00020\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0005\u0012\u0006\u0012\u0004\u0018\u00010\u0011\u0012\u0004\u0012\u00020\u00120AJ \u0010B\u001a\u00020\u00122\u0018\u0010\u000e\u001a\u0014\u0012\n\u0012\b\u0012\u0004\u0012\u00020\u00050\u0007\u0012\u0004\u0012\u00020\u001207JX\u0010C\u001a\u00020\u00122\u0006\u00109\u001a\u00020:2\u0006\u0010;\u001a\u00020<2\u0006\u0010=\u001a\u00020<2\b\b\u0002\u0010>\u001a\u00020\u00102\b\b\u0002\u0010?\u001a\u00020\u00102$\b\u0002\u0010@\u001a\u001e\u0012\u0004\u0012\u00020\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0005\u0012\u0006\u0012\u0004\u0018\u00010\u0011\u0012\u0004\u0012\u00020\u00120AJX\u0010D\u001a\u00020\u00122\u0006\u00109\u001a\u00020:2\u0006\u0010;\u001a\u00020<2\u0006\u0010=\u001a\u00020<2\b\b\u0002\u0010>\u001a\u00020\u00102\b\b\u0002\u0010?\u001a\u00020\u00102$\b\u0002\u0010@\u001a\u001e\u0012\u0004\u0012\u00020\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0005\u0012\u0006\u0012\u0004\u0018\u00010\u0011\u0012\u0004\u0012\u00020\u00120AJX\u0010E\u001a\u00020\u00122\u0006\u00109\u001a\u00020:2\u0006\u0010;\u001a\u00020<2\u0006\u0010=\u001a\u00020<2\b\b\u0002\u0010>\u001a\u00020\u00102\b\b\u0002\u0010?\u001a\u00020\u00102$\b\u0002\u0010@\u001a\u001e\u0012\u0004\u0012\u00020\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0005\u0012\u0006\u0012\u0004\u0018\u00010\u0011\u0012\u0004\u0012\u00020\u00120AJX\u0010F\u001a\u00020\u00122\u0006\u00109\u001a\u00020:2\u0006\u0010;\u001a\u00020<2\u0006\u0010=\u001a\u00020<2\b\b\u0002\u0010>\u001a\u00020\u00102\b\b\u0002\u0010?\u001a\u00020\u00102$\b\u0002\u0010@\u001a\u001e\u0012\u0004\u0012\u00020\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0005\u0012\u0006\u0012\u0004\u0018\u00010\u0011\u0012\u0004\u0012\u00020\u00120AJ*\u0010G\u001a\u00020\u00122\u0006\u0010H\u001a\u00020I2\u0018\u0010J\u001a\u0014\u0012\u0004\u0012\u000206\u0012\u0004\u0012\u00020K\u0012\u0004\u0012\u00020\u00120\u000fH\u0002J:\u0010L\u001a\u00020\u00122\u0006\u0010M\u001a\u00020\u00052\u0006\u0010N\u001a\u00020\u00052\u0006\u0010\u0004\u001a\u00020\u00052\u0006\u0010O\u001a\u00020\u00052\b\u0010P\u001a\u0004\u0018\u00010\u00052\b\b\u0002\u0010>\u001a\u00020\u0010J \u0010Q\u001a\u0002042\u0018\u0010J\u001a\u0014\u0012\u0004\u0012\u000206\u0012\u0004\u0012\u00020K\u0012\u0004\u0012\u00020\u00120\u000fR\u000e\u0010\u0014\u001a\u00020\u0015X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0016\u001a\u00020\u0017X\u0082\u000e¢\u0006\u0002\n\u0000R\"\u0010\u000e\u001a\u0016\u0012\u0004\u0012\u00020\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0011\u0012\u0004\u0012\u00020\u00120\u000fX\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u0002\u001a\u00020\u0003X\u0082\u0004¢\u0006\u0002\n\u0000R\u0014\u0010\u0018\u001a\u00020\u00198VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u001a\u0010\u001bR\u000e\u0010\u001c\u001a\u00020\u001dX\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0004\u001a\u00020\u0005X\u0082\u0004¢\u0006\u0002\n\u0000R\u001b\u0010\u001e\u001a\u00020\u001f8BX\u0082\u0084\u0002¢\u0006\f\n\u0004\b\"\u0010#\u001a\u0004\b \u0010!R\u000e\u0010$\u001a\u00020%X\u0082\u0004¢\u0006\u0002\n\u0000R\u0010\u0010\f\u001a\u0004\u0018\u00010\rX\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010&\u001a\u00020'X\u0082\u000e¢\u0006\u0002\n\u0000R\u0016\u0010(\u001a\n **\u0004\u0018\u00010)0)X\u0082\u0004¢\u0006\u0002\n\u0000R\u0016\u0010+\u001a\n **\u0004\u0018\u00010,0,X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010-\u001a\u00020.X\u0082\u000e¢\u0006\u0002\n\u0000R\u001c\u0010/\u001a\n **\u0004\u0018\u00010\u00050\u00058CX\u0082\u0004¢\u0006\u0006\u001a\u0004\b0\u00101¨\u0006S"}, d2 = {"Lco/tryterra/terra/healthconnect/HealthConnect;", "Lkotlinx/coroutines/CoroutineScope;", "context", "Landroid/content/Context;", "devId", "", "healthConnectPermissions", "", "healthConnectPermissionsContract", "Landroidx/activity/result/ActivityResultLauncher;", "healthConnectPermissionsContractAndroid14", "", "latch", "Ljava/util/concurrent/CountDownLatch;", "completion", "Lkotlin/Function2;", "", "Lco/tryterra/terra/TerraError;", "", "(Landroid/content/Context;Ljava/lang/String;Ljava/util/Set;Landroidx/activity/result/ActivityResultLauncher;Landroidx/activity/result/ActivityResultLauncher;Ljava/util/concurrent/CountDownLatch;Lkotlin/jvm/functions/Function2;)V", "activityGetter", "Lco/tryterra/terra/healthconnect/getters/Activity;", "bodyGetter", "Lco/tryterra/terra/healthconnect/getters/Body;", "coroutineContext", "Lkotlin/coroutines/CoroutineContext;", "getCoroutineContext", "()Lkotlin/coroutines/CoroutineContext;", "dailyGetter", "Lco/tryterra/terra/healthconnect/getters/Daily;", "healthConnectClient", "Landroidx/health/connect/client/HealthConnectClient;", "getHealthConnectClient", "()Landroidx/health/connect/client/HealthConnectClient;", "healthConnectClient$delegate", "Lkotlin/Lazy;", "job", "Lkotlinx/coroutines/CompletableJob;", "nutritionGetter", "Lco/tryterra/terra/healthconnect/getters/Nutrition;", "preferences", "Landroid/content/SharedPreferences;", "kotlin.jvm.PlatformType", "singleThreadExecutor", "Ljava/util/concurrent/ExecutorService;", "sleepGetter", "Lco/tryterra/terra/healthconnect/getters/Sleep;", "uniqueId", "getUniqueId", "()Ljava/lang/String;", "finishInit", "generateChangesToken", "Lkotlinx/coroutines/Job;", "dataTypes", "Lco/tryterra/terra/enums/DataTypes;", "Lkotlin/Function1;", "getActivity", "connection", "Lco/tryterra/terra/enums/Connections;", "startDate", "Ljava/util/Date;", "endDate", "triggeredByScheduler", "toWebhook", "callback", "Lkotlin/Function3;", "getAllPermissions", "getBody", "getDaily", "getNutrition", "getSleep", "handleChanges", "changes", "Landroidx/health/connect/client/response/ChangesResponse;", "updateHandler", "Lco/tryterra/terra/models/Update;", "postDataToTerra", "data", "dType", "packageName", "payloadRef", "requestChanges", "Companion", "TerraAndroid_release"}, k = 1, mv = {1, 7, 1}, xi = 48)
public final class HealthConnect implements CoroutineScope {

    public static final Companion INSTANCE = new Companion(null);
    public static final String TAG = "HealthConnectManager";
    private Activity activityGetter;
    private Body bodyGetter;
    private final Function2<Boolean, TerraError, Unit> completion;
    private final Context context;
    private Daily dailyGetter;
    private final String devId;

    private final Lazy healthConnectClient;
    private final CompletableJob job;
    private final CountDownLatch latch;
    private Nutrition nutritionGetter;
    private final SharedPreferences preferences;
    private final ExecutorService singleThreadExecutor;
    private Sleep sleepGetter;

    public final void handleChanges(ChangesResponse changes, Function2<? super DataTypes, ? super Update, Unit> updateHandler) {
    }

    public HealthConnect(Context context, String str, Set<String> set, ActivityResultLauncher<Set<String>> activityResultLauncher, ActivityResultLauncher<String[]> activityResultLauncher2, CountDownLatch countDownLatch, Function2<? super Boolean, ? super TerraError, Unit> function2) {
        Intrinsics.checkNotNullParameter(context, "context");
        Intrinsics.checkNotNullParameter(str, "devId");
        Intrinsics.checkNotNullParameter(set, "healthConnectPermissions");
        Intrinsics.checkNotNullParameter(function2, "completion");
        this.context = context;
        this.devId = str;
        this.latch = countDownLatch;
        this.completion = function2;
        this.healthConnectClient = LazyKt.lazy(new Function0<HealthConnectClient>() {
            {
                super(0);
            }

            public final HealthConnectClient m505invoke() {
                Context context2;
                HealthConnectClient.Companion companion = HealthConnectClient.Companion;
                context2 = HealthConnect.this.context;
                return HealthConnectClient.Companion.getOrCreate$default(companion, context2, (String) null, 2, (Object) null);
            }
        });
        this.job = JobKt.Job$default((Job) null, 1, (Object) null);
        this.singleThreadExecutor = Executors.newSingleThreadExecutor();
        this.preferences = context.getSharedPreferences(TerraManager.TERRA_PREFS, 0);
        ActivityResultContract createRequestPermissionResultContract$default = PermissionController.Companion.createRequestPermissionResultContract$default(PermissionController.Companion, (String) null, 1, (Object) null);
        if (Build.VERSION.SDK_INT >= 34) {
            Set<String> set2 = set;
            ArrayList arrayList = new ArrayList(set2);
            Iterator it = arrayList.iterator();
            while (true) {
                if (it.hasNext()) {
                    if (ContextCompat.checkSelfPermission(this.context, (String) it.next()) != 0) {
                        AppCompatActivity appCompatActivity = this.context;
                        if ((appCompatActivity instanceof AppCompatActivity ? appCompatActivity : null) != null && activityResultLauncher2 != null) {
                            activityResultLauncher2.launch(set2.toArray(new String[0]));
                        } else {
                            Intrinsics.checkNotNull(appCompatActivity, "null cannot be cast to non-null type android.app.Activity");
                            ActivityCompat.requestPermissions((android.app.Activity) appCompatActivity, (String[]) arrayList.toArray(new String[0]), 1);
                            finishInit(this.latch, this.completion);
                        }
                    }
                } else {
                    finishInit(this.latch, this.completion);
                    break;
                }
            }
        } else {
            if ((context instanceof AppCompatActivity ? (AppCompatActivity) context : null) != null && activityResultLauncher != null) {
                activityResultLauncher.launch(set);
            } else {
                if ((context instanceof android.app.Activity ? (android.app.Activity) context : null) != null) {
                    ((android.app.Activity) context).startActivityForResult(createRequestPermissionResultContract$default.createIntent(context, set), 10111);
                    finishInit(countDownLatch, function2);
                } else {
                    function2.invoke(false, new UnexpectedError("Context superclass does not extend [android.app.Activity]"));
                }
            }
        }
        this.activityGetter = new Activity(getHealthConnectClient(), this.devId, this);
        this.bodyGetter = new Body(getHealthConnectClient(), this.devId, this);
        this.nutritionGetter = new Nutrition(getHealthConnectClient(), this.devId, this);
        this.dailyGetter = new Daily(getHealthConnectClient(), this.devId, this);
        this.sleepGetter = new Sleep(getHealthConnectClient(), this.devId, this);
    }

    public final HealthConnectClient getHealthConnectClient() {
        return (HealthConnectClient) this.healthConnectClient.getValue();
    }

    private final String getUniqueId() {
        return Settings.Secure.getString(this.context.getContentResolver(), "android_id");
    }

    public CoroutineContext getCoroutineContext() {
        CompletableJob completableJob = this.job;
        ExecutorService executorService = this.singleThreadExecutor;
        Intrinsics.checkNotNullExpressionValue(executorService, "singleThreadExecutor");
        return completableJob.plus(ExecutorsKt.from(executorService));
    }

    public final void finishInit(CountDownLatch latch, Function2<? super Boolean, ? super TerraError, Unit> completion) {
        if (latch != null) {
            latch.countDown();
        }
        completion.invoke(true, (Object) null);
    }

    public static void getActivity$default(HealthConnect healthConnect, Connections connections, Date date, Date date2, boolean z, boolean z2, Function3 function3, int i, Object obj) {
        if ((i & 8) != 0) {
            z = false;
        }
        boolean z3 = z;
        if ((i & 16) != 0) {
            z2 = true;
        }
        boolean z4 = z2;
        if ((i & 32) != 0) {
            function3 = new Function3<Boolean, String, TerraError, Unit>() {
                public final void invoke(boolean z5, String str, TerraError terraError) {
                }

                public Object invoke(Object obj2, Object obj3, Object obj4) {
                    invoke(((Boolean) obj2).booleanValue(), (String) obj3, (TerraError) obj4);
                    return Unit.INSTANCE;
                }
            };
        }
        healthConnect.getActivity(connections, date, date2, z3, z4, function3);
    }

    public final void getActivity(Connections connection, Date startDate, Date endDate, boolean triggeredByScheduler, boolean toWebhook, final Function3<? super Boolean, ? super String, ? super TerraError, Unit> callback) {
        Intrinsics.checkNotNullParameter(connection, "connection");
        Intrinsics.checkNotNullParameter(startDate, "startDate");
        Intrinsics.checkNotNullParameter(endDate, "endDate");
        Intrinsics.checkNotNullParameter(callback, "callback");
        Activity activity = this.activityGetter;
        String correspondingPackageName = INSTANCE.correspondingPackageName(connection);
        Intrinsics.checkNotNull(correspondingPackageName);
        activity.getActivity(correspondingPackageName, startDate.getTime(), endDate.getTime(), triggeredByScheduler, toWebhook, new Function3<Boolean, String, TerraError, Unit>() {
            {
                super(3);
            }

            public Object invoke(Object obj, Object obj2, Object obj3) {
                invoke(((Boolean) obj).booleanValue(), (String) obj2, (TerraError) obj3);
                return Unit.INSTANCE;
            }

            public final void invoke(boolean z, String str, TerraError terraError) {
                callback.invoke(Boolean.valueOf(z), str, terraError);
            }
        });
    }

    public static void getNutrition$default(HealthConnect healthConnect, Connections connections, Date date, Date date2, boolean z, boolean z2, Function3 function3, int i, Object obj) {
        if ((i & 8) != 0) {
            z = false;
        }
        boolean z3 = z;
        if ((i & 16) != 0) {
            z2 = true;
        }
        boolean z4 = z2;
        if ((i & 32) != 0) {
            function3 = new Function3<Boolean, String, TerraError, Unit>() {
                public final void invoke(boolean z5, String str, TerraError terraError) {
                }

                public Object invoke(Object obj2, Object obj3, Object obj4) {
                    invoke(((Boolean) obj2).booleanValue(), (String) obj3, (TerraError) obj4);
                    return Unit.INSTANCE;
                }
            };
        }
        healthConnect.getNutrition(connections, date, date2, z3, z4, function3);
    }

    public final void getNutrition(Connections connection, Date startDate, Date endDate, boolean triggeredByScheduler, boolean toWebhook, final Function3<? super Boolean, ? super String, ? super TerraError, Unit> callback) {
        Intrinsics.checkNotNullParameter(connection, "connection");
        Intrinsics.checkNotNullParameter(startDate, "startDate");
        Intrinsics.checkNotNullParameter(endDate, "endDate");
        Intrinsics.checkNotNullParameter(callback, "callback");
        Nutrition nutrition = new Nutrition(getHealthConnectClient(), this.devId, this);
        String correspondingPackageName = INSTANCE.correspondingPackageName(connection);
        Intrinsics.checkNotNull(correspondingPackageName);
        nutrition.getNutrition(correspondingPackageName, startDate.getTime(), endDate.getTime(), triggeredByScheduler, toWebhook, new Function3<Boolean, String, TerraError, Unit>() {
            {
                super(3);
            }

            public Object invoke(Object obj, Object obj2, Object obj3) {
                invoke(((Boolean) obj).booleanValue(), (String) obj2, (TerraError) obj3);
                return Unit.INSTANCE;
            }

            public final void invoke(boolean z, String str, TerraError terraError) {
                callback.invoke(Boolean.valueOf(z), str, terraError);
            }
        });
    }

    public static void getDaily$default(HealthConnect healthConnect, Connections connections, Date date, Date date2, boolean z, boolean z2, Function3 function3, int i, Object obj) {
        if ((i & 8) != 0) {
            z = false;
        }
        boolean z3 = z;
        if ((i & 16) != 0) {
            z2 = true;
        }
        boolean z4 = z2;
        if ((i & 32) != 0) {
            function3 = new Function3<Boolean, String, TerraError, Unit>() {
                public final void invoke(boolean z5, String str, TerraError terraError) {
                }

                public Object invoke(Object obj2, Object obj3, Object obj4) {
                    invoke(((Boolean) obj2).booleanValue(), (String) obj3, (TerraError) obj4);
                    return Unit.INSTANCE;
                }
            };
        }
        healthConnect.getDaily(connections, date, date2, z3, z4, function3);
    }

    public final void getDaily(Connections connection, Date startDate, Date endDate, boolean triggeredByScheduler, boolean toWebhook, final Function3<? super Boolean, ? super String, ? super TerraError, Unit> callback) {
        Intrinsics.checkNotNullParameter(connection, "connection");
        Intrinsics.checkNotNullParameter(startDate, "startDate");
        Intrinsics.checkNotNullParameter(endDate, "endDate");
        Intrinsics.checkNotNullParameter(callback, "callback");
        Daily daily = new Daily(getHealthConnectClient(), this.devId, this);
        String correspondingPackageName = INSTANCE.correspondingPackageName(connection);
        Intrinsics.checkNotNull(correspondingPackageName);
        daily.getDaily(correspondingPackageName, startDate.getTime(), endDate.getTime(), triggeredByScheduler, toWebhook, new Function3<Boolean, String, TerraError, Unit>() {
            {
                super(3);
            }

            public Object invoke(Object obj, Object obj2, Object obj3) {
                invoke(((Boolean) obj).booleanValue(), (String) obj2, (TerraError) obj3);
                return Unit.INSTANCE;
            }

            public final void invoke(boolean z, String str, TerraError terraError) {
                callback.invoke(Boolean.valueOf(z), str, terraError);
            }
        });
    }

    public static void getBody$default(HealthConnect healthConnect, Connections connections, Date date, Date date2, boolean z, boolean z2, Function3 function3, int i, Object obj) {
        if ((i & 8) != 0) {
            z = false;
        }
        boolean z3 = z;
        if ((i & 16) != 0) {
            z2 = true;
        }
        boolean z4 = z2;
        if ((i & 32) != 0) {
            function3 = new Function3<Boolean, String, TerraError, Unit>() {
                public final void invoke(boolean z5, String str, TerraError terraError) {
                }

                public Object invoke(Object obj2, Object obj3, Object obj4) {
                    invoke(((Boolean) obj2).booleanValue(), (String) obj3, (TerraError) obj4);
                    return Unit.INSTANCE;
                }
            };
        }
        healthConnect.getBody(connections, date, date2, z3, z4, function3);
    }

    public final void getBody(Connections connection, Date startDate, Date endDate, boolean triggeredByScheduler, boolean toWebhook, final Function3<? super Boolean, ? super String, ? super TerraError, Unit> callback) {
        Intrinsics.checkNotNullParameter(connection, "connection");
        Intrinsics.checkNotNullParameter(startDate, "startDate");
        Intrinsics.checkNotNullParameter(endDate, "endDate");
        Intrinsics.checkNotNullParameter(callback, "callback");
        Body body = new Body(getHealthConnectClient(), this.devId, this);
        String correspondingPackageName = INSTANCE.correspondingPackageName(connection);
        Intrinsics.checkNotNull(correspondingPackageName);
        body.getBody(correspondingPackageName, startDate.getTime(), endDate.getTime(), triggeredByScheduler, toWebhook, new Function3<Boolean, String, TerraError, Unit>() {
            {
                super(3);
            }

            public Object invoke(Object obj, Object obj2, Object obj3) {
                invoke(((Boolean) obj).booleanValue(), (String) obj2, (TerraError) obj3);
                return Unit.INSTANCE;
            }

            public final void invoke(boolean z, String str, TerraError terraError) {
                callback.invoke(Boolean.valueOf(z), str, terraError);
            }
        });
    }

    public static void getSleep$default(HealthConnect healthConnect, Connections connections, Date date, Date date2, boolean z, boolean z2, Function3 function3, int i, Object obj) {
        if ((i & 8) != 0) {
            z = false;
        }
        boolean z3 = z;
        if ((i & 16) != 0) {
            z2 = true;
        }
        boolean z4 = z2;
        if ((i & 32) != 0) {
            function3 = new Function3<Boolean, String, TerraError, Unit>() {
                public final void invoke(boolean z5, String str, TerraError terraError) {
                }

                public Object invoke(Object obj2, Object obj3, Object obj4) {
                    invoke(((Boolean) obj2).booleanValue(), (String) obj3, (TerraError) obj4);
                    return Unit.INSTANCE;
                }
            };
        }
        healthConnect.getSleep(connections, date, date2, z3, z4, function3);
    }

    public final void getSleep(Connections connection, Date startDate, Date endDate, boolean triggeredByScheduler, boolean toWebhook, final Function3<? super Boolean, ? super String, ? super TerraError, Unit> callback) {
        Intrinsics.checkNotNullParameter(connection, "connection");
        Intrinsics.checkNotNullParameter(startDate, "startDate");
        Intrinsics.checkNotNullParameter(endDate, "endDate");
        Intrinsics.checkNotNullParameter(callback, "callback");
        Sleep sleep = new Sleep(getHealthConnectClient(), this.devId, this);
        String correspondingPackageName = INSTANCE.correspondingPackageName(connection);
        Intrinsics.checkNotNull(correspondingPackageName);
        sleep.getSleep(correspondingPackageName, startDate.getTime(), endDate.getTime(), triggeredByScheduler, toWebhook, new Function3<Boolean, String, TerraError, Unit>() {
            {
                super(3);
            }

            public Object invoke(Object obj, Object obj2, Object obj3) {
                invoke(((Boolean) obj).booleanValue(), (String) obj2, (TerraError) obj3);
                return Unit.INSTANCE;
            }

            public final void invoke(boolean z, String str, TerraError terraError) {
                callback.invoke(Boolean.valueOf(z), str, terraError);
            }
        });
    }

    public final Job generateChangesToken(Set<? extends DataTypes> dataTypes, Function1<? super String, Unit> completion) {
        return BuildersKt.launch$default(this, (CoroutineContext) null, (CoroutineStart) null, new HealthConnect$generateChangesToken$1(completion, this, dataTypes, null), 3, (Object) null);
    }

    public final Job requestChanges(Function2<? super DataTypes, ? super Update, Unit> updateHandler) {
        Intrinsics.checkNotNullParameter(updateHandler, "updateHandler");
        return BuildersKt.launch$default(this, (CoroutineContext) null, (CoroutineStart) null, new HealthConnect$requestChanges$1(this, updateHandler, null), 3, (Object) null);
    }

    public static void postDataToTerra$default(HealthConnect healthConnect, String str, String str2, String str3, String str4, String str5, boolean z, int i, Object obj) {
        if ((i & 32) != 0) {
            z = false;
        }
        healthConnect.postDataToTerra(str, str2, str3, str4, str5, z);
    }

    public final void postDataToTerra(String data, String dType, String devId, String packageName, String payloadRef, boolean triggeredByScheduler) {
        Intrinsics.checkNotNullParameter(data, "data");
        Intrinsics.checkNotNullParameter(dType, "dType");
        Intrinsics.checkNotNullParameter(devId, "devId");
        Intrinsics.checkNotNullParameter(packageName, "packageName");
        new HTTPRequestClient.Builder().method("POST").setUrl("https://api.tryterra.co/v2/hooks/healthconnect/" + dType + "/push?resource_user_id=" + getUniqueId() + TerraManager.INSTANCE.uniqueIdEndings(packageName) + "&triggered_by_scheduler=" + triggeredByScheduler + (payloadRef != null ? "&payload_reference=" + payloadRef : "")).withOutput(data).setHeaders1(MapsKt.hashMapOf(new Pair[]{TuplesKt.to("dev-id", devId)})).build().executeRequest();
    }

    public final void getAllPermissions(Function1<? super Set<String>, Unit> completion) {
        Intrinsics.checkNotNullParameter(completion, "completion");
        BuildersKt.launch$default(this, (CoroutineContext) null, (CoroutineStart) null, new HealthConnect$getAllPermissions$1(completion, this, null), 3, (Object) null);
    }

    @Metadata(d1 = {"\u0000t\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\"\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J\u0010\u0010\u0005\u001a\u0004\u0018\u00010\u00062\u0006\u0010\u0007\u001a\u00020\bJ\u0010\u0010\t\u001a\u00020\n2\b\u0010\u000b\u001a\u0004\u0018\u00010\fJ\f\u0010\r\u001a\u0004\u0018\u00010\u0004*\u00020\u000eJK\u0010\u000f\u001a\u0004\u0018\u00010\u0010\"\b\b\u0000\u0010\u0011*\u00020\u0001*\u00020\u00122\u0012\u0010\u0013\u001a\u000e\u0012\n\u0012\b\u0012\u0004\u0012\u0002H\u00110\u00150\u00142\u0006\u0010\u0016\u001a\u00020\u00172\f\u0010\u0018\u001a\b\u0012\u0004\u0012\u00020\u00190\u0014H\u0086@ø\u0001\u0000¢\u0006\u0002\u0010\u001aJO\u0010\u001b\u001a\b\u0012\u0004\u0012\u00020\u001d0\u001c\"\b\b\u0000\u0010\u0011*\u00020\u0001*\u00020\u00122\u0012\u0010\u0013\u001a\u000e\u0012\n\u0012\b\u0012\u0004\u0012\u0002H\u00110\u00150\u00142\u0006\u0010\u0016\u001a\u00020\u00172\f\u0010\u0018\u001a\b\u0012\u0004\u0012\u00020\u00190\u0014H\u0086@ø\u0001\u0000¢\u0006\u0002\u0010\u001aJ9\u0010\u001e\u001a\u000e\u0012\n\u0012\b\u0012\u0004\u0012\u0002H\u00110 0\u001f\"\b\b\u0000\u0010\u0011*\u00020!*\u00020\u00122\f\u0010\"\u001a\b\u0012\u0004\u0012\u0002H\u00110#H\u0086@ø\u0001\u0000¢\u0006\u0002\u0010$J\u001b\u0010%\u001a\b\u0012\u0004\u0012\u00020\u00040\u0014*\u00020\u0012H\u0082@ø\u0001\u0000¢\u0006\u0002\u0010&R\u000e\u0010\u0003\u001a\u00020\u0004X\u0086T¢\u0006\u0002\n\u0000\u0082\u0002\u0004\n\u0002\b\u0019¨\u0006'"}, d2 = {"Lco/tryterra/terra/healthconnect/HealthConnect$Companion;", "", "()V", "TAG", "", "mapTerraPermissionToHCPermission", "Lco/tryterra/terra/healthconnect/HCPermissions;", "permissions", "Lco/tryterra/terra/enums/Permissions;", "permissionCallback", "", "healthConnectInst", "Lco/tryterra/terra/healthconnect/HealthConnect;", "correspondingPackageName", "Lco/tryterra/terra/enums/Connections;", "readAggregateData", "Landroidx/health/connect/client/aggregate/AggregationResult;", "T", "Landroidx/health/connect/client/HealthConnectClient;", "toAggregate", "", "Landroidx/health/connect/client/aggregate/AggregateMetric;", "timeRangeFilter", "Landroidx/health/connect/client/time/TimeRangeFilter;", "dataOrigin", "Landroidx/health/connect/client/records/metadata/DataOrigin;", "(Landroidx/health/connect/client/HealthConnectClient;Ljava/util/Set;Landroidx/health/connect/client/time/TimeRangeFilter;Ljava/util/Set;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "readAggregateDataByDay", "", "Landroidx/health/connect/client/aggregate/AggregationResultGroupedByDuration;", "readRecordsIfPermissionsIncluded", "Lkotlinx/coroutines/flow/Flow;", "Landroidx/health/connect/client/response/ReadRecordsResponse;", "Landroidx/health/connect/client/records/Record;", "readRequest", "Landroidx/health/connect/client/request/ReadRecordsRequest;", "(Landroidx/health/connect/client/HealthConnectClient;Landroidx/health/connect/client/request/ReadRecordsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "safeGetGrantedPermissions", "(Landroidx/health/connect/client/HealthConnectClient;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "TerraAndroid_release"}, k = 1, mv = {1, 7, 1}, xi = 48)
    public static final class Companion {

        @Metadata(k = 3, mv = {1, 7, 1}, xi = 48)
        public class WhenMappings {
            public static final int[] $EnumSwitchMapping$0;
            public static final int[] $EnumSwitchMapping$1;

            static {
                int[] iArr = new int[Permissions.values().length];
                iArr[Permissions.ACTIVITY.ordinal()] = 1;
                iArr[Permissions.BODY.ordinal()] = 2;
                iArr[Permissions.DAILY.ordinal()] = 3;
                iArr[Permissions.SLEEP.ordinal()] = 4;
                iArr[Permissions.NUTRITION.ordinal()] = 5;
                iArr[Permissions.MENSTRUATION.ordinal()] = 6;
                $EnumSwitchMapping$0 = iArr;
                int[] iArr2 = new int[Connections.values().length];
                iArr2[Connections.SAMSUNG.ordinal()] = 1;
                iArr2[Connections.GOOGLE_FIT.ordinal()] = 2;
                iArr2[Connections.HEALTH_CONNECT.ordinal()] = 3;
                iArr2[Connections.FREESTYLE_LIBRE.ordinal()] = 4;
                $EnumSwitchMapping$1 = iArr2;
            }
        }

        public Companion(DefaultConstructorMarker defaultConstructorMarker) {
            this();
        }

        private Companion() {
        }

        public final HCPermissions mapTerraPermissionToHCPermission(Permissions permissions) {
            Intrinsics.checkNotNullParameter(permissions, "permissions");
            switch (WhenMappings.$EnumSwitchMapping$0[permissions.ordinal()]) {
                case 1:
                    return HCPermissions.ACTIVITY;
                case 2:
                    return HCPermissions.BODY;
                case 3:
                    return HCPermissions.DAILY;
                case 4:
                    return HCPermissions.SLEEP;
                case 5:
                    return HCPermissions.NUTRITION;
                case 6:
                    return HCPermissions.MENSTRUATION;
                default:
                    return null;
            }
        }

        public final String correspondingPackageName(Connections connections) {
            Intrinsics.checkNotNullParameter(connections, "<this>");
            int i = WhenMappings.$EnumSwitchMapping$1[connections.ordinal()];
            if (i == 1) {
                return "com.sec.android.app.shealth";
            }
            if (i == 2) {
                return "com.google.android.apps.fitness";
            }
            if (i == 3) {
                return "com.google.android.apps.healthdata";
            }
            if (i == 4) {
                return null;
            }
            throw new NoWhenBranchMatchedException();
        }

        public final void permissionCallback(HealthConnect healthConnectInst) {
            if (healthConnectInst != null) {
                healthConnectInst.finishInit(healthConnectInst.latch, healthConnectInst.completion);
            }
        }

        public final java.lang.Object safeGetGrantedPermissions(androidx.health.connect.client.HealthConnectClient r5, kotlin.coroutines.Continuation<? super java.util.Set<java.lang.String>> r6) {
            throw new UnsupportedOperationException("Method not decompiled: co.tryterra.terra.healthconnect.HealthConnect.Companion.safeGetGrantedPermissions(androidx.health.connect.client.HealthConnectClient, kotlin.coroutines.Continuation):java.lang.Object");
        }

        public final <T extends androidx.health.connect.client.records.Record> java.lang.Object readRecordsIfPermissionsIncluded(androidx.health.connect.client.HealthConnectClient r8, androidx.health.connect.client.request.ReadRecordsRequest<T> r9, kotlin.coroutines.Continuation<? super kotlinx.coroutines.flow.Flow<androidx.health.connect.client.response.ReadRecordsResponse<T>>> r10) {
            throw new UnsupportedOperationException("Method not decompiled: co.tryterra.terra.healthconnect.HealthConnect.Companion.readRecordsIfPermissionsIncluded(androidx.health.connect.client.HealthConnectClient, androidx.health.connect.client.request.ReadRecordsRequest, kotlin.coroutines.Continuation):java.lang.Object");
        }

        public final <T> java.lang.Object readAggregateDataByDay(androidx.health.connect.client.HealthConnectClient r9, java.util.Set<? extends androidx.health.connect.client.aggregate.AggregateMetric<? extends T>> r10, androidx.health.connect.client.time.TimeRangeFilter r11, java.util.Set<androidx.health.connect.client.records.metadata.DataOrigin> r12, kotlin.coroutines.Continuation<? super java.util.List<androidx.health.connect.client.aggregate.AggregationResultGroupedByDuration>> r13) {
            throw new UnsupportedOperationException("Method not decompiled: co.tryterra.terra.healthconnect.HealthConnect.Companion.readAggregateDataByDay(androidx.health.connect.client.HealthConnectClient, java.util.Set, androidx.health.connect.client.time.TimeRangeFilter, java.util.Set, kotlin.coroutines.Continuation):java.lang.Object");
        }

        public final <T> java.lang.Object readAggregateData(androidx.health.connect.client.HealthConnectClient r8, java.util.Set<? extends androidx.health.connect.client.aggregate.AggregateMetric<? extends T>> r9, androidx.health.connect.client.time.TimeRangeFilter r10, java.util.Set<androidx.health.connect.client.records.metadata.DataOrigin> r11, kotlin.coroutines.Continuation<? super androidx.health.connect.client.aggregate.AggregationResult> r12) {
            throw new UnsupportedOperationException("Method not decompiled: co.tryterra.terra.healthconnect.HealthConnect.Companion.readAggregateData(androidx.health.connect.client.HealthConnectClient, java.util.Set, androidx.health.connect.client.time.TimeRangeFilter, java.util.Set, kotlin.coroutines.Continuation):java.lang.Object");
        }
    }
}