Skip to content

Commit 2eb77bc

Browse files
committed
Semantic Location History: Add new settings API
Fixes outdated play services warning in Google Maps Includes #3132
1 parent d940551 commit 2eb77bc

File tree

57 files changed

+2155
-431
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+2155
-431
lines changed

play-services-api/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ android {
4040

4141
dependencies {
4242
api project(':play-services-base')
43+
api project(':play-services-location')
4344
api project(':play-services-phenotype')
4445

4546
annotationProcessor project(':safe-parcel-processor')
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2025 microG Project Team
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
package com.google.android.gms.semanticlocation;
6+
7+
parcelable SemanticLocationState;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2025 microG Project Team
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
package com.google.android.gms.semanticlocationhistory;
6+
7+
parcelable ExperimentVisitsResponse;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2025 microG Project Team
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
package com.google.android.gms.semanticlocationhistory;
6+
7+
parcelable LocationHistorySettings;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2025 microG Project Team
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
package com.google.android.gms.semanticlocationhistory;
6+
7+
parcelable OdlhBackupSummary;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2025 microG Project Team
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
package com.google.android.gms.semanticlocationhistory;
6+
7+
parcelable SemanticLocationEditInputs;

play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/internal/ISemanticLocationHistoryCallbacks.aidl

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,25 @@
55

66
package com.google.android.gms.semanticlocationhistory.internal;
77

8+
import com.google.android.gms.common.api.ApiMetadata;
89
import com.google.android.gms.common.api.Status;
910
import com.google.android.gms.common.data.DataHolder;
11+
import com.google.android.gms.semanticlocationhistory.ExperimentVisitsResponse;
1012
import com.google.android.gms.semanticlocationhistory.InferredPlace;
13+
import com.google.android.gms.semanticlocationhistory.LocationHistorySegment;
14+
import com.google.android.gms.semanticlocationhistory.LocationHistorySettings;
15+
import com.google.android.gms.semanticlocationhistory.OdlhBackupSummary;
1116
import com.google.android.gms.semanticlocationhistory.UserLocationProfile;
1217

1318
interface ISemanticLocationHistoryCallbacks {
14-
void onSegmentsReturn(in DataHolder dataHolder) = 4;
15-
void onDeleteHistoryReturn(in Status status) = 5;
16-
void onEditSegmentsReturn(in Status status) = 3;
17-
void onGetBackupSummaryReturn(in Status status, in List list) = 7;
18-
void onGetInferredHomeReturn(in Status status, in InferredPlace inferredPlace) = 1;
19-
void onGetInferredWorkReturn(in Status status, in InferredPlace inferredPlace) = 2;
20-
void onGetUserLocationProfileReturn(in Status status, in UserLocationProfile userLocationProfile) = 6;
19+
void onSegmentListResponse(in Status status, in List<LocationHistorySegment> segments, in ApiMetadata apiMetadata) = 0;
20+
void onGetInferredHomeResponse(in Status status, in InferredPlace inferredPlace, in ApiMetadata apiMetadata) = 1;
21+
void onGetInferredWorkResponse(in Status status, in InferredPlace inferredPlace, in ApiMetadata apiMetadata) = 2;
22+
void onEditSegmentsResponse(in Status status, in ApiMetadata apiMetadata) = 3;
23+
void onGetSegmentsResponse(in DataHolder dataHolder, in ApiMetadata apiMetadata) = 4;
24+
void onDeleteHistoryResponse(in Status status, in ApiMetadata apiMetadata) = 5;
25+
void onGetUserLocationProfileResponse(in Status status, in UserLocationProfile userLocationProfile, in ApiMetadata apiMetadata) = 6;
26+
void onGetBackupSummaryResponse(in Status status, in List<OdlhBackupSummary> summaries, in ApiMetadata apiMetadata) = 7;
27+
void onLocationHistorySettings(in Status status, in LocationHistorySettings locationHistorySettings, in ApiMetadata apiMetadata) = 8;
28+
void onGetExperimentVisitsResponse(in Status status, in ExperimentVisitsResponse response, in ApiMetadata apiMetadata) = 9;
2129
}

play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/internal/ISemanticLocationHistoryService.aidl

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,27 @@
55

66
package com.google.android.gms.semanticlocationhistory.internal;
77

8-
import com.google.android.gms.semanticlocationhistory.internal.ISemanticLocationHistoryCallbacks;
98
import com.google.android.gms.common.api.ApiMetadata;
10-
import com.google.android.gms.semanticlocationhistory.RequestCredentials;
11-
import com.google.android.gms.semanticlocationhistory.LocationHistorySegmentRequest;
129
import com.google.android.gms.common.api.internal.IStatusCallback;
10+
import com.google.android.gms.semanticlocation.SemanticLocationState;
11+
import com.google.android.gms.semanticlocationhistory.LocationHistorySegment;
12+
import com.google.android.gms.semanticlocationhistory.LocationHistorySegmentRequest;
13+
import com.google.android.gms.semanticlocationhistory.RequestCredentials;
14+
import com.google.android.gms.semanticlocationhistory.SemanticLocationEditInputs;
15+
import com.google.android.gms.semanticlocationhistory.internal.ISemanticLocationHistoryCallbacks;
1316

1417
interface ISemanticLocationHistoryService {
15-
void getSegments(in ISemanticLocationHistoryCallbacks callback, in ApiMetadata apiMetadata, in RequestCredentials requestCredentials, in LocationHistorySegmentRequest request) = 0;
16-
void onDemandBackupRestore(in IStatusCallback callback, in ApiMetadata apiMetadata, in RequestCredentials requestCredentials) = 1;
17-
void onDemandBackupRestoreV2(in IStatusCallback callback, in RequestCredentials requestCredentials, in List list, in ApiMetadata apiMetadata) = 2;
18+
void getSegments(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in LocationHistorySegmentRequest request, in ApiMetadata apiMetadata) = 0;
19+
void onDemandBackup(in IStatusCallback callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 1;
20+
void onDemandRestore(in IStatusCallback callback, in RequestCredentials requestCredentials, in List/*<Long>*/ list, in ApiMetadata apiMetadata) = 2;
1821
void getInferredHome(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 3;
1922
void getInferredWork(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 4;
20-
void editSegments(in ISemanticLocationHistoryCallbacks callback, in List list, in ApiMetadata apiMetadata, in RequestCredentials requestCredentials) = 5;
23+
void editSegments(in ISemanticLocationHistoryCallbacks callback, in List<LocationHistorySegment> list, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 5;
2124
void deleteHistory(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, long startTime, long endTime, in ApiMetadata apiMetadata) = 6;
22-
void getUserLocationProfile(in IStatusCallback callback, in ApiMetadata apiMetadata, in RequestCredentials requestCredentials) = 7;
23-
void getBackupSummary(in IStatusCallback callback, in ApiMetadata apiMetadata, in RequestCredentials requestCredentials) = 8;
25+
void getUserLocationProfile(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 7;
26+
void getBackupSummary(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 8;
2427
void deleteBackups(in IStatusCallback callback, in RequestCredentials requestCredentials, in List list, in ApiMetadata apiMetadata) = 9;
28+
void getLocationHistorySettings(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 10;
29+
void getExperimentVisits(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 11;
30+
void editCsl(in IStatusCallback callback, in RequestCredentials requestCredentials, in SemanticLocationEditInputs editInputs, in SemanticLocationState state, in ApiMetadata apiMetadata) = 12;
2531
}

play-services-api/src/main/java/com/google/android/gms/locationsharingreporter/PeriodicLocationReportingIssues.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
@SafeParcelable.Class
1919
public class PeriodicLocationReportingIssues extends AbstractSafeParcelable {
2020
@Field(1)
21-
private final int[] generalIssues;
21+
final int[] generalIssues;
2222
@Field(2)
23-
private final Bundle issuesByAccount;
23+
final Bundle issuesByAccount;
2424
@Field(4)
25-
private final boolean isCentralizedSharingFlagEnabled;
25+
final boolean isCentralizedSharingFlagEnabled;
2626

2727
@Constructor
2828
public PeriodicLocationReportingIssues(@Param(1) int[] generalIssues, @Param(2) Bundle issuesByAccount, @Param(4) boolean isCentralizedSharingFlagEnabled) {
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2025 microG Project Team
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package com.google.android.gms.semanticlocation;
7+
8+
import android.os.Parcel;
9+
import androidx.annotation.NonNull;
10+
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
11+
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
12+
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
13+
import org.microg.gms.utils.ToStringHelper;
14+
15+
@SafeParcelable.Class
16+
public class Activity extends AbstractSafeParcelable {
17+
@Field(1)
18+
public final PlaceCandidate.Point start;
19+
@Field(2)
20+
public final PlaceCandidate.Point end;
21+
@Field(3)
22+
public final float distanceMeters;
23+
@Field(4)
24+
public final float probability;
25+
@Field(5)
26+
@Deprecated
27+
float f5;
28+
@Field(6)
29+
public final ActivityCandidate activityCandidate;
30+
@Field(7)
31+
public final AdditionalActivityCandidates additionalActivityCandidates;
32+
@Field(8)
33+
public final Parking parking;
34+
35+
@Constructor
36+
public Activity(@Param(1) PlaceCandidate.Point start, @Param(2) PlaceCandidate.Point end, @Param(3) float distanceMeters, @Param(4) float probability, @Param(6) ActivityCandidate activityCandidate, @Param(7) AdditionalActivityCandidates additionalActivityCandidates, @Param(8) Parking parking) {
37+
this.start = start;
38+
this.end = end;
39+
this.distanceMeters = distanceMeters;
40+
this.probability = probability;
41+
this.activityCandidate = activityCandidate;
42+
this.additionalActivityCandidates = additionalActivityCandidates;
43+
this.parking = parking;
44+
}
45+
46+
@NonNull
47+
@Override
48+
public String toString() {
49+
return ToStringHelper.name("Activity")
50+
.field("start", start)
51+
.field("end", end)
52+
.field("distanceMeters", distanceMeters)
53+
.field("probability", probability)
54+
.field("activityCandidate", activityCandidate)
55+
.field("additionalActivityCandidates", additionalActivityCandidates)
56+
.field("parking", parking)
57+
.end();
58+
}
59+
60+
@Override
61+
public void writeToParcel(@NonNull Parcel dest, int flags) {
62+
CREATOR.writeToParcel(this, dest, flags);
63+
}
64+
65+
public static final SafeParcelableCreatorAndWriter<Activity> CREATOR = findCreator(Activity.class);
66+
}

0 commit comments

Comments
 (0)