Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ interface ISemanticLocationHistoryService {
void onDemandRestore(in IStatusCallback callback, in RequestCredentials requestCredentials, in List/*<Long>*/ list, in ApiMetadata apiMetadata) = 2;
void getInferredHome(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 3;
void getInferredWork(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 4;
void editSegments(in ISemanticLocationHistoryCallbacks callback, in List<LocationHistorySegment> list, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 5;
void editSegments(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in List<LocationHistorySegment> list, in ApiMetadata apiMetadata) = 5;
void deleteHistory(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, long startTime, long endTime, in ApiMetadata apiMetadata) = 6;
void getUserLocationProfile(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 7;
void getBackupSummary(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 8;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,15 @@ public String toString() {
.end();
}

@SafeParcelable.Class
public static class Identifier extends AbstractSafeParcelable {
@Field(1)
public final long fprint;
@Field(2)
public final long cellId;

@Constructor
public Identifier(@Param(1) long fprint, @Param(1) long cellId) {
public Identifier(@Param(1) long fprint, @Param(2) long cellId) {
this.fprint = fprint;
this.cellId = cellId;
}
Expand All @@ -94,14 +95,15 @@ public String toString() {
}
}

@SafeParcelable.Class
public static class Point extends AbstractSafeParcelable {
@Field(1)
public final int latE7;
@Field(2)
public final int lngE7;

@Constructor
public Point(@Param(1) int latE7, @Param(1) int lngE7) {
public Point(@Param(1) int latE7, @Param(2) int lngE7) {
this.latE7 = latE7;
this.lngE7 = lngE7;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public void writeToParcel(@NonNull Parcel dest, int flags) {

public static final SafeParcelableCreatorAndWriter<TimelinePath> CREATOR = findCreator(TimelinePath.class);

@SafeParcelable.Class
public static class SegmentPath extends AbstractSafeParcelable {
@Field(1)
String s1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;

import com.google.android.gms.semanticlocation.*;

import org.microg.gms.utils.ToStringHelper;

@SafeParcelable.Class
Expand All @@ -24,9 +25,9 @@ public class LocationHistorySegment extends AbstractSafeParcelable {
@Field(2)
public final long endTimestamp;
@Field(3)
public final int startTimeTimezoneUtcOffsetMinutes;
public final int hierarchyLevel;
@Field(4)
public final int endTimeTimezoneUtcOffsetMinutes;
public final int finalizationState;
@Field(7)
public final String segmentId;
@Field(8)
Expand All @@ -47,11 +48,11 @@ public class LocationHistorySegment extends AbstractSafeParcelable {
public final PeriodSummary periodSummary;

@Constructor
public LocationHistorySegment(@Param(1) long startTimestamp, @Param(2) long endTimestamp, @Param(3) int startTimeTimezoneUtcOffsetMinutes, @Param(4) int endTimeTimezoneUtcOffsetMinutes, @Param(7) String segmentId, @Param(8) int type, @Param(9) Visit visit, @Param(10) Activity activity, @Param(11) TimelinePath timelinePath, @Param(12) int displayMode, @Param(13) int finalizationStatus, @Param(14) TimelineMemory timelineMemory, @Param(15) PeriodSummary periodSummary) {
public LocationHistorySegment(@Param(1) long startTimestamp, @Param(2) long endTimestamp, @Param(3) int hierarchyLevel, @Param(4) int finalizationState, @Param(7) String segmentId, @Param(8) int type, @Param(9) Visit visit, @Param(10) Activity activity, @Param(11) TimelinePath timelinePath, @Param(12) int displayMode, @Param(13) int finalizationStatus, @Param(14) TimelineMemory timelineMemory, @Param(15) PeriodSummary periodSummary) {
this.startTimestamp = startTimestamp;
this.endTimestamp = endTimestamp;
this.startTimeTimezoneUtcOffsetMinutes = startTimeTimezoneUtcOffsetMinutes;
this.endTimeTimezoneUtcOffsetMinutes = endTimeTimezoneUtcOffsetMinutes;
this.hierarchyLevel = hierarchyLevel;
this.finalizationState = finalizationState;
this.segmentId = segmentId;
this.type = type;
this.visit = visit;
Expand All @@ -76,8 +77,8 @@ public String toString() {
return ToStringHelper.name("LocationHistorySegment")
.field("startTime", startTimestamp)
.field("endTime", endTimestamp)
.field("startTimeTimezoneUtcOffsetMinutes", startTimeTimezoneUtcOffsetMinutes)
.field("endTimeTimezoneUtcOffsetMinutes", endTimeTimezoneUtcOffsetMinutes)
.field("hierarchyLevel", hierarchyLevel)
.field("finalizationState", finalizationState)
.field("segmentId", segmentId)
.field("type", type)
.field("visit", visit)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,93 @@
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-FileCopyrightText: 2026 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/

package com.google.android.gms.semanticlocationhistory;

import android.os.Parcel;

import androidx.annotation.NonNull;

import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;

import org.microg.gms.utils.ToStringHelper;

import java.util.List;

@SafeParcelable.Class
public class OdlhBackupSummary extends AbstractSafeParcelable {

@Field(1)
public final long databaseId;

@Field(2)
public final String databaseName;

@Field(3)
public final boolean isThisDevice;

@Field(4)
public final long lastSyncTime;

@Field(5)
public final List<String> gellerKeys;

@Field(6)
public final String deviceIdentifier;

@Field(7)
public final Integer protoSerializedSize;

@Field(8)
public final Integer metadataRowCount;

@Field(9)
public final Long earliestTimestamp;

@Constructor
public OdlhBackupSummary(
@Param(1) long databaseId,
@Param(2) String databaseName,
@Param(3) boolean isThisDevice,
@Param(4) long lastSyncTime,
@Param(5) List<String> gellerKeys,
@Param(6) String deviceIdentifier,
@Param(7) Integer protoSerializedSize,
@Param(8) Integer metadataRowCount,
@Param(9) Long earliestTimestamp) {
this.databaseId = databaseId;
this.databaseName = databaseName;
this.isThisDevice = isThisDevice;
this.lastSyncTime = lastSyncTime;
this.gellerKeys = gellerKeys;
this.deviceIdentifier = deviceIdentifier;
this.protoSerializedSize = protoSerializedSize;
this.metadataRowCount = metadataRowCount;
this.earliestTimestamp = earliestTimestamp;
}

@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}

public static final SafeParcelableCreatorAndWriter<OdlhBackupSummary> CREATOR = findCreator(OdlhBackupSummary.class);
}

@NonNull
@Override
public String toString() {
return ToStringHelper.name("OdlhBackupSummary")
.field("databaseId", databaseId)
.field("databaseName", databaseName)
.field("isThisDevice", isThisDevice)
.field("lastSyncTime", lastSyncTime)
.field("deviceIdentifier", deviceIdentifier)
.field("protoSerializedSize", protoSerializedSize)
.field("metadataRowCount", metadataRowCount)
.field("earliestTimestamp", earliestTimestamp)
.end();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/*
* SPDX-FileCopyrightText: 2026 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/

package com.google.android.gms.auth.folsom;

parcelable ProductKey;
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/*
* SPDX-FileCopyrightText: 2026 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/

package com.google.android.gms.auth.folsom;

parcelable SecurityDomainMember;
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-FileCopyrightText: 2026 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/

package com.google.android.gms.auth.folsom.internal;

import com.google.android.gms.common.api.Status;
import com.google.android.gms.common.api.ApiMetadata;

interface IByteArrayCallback {
void onResult(in Status status, in byte[] bArr);
void onResult(in Status status, in byte[] bArr, in ApiMetadata apiMetadata);
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import com.google.android.gms.auth.folsom.internal.IRecoveryResultCallback;
import com.google.android.gms.auth.folsom.internal.IByteArrayListCallback;
import com.google.android.gms.auth.folsom.internal.IByteArrayCallback;
import com.google.android.gms.auth.folsom.internal.ISecurityDomainMembersCallback;
import com.google.android.gms.auth.folsom.internal.IProductKeyCallback;
import com.google.android.gms.auth.folsom.internal.IBooleanCallback;
import com.google.android.gms.common.api.internal.IStatusCallback;

Expand All @@ -40,4 +41,9 @@ interface IKeyRetrievalService {
void canSilentlyAddGaiaPassword(in IBooleanCallback callback, String accountName, in ApiMetadata metadata) = 16;
void addGaiaPasswordMember(in IStatusCallback callback, String accountName, in ApiMetadata metadata) = 17;
void getDomainState(in IByteArrayCallback callback, String accountName, in ApiMetadata metadata) = 18;
void getProductKeysOperation(in IProductKeyCallback callback, String accountName, String accountName2, in ApiMetadata metadata) = 19;
void createPrfMemberOperation(in IStatusCallback callback, String accountName, in byte[] bytes, in byte[] bytes2, in ApiMetadata metadata) = 20;
void addRecoveryContactToDependentKeychainOperation(in IStatusCallback callback, String accountName, String accountName2, in ApiMetadata metadata) = 21;
void createRetrievalPacketOperation(in IStatusCallback callback, String accountName, String accountName2, in byte[] bytes, in ApiMetadata metadata) = 22;
void setClaimantKeyOperation(in IStatusCallback callback, String accountName, in byte[] bytes, in byte[] bytes2, in ApiMetadata metadata) = 23;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/*
* SPDX-FileCopyrightText: 2026 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/

package com.google.android.gms.auth.folsom.internal;

import com.google.android.gms.common.api.Status;
import com.google.android.gms.auth.folsom.ProductKey;
import com.google.android.gms.common.api.ApiMetadata;

interface IProductKeyCallback {
void onResult(in Status status, in ProductKey[] productKeyArr, in ApiMetadata apiMetadata);
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-FileCopyrightText: 2026 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/

package com.google.android.gms.auth.folsom.internal;

import com.google.android.gms.common.api.Status;
import com.google.android.gms.common.api.ApiMetadata;
import com.google.android.gms.auth.folsom.SecurityDomainMember;

interface ISecurityDomainMembersCallback {
void onResult(in Status status, in List list);
void onResult(in Status status, in SecurityDomainMember[] members, in ApiMetadata apiMetadata);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/**
* SPDX-FileCopyrightText: 2026 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/

package com.google.android.gms.auth.folsom;

import android.os.Parcel;

import androidx.annotation.NonNull;

import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;

import org.microg.gms.utils.ToStringHelper;

import java.util.Objects;

@SafeParcelable.Class
public class ProductKey extends AbstractSafeParcelable {

@Field(1)
public int key;
@Field(2)
public byte[] keyMaterial;

public ProductKey() {
}

@Constructor
public ProductKey(@Param(1) int key, @Param(2) byte[] keyMaterial) {
Objects.requireNonNull(keyMaterial, "keyMaterial cannot be null");
this.key = key;
this.keyMaterial = keyMaterial;
}

@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}

public static final SafeParcelableCreatorAndWriter<ProductKey> CREATOR = findCreator(ProductKey.class);

@NonNull
@Override
public String toString() {
return ToStringHelper.name("ProductKey").field("key", key).end();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/**
* SPDX-FileCopyrightText: 2026 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/

package com.google.android.gms.auth.folsom;

import android.os.Parcel;

import androidx.annotation.NonNull;

import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;

import org.microg.gms.utils.ToStringHelper;

@SafeParcelable.Class
public class SecurityDomainMember extends AbstractSafeParcelable {

@Field(1)
public int memberType;
@Field(2)
public byte[] memberMetadata;

public SecurityDomainMember() {
}

@Constructor
public SecurityDomainMember(@Param(1) int memberType, @Param(2) byte[] memberMetadata) {
this.memberType = memberType;
this.memberMetadata = memberMetadata;
}

@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}

public static final SafeParcelableCreatorAndWriter<SecurityDomainMember> CREATOR = findCreator(SecurityDomainMember.class);

@NonNull
@Override
public String toString() {
return ToStringHelper.name("SecurityDomainMember")
.field("memberType", memberType)
.field("memberMetadata", memberMetadata != null ? memberMetadata.length : 0)
.end();
}
}
Loading