From 0e2ceee2a66c8bcb7568631a9782bbda39cd7f69 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Tue, 6 Jan 2015 04:05:25 +0100 Subject: [PATCH 001/170] Initial commit --- Android.mk | 9 + AndroidManifest.xml | 4 + build.gradle | 28 +++ .../android/auth/IAuthManagerService.aidl | 6 + .../gms/common/AbstractGmsServiceBroker.java | 170 ++++++++++++++++++ .../gms/common/internal/IGmsCallbacks.aidl | 5 + .../common/internal/IGmsServiceBroker.aidl | 30 ++++ .../android/gms/dynamic/IObjectWrapper.aidl | 8 + .../android/gms/dynamic/ObjectWrapper.java | 66 +++++++ .../google/android/gms/location/Geofence.aidl | 3 + .../google/android/gms/location/Geofence.java | 48 +++++ .../internal/IGeofencerCallbacks.aidl | 4 + .../IGoogleLocationManagerService.aidl | 8 + .../android/gms/maps/GoogleMapOptions.aidl | 3 + .../android/gms/maps/GoogleMapOptions.java | 107 +++++++++++ .../ICameraUpdateFactoryDelegate.aidl | 20 +++ .../maps/internal/ICancelableCallback.aidl | 6 + .../android/gms/maps/internal/ICreator.aidl | 17 ++ .../gms/maps/internal/IGoogleMapDelegate.aidl | 91 ++++++++++ .../gms/maps/internal/IInfoWindowAdapter.aidl | 9 + .../internal/ILocationSourceDelegate.aidl | 4 + .../maps/internal/IMapFragmentDelegate.aidl | 19 ++ .../gms/maps/internal/IMapViewDelegate.aidl | 15 ++ .../internal/IOnCameraChangeListener.aidl | 4 + .../internal/IOnInfoWindowClickListener.aidl | 7 + .../maps/internal/IOnMapClickListener.aidl | 7 + .../maps/internal/IOnMapLoadedCallback.aidl | 4 + .../internal/IOnMapLongClickListener.aidl | 7 + .../maps/internal/IOnMarkerClickListener.aidl | 7 + .../maps/internal/IOnMarkerDragListener.aidl | 4 + .../IOnMyLocationButtonClickListener.aidl | 4 + .../internal/IOnMyLocationChangeListener.aidl | 4 + .../maps/internal/IProjectionDelegate.aidl | 11 ++ .../maps/internal/ISnapshotReadyCallback.aidl | 4 + .../maps/internal/IUiSettingsDelegate.aidl | 19 ++ .../gms/maps/model/CameraPosition.aidl | 3 + .../gms/maps/model/CameraPosition.java | 91 ++++++++++ .../android/gms/maps/model/CircleOptions.aidl | 3 + .../android/gms/maps/model/CircleOptions.java | 67 +++++++ .../gms/maps/model/GroundOverlayOptions.aidl | 3 + .../gms/maps/model/GroundOverlayOptions.java | 79 ++++++++ .../google/android/gms/maps/model/LatLng.aidl | 3 + .../google/android/gms/maps/model/LatLng.java | 81 +++++++++ .../android/gms/maps/model/LatLngBounds.aidl | 3 + .../android/gms/maps/model/LatLngBounds.java | 64 +++++++ .../android/gms/maps/model/MarkerOptions.aidl | 3 + .../android/gms/maps/model/MarkerOptions.java | 134 ++++++++++++++ .../gms/maps/model/PolygonOptions.aidl | 3 + .../gms/maps/model/PolygonOptions.java | 50 ++++++ .../gms/maps/model/PolylineOptions.aidl | 3 + .../gms/maps/model/PolylineOptions.java | 66 +++++++ .../gms/maps/model/TileOverlayOptions.aidl | 3 + .../gms/maps/model/TileOverlayOptions.java | 51 ++++++ .../android/gms/maps/model/VisibleRegion.aidl | 3 + .../android/gms/maps/model/VisibleRegion.java | 76 ++++++++ .../IBitmapDescriptorFactoryDelegate.aidl | 14 ++ .../maps/model/internal/ICircleDelegate.aidl | 24 +++ .../internal/IGroundOverlayDelegate.aidl | 29 +++ .../maps/model/internal/IMarkerDelegate.aidl | 33 ++++ .../maps/model/internal/IPolygonDelegate.aidl | 27 +++ .../model/internal/IPolylineDelegate.aidl | 22 +++ .../model/internal/ITileOverlayDelegate.aidl | 4 + .../plus/internal/IPlusOneButtonCreator.aidl | 8 + 63 files changed, 1712 insertions(+) create mode 100644 Android.mk create mode 100644 AndroidManifest.xml create mode 100644 build.gradle create mode 100644 src/com/google/android/auth/IAuthManagerService.aidl create mode 100644 src/com/google/android/gms/common/AbstractGmsServiceBroker.java create mode 100644 src/com/google/android/gms/common/internal/IGmsCallbacks.aidl create mode 100644 src/com/google/android/gms/common/internal/IGmsServiceBroker.aidl create mode 100644 src/com/google/android/gms/dynamic/IObjectWrapper.aidl create mode 100644 src/com/google/android/gms/dynamic/ObjectWrapper.java create mode 100644 src/com/google/android/gms/location/Geofence.aidl create mode 100644 src/com/google/android/gms/location/Geofence.java create mode 100644 src/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl create mode 100644 src/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl create mode 100644 src/com/google/android/gms/maps/GoogleMapOptions.aidl create mode 100644 src/com/google/android/gms/maps/GoogleMapOptions.java create mode 100644 src/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl create mode 100644 src/com/google/android/gms/maps/internal/ICancelableCallback.aidl create mode 100644 src/com/google/android/gms/maps/internal/ICreator.aidl create mode 100644 src/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl create mode 100644 src/com/google/android/gms/maps/internal/IInfoWindowAdapter.aidl create mode 100644 src/com/google/android/gms/maps/internal/ILocationSourceDelegate.aidl create mode 100644 src/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl create mode 100644 src/com/google/android/gms/maps/internal/IMapViewDelegate.aidl create mode 100644 src/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl create mode 100644 src/com/google/android/gms/maps/internal/IOnInfoWindowClickListener.aidl create mode 100644 src/com/google/android/gms/maps/internal/IOnMapClickListener.aidl create mode 100644 src/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl create mode 100644 src/com/google/android/gms/maps/internal/IOnMapLongClickListener.aidl create mode 100644 src/com/google/android/gms/maps/internal/IOnMarkerClickListener.aidl create mode 100644 src/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl create mode 100644 src/com/google/android/gms/maps/internal/IOnMyLocationButtonClickListener.aidl create mode 100644 src/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl create mode 100644 src/com/google/android/gms/maps/internal/IProjectionDelegate.aidl create mode 100644 src/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl create mode 100644 src/com/google/android/gms/maps/internal/IUiSettingsDelegate.aidl create mode 100644 src/com/google/android/gms/maps/model/CameraPosition.aidl create mode 100644 src/com/google/android/gms/maps/model/CameraPosition.java create mode 100644 src/com/google/android/gms/maps/model/CircleOptions.aidl create mode 100644 src/com/google/android/gms/maps/model/CircleOptions.java create mode 100644 src/com/google/android/gms/maps/model/GroundOverlayOptions.aidl create mode 100644 src/com/google/android/gms/maps/model/GroundOverlayOptions.java create mode 100644 src/com/google/android/gms/maps/model/LatLng.aidl create mode 100644 src/com/google/android/gms/maps/model/LatLng.java create mode 100644 src/com/google/android/gms/maps/model/LatLngBounds.aidl create mode 100644 src/com/google/android/gms/maps/model/LatLngBounds.java create mode 100644 src/com/google/android/gms/maps/model/MarkerOptions.aidl create mode 100644 src/com/google/android/gms/maps/model/MarkerOptions.java create mode 100644 src/com/google/android/gms/maps/model/PolygonOptions.aidl create mode 100644 src/com/google/android/gms/maps/model/PolygonOptions.java create mode 100644 src/com/google/android/gms/maps/model/PolylineOptions.aidl create mode 100644 src/com/google/android/gms/maps/model/PolylineOptions.java create mode 100644 src/com/google/android/gms/maps/model/TileOverlayOptions.aidl create mode 100644 src/com/google/android/gms/maps/model/TileOverlayOptions.java create mode 100644 src/com/google/android/gms/maps/model/VisibleRegion.aidl create mode 100644 src/com/google/android/gms/maps/model/VisibleRegion.java create mode 100644 src/com/google/android/gms/maps/model/internal/IBitmapDescriptorFactoryDelegate.aidl create mode 100644 src/com/google/android/gms/maps/model/internal/ICircleDelegate.aidl create mode 100644 src/com/google/android/gms/maps/model/internal/IGroundOverlayDelegate.aidl create mode 100644 src/com/google/android/gms/maps/model/internal/IMarkerDelegate.aidl create mode 100644 src/com/google/android/gms/maps/model/internal/IPolygonDelegate.aidl create mode 100644 src/com/google/android/gms/maps/model/internal/IPolylineDelegate.aidl create mode 100644 src/com/google/android/gms/maps/model/internal/ITileOverlayDelegate.aidl create mode 100644 src/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl diff --git a/Android.mk b/Android.mk new file mode 100644 index 00000000..4b9abaa0 --- /dev/null +++ b/Android.mk @@ -0,0 +1,9 @@ +# Not working yet +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE := GmsApi +LOCAL_SRC_FILES := $(call all-java-files-under, src) +LOCAL_SRC_FILES := $(call all-Iaidl-files-under, src) + +include $(BUILD_STATIC_JAVA_LIBRARY) diff --git a/AndroidManifest.xml b/AndroidManifest.xml new file mode 100644 index 00000000..1b9d6274 --- /dev/null +++ b/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/build.gradle b/build.gradle new file mode 100644 index 00000000..f433729e --- /dev/null +++ b/build.gradle @@ -0,0 +1,28 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:1.0.0' + } +} + +apply plugin: 'com.android.library' + +dependencies { + compile project(':SafeParcel') +} + +android { + compileSdkVersion 21 + buildToolsVersion "21.0.2" + lintOptions.abortOnError false + + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = ['src'] + aidl.srcDirs = ['src'] + } + } +} diff --git a/src/com/google/android/auth/IAuthManagerService.aidl b/src/com/google/android/auth/IAuthManagerService.aidl new file mode 100644 index 00000000..0b84c375 --- /dev/null +++ b/src/com/google/android/auth/IAuthManagerService.aidl @@ -0,0 +1,6 @@ +package com.google.android.auth; + +interface IAuthManagerService { + Bundle getToken(String accountName, String scope, in Bundle extras); + Bundle clearToken(String token, in Bundle extras); +} diff --git a/src/com/google/android/gms/common/AbstractGmsServiceBroker.java b/src/com/google/android/gms/common/AbstractGmsServiceBroker.java new file mode 100644 index 00000000..758d6faf --- /dev/null +++ b/src/com/google/android/gms/common/AbstractGmsServiceBroker.java @@ -0,0 +1,170 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.common; + +import android.os.Bundle; +import android.os.IBinder; +import android.os.RemoteException; +import com.google.android.gms.common.internal.IGmsCallbacks; +import com.google.android.gms.common.internal.IGmsServiceBroker; + +public abstract class AbstractGmsServiceBroker extends IGmsServiceBroker.Stub { + @Override + public void getPlusService(IGmsCallbacks callback, int versionCode, String packageName, + String str2, String[] paramArrayOfString, String str3, Bundle params) + throws RemoteException { + throw new IllegalArgumentException("Plus service not supported"); + } + + @Override + public void getPanoramaService(IGmsCallbacks callback, int versionCode, String packageName, + Bundle params) throws RemoteException { + throw new IllegalArgumentException("Panorama service not supported"); + } + + @Override + public void getAppDataSearchService(IGmsCallbacks callback, int versionCode, String packageName) + throws RemoteException { + throw new IllegalArgumentException("App Data Search service not supported"); + } + + @Override + public void getWalletService(IGmsCallbacks callback, int versionCode) throws RemoteException { + throw new IllegalArgumentException("Wallet service not supported"); + } + + @Override + public void getPeopleService(IGmsCallbacks callback, int versionCode, String packageName, + Bundle params) throws RemoteException { + throw new IllegalArgumentException("People service not supported"); + } + + @Override + public void getReportingService(IGmsCallbacks callback, int versionCode, String packageName, + Bundle params) throws RemoteException { + throw new IllegalArgumentException("Reporting service not supported"); + } + + @Override + public void getLocationService(IGmsCallbacks callback, int versionCode, String packageName, + Bundle params) throws RemoteException { + throw new IllegalArgumentException("Location service not supported"); + } + + @Override + public void getGoogleLocationManagerService(IGmsCallbacks callback, int versionCode, + String packageName, Bundle params) throws RemoteException { + throw new IllegalArgumentException("Google Location Manager service not supported"); + } + + @Override + public void getGamesService(IGmsCallbacks callback, int versionCode, String packageName, + String str2, String[] args, String str3, IBinder binder, String str4, Bundle params) + throws RemoteException { + throw new IllegalArgumentException("Games service not supported"); + } + + @Override + public void getAppStateService(IGmsCallbacks callback, int versionCode, String packageName, + String str2, String[] args) throws RemoteException { + throw new IllegalArgumentException("App State service not supported"); + } + + @Override + public void getPlayLogService(IGmsCallbacks callback, int versionCode, String packageName, + Bundle params) throws RemoteException { + throw new IllegalArgumentException("Play Log service not supported"); + } + + @Override + public void getAdMobService(IGmsCallbacks callback, int versionCode, String packageName, + Bundle params) throws RemoteException { + throw new IllegalArgumentException("AdMob service not supported"); + } + + @Override + public void getDroidGuardService(IGmsCallbacks callback, int versionCode, String packageName, + Bundle params) throws RemoteException { + throw new IllegalArgumentException("DroidGuard service not supported"); + } + + @Override + public void getLockboxService(IGmsCallbacks callback, int versionCode, String packageName, + Bundle params) throws RemoteException { + throw new IllegalArgumentException("Lockbox service not supported"); + } + + @Override + public void getCastMirroringService(IGmsCallbacks callback, int versionCode, String packageName, + Bundle params) throws RemoteException { + throw new IllegalArgumentException("Cast Mirroring service not supported"); + } + + @Override + public void getNetworkQualityService(IGmsCallbacks callback, int versionCode, + String packageName, Bundle params) throws RemoteException { + throw new IllegalArgumentException("Network Quality service not supported"); + } + + @Override + public void getGoogleIdentityService(IGmsCallbacks callback, int versionCode, + String packageName, Bundle params) throws RemoteException { + throw new IllegalArgumentException("Google Identity service not supported"); + } + + @Override + public void getGoogleFeedbackService(IGmsCallbacks callback, int versionCode, + String packageName, Bundle params) throws RemoteException { + throw new IllegalArgumentException("Google Feedback service not supported"); + } + + @Override + public void getCastService(IGmsCallbacks callback, int versionCode, String packageName, + IBinder binder, Bundle params) throws RemoteException { + throw new IllegalArgumentException("Cast service not supported"); + } + + @Override + public void getDriveService(IGmsCallbacks callback, int versionCode, String packageName, + String[] args, String str2, Bundle params) throws RemoteException { + throw new IllegalArgumentException("Drive service not supported"); + } + + @Override + public void getLightweightAppDataSearchService(IGmsCallbacks callback, int versionCode, + String packageName) throws RemoteException { + throw new IllegalArgumentException("Lightweight App Data Search service not supported"); + } + + @Override + public void getSearchAdministrationService(IGmsCallbacks callback, int versionCode, + String packageName) throws RemoteException { + throw new IllegalArgumentException("Search Administration service not supported"); + } + + @Override + public void getAutoBackupService(IGmsCallbacks callback, int versionCode, String packageName, + Bundle params) throws RemoteException { + throw new IllegalArgumentException("Auto Backup service not supported"); + } + + @Override + public void getAddressService(IGmsCallbacks callback, int versionCode, String packageName) + throws RemoteException { + throw new IllegalArgumentException("Address service not supported"); + } +} diff --git a/src/com/google/android/gms/common/internal/IGmsCallbacks.aidl b/src/com/google/android/gms/common/internal/IGmsCallbacks.aidl new file mode 100644 index 00000000..9a36b0ed --- /dev/null +++ b/src/com/google/android/gms/common/internal/IGmsCallbacks.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.common.internal; + +interface IGmsCallbacks { + void onPostInitComplete(int statusCode, IBinder binder, in Bundle params); +} diff --git a/src/com/google/android/gms/common/internal/IGmsServiceBroker.aidl b/src/com/google/android/gms/common/internal/IGmsServiceBroker.aidl new file mode 100644 index 00000000..318c4dab --- /dev/null +++ b/src/com/google/android/gms/common/internal/IGmsServiceBroker.aidl @@ -0,0 +1,30 @@ +package com.google.android.gms.common.internal; + +import com.google.android.gms.common.internal.IGmsCallbacks; + +interface IGmsServiceBroker { + void getPlusService(IGmsCallbacks callback, int code, String str1, String str2, in String[] paramArrayOfString, String str3, in Bundle params); + void getPanoramaService(IGmsCallbacks callback, int code, String str, in Bundle params); + void getAppDataSearchService(IGmsCallbacks callback, int code, String str); + void getWalletService(IGmsCallbacks callback, int code); + void getPeopleService(IGmsCallbacks callback, int code, String str, in Bundle params); + void getReportingService(IGmsCallbacks callback, int code, String str, in Bundle params); + void getLocationService(IGmsCallbacks callback, int code, String str, in Bundle params); + void getGoogleLocationManagerService(IGmsCallbacks callback, int code, String str, in Bundle params); + void getGamesService(IGmsCallbacks callback, int code, String str1, String str2, in String[] args, String str3, IBinder binder, String str4, in Bundle params); + void getAppStateService(IGmsCallbacks callback, int code, String str1, String str2, in String[] args); + void getPlayLogService(IGmsCallbacks callback, int code, String str, in Bundle params); + void getAdMobService(IGmsCallbacks callback, int code, String str, in Bundle params); + void getDroidGuardService(IGmsCallbacks callback, int code, String str, in Bundle params); + void getLockboxService(IGmsCallbacks callback, int code, String str, in Bundle params); + void getCastMirroringService(IGmsCallbacks callback, int code, String str, in Bundle params); + void getNetworkQualityService(IGmsCallbacks callback, int code, String str, in Bundle params); + void getGoogleIdentityService(IGmsCallbacks callback, int code, String str, in Bundle params); + void getGoogleFeedbackService(IGmsCallbacks callback, int code, String str, in Bundle params); + void getCastService(IGmsCallbacks callback, int code, String str, IBinder binder, in Bundle params); + void getDriveService(IGmsCallbacks callback, int code, String str1, in String[] args, String str2, in Bundle params); + void getLightweightAppDataSearchService(IGmsCallbacks callback, int code, String str); + void getSearchAdministrationService(IGmsCallbacks callback, int code, String str); + void getAutoBackupService(IGmsCallbacks callback, int code, String str, in Bundle params); + void getAddressService(IGmsCallbacks callback, int code, String str); +} diff --git a/src/com/google/android/gms/dynamic/IObjectWrapper.aidl b/src/com/google/android/gms/dynamic/IObjectWrapper.aidl new file mode 100644 index 00000000..35e1474a --- /dev/null +++ b/src/com/google/android/gms/dynamic/IObjectWrapper.aidl @@ -0,0 +1,8 @@ +package com.google.android.gms.dynamic; + +/** + * The concrete class implementing IObjectWrapper must have exactly one declared private field + * for the wrapped object. Preferably, this is an instance of the ObjectWrapper class. + */ +interface IObjectWrapper { +} diff --git a/src/com/google/android/gms/dynamic/ObjectWrapper.java b/src/com/google/android/gms/dynamic/ObjectWrapper.java new file mode 100644 index 00000000..04a5e582 --- /dev/null +++ b/src/com/google/android/gms/dynamic/ObjectWrapper.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.dynamic; + +import android.os.IBinder; + +import java.lang.reflect.Field; + +public class ObjectWrapper extends IObjectWrapper.Stub { + private final T t; + + public ObjectWrapper(T t) { + this.t = t; + } + + public static Object unwrap(IObjectWrapper obj) { + if (obj == null) { + return null; + } + if (obj instanceof ObjectWrapper) { + return ((ObjectWrapper) obj).t; + } + IBinder binder = obj.asBinder(); + Field[] fields = binder.getClass().getDeclaredFields(); + if (fields.length != 1) { + throw new IllegalArgumentException(); + } + Field field = fields[0]; + if (!field.isAccessible()) { + field.setAccessible(true); + try { + Object wrapped = field.get(binder); + return wrapped; + } catch (NullPointerException localNullPointerException) { + throw new IllegalArgumentException("Binder object is null.", + localNullPointerException); + } catch (IllegalArgumentException localIllegalArgumentException) { + throw new IllegalArgumentException("remoteBinder is the wrong class.", + localIllegalArgumentException); + } catch (IllegalAccessException localIllegalAccessException) { + throw new IllegalArgumentException("Could not access the field in remoteBinder.", + localIllegalAccessException); + } + } else { + throw new IllegalArgumentException(); + } + } + + public static ObjectWrapper wrap(T t) { + return new ObjectWrapper(t); + } +} diff --git a/src/com/google/android/gms/location/Geofence.aidl b/src/com/google/android/gms/location/Geofence.aidl new file mode 100644 index 00000000..4fc554eb --- /dev/null +++ b/src/com/google/android/gms/location/Geofence.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location; + +parcelable Geofence; \ No newline at end of file diff --git a/src/com/google/android/gms/location/Geofence.java b/src/com/google/android/gms/location/Geofence.java new file mode 100644 index 00000000..0c65cfa5 --- /dev/null +++ b/src/com/google/android/gms/location/Geofence.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; + +public class Geofence implements SafeParcelable { + + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + SafeParcelUtil.writeObject(this, dest, flags); + } + + + public static Creator CREATOR = new Creator() { + @Override + public Geofence createFromParcel(Parcel source) { + return new Geofence(); + } + + @Override + public Geofence[] newArray(int size) { + return new Geofence[size]; + } + }; +} diff --git a/src/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl b/src/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl new file mode 100644 index 00000000..b8e03066 --- /dev/null +++ b/src/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl @@ -0,0 +1,4 @@ +package com.google.android.gms.location.internal; + +interface IGeofencerCallbacks { +} diff --git a/src/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl b/src/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl new file mode 100644 index 00000000..c461587d --- /dev/null +++ b/src/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl @@ -0,0 +1,8 @@ +package com.google.android.gms.location.internal; + +import com.google.android.gms.location.Geofence; +import com.google.android.gms.location.internal.IGeofencerCallbacks; + +interface IGoogleLocationManagerService { + void addGeofences(in List geofences, in PendingIntent pendingIntent, IGeofencerCallbacks callback, String str); +} diff --git a/src/com/google/android/gms/maps/GoogleMapOptions.aidl b/src/com/google/android/gms/maps/GoogleMapOptions.aidl new file mode 100644 index 00000000..e2cf4afd --- /dev/null +++ b/src/com/google/android/gms/maps/GoogleMapOptions.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.maps; + +parcelable GoogleMapOptions; diff --git a/src/com/google/android/gms/maps/GoogleMapOptions.java b/src/com/google/android/gms/maps/GoogleMapOptions.java new file mode 100644 index 00000000..8219b155 --- /dev/null +++ b/src/com/google/android/gms/maps/GoogleMapOptions.java @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.maps; + +import android.os.Parcel; +import com.google.android.gms.maps.model.CameraPosition; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public final class GoogleMapOptions implements SafeParcelable { + @SafeParceled(1) + private int versionCode; + @SafeParceled(2) + private int zOrderOnTop; + @SafeParceled(3) + private boolean useViewLifecycleInFragment; + @SafeParceled(4) + private int mapType; + @SafeParceled(5) + private CameraPosition camera; + @SafeParceled(6) + private boolean zoomControlsEnabled; + @SafeParceled(7) + private boolean compassEnabled; + @SafeParceled(8) + private boolean scrollGesturesEnabled; + @SafeParceled(9) + private boolean zoomGesturesEnabled; + @SafeParceled(10) + private boolean tiltGesturesEnabled; + @SafeParceled(11) + private boolean rotateGesturesEnabled; + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + SafeParcelUtil.writeObject(this, dest, flags); + } + + public GoogleMapOptions() { + } + + private GoogleMapOptions(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + public int getMapType() { + return mapType; + } + + public CameraPosition getCamera() { + return camera; + } + + public boolean isZoomControlsEnabled() { + return zoomControlsEnabled; + } + + public boolean isCompassEnabled() { + return compassEnabled; + } + + public boolean isScrollGesturesEnabled() { + return scrollGesturesEnabled; + } + + public boolean isZoomGesturesEnabled() { + return zoomGesturesEnabled; + } + + public boolean isTiltGesturesEnabled() { + return tiltGesturesEnabled; + } + + public boolean isRotateGesturesEnabled() { + return rotateGesturesEnabled; + } + + public static Creator CREATOR = new Creator() { + public GoogleMapOptions createFromParcel(Parcel source) { + return new GoogleMapOptions(source); + } + + public GoogleMapOptions[] newArray(int size) { + return new GoogleMapOptions[size]; + } + }; +} diff --git a/src/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl b/src/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl new file mode 100644 index 00000000..fc1665b7 --- /dev/null +++ b/src/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl @@ -0,0 +1,20 @@ +package com.google.android.gms.maps.internal; + +import com.google.android.gms.dynamic.IObjectWrapper; +import com.google.android.gms.maps.model.CameraPosition; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.LatLngBounds; + +interface ICameraUpdateFactoryDelegate { + IObjectWrapper zoomIn(); + IObjectWrapper zoomOut(); + IObjectWrapper scrollBy(float x, float y); + IObjectWrapper zoomTo(float zoom); + IObjectWrapper zoomBy(float zoomDelta); + IObjectWrapper zoomByWithFocus(float zoomDelta, int x, int y); + IObjectWrapper newCameraPosition(in CameraPosition cameraPosition); + IObjectWrapper newLatLng(in LatLng latLng); + IObjectWrapper newLatLngZoom(in LatLng latLng, float zoom); + IObjectWrapper newLatLngBounds(in LatLngBounds bounds, int i); + IObjectWrapper newLatLngBoundsWithSize(in LatLngBounds bounds, int i1, int i2, int i3); +} diff --git a/src/com/google/android/gms/maps/internal/ICancelableCallback.aidl b/src/com/google/android/gms/maps/internal/ICancelableCallback.aidl new file mode 100644 index 00000000..0cc5938f --- /dev/null +++ b/src/com/google/android/gms/maps/internal/ICancelableCallback.aidl @@ -0,0 +1,6 @@ +package com.google.android.gms.maps.internal; + +interface ICancelableCallback { + void onFinish(); + void onCancel(); +} diff --git a/src/com/google/android/gms/maps/internal/ICreator.aidl b/src/com/google/android/gms/maps/internal/ICreator.aidl new file mode 100644 index 00000000..f10ab345 --- /dev/null +++ b/src/com/google/android/gms/maps/internal/ICreator.aidl @@ -0,0 +1,17 @@ +package com.google.android.gms.maps.internal; + +import com.google.android.gms.dynamic.IObjectWrapper; +import com.google.android.gms.maps.GoogleMapOptions; +import com.google.android.gms.maps.internal.IMapFragmentDelegate; +import com.google.android.gms.maps.internal.IMapViewDelegate; +import com.google.android.gms.maps.internal.ICameraUpdateFactoryDelegate; +import com.google.android.gms.maps.model.internal.IBitmapDescriptorFactoryDelegate; + +interface ICreator { + void init(IObjectWrapper resources); + IMapFragmentDelegate newMapFragmentDelegate(IObjectWrapper activity); + IMapViewDelegate newMapViewDelegate(IObjectWrapper context, in GoogleMapOptions options); + ICameraUpdateFactoryDelegate newCameraUpdateFactoryDelegate(); + IBitmapDescriptorFactoryDelegate newBitmapDescriptorFactoryDelegate(); + void initV2(IObjectWrapper resources, int flags); +} diff --git a/src/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl b/src/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl new file mode 100644 index 00000000..ac474c35 --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl @@ -0,0 +1,91 @@ +package com.google.android.gms.maps.internal; + +import com.google.android.gms.dynamic.IObjectWrapper; +import com.google.android.gms.maps.model.CameraPosition; +import com.google.android.gms.maps.internal.ICancelableCallback; +import com.google.android.gms.maps.internal.ILocationSourceDelegate; +import com.google.android.gms.maps.internal.IUiSettingsDelegate; +import com.google.android.gms.maps.internal.IProjectionDelegate; +import com.google.android.gms.maps.internal.IOnCameraChangeListener; +import com.google.android.gms.maps.internal.IOnMapClickListener; +import com.google.android.gms.maps.internal.IOnMapLongClickListener; +import com.google.android.gms.maps.internal.IOnMarkerClickListener; +import com.google.android.gms.maps.internal.IOnMarkerDragListener; +import com.google.android.gms.maps.internal.IOnInfoWindowClickListener; +import com.google.android.gms.maps.internal.IInfoWindowAdapter; +import com.google.android.gms.maps.internal.IOnMapLoadedCallback; +import com.google.android.gms.maps.internal.IOnMyLocationChangeListener; +import com.google.android.gms.maps.internal.IOnMyLocationButtonClickListener; +import com.google.android.gms.maps.internal.ISnapshotReadyCallback; +import com.google.android.gms.maps.model.CircleOptions; +import com.google.android.gms.maps.model.GroundOverlayOptions; +import com.google.android.gms.maps.model.MarkerOptions; +import com.google.android.gms.maps.model.PolygonOptions; +import com.google.android.gms.maps.model.PolylineOptions; +import com.google.android.gms.maps.model.TileOverlayOptions; +import com.google.android.gms.maps.model.internal.IPolylineDelegate; +import com.google.android.gms.maps.model.internal.IPolygonDelegate; +import com.google.android.gms.maps.model.internal.IMarkerDelegate; +import com.google.android.gms.maps.model.internal.ICircleDelegate; +import com.google.android.gms.maps.model.internal.IGroundOverlayDelegate; +import com.google.android.gms.maps.model.internal.ITileOverlayDelegate; + +interface IGoogleMapDelegate { + CameraPosition getCameraPosition(); + + float getMaxZoomLevel(); + float getMinZoomLevel(); + + void moveCamera(IObjectWrapper cameraUpdate); + void animateCamera(IObjectWrapper cameraUpdate); + void animateCameraWithCallback(IObjectWrapper cameraUpdate, ICancelableCallback callback); + void animateCameraWithDurationAndCallback(IObjectWrapper cameraUpdate, int duration, ICancelableCallback callback); + void stopAnimation(); + + IPolylineDelegate addPolyline(in PolylineOptions options); + IPolygonDelegate addPolygon(in PolygonOptions options); + IMarkerDelegate addMarker(in MarkerOptions options); + IGroundOverlayDelegate addGroundOverlay(in GroundOverlayOptions options); + ITileOverlayDelegate addTileOverlay(in TileOverlayOptions options); + + void clear(); + + int getMapType(); + void setMapType(int type); + boolean isTrafficEnabled(); + void setTrafficEnabled(boolean traffic); + boolean isIndoorEnabled(); + void setIndoorEnabled(boolean indoor); + + boolean isMyLocationEnabled(); + void setMyLocationEnabled(boolean myLocation); + Location getMyLocation(); + void setLocationSource(ILocationSourceDelegate locationSource); + + IUiSettingsDelegate getUiSettings(); + IProjectionDelegate getProjection(); + + void setOnCameraChangeListener(IOnCameraChangeListener listener); + void setOnMapClickListener(IOnMapClickListener listener); + void setOnMapLongClickListener(IOnMapLongClickListener listener); + void setOnMarkerClickListener(IOnMarkerClickListener listener); + void setOnMarkerDragListener(IOnMarkerDragListener listener); + void setOnInfoWindowClickListener(IOnInfoWindowClickListener listener); + void setInfoWindowAdapter(IInfoWindowAdapter adapter); + + IObjectWrapper getTestingHelper(); + + ICircleDelegate addCircle(in CircleOptions options); + + void setOnMyLocationChangeListener(IOnMyLocationChangeListener listener); + void setOnMyLocationButtonClickListener(IOnMyLocationButtonClickListener listener); + + void snapshot(ISnapshotReadyCallback callback, IObjectWrapper bitmap); + + void setPadding(int left, int top, int right, int bottom); + + boolean isBuildingsEnabled(); + void setBuildingsEnabled(boolean buildings); + + void setOnMapLoadedCallback(IOnMapLoadedCallback callback); +} diff --git a/src/com/google/android/gms/maps/internal/IInfoWindowAdapter.aidl b/src/com/google/android/gms/maps/internal/IInfoWindowAdapter.aidl new file mode 100644 index 00000000..d11d71d4 --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IInfoWindowAdapter.aidl @@ -0,0 +1,9 @@ +package com.google.android.gms.maps.internal; + +import com.google.android.gms.dynamic.IObjectWrapper; +import com.google.android.gms.maps.model.internal.IMarkerDelegate; + +interface IInfoWindowAdapter { + IObjectWrapper getInfoWindow(IMarkerDelegate marker); + IObjectWrapper getInfoContents(IMarkerDelegate marker); +} diff --git a/src/com/google/android/gms/maps/internal/ILocationSourceDelegate.aidl b/src/com/google/android/gms/maps/internal/ILocationSourceDelegate.aidl new file mode 100644 index 00000000..203ec69f --- /dev/null +++ b/src/com/google/android/gms/maps/internal/ILocationSourceDelegate.aidl @@ -0,0 +1,4 @@ +package com.google.android.gms.maps.internal; + +interface ILocationSourceDelegate { +} diff --git a/src/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl b/src/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl new file mode 100644 index 00000000..966c4e4b --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl @@ -0,0 +1,19 @@ +package com.google.android.gms.maps.internal; + +import com.google.android.gms.maps.internal.IGoogleMapDelegate; +import com.google.android.gms.maps.GoogleMapOptions; +import com.google.android.gms.dynamic.IObjectWrapper; + +interface IMapFragmentDelegate { + IGoogleMapDelegate getMap(); + void onInflate(IObjectWrapper activity, in GoogleMapOptions options, in Bundle savedInstanceState); + void onCreate(in Bundle savedInstanceState); + IObjectWrapper onCreateView(IObjectWrapper layoutInflate, IObjectWrapper container, in Bundle savedInstanceState); + void onResume(); + void onPause(); + void onDestroyView(); + void onDestroy(); + void onLowMemory(); + void onSaveInstanceState(inout Bundle outState); + boolean isReady(); +} diff --git a/src/com/google/android/gms/maps/internal/IMapViewDelegate.aidl b/src/com/google/android/gms/maps/internal/IMapViewDelegate.aidl new file mode 100644 index 00000000..820e27b4 --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IMapViewDelegate.aidl @@ -0,0 +1,15 @@ +package com.google.android.gms.maps.internal; + +import com.google.android.gms.maps.internal.IGoogleMapDelegate; +import com.google.android.gms.dynamic.IObjectWrapper; + +interface IMapViewDelegate { + IGoogleMapDelegate getMap(); + void onCreate(in Bundle savedInstanceState); + void onResume(); + void onPause(); + void onDestroy(); + void onLowMemory(); + void onSaveInstanceState(inout Bundle outState); + IObjectWrapper getView(); +} diff --git a/src/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl b/src/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl new file mode 100644 index 00000000..41010aa0 --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl @@ -0,0 +1,4 @@ +package com.google.android.gms.maps.internal; + +interface IOnCameraChangeListener { +} diff --git a/src/com/google/android/gms/maps/internal/IOnInfoWindowClickListener.aidl b/src/com/google/android/gms/maps/internal/IOnInfoWindowClickListener.aidl new file mode 100644 index 00000000..7c396ce7 --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IOnInfoWindowClickListener.aidl @@ -0,0 +1,7 @@ +package com.google.android.gms.maps.internal; + +import com.google.android.gms.maps.model.internal.IMarkerDelegate; + +interface IOnInfoWindowClickListener { + void onInfoWindowClick(IMarkerDelegate marker); +} diff --git a/src/com/google/android/gms/maps/internal/IOnMapClickListener.aidl b/src/com/google/android/gms/maps/internal/IOnMapClickListener.aidl new file mode 100644 index 00000000..6b3b2ec8 --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IOnMapClickListener.aidl @@ -0,0 +1,7 @@ +package com.google.android.gms.maps.internal; + +import com.google.android.gms.maps.model.LatLng; + +interface IOnMapClickListener { + void onMapClick(in LatLng latLng); +} diff --git a/src/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl b/src/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl new file mode 100644 index 00000000..969d9652 --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl @@ -0,0 +1,4 @@ +package com.google.android.gms.maps.internal; + +interface IOnMapLoadedCallback { +} diff --git a/src/com/google/android/gms/maps/internal/IOnMapLongClickListener.aidl b/src/com/google/android/gms/maps/internal/IOnMapLongClickListener.aidl new file mode 100644 index 00000000..11201b2c --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IOnMapLongClickListener.aidl @@ -0,0 +1,7 @@ +package com.google.android.gms.maps.internal; + +import com.google.android.gms.maps.model.LatLng; + +interface IOnMapLongClickListener { + void onMapLongClick(in LatLng latLng); +} diff --git a/src/com/google/android/gms/maps/internal/IOnMarkerClickListener.aidl b/src/com/google/android/gms/maps/internal/IOnMarkerClickListener.aidl new file mode 100644 index 00000000..94c4465d --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IOnMarkerClickListener.aidl @@ -0,0 +1,7 @@ +package com.google.android.gms.maps.internal; + +import com.google.android.gms.maps.model.internal.IMarkerDelegate; + +interface IOnMarkerClickListener { + boolean onMarkerClick(IMarkerDelegate marker); +} diff --git a/src/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl b/src/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl new file mode 100644 index 00000000..42cec6ca --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl @@ -0,0 +1,4 @@ +package com.google.android.gms.maps.internal; + +interface IOnMarkerDragListener { +} diff --git a/src/com/google/android/gms/maps/internal/IOnMyLocationButtonClickListener.aidl b/src/com/google/android/gms/maps/internal/IOnMyLocationButtonClickListener.aidl new file mode 100644 index 00000000..b10880dd --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IOnMyLocationButtonClickListener.aidl @@ -0,0 +1,4 @@ +package com.google.android.gms.maps.internal; + +interface IOnMyLocationButtonClickListener { +} diff --git a/src/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl b/src/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl new file mode 100644 index 00000000..db71cd63 --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl @@ -0,0 +1,4 @@ +package com.google.android.gms.maps.internal; + +interface IOnMyLocationChangeListener { +} diff --git a/src/com/google/android/gms/maps/internal/IProjectionDelegate.aidl b/src/com/google/android/gms/maps/internal/IProjectionDelegate.aidl new file mode 100644 index 00000000..9b2da90b --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IProjectionDelegate.aidl @@ -0,0 +1,11 @@ +package com.google.android.gms.maps.internal; + +import com.google.android.gms.dynamic.IObjectWrapper; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.VisibleRegion; + +interface IProjectionDelegate { + LatLng fromScreenLocation(IObjectWrapper obj); + IObjectWrapper toScreenLocation(in LatLng latLng); + VisibleRegion getVisibleRegion(); +} diff --git a/src/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl b/src/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl new file mode 100644 index 00000000..48a39219 --- /dev/null +++ b/src/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl @@ -0,0 +1,4 @@ +package com.google.android.gms.maps.internal; + +interface ISnapshotReadyCallback { +} diff --git a/src/com/google/android/gms/maps/internal/IUiSettingsDelegate.aidl b/src/com/google/android/gms/maps/internal/IUiSettingsDelegate.aidl new file mode 100644 index 00000000..ca5e0d08 --- /dev/null +++ b/src/com/google/android/gms/maps/internal/IUiSettingsDelegate.aidl @@ -0,0 +1,19 @@ +package com.google.android.gms.maps.internal; + +interface IUiSettingsDelegate { + void setZoomControlsEnabled(boolean zoom); + void setCompassEnabled(boolean compass); + void setMyLocationButtonEnabled(boolean locationButton); + void setScrollGesturesEnabled(boolean scrollGestures); + void setZoomGesturesEnabled(boolean zoomGestures); + void setTiltGesturesEnabled(boolean tiltGestures); + void setRotateGesturesEnabled(boolean rotateGestures); + void setAllGesturesEnabled(boolean gestures); + boolean isZoomControlsEnabled(); + boolean isCompassEnabled(); + boolean isMyLocationButtonEnabled(); + boolean isScrollGesturesEnabled(); + boolean isZoomGesturesEnabled(); + boolean isTiltGesturesEnabled(); + boolean isRotateGesturesEnabled(); +} diff --git a/src/com/google/android/gms/maps/model/CameraPosition.aidl b/src/com/google/android/gms/maps/model/CameraPosition.aidl new file mode 100644 index 00000000..bb5ab701 --- /dev/null +++ b/src/com/google/android/gms/maps/model/CameraPosition.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.maps.model; + +parcelable CameraPosition; diff --git a/src/com/google/android/gms/maps/model/CameraPosition.java b/src/com/google/android/gms/maps/model/CameraPosition.java new file mode 100644 index 00000000..109dfddb --- /dev/null +++ b/src/com/google/android/gms/maps/model/CameraPosition.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.maps.model; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.Arrays; + +public class CameraPosition implements SafeParcelable { + @SafeParceled(1) + private int versionCode; + @SafeParceled(2) + public LatLng target; + @SafeParceled(3) + public float zoom; + @SafeParceled(4) + public float tilt; + @SafeParceled(5) + public float bearing; + + private CameraPosition(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + public CameraPosition(int versionCode, LatLng target, float zoom, float tilt, float bearing) { + this.versionCode = versionCode; + if (target == null) { + throw new NullPointerException("null camera target"); + } + this.target = target; + this.zoom = zoom; + if (tilt < 0 || 90 < tilt) { + throw new IllegalArgumentException("Tilt needs to be between 0 and 90 inclusive"); + } + this.tilt = tilt; + if (bearing <= 0) { + bearing += 360; + } + this.bearing = bearing % 360; + } + + public CameraPosition(LatLng target, float zoom, float tilt, float bearing) { + this(1, target, zoom, tilt, bearing); + } + + public static CameraPosition create(LatLng latLng) { + return new CameraPosition(latLng, 0, 0, 0); + } + + @Override + public int hashCode() { + return Arrays.hashCode(new Object[] { target, zoom, tilt, bearing }); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + SafeParcelUtil.writeObject(this, dest, flags); + } + + public static Creator CREATOR = new Creator() { + public CameraPosition createFromParcel(Parcel source) { + return new CameraPosition(source); + } + + public CameraPosition[] newArray(int size) { + return new CameraPosition[size]; + } + }; +} diff --git a/src/com/google/android/gms/maps/model/CircleOptions.aidl b/src/com/google/android/gms/maps/model/CircleOptions.aidl new file mode 100644 index 00000000..33ae4542 --- /dev/null +++ b/src/com/google/android/gms/maps/model/CircleOptions.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.maps.model; + +parcelable CircleOptions; diff --git a/src/com/google/android/gms/maps/model/CircleOptions.java b/src/com/google/android/gms/maps/model/CircleOptions.java new file mode 100644 index 00000000..1b6d982d --- /dev/null +++ b/src/com/google/android/gms/maps/model/CircleOptions.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.maps.model; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class CircleOptions implements SafeParcelable { + public static Creator CREATOR = new Creator() { + public CircleOptions createFromParcel(Parcel source) { + return new CircleOptions(source); + } + + public CircleOptions[] newArray(int size) { + return new CircleOptions[size]; + } + }; + @SafeParceled(1) + private int versionCode; + @SafeParceled(2) + private LatLng center; + @SafeParceled(3) + private double radius; + @SafeParceled(4) + private float strokeWidth; + @SafeParceled(5) + private int strokeColor; + @SafeParceled(6) + private int fillColor; + @SafeParceled(7) + private float zIndex; + @SafeParceled(8) + private boolean visisble; + + public CircleOptions() { + } + + private CircleOptions(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + SafeParcelUtil.writeObject(this, dest, flags); + } +} diff --git a/src/com/google/android/gms/maps/model/GroundOverlayOptions.aidl b/src/com/google/android/gms/maps/model/GroundOverlayOptions.aidl new file mode 100644 index 00000000..5bdbefaf --- /dev/null +++ b/src/com/google/android/gms/maps/model/GroundOverlayOptions.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.maps.model; + +parcelable GroundOverlayOptions; diff --git a/src/com/google/android/gms/maps/model/GroundOverlayOptions.java b/src/com/google/android/gms/maps/model/GroundOverlayOptions.java new file mode 100644 index 00000000..dd758cfe --- /dev/null +++ b/src/com/google/android/gms/maps/model/GroundOverlayOptions.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.maps.model; + +import android.os.IBinder; +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class GroundOverlayOptions implements SafeParcelable { + @SafeParceled(1) + private int versionCode; + @SafeParceled(2) + private IBinder wrappedImage; + @SafeParceled(3) + private LatLng location; + @SafeParceled(4) + private float width; + @SafeParceled(5) + private float height; + @SafeParceled(6) + private LatLngBounds bounds; + @SafeParceled(7) + private float bearing; + @SafeParceled(8) + private float zIndex; + @SafeParceled(9) + private boolean visible; + @SafeParceled(10) + private float transparency; + @SafeParceled(11) + private float anchorU; + @SafeParceled(12) + private float anchorV; + + public GroundOverlayOptions() { + } + + private GroundOverlayOptions(Parcel in) { + SafeParcelUtil.readObject(this, in); + // wrappedImage = new BitmapDescriptor(IObjectWrapper.Stub.asInterface(SafeReader.readBinder(in, position))); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + SafeParcelUtil.writeObject(this, dest, flags); + // SafeParcelWriter.write(dest, 2, wrappedImage.getRemoteObject().asBinder(), false); + } + + public static Creator CREATOR = new Creator() { + public GroundOverlayOptions createFromParcel(Parcel source) { + return new GroundOverlayOptions(source); + } + + public GroundOverlayOptions[] newArray(int size) { + return new GroundOverlayOptions[size]; + } + }; +} diff --git a/src/com/google/android/gms/maps/model/LatLng.aidl b/src/com/google/android/gms/maps/model/LatLng.aidl new file mode 100644 index 00000000..42df9312 --- /dev/null +++ b/src/com/google/android/gms/maps/model/LatLng.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.maps.model; + +parcelable LatLng; diff --git a/src/com/google/android/gms/maps/model/LatLng.java b/src/com/google/android/gms/maps/model/LatLng.java new file mode 100644 index 00000000..1d4d1ddd --- /dev/null +++ b/src/com/google/android/gms/maps/model/LatLng.java @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.maps.model; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class LatLng implements SafeParcelable { + public static Creator CREATOR = new Creator() { + public LatLng createFromParcel(Parcel source) { + return new LatLng(source); + } + + public LatLng[] newArray(int size) { + return new LatLng[size]; + } + }; + @SafeParceled(2) + public double latitude; + @SafeParceled(3) + public double longitude; + @SafeParceled(1) + private int versionCode; + + public LatLng(int versionCode, double latitude, double longitude) { + this.versionCode = versionCode; + this.latitude = Math.max(-90, Math.min(90, latitude)); + if ((-180 <= longitude) && (longitude < 180)) { + this.longitude = longitude; + } else { + this.longitude = ((360 + (longitude - 180) % 360) % 360 - 180); + } + } + + private LatLng(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + public LatLng(double latitude, double longitude) { + this(1, latitude, longitude); + } + + @Override + public final int hashCode() { + long lat = Double.doubleToLongBits(latitude); + int tmp = 31 + (int) (lat ^ lat >>> 32); + long lon = Double.doubleToLongBits(longitude); + return tmp * 31 + (int) (lon ^ lon >>> 32); + } + + @Override + public String toString() { + return "lat/lng: (" + latitude + "," + longitude + ")"; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + SafeParcelUtil.writeObject(this, dest, flags); + } +} diff --git a/src/com/google/android/gms/maps/model/LatLngBounds.aidl b/src/com/google/android/gms/maps/model/LatLngBounds.aidl new file mode 100644 index 00000000..70538794 --- /dev/null +++ b/src/com/google/android/gms/maps/model/LatLngBounds.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.maps.model; + +parcelable LatLngBounds; \ No newline at end of file diff --git a/src/com/google/android/gms/maps/model/LatLngBounds.java b/src/com/google/android/gms/maps/model/LatLngBounds.java new file mode 100644 index 00000000..42da1d3f --- /dev/null +++ b/src/com/google/android/gms/maps/model/LatLngBounds.java @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.maps.model; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class LatLngBounds implements SafeParcelable { + public static Creator CREATOR = new Creator() { + public LatLngBounds createFromParcel(Parcel source) { + return new LatLngBounds(source); + } + + public LatLngBounds[] newArray(int size) { + return new LatLngBounds[size]; + } + }; + @SafeParceled(1) + private int versionCode; + @SafeParceled(2) + public LatLng southWest; + @SafeParceled(3) + public LatLng northEast; + + public LatLngBounds(int versionCode, LatLng southWest, LatLng northEast) { + this.versionCode = versionCode; + this.southWest = southWest; + this.northEast = northEast; + } + + public LatLngBounds(LatLng southWest, LatLng northEast) { + this(1, southWest, northEast); + } + + private LatLngBounds(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + SafeParcelUtil.writeObject(this, dest, flags); + } +} diff --git a/src/com/google/android/gms/maps/model/MarkerOptions.aidl b/src/com/google/android/gms/maps/model/MarkerOptions.aidl new file mode 100644 index 00000000..dc4abbcf --- /dev/null +++ b/src/com/google/android/gms/maps/model/MarkerOptions.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.maps.model; + +parcelable MarkerOptions; diff --git a/src/com/google/android/gms/maps/model/MarkerOptions.java b/src/com/google/android/gms/maps/model/MarkerOptions.java new file mode 100644 index 00000000..4162f0c0 --- /dev/null +++ b/src/com/google/android/gms/maps/model/MarkerOptions.java @@ -0,0 +1,134 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.maps.model; + +import android.os.IBinder; +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class MarkerOptions implements SafeParcelable { + + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + private LatLng position; + @SafeParceled(3) + private String title; + @SafeParceled(4) + private String snippet; + @SafeParceled(5) + private IBinder icon; + @SafeParceled(6) + private float anchorU = 0.5F; + @SafeParceled(7) + private float anchorV = 1F; + @SafeParceled(8) + private boolean draggable; + @SafeParceled(9) + private boolean visible; + @SafeParceled(10) + private boolean flat; + @SafeParceled(11) + private float rotation = 0F; + @SafeParceled(12) + private float infoWindowAnchorU = 0F; + @SafeParceled(13) + private float infoWindowAnchorV = 1F; + @SafeParceled(14) + private float alpha = 1F; + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + } + + public MarkerOptions() { + } + + private MarkerOptions(Parcel in) { + SafeParcelUtil.readObject(this, in); + // this.icon = icon == null ? null : new BitmapDescriptor(ObjectWrapper.asInterface(icon)); + } + + public LatLng getPosition() { + return position; + } + + public String getTitle() { + return title; + } + + public String getSnippet() { + return snippet; + } + + public IBinder getIcon() { + return icon; + } + + public float getAnchorU() { + return anchorU; + } + + public float getAnchorV() { + return anchorV; + } + + public boolean isDraggable() { + return draggable; + } + + public boolean isVisible() { + return visible; + } + + public boolean isFlat() { + return flat; + } + + public float getRotation() { + return rotation; + } + + public float getInfoWindowAnchorU() { + return infoWindowAnchorU; + } + + public float getInfoWindowAnchorV() { + return infoWindowAnchorV; + } + + public float getAlpha() { + return alpha; + } + + public static Creator CREATOR = new Creator() { + public MarkerOptions createFromParcel(Parcel source) { + return new MarkerOptions(source); + } + + public MarkerOptions[] newArray(int size) { + return new MarkerOptions[size]; + } + }; +} diff --git a/src/com/google/android/gms/maps/model/PolygonOptions.aidl b/src/com/google/android/gms/maps/model/PolygonOptions.aidl new file mode 100644 index 00000000..adac82a0 --- /dev/null +++ b/src/com/google/android/gms/maps/model/PolygonOptions.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.maps.model; + +parcelable PolygonOptions; diff --git a/src/com/google/android/gms/maps/model/PolygonOptions.java b/src/com/google/android/gms/maps/model/PolygonOptions.java new file mode 100644 index 00000000..aaefc97c --- /dev/null +++ b/src/com/google/android/gms/maps/model/PolygonOptions.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.maps.model; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; + +public class PolygonOptions implements SafeParcelable { + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + SafeParcelUtil.writeObject(this, dest, flags); + } + + public PolygonOptions() { + } + + private PolygonOptions(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + public static Creator CREATOR = new Creator() { + public PolygonOptions createFromParcel(Parcel source) { + return new PolygonOptions(source); + } + + public PolygonOptions[] newArray(int size) { + return new PolygonOptions[size]; + } + }; +} diff --git a/src/com/google/android/gms/maps/model/PolylineOptions.aidl b/src/com/google/android/gms/maps/model/PolylineOptions.aidl new file mode 100644 index 00000000..7c165891 --- /dev/null +++ b/src/com/google/android/gms/maps/model/PolylineOptions.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.maps.model; + +parcelable PolylineOptions; diff --git a/src/com/google/android/gms/maps/model/PolylineOptions.java b/src/com/google/android/gms/maps/model/PolylineOptions.java new file mode 100644 index 00000000..6cc21ac2 --- /dev/null +++ b/src/com/google/android/gms/maps/model/PolylineOptions.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.maps.model; + +import android.os.Parcel; +import android.os.Parcelable; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.ArrayList; +import java.util.List; + +public class PolylineOptions implements SafeParcelable { + @SafeParceled(1) + private int versionCode; + // TODO + private List points; + private float width; + private int color; + private float zIndex; + private boolean visible; + private boolean geodesic; + + + public PolylineOptions() { + } + + private PolylineOptions(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + SafeParcelUtil.writeObject(this, dest, flags); + } + + public static Creator CREATOR = new Creator() { + public PolylineOptions createFromParcel(Parcel source) { + return new PolylineOptions(source); + } + + public PolylineOptions[] newArray(int size) { + return new PolylineOptions[size]; + } + }; +} diff --git a/src/com/google/android/gms/maps/model/TileOverlayOptions.aidl b/src/com/google/android/gms/maps/model/TileOverlayOptions.aidl new file mode 100644 index 00000000..85f5ac32 --- /dev/null +++ b/src/com/google/android/gms/maps/model/TileOverlayOptions.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.maps.model; + +parcelable TileOverlayOptions; diff --git a/src/com/google/android/gms/maps/model/TileOverlayOptions.java b/src/com/google/android/gms/maps/model/TileOverlayOptions.java new file mode 100644 index 00000000..0256adfc --- /dev/null +++ b/src/com/google/android/gms/maps/model/TileOverlayOptions.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.maps.model; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; + +public class TileOverlayOptions implements SafeParcelable { + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + SafeParcelUtil.writeObject(this, dest, flags); + } + + public TileOverlayOptions() { + } + + private TileOverlayOptions(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + public static Creator CREATOR = new Creator() { + public TileOverlayOptions createFromParcel(Parcel source) { + return new TileOverlayOptions(source); + } + + public TileOverlayOptions[] newArray(int size) { + return new TileOverlayOptions[size]; + } + }; +} diff --git a/src/com/google/android/gms/maps/model/VisibleRegion.aidl b/src/com/google/android/gms/maps/model/VisibleRegion.aidl new file mode 100644 index 00000000..09d22101 --- /dev/null +++ b/src/com/google/android/gms/maps/model/VisibleRegion.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.maps.model; + +parcelable VisibleRegion; diff --git a/src/com/google/android/gms/maps/model/VisibleRegion.java b/src/com/google/android/gms/maps/model/VisibleRegion.java new file mode 100644 index 00000000..21f9cd13 --- /dev/null +++ b/src/com/google/android/gms/maps/model/VisibleRegion.java @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.maps.model; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class VisibleRegion implements SafeParcelable { + @SafeParceled(1) + private int versionCode; + @SafeParceled(2) + private LatLng nearLeft; + @SafeParceled(3) + private LatLng nearRight; + @SafeParceled(4) + private LatLng farLeft; + @SafeParceled(5) + private LatLng farRight; + @SafeParceled(6) + private LatLngBounds bounds; + + public VisibleRegion(int versionCode, LatLng nearLeft, LatLng nearRight, LatLng farLeft, + LatLng farRight, LatLngBounds bounds) { + this.versionCode = versionCode; + this.nearLeft = nearLeft; + this.nearRight = nearRight; + this.farLeft = farLeft; + this.farRight = farRight; + this.bounds = bounds; + } + + public VisibleRegion(LatLng nearLeft, LatLng nearRight, LatLng farLeft, LatLng farRight, + LatLngBounds bounds) { + this(1, nearLeft, nearRight, farLeft, farRight, bounds); + } + + public VisibleRegion(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + SafeParcelUtil.writeObject(this, dest, flags); + } + + public static Creator CREATOR = new Creator() { + public VisibleRegion createFromParcel(Parcel source) { + return new VisibleRegion(source); + } + + public VisibleRegion[] newArray(int size) { + return new VisibleRegion[size]; + } + }; +} diff --git a/src/com/google/android/gms/maps/model/internal/IBitmapDescriptorFactoryDelegate.aidl b/src/com/google/android/gms/maps/model/internal/IBitmapDescriptorFactoryDelegate.aidl new file mode 100644 index 00000000..dca49b60 --- /dev/null +++ b/src/com/google/android/gms/maps/model/internal/IBitmapDescriptorFactoryDelegate.aidl @@ -0,0 +1,14 @@ +package com.google.android.gms.maps.model.internal; + +import android.graphics.Bitmap; +import com.google.android.gms.dynamic.IObjectWrapper; + +interface IBitmapDescriptorFactoryDelegate { + IObjectWrapper fromResource(int resourceId); + IObjectWrapper fromAsset(String assetName); + IObjectWrapper fromFile(String fileName); + IObjectWrapper defaultMarker(); + IObjectWrapper defaultMarkerWithHue(float hue); + IObjectWrapper fromBitmap(in Bitmap bitmap); + IObjectWrapper fromPath(String absolutePath); +} diff --git a/src/com/google/android/gms/maps/model/internal/ICircleDelegate.aidl b/src/com/google/android/gms/maps/model/internal/ICircleDelegate.aidl new file mode 100644 index 00000000..719d8eab --- /dev/null +++ b/src/com/google/android/gms/maps/model/internal/ICircleDelegate.aidl @@ -0,0 +1,24 @@ +package com.google.android.gms.maps.model.internal; + +import com.google.android.gms.maps.model.LatLng; + +interface ICircleDelegate { + void remove(); + String getId(); + void setCenter(in LatLng center); + LatLng getCenter(); + void setRadius(double radius); + double getRadius(); + void setStrokeWidth(float width); + float getStrokeWidth(); + void setStrokeColor(int color); + int getStrokeColor(); + void setFillColor(int color); + int getFillColor(); + void setZIndex(float zIndex); + float getZIndex(); + void setVisible(boolean visible); + boolean isVisible(); + boolean equalsRemote(ICircleDelegate other); + int hashCodeRemote(); +} diff --git a/src/com/google/android/gms/maps/model/internal/IGroundOverlayDelegate.aidl b/src/com/google/android/gms/maps/model/internal/IGroundOverlayDelegate.aidl new file mode 100644 index 00000000..0a1a0632 --- /dev/null +++ b/src/com/google/android/gms/maps/model/internal/IGroundOverlayDelegate.aidl @@ -0,0 +1,29 @@ +package com.google.android.gms.maps.model.internal; + +import com.google.android.gms.dynamic.IObjectWrapper; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.LatLngBounds; + +interface IGroundOverlayDelegate { + void remove(); + String getId(); + void setPosition(in LatLng pos); + LatLng getPosition(); + void setDimension(float dimension); + void setDimensions(float width, float height); + float getWidth(); + float getHeight(); + void setPositionFromBounds(in LatLngBounds bounds); + LatLngBounds getBounds(); + void setBearing(float bearing); + float getBearing(); + void setZIndex(float zIndex); + float getZIndex(); + void setVisible(boolean visible); + boolean isVisible(); + void setTransparency(float transparency); + float getTransparency(); + boolean equalsRemote(IGroundOverlayDelegate other); + int hashCodeRemote(); + void todo(IObjectWrapper obj); +} diff --git a/src/com/google/android/gms/maps/model/internal/IMarkerDelegate.aidl b/src/com/google/android/gms/maps/model/internal/IMarkerDelegate.aidl new file mode 100644 index 00000000..d4eccf6d --- /dev/null +++ b/src/com/google/android/gms/maps/model/internal/IMarkerDelegate.aidl @@ -0,0 +1,33 @@ +package com.google.android.gms.maps.model.internal; + +import com.google.android.gms.dynamic.IObjectWrapper; +import com.google.android.gms.maps.model.LatLng; + +interface IMarkerDelegate { + void remove(); + String getId(); + void setPosition(in LatLng pos); + LatLng getPosition(); + void setTitle(String title); + String getTitle(); + void setSnippet(String snippet); + String getSnippet(); + void setDraggable(boolean drag); + boolean isDraggable(); + void showInfoWindow(); + void hideInfoWindow(); + boolean isInfoWindowShown(); + void setVisible(boolean visible); + boolean isVisible(); + boolean equalsRemote(IMarkerDelegate other); + int hashCodeRemote(); + void setIcon(IObjectWrapper obj); + void setAnchor(float x, float y); + void setFlat(boolean flat); + boolean isFlat(); + void setRotation(float rotation); + float getRotation(); + void setInfoWindowAnchor(float x, float y); + void setAlpha(float alpha); + float getAlpha(); +} diff --git a/src/com/google/android/gms/maps/model/internal/IPolygonDelegate.aidl b/src/com/google/android/gms/maps/model/internal/IPolygonDelegate.aidl new file mode 100644 index 00000000..67f0517b --- /dev/null +++ b/src/com/google/android/gms/maps/model/internal/IPolygonDelegate.aidl @@ -0,0 +1,27 @@ +package com.google.android.gms.maps.model.internal; + +import com.google.android.gms.maps.model.LatLng; + +interface IPolygonDelegate { + void remove(); + String getId(); + void setPoints(in List points); + List getPoints(); + void setHoles(in List holes); + List getHoles(); + void setStrokeWidth(float width); + float getStrokeWidth(); + void setStrokeColor(int color); + int getStrokeColor(); + void setFillColor(int color); + int getFillColor(); + void setZIndex(float zIndex); + float getZIndex(); + void setVisible(boolean visible); + boolean isVisible(); + void setGeodesic(boolean geod); + boolean isGeodesic(); + boolean equalsRemote(IPolygonDelegate other); + int hashCodeRemote(); + +} diff --git a/src/com/google/android/gms/maps/model/internal/IPolylineDelegate.aidl b/src/com/google/android/gms/maps/model/internal/IPolylineDelegate.aidl new file mode 100644 index 00000000..ebbb336b --- /dev/null +++ b/src/com/google/android/gms/maps/model/internal/IPolylineDelegate.aidl @@ -0,0 +1,22 @@ +package com.google.android.gms.maps.model.internal; + +import com.google.android.gms.maps.model.LatLng; + +interface IPolylineDelegate { + void remove(); + String getId(); + void setPoints(in List points); + List getPoints(); + void setWidth(float width); + float getWidth(); + void setColor(int color); + int getColor(); + void setZIndex(float zIndex); + float getZIndex(); + void setVisible(boolean visible); + boolean isVisible(); + void setGeodesic(boolean geod); + boolean isGeodesic(); + boolean equalsRemote(IPolylineDelegate other); + int hashCodeRemote(); +} diff --git a/src/com/google/android/gms/maps/model/internal/ITileOverlayDelegate.aidl b/src/com/google/android/gms/maps/model/internal/ITileOverlayDelegate.aidl new file mode 100644 index 00000000..417cb024 --- /dev/null +++ b/src/com/google/android/gms/maps/model/internal/ITileOverlayDelegate.aidl @@ -0,0 +1,4 @@ +package com.google.android.gms.maps.model.internal; + +interface ITileOverlayDelegate { +} diff --git a/src/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl b/src/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl new file mode 100644 index 00000000..7e2121d2 --- /dev/null +++ b/src/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl @@ -0,0 +1,8 @@ +package com.google.android.gms.plus.internal; + +import com.google.android.gms.dynamic.IObjectWrapper; + +interface IPlusOneButtonCreator { + IObjectWrapper create(IObjectWrapper context, int size, int annotation, String url, int activityRequestCode); + IObjectWrapper createForAccount(IObjectWrapper context, int size, int annotation, String url, String account); +} From 6649591d11d0cd0a7626887289f1b19cd10426eb Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 9 Jan 2015 19:09:23 +0100 Subject: [PATCH 002/170] Extending and start documenting API --- .../gms/maps/model/BitmapDescriptor.java | 35 +++ .../gms/maps/model/CameraPosition.java | 217 +++++++++++-- .../android/gms/maps/model/CircleOptions.java | 205 +++++++++++- .../gms/maps/model/GroundOverlayOptions.java | 291 +++++++++++++++++- .../google/android/gms/maps/model/LatLng.java | 23 +- .../android/gms/maps/model/LatLngBounds.java | 19 +- .../android/gms/maps/model/MarkerOptions.java | 288 +++++++++++++++-- .../android/gms/maps/model/VisibleRegion.java | 10 + .../android/gms/maps/model/package-info.java | 4 + src/org/microg/gms/maps/Constants.java | 28 ++ 10 files changed, 1028 insertions(+), 92 deletions(-) create mode 100644 src/com/google/android/gms/maps/model/BitmapDescriptor.java create mode 100644 src/com/google/android/gms/maps/model/package-info.java create mode 100644 src/org/microg/gms/maps/Constants.java diff --git a/src/com/google/android/gms/maps/model/BitmapDescriptor.java b/src/com/google/android/gms/maps/model/BitmapDescriptor.java new file mode 100644 index 00000000..800c1745 --- /dev/null +++ b/src/com/google/android/gms/maps/model/BitmapDescriptor.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2014 μg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.maps.model; + +import com.google.android.gms.dynamic.IObjectWrapper; + +/** + * Defines an image. For a marker, it can be used to set the image of the marker icon. For a ground + * overlay, it can be used to set the image to place on the surface of the earth. + */ +public class BitmapDescriptor { + private final IObjectWrapper remoteObject; + + public BitmapDescriptor(IObjectWrapper remoteObject) { + this.remoteObject = remoteObject; + } + + public IObjectWrapper getRemoteObject() { + return remoteObject; + } +} diff --git a/src/com/google/android/gms/maps/model/CameraPosition.java b/src/com/google/android/gms/maps/model/CameraPosition.java index 109dfddb..ea00da74 100644 --- a/src/com/google/android/gms/maps/model/CameraPosition.java +++ b/src/com/google/android/gms/maps/model/CameraPosition.java @@ -16,31 +16,78 @@ package com.google.android.gms.maps.model; +import android.content.Context; import android.os.Parcel; +import android.util.AttributeSet; import org.microg.safeparcel.SafeParcelUtil; import org.microg.safeparcel.SafeParcelable; import org.microg.safeparcel.SafeParceled; import java.util.Arrays; -public class CameraPosition implements SafeParcelable { +/** + * An immutable class that aggregates all camera position parameters. + */ +public final class CameraPosition implements SafeParcelable { @SafeParceled(1) - private int versionCode; + private final int versionCode; + /** + * The location that the camera is pointing at. + */ @SafeParceled(2) - public LatLng target; + public final LatLng target; + /** + * Zoom level near the center of the screen. + * See {@link Builder#zoom(float)} for the definition of the camera's zoom level. + */ @SafeParceled(3) - public float zoom; + public final float zoom; + /** + * The angle, in degrees, of the camera angle from the nadir (directly facing the Earth). + * See {@link Builder#tilt(float)} for details of restrictions on the range of values. + */ @SafeParceled(4) - public float tilt; + public final float tilt; + /** + * Direction that the camera is pointing in, in degrees clockwise from north. + */ @SafeParceled(5) - public float bearing; + public final float bearing; - private CameraPosition(Parcel in) { - SafeParcelUtil.readObject(this, in); + /** + * This constructor is dirty setting the final fields to make the compiler happy. + * In fact, those are replaced by their real values later using SafeParcelUtil. + */ + private CameraPosition() { + target = null; + versionCode = -1; + zoom = tilt = bearing = 0; } - public CameraPosition(int versionCode, LatLng target, float zoom, float tilt, float bearing) { - this.versionCode = versionCode; + private CameraPosition(Parcel in) { + this(); + SafeParcelUtil.readObject(this, in); + if (target == null) + throw new NullPointerException("Target must not be null"); + } + + /** + * Constructs a CameraPosition. + * + * @param target The target location to align with the center of the screen. + * @param zoom Zoom level at target. See {@link #zoom} for details of restrictions. + * @param tilt The camera angle, in degrees, from the nadir (directly down). See + * {@link #tilt} for details of restrictions. + * @param bearing Direction that the camera is pointing in, in degrees clockwise from north. + * This value will be normalized to be within 0 degrees inclusive and 360 + * degrees exclusive. + * @throws NullPointerException if {@code target} is {@code null} + * @throws IllegalArgumentException if {@code tilt} is outside range of {@code 0} to {@code 90} + * degrees inclusive + */ + public CameraPosition(LatLng target, float zoom, float tilt, float bearing) + throws NullPointerException, IllegalArgumentException { + versionCode = 1; if (target == null) { throw new NullPointerException("null camera target"); } @@ -56,17 +103,27 @@ public class CameraPosition implements SafeParcelable { this.bearing = bearing % 360; } - public CameraPosition(LatLng target, float zoom, float tilt, float bearing) { - this(1, target, zoom, tilt, bearing); + /** + * Creates a builder for a camera position. + */ + public static Builder builder() { + return new Builder(); } - public static CameraPosition create(LatLng latLng) { - return new CameraPosition(latLng, 0, 0, 0); + /** + * Creates a builder for a camera position, initialized to a given position. + */ + public static Builder builder(CameraPosition camera) { + return new Builder(camera); } - @Override - public int hashCode() { - return Arrays.hashCode(new Object[] { target, zoom, tilt, bearing }); + /** + * Creates a CameraPostion from the attribute set + * + * @throws UnsupportedOperationException + */ + public static CameraPosition createFromAttributes(Context context, AttributeSet attrs) { + return null; // TODO } @Override @@ -75,8 +132,53 @@ public class CameraPosition implements SafeParcelable { } @Override - public void writeToParcel(Parcel dest, int flags) { - SafeParcelUtil.writeObject(this, dest, flags); + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + + CameraPosition that = (CameraPosition) o; + + if (Float.compare(that.bearing, bearing) != 0) + return false; + if (Float.compare(that.tilt, tilt) != 0) + return false; + if (Float.compare(that.zoom, zoom) != 0) + return false; + if (!target.equals(that.target)) + return false; + + return true; + } + + /** + * Constructs a CameraPosition pointed for a particular target and zoom level. The resultant + * bearing is North, and the viewing angle is perpendicular to the Earth's surface. i.e., + * directly facing the Earth's surface, with the top of the screen pointing North. + * + * @param target The target location to align with the center of the screen. + * @param zoom Zoom level at target. See {@link Builder#zoom(float)} for details on the range + * the value will be clamped to. The larger the value the more zoomed in the + * camera is. + */ + public static final CameraPosition fromLatLngZoom(LatLng target, float zoom) { + return builder().target(target).zoom(zoom).build(); + } + + @Override + public int hashCode() { + return Arrays.hashCode(new Object[] { target, zoom, tilt, bearing }); + } + + @Override + public String toString() { + return super.toString(); // TODO + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); } public static Creator CREATOR = new Creator() { @@ -88,4 +190,81 @@ public class CameraPosition implements SafeParcelable { return new CameraPosition[size]; } }; + + /** + * Builds camera position. + */ + public static final class Builder { + private LatLng target; + private float zoom; + private float tilt; + private float bearing; + + public Builder() { + } + + public Builder(CameraPosition previous) { + target = previous.target; + zoom = previous.zoom; + tilt = previous.tilt; + bearing = previous.bearing; + } + + /** + * Sets the direction that the camera is pointing in, in degrees clockwise from north. + */ + public Builder bearing(float bearing) { + this.bearing = bearing; + return this; + } + + /** + * Builds a {@link CameraPosition}. + */ + public CameraPosition build() { + return null; + } + + /** + * Sets the location that the camera is pointing at. + */ + public Builder target(LatLng target) { + this.target = target; + return this; + } + + /** + * Sets the angle, in degrees, of the camera from the nadir (directly facing the Earth). + * When changing the camera position for a map, this value is restricted depending on the + * zoom level of the camera. The restrictions are as follows: + *
    + *
  • For zoom levels less than 10 the maximum is 30.
  • + *
  • For zoom levels from 10 to 14 the maximum increases linearly from 30 to 45 (e.g. at + * zoom level 12, the maximum is 37.5).
  • + *
  • For zoom levels from 14 to 15.5 the maximum increases linearly from 45 to 67.5.
  • + *
  • For zoom levels greater than 15.5 the maximum is 67.5.
  • + *
+ * The minimum is always 0 (directly down). If you specify a value outside this range and try to move the camera to this camera position it will be clamped to these bounds. + */ + public Builder tilt(float tilt) { + this.tilt = tilt; + return this; + } + + /** + * Sets the zoom level of the camera. Zoom level is defined such that at zoom level 0, the + * whole world is approximately 256dp wide (assuming that the camera is not tilted). + * Increasing the zoom level by 1 doubles the width of the world on the screen. Hence at + * zoom level N, the width of the world is approximately 256 * 2 N dp, i.e., at zoom level + * 2, the whole world is approximately 1024dp wide. + *

+ * When changing the camera position for a map, the zoom level of the camera is restricted + * to a certain range depending on various factors including location, map type and map + * size. Note that the camera zoom need not be an integer value. + */ + public Builder zoom(float zoom) { + this.zoom = zoom; + return this; + } + } } diff --git a/src/com/google/android/gms/maps/model/CircleOptions.java b/src/com/google/android/gms/maps/model/CircleOptions.java index 1b6d982d..e0224674 100644 --- a/src/com/google/android/gms/maps/model/CircleOptions.java +++ b/src/com/google/android/gms/maps/model/CircleOptions.java @@ -16,38 +16,36 @@ package com.google.android.gms.maps.model; +import android.graphics.Color; import android.os.Parcel; import org.microg.safeparcel.SafeParcelUtil; import org.microg.safeparcel.SafeParcelable; import org.microg.safeparcel.SafeParceled; +/** + * Defines options for a Circle. + */ public class CircleOptions implements SafeParcelable { - public static Creator CREATOR = new Creator() { - public CircleOptions createFromParcel(Parcel source) { - return new CircleOptions(source); - } - - public CircleOptions[] newArray(int size) { - return new CircleOptions[size]; - } - }; @SafeParceled(1) private int versionCode; @SafeParceled(2) private LatLng center; @SafeParceled(3) - private double radius; + private double radius = 0; @SafeParceled(4) - private float strokeWidth; + private float strokeWidth = 10; @SafeParceled(5) - private int strokeColor; + private int strokeColor = Color.BLACK; @SafeParceled(6) - private int fillColor; + private int fillColor = Color.TRANSPARENT; @SafeParceled(7) - private float zIndex; + private float zIndex = 0; @SafeParceled(8) - private boolean visisble; + private boolean visible = true; + /** + * Creates circle options. + */ public CircleOptions() { } @@ -60,8 +58,185 @@ public class CircleOptions implements SafeParcelable { return 0; } + /** + * Sets the center using a {@link LatLng}. + *

+ * The center must not be {@code null}. + *

+ * This method is mandatory because there is no default center. + * + * @param center The geographic center as a {@link LatLng}. + * @return this {@link CircleOptions} object + */ + public CircleOptions center(LatLng center) { + this.center = center; + return this; + } + + /** + * Sets the fill color. + *

+ * The fill color is the color inside the circle, in the integer format specified by + * {@link Color}. If TRANSPARENT is used then no fill is drawn. + *

+ * By default the fill color is transparent ({@code 0x00000000}). + * + * @param color color in the {@link Color} format + * @return this {@link CircleOptions} object + */ + public CircleOptions fillColor(int color) { + this.fillColor = color; + return this; + } + + /** + * Returns the center as a {@link LatLng}. + * + * @return The geographic center as a {@link LatLng}. + */ + public LatLng getCenter() { + return center; + } + + /** + * Returns the fill color. + * + * @return The color in the {@link Color} format. + */ + public int getFillColor() { + return fillColor; + } + + /** + * Returns the circle's radius, in meters. + * + * @return The radius in meters. + */ + public double getRadius() { + return radius; + } + + /** + * Returns the stroke color. + * + * @return The color in the {@link Color} format. + */ + public int getStrokeColor() { + return strokeColor; + } + + /** + * Returns the stroke width. + * + * @return The width in screen pixels. + */ + public float getStrokeWidth() { + return strokeWidth; + } + + /** + * Returns the zIndex. + * + * @return The zIndex value. + */ + public float getZIndex() { + return zIndex; + } + + /** + * Checks whether the circle is visible. + * + * @return {code true} if the circle is visible; {@code false} if it is invisible. + */ + public boolean isVisible() { + return visible; + } + + /** + * Sets the radius in meters. + *

+ * The radius must be zero or greater. The default radius is zero. + * + * @param radius radius in meters + * @return this {@link CircleOptions} object + */ + public CircleOptions radius(double radius) { + this.radius = radius; + return this; + } + + /** + * Sets the stroke color. + *

+ * The stroke color is the color of this circle's outline, in the integer format specified by + * {@link Color}. If TRANSPARENT is used then no outline is drawn. + *

+ * By default the stroke color is black ({@code 0xff000000}). + * + * @param color color in the {@link Color} format + * @return this {@link CircleOptions} object + */ + public CircleOptions strokeColor(int color) { + this.strokeColor = color; + return this; + } + + /** + * Sets the stroke width. + *

+ * The stroke width is the width (in screen pixels) of the circle's outline. It must be zero or + * greater. If it is zero then no outline is drawn. + *

+ * The default width is 10 pixels. + * + * @param width width in screen pixels + * @return this {@link CircleOptions} object + */ + public CircleOptions strokeWidth(float width) { + this.strokeWidth = width; + return this; + } + + /** + * Sets the visibility. + *

+ * If this circle is not visible then it is not drawn, but all other state is preserved. + * + * @param visible {@code false} to make this circle invisible + * @return this {@link CircleOptions} object + */ + public CircleOptions visible(boolean visible) { + this.visible = visible; + return this; + } + @Override public void writeToParcel(Parcel dest, int flags) { SafeParcelUtil.writeObject(this, dest, flags); } + + /** + * Sets the zIndex. + *

+ * Overlays (such as circles) with higher zIndices are drawn above those with lower indices. + *

+ * By default the zIndex is {@code 0.0}. + * + * @param zIndex zIndex value + * @return this {@link CircleOptions} object + */ + public CircleOptions zIndex(float zIndex) { + this.zIndex = zIndex; + return this; + } + + public static Creator CREATOR = new Creator() { + public CircleOptions createFromParcel(Parcel source) { + return new CircleOptions(source); + } + + public CircleOptions[] newArray(int size) { + return new CircleOptions[size]; + } + }; } diff --git a/src/com/google/android/gms/maps/model/GroundOverlayOptions.java b/src/com/google/android/gms/maps/model/GroundOverlayOptions.java index dd758cfe..856ec8ae 100644 --- a/src/com/google/android/gms/maps/model/GroundOverlayOptions.java +++ b/src/com/google/android/gms/maps/model/GroundOverlayOptions.java @@ -18,15 +18,25 @@ package com.google.android.gms.maps.model; import android.os.IBinder; import android.os.Parcel; +import com.google.android.gms.dynamic.ObjectWrapper; import org.microg.safeparcel.SafeParcelUtil; import org.microg.safeparcel.SafeParcelable; import org.microg.safeparcel.SafeParceled; +/** + * Defines options for a ground overlay. + */ public class GroundOverlayOptions implements SafeParcelable { + /** + * Flag for when no dimension is specified for the height. + */ + public static final float NO_DIMENSION = -1; + @SafeParceled(1) private int versionCode; @SafeParceled(2) - private IBinder wrappedImage; + private IBinder image; + private BitmapDescriptor imageDescriptor; @SafeParceled(3) private LatLng location; @SafeParceled(4) @@ -42,18 +52,56 @@ public class GroundOverlayOptions implements SafeParcelable { @SafeParceled(9) private boolean visible; @SafeParceled(10) - private float transparency; + private float transparency = 0; @SafeParceled(11) private float anchorU; @SafeParceled(12) private float anchorV; + /** + * Creates a new set of ground overlay options. + */ public GroundOverlayOptions() { } private GroundOverlayOptions(Parcel in) { SafeParcelUtil.readObject(this, in); - // wrappedImage = new BitmapDescriptor(IObjectWrapper.Stub.asInterface(SafeReader.readBinder(in, position))); + } + + /** + * Specifies the anchor to be at a particular point in the image. + *

+ * The anchor specifies the point in the image that aligns with the ground overlay's location. + *

+ * The anchor point is specified in the continuous space [0.0, 1.0] x [0.0, 1.0], where (0, 0) + * is the top-left corner of the image, and (1, 1) is the bottom-right corner. + * + * @param u u-coordinate of the anchor, as a ratio of the image width (in the range [0, 1]) + * @param v v-coordinate of the anchor, as a ratio of the image height (in the range [0, 1]) + * @return this {@link GroundOverlayOptions} object with a new anchor set. + */ + public GroundOverlayOptions anchor(float u, float v) { + this.anchorU = u; + this.anchorV = v; + return this; + } + + /** + * Specifies the bearing of the ground overlay in degrees clockwise from north. The rotation is + * performed about the anchor point. If not specified, the default is 0 (i.e., up on the image + * points north). + *

+ * If a ground overlay with position set using {@link #positionFromBounds(LatLngBounds)} is + * rotated, its size will preserved and it will no longer be guaranteed to fit inside the + * bounds. + * + * @param bearing the bearing in degrees clockwise from north. Values outside the range + * [0, 360) will be normalized. + * @return this {@link GroundOverlayOptions} object with a new bearing set. + */ + public GroundOverlayOptions bearing(float bearing) { + this.bearing = bearing; + return this; } @Override @@ -61,10 +109,245 @@ public class GroundOverlayOptions implements SafeParcelable { return 0; } + /** + * Horizontal distance, normalized to [0, 1], of the anchor from the left edge. + * + * @return the u value of the anchor. + */ + public float getAnchorU() { + return anchorU; + } + + /** + * Vertical distance, normalized to [0, 1], of the anchor from the top edge. + * + * @return the v value of the anchor. + */ + public float getAnchorV() { + return anchorV; + } + + /** + * Gets the bearing set for this options object. + * + * @return the bearing of the ground overlay. + */ + public float getBearing() { + return bearing; + } + + /** + * Gets the bounds set for this options object. + * + * @return the bounds of the ground overlay. This will be {@code null} if the position was set + * using {@link #position(LatLng, float)} or {@link #position(LatLng, float, float)} + */ + public LatLngBounds getBounds() { + return bounds; + } + + /** + * Gets the height set for this options object. + * + * @return the height of the ground overlay. + */ + public float getHeight() { + return height; + } + + /** + * Gets the image set for this options object. + * + * @return the image of the ground overlay. + */ + public BitmapDescriptor getImage() { + if (imageDescriptor == null && image != null) { + imageDescriptor = new BitmapDescriptor(ObjectWrapper.asInterface(image)); + } + return imageDescriptor; + } + + /** + * Gets the location set for this options object. + * + * @return the location to place the anchor of the ground overlay. This will be {@code null} + * if the position was set using {@link #positionFromBounds(LatLngBounds)}. + */ + public LatLng getLocation() { + return location; + } + + /** + * Gets the transparency set for this options object. + * + * @return the transparency of the ground overlay. + */ + public float getTransparency() { + return transparency; + } + + /** + * Gets the width set for this options object. + * + * @return the width of the ground overlay. + */ + public float getWidth() { + return width; + } + + /** + * Gets the zIndex set for this options object. + * + * @return the zIndex of the ground overlay. + */ + public float getZIndex() { + return zIndex; + } + + /** + * Specifies the image for this ground overlay. + *

+ * To load an image as a texture (which is used to draw the image on a map), it must be + * converted into an image with sides that are powers of two. This is so that a mipmap can be + * created in order to render the texture at various zoom levels - see + * Mipmap (Wikipedia) for details. Hence, to + * conserve memory by avoiding this conversion, it is advised that the dimensions of the image + * are powers of two. + * + * @param image the {@link BitmapDescriptor} to use for this ground overlay + * @return this {@link GroundOverlayOptions} object with a new image set. + */ + public GroundOverlayOptions image(BitmapDescriptor image) { + this.imageDescriptor = image; + this.image = imageDescriptor.getRemoteObject().asBinder(); + return this; + } + + /** + * Gets the visibility setting for this options object. + * + * @return {@code true} if the ground overlay is to be visible; {@code false} if it is not. + */ + public boolean isVisible() { + return visible; + } + + /** + * Specifies the position for this ground overlay using an anchor point (a {@link LatLng}), + * width and height (both in meters). When rendered, the image will be scaled to fit the + * dimensions specified (i.e., its proportions will not necessarily be preserved). + * + * @param location the location on the map {@code LatLng} to which the anchor point in the + * given image will remain fixed. The anchor will remain fixed to the position + * on the ground when transformations are applied (e.g., setDimensions, + * setBearing, etc.). + * @param width the width of the overlay (in meters) + * @param height the height of the overlay (in meters) + * @return this {@link GroundOverlayOptions} object with a new position set. + * @throws IllegalArgumentException if anchor is null + * @throws IllegalArgumentException if width or height are negative + * @throws IllegalStateException if the position was already set using + * {@link #positionFromBounds(LatLngBounds)} + */ + public GroundOverlayOptions position(LatLng location, float width, float height) + throws IllegalArgumentException, IllegalStateException { + if (location == null) + throw new IllegalArgumentException("location must not be null"); + if (width < 0 || height < 0) + throw new IllegalArgumentException("Width and height must not be negative"); + if (bounds != null) + throw new IllegalStateException("Position already set using positionFromBounds"); + this.location = location; + this.width = width; + this.height = height; + return this; + } + + /** + * Specifies the position for this ground overlay using an anchor point (a {@link LatLng}) and + * the width (in meters). When rendered, the image will retain its proportions from the bitmap, + * i.e., the height will be calculated to preserve the original proportions of the image. + * + * @param location the location on the map {@link LatLng} to which the anchor point in the + * given image will remain fixed. The anchor will remain fixed to the position + * on the ground when transformations are applied (e.g., setDimensions, + * setBearing, etc.). + * @param width the width of the overlay (in meters). The height will be determined + * automatically based on the image proportions. + * @return this {@link GroundOverlayOptions} object with a new position set. + * @throws IllegalArgumentException if anchor is null + * @throws IllegalArgumentException if width is negative + * @throws IllegalStateException if the position was already set using + * {@link #positionFromBounds(LatLngBounds)} + */ + public GroundOverlayOptions position(LatLng location, float width) + throws IllegalArgumentException, IllegalStateException { + if (location == null) + throw new IllegalArgumentException("location must not be null"); + if (width < 0 || height < 0) + throw new IllegalArgumentException("Width must not be negative"); + if (bounds != null) + throw new IllegalStateException("Position already set using positionFromBounds"); + this.location = location; + this.width = width; + return this; + } + + /** + * Specifies the position for this ground overlay. When rendered, the image will be scaled to + * fit the bounds (i.e., its proportions will not necessarily be preserved). + * + * @param bounds a {@link LatLngBounds} in which to place the ground overlay + * @return this {@link GroundOverlayOptions} object with a new position set. + * @throws IllegalStateException if the position was already set using + * {@link #position(LatLng, float)} or + * {@link #position(LatLng, float, float)} + */ + public GroundOverlayOptions positionFromBounds(LatLngBounds bounds) + throws IllegalStateException { + this.bounds = bounds; + return this; + } + + /** + * Specifies the transparency of the ground overlay. The default transparency is {code 0} + * (opaque). + * + * @param transparency a float in the range {@code [0..1]} where {@code 0} means that the + * ground overlay is opaque and {code 1} means that the ground overlay is + * transparent + * @return this {@link GroundOverlayOptions} object with a new visibility setting. + * @throws IllegalArgumentException if the transparency is outside the range [0..1]. + */ + public GroundOverlayOptions transparency(float transparency) throws IllegalArgumentException { + this.transparency = transparency; + return this; + } + + /** + * Specifies the visibility for the ground overlay. The default visibility is {@code true}. + * + * @return this {@link GroundOverlayOptions} object with a new visibility setting. + */ + public GroundOverlayOptions visible(boolean visible) { + this.visible = visible; + return this; + } + @Override public void writeToParcel(Parcel dest, int flags) { SafeParcelUtil.writeObject(this, dest, flags); - // SafeParcelWriter.write(dest, 2, wrappedImage.getRemoteObject().asBinder(), false); + } + + /** + * Specifies the ground overlay's zIndex, i.e., the order in which it will be drawn. See the + * documentation at the top of this class for more information about zIndex. + * + * @return this {@link GroundOverlayOptions} object with a new zIndex set. + */ + public GroundOverlayOptions zIndex(float zIndex) { + this.zIndex = zIndex; + return this; } public static Creator CREATOR = new Creator() { diff --git a/src/com/google/android/gms/maps/model/LatLng.java b/src/com/google/android/gms/maps/model/LatLng.java index 1d4d1ddd..225828a6 100644 --- a/src/com/google/android/gms/maps/model/LatLng.java +++ b/src/com/google/android/gms/maps/model/LatLng.java @@ -22,21 +22,12 @@ import org.microg.safeparcel.SafeParcelable; import org.microg.safeparcel.SafeParceled; public class LatLng implements SafeParcelable { - public static Creator CREATOR = new Creator() { - public LatLng createFromParcel(Parcel source) { - return new LatLng(source); - } - - public LatLng[] newArray(int size) { - return new LatLng[size]; - } - }; + @SafeParceled(1) + private int versionCode; @SafeParceled(2) public double latitude; @SafeParceled(3) public double longitude; - @SafeParceled(1) - private int versionCode; public LatLng(int versionCode, double latitude, double longitude) { this.versionCode = versionCode; @@ -78,4 +69,14 @@ public class LatLng implements SafeParcelable { public void writeToParcel(Parcel dest, int flags) { SafeParcelUtil.writeObject(this, dest, flags); } + + public static Creator CREATOR = new Creator() { + public LatLng createFromParcel(Parcel source) { + return new LatLng(source); + } + + public LatLng[] newArray(int size) { + return new LatLng[size]; + } + }; } diff --git a/src/com/google/android/gms/maps/model/LatLngBounds.java b/src/com/google/android/gms/maps/model/LatLngBounds.java index 42da1d3f..371facb4 100644 --- a/src/com/google/android/gms/maps/model/LatLngBounds.java +++ b/src/com/google/android/gms/maps/model/LatLngBounds.java @@ -22,15 +22,6 @@ import org.microg.safeparcel.SafeParcelable; import org.microg.safeparcel.SafeParceled; public class LatLngBounds implements SafeParcelable { - public static Creator CREATOR = new Creator() { - public LatLngBounds createFromParcel(Parcel source) { - return new LatLngBounds(source); - } - - public LatLngBounds[] newArray(int size) { - return new LatLngBounds[size]; - } - }; @SafeParceled(1) private int versionCode; @SafeParceled(2) @@ -61,4 +52,14 @@ public class LatLngBounds implements SafeParcelable { public void writeToParcel(Parcel dest, int flags) { SafeParcelUtil.writeObject(this, dest, flags); } + + public static Creator CREATOR = new Creator() { + public LatLngBounds createFromParcel(Parcel source) { + return new LatLngBounds(source); + } + + public LatLngBounds[] newArray(int size) { + return new LatLngBounds[size]; + } + }; } diff --git a/src/com/google/android/gms/maps/model/MarkerOptions.java b/src/com/google/android/gms/maps/model/MarkerOptions.java index 4162f0c0..4da6246b 100644 --- a/src/com/google/android/gms/maps/model/MarkerOptions.java +++ b/src/com/google/android/gms/maps/model/MarkerOptions.java @@ -18,6 +18,7 @@ package com.google.android.gms.maps.model; import android.os.IBinder; import android.os.Parcel; +import com.google.android.gms.dynamic.ObjectWrapper; import org.microg.safeparcel.SafeParcelUtil; import org.microg.safeparcel.SafeParcelable; import org.microg.safeparcel.SafeParceled; @@ -32,8 +33,15 @@ public class MarkerOptions implements SafeParcelable { private String title; @SafeParceled(4) private String snippet; + /** + * This is a IBinder to the remote BitmapDescriptor created using BitmapDescriptorFactory + */ @SafeParceled(5) private IBinder icon; + /** + * The real BitmapDescriptor. Not transferred through Parcel. + */ + private BitmapDescriptor iconDescriptor; @SafeParceled(6) private float anchorU = 0.5F; @SafeParceled(7) @@ -53,73 +61,285 @@ public class MarkerOptions implements SafeParcelable { @SafeParceled(14) private float alpha = 1F; - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - } - + /** + * Creates a new set of marker options. + */ public MarkerOptions() { } private MarkerOptions(Parcel in) { SafeParcelUtil.readObject(this, in); - // this.icon = icon == null ? null : new BitmapDescriptor(ObjectWrapper.asInterface(icon)); } - public LatLng getPosition() { - return position; + @Override + public int describeContents() { + return 0; } - public String getTitle() { - return title; + /** + * Sets the alpha (opacity) of the marker. This is a value from 0 to 1, where 0 means the + * marker is completely transparent and 1 means the marker is completely opaque. + * + * @return the object for which the method was called, with the new alpha set. + */ + public MarkerOptions alpha(float alpha) { + this.alpha = alpha; + return this; } - public String getSnippet() { - return snippet; + /** + * Specifies the anchor to be at a particular point in the marker image. + *

+ * The anchor specifies the point in the icon image that is anchored to the marker's position + * on the Earth's surface. + *

+ * The anchor point is specified in the continuous space [0.0, 1.0] x [0.0, 1.0], where (0, 0) + * is the top-left corner of the image, and (1, 1) is the bottom-right corner. The anchoring + * point in a W x H image is the nearest discrete grid point in a (W + 1) x (H + 1) grid, + * obtained by scaling the then rounding. For example, in a 4 x 2 image, the anchor point + * (0.7, 0.6) resolves to the grid point at (3, 1). + * + * @param u u-coordinate of the anchor, as a ratio of the image width (in the range [0, 1]) + * @param v v-coordinate of the anchor, as a ratio of the image height (in the range [0, 1]) + * @return the object for which the method was called, with the new anchor set. + */ + public MarkerOptions anchor(float u, float v) { + this.anchorU = u; + this.anchorV = v; + return this; } - public IBinder getIcon() { - return icon; + /** + * Sets the draggability for the marker. + * + * @return the object for which the method was called, with the new draggable state set. + */ + public MarkerOptions draggable(boolean draggable) { + this.draggable = draggable; + return this; } + /** + * Sets whether this marker should be flat against the map true or a billboard facing the + * camera false. If the marker is flat against the map, it will remain stuck to the map as the + * camera rotates and tilts but will still remain the same size as the camera zooms, unlike a + * GroundOverlay. If the marker is a billboard, it will always be drawn facing the camera + * and will rotate and tilt with the camera. The default value is false. + * + * @return the object for which the method was called, with the new flat state set. + */ + public MarkerOptions flat(boolean flat) { + this.flat = flat; + return this; + } + + /** + * Gets the alpha set for this MarkerOptions object. + * + * @return the alpha of the marker in the range [0, 1]. + */ + public float getAlpha() { + return alpha; + } + + /** + * Horizontal distance, normalized to [0, 1], of the anchor from the left edge. + * + * @return the u value of the anchor. + */ public float getAnchorU() { return anchorU; } + /** + * Vertical distance, normalized to [0, 1], of the anchor from the top edge. + * + * @return the v value of the anchor. + */ public float getAnchorV() { return anchorV; } - public boolean isDraggable() { - return draggable; - } - - public boolean isVisible() { - return visible; - } - - public boolean isFlat() { - return flat; - } - - public float getRotation() { - return rotation; + /** + * Gets the custom icon set for this MarkerOptions object. + * + * @return An {@link BitmapDescriptor} representing the custom icon, or {@code null} if no + * custom icon is set. + */ + public BitmapDescriptor getIcon() { + if (iconDescriptor == null && icon != null) { + iconDescriptor = new BitmapDescriptor(ObjectWrapper.asInterface(icon)); + } + return iconDescriptor; } + /** + * Horizontal distance, normalized to [0, 1], of the info window anchor from the left edge. + * + * @return the u value of the info window anchor. + */ public float getInfoWindowAnchorU() { return infoWindowAnchorU; } + /** + * Vertical distance, normalized to [0, 1], of the info window anchor from the top edge. + * + * @return the v value of the info window anchor. + */ public float getInfoWindowAnchorV() { return infoWindowAnchorV; } - public float getAlpha() { - return alpha; + /** + * Returns the position set for this MarkerOptions object. + * + * @return A {@link LatLng} object specifying the marker's current position. + */ + public LatLng getPosition() { + return position; + } + + /** + * Gets the rotation set for this MarkerOptions object. + * + * @return the rotation of the marker in degrees clockwise from the default position. + */ + public float getRotation() { + return rotation; + } + + /** + * Gets the snippet set for this MarkerOptions object. + * + * @return A string containing the marker's snippet. + */ + public String getSnippet() { + return snippet; + } + + /** + * Gets the title set for this MarkerOptions object. + * + * @return A string containing the marker's title. + */ + public String getTitle() { + return title; + } + + /** + * Sets the icon for the marker. + * + * @param icon if null, the default marker is used. + * @return the object for which the method was called, with the new icon set. + */ + public MarkerOptions icon(BitmapDescriptor icon) { + this.iconDescriptor = icon; + this.icon = icon == null ? null : icon.getRemoteObject().asBinder(); + return this; + } + + /** + * Specifies the anchor point of the info window on the marker image. This is specified in the + * same coordinate system as the anchor. See {@link MarkerOptions#anchor(float, float)} for + * more details. The default is the top middle of the image. + * + * @param u u-coordinate of the info window anchor, as a ratio of the image width (in the range [0, 1]) + * @param v v-coordinate of the info window anchor, as a ratio of the image height (in the range [0, 1]) + * @return the object for which the method was called, with the new info window anchor set. + */ + public MarkerOptions infoWindowAnchor(float u, float v) { + this.infoWindowAnchorU = u; + this.infoWindowAnchorV = v; + return this; + } + + /** + * Gets the draggability setting for this MarkerOptions object. + * + * @return {@code true} if the marker is draggable; otherwise, returns {@code false}. + */ + public boolean isDraggable() { + return draggable; + } + + /** + * Gets the flat setting for this MarkerOptions object. + * + * @return {@code true} if the marker is flat against the map; {@code false} if the marker + * should face the camera. + */ + public boolean isFlat() { + return flat; + } + + /** + * Gets the visibility setting for this MarkerOptions object. + * + * @return {@code true} if the marker is visible; otherwise, returns {@code false}. + */ + public boolean isVisible() { + return visible; + } + + /** + * Sets the location for the marker. + * + * @return the object for which the method was called, with the new position set. + */ + public MarkerOptions position(LatLng position) { + this.position = position; + return this; + } + + /** + * Sets the rotation of the marker in degrees clockwise about the marker's anchor point. The + * axis of rotation is perpendicular to the marker. A rotation of 0 corresponds to the default + * position of the marker. When the marker is flat on the map, the default position is North + * aligned and the rotation is such that the marker always remains flat on the map. When the + * marker is a billboard, the default position is pointing up and the rotation is such that + * the marker is always facing the camera. The default value is 0. + * + * @return the object for which the method was called, with the new rotation set. + */ + public MarkerOptions rotation(float rotation) { + this.rotation = rotation; + return this; + } + + /** + * Sets the snippet for the marker. + * + * @return the object for which the method was called, with the new snippet set. + */ + public MarkerOptions snippet(String snippet) { + this.snippet = snippet; + return this; + } + + /** + * Sets the title for the marker. + * + * @return the object for which the method was called, with the new title set. + */ + public MarkerOptions title(String title) { + this.title = title; + return this; + } + + /** + * Sets the visibility for the marker. + * + * @return the object for which the method was called, with the new visibility state set. + */ + public MarkerOptions visible(boolean visible) { + this.visible = visible; + return this; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + SafeParcelUtil.writeObject(this, dest, flags); } public static Creator CREATOR = new Creator() { diff --git a/src/com/google/android/gms/maps/model/VisibleRegion.java b/src/com/google/android/gms/maps/model/VisibleRegion.java index 21f9cd13..76f2342c 100644 --- a/src/com/google/android/gms/maps/model/VisibleRegion.java +++ b/src/com/google/android/gms/maps/model/VisibleRegion.java @@ -50,6 +50,16 @@ public class VisibleRegion implements SafeParcelable { this(1, nearLeft, nearRight, farLeft, farRight, bounds); } + /** + * This is assuming that the visible region matches the bounds, which means that it's a north + * orientated top view + */ + public VisibleRegion(LatLngBounds bounds) { + this(bounds.southWest, new LatLng(bounds.southWest.latitude, bounds.northEast.longitude), + new LatLng(bounds.northEast.latitude, bounds.southWest.longitude), bounds.northEast, + bounds); + } + public VisibleRegion(Parcel in) { SafeParcelUtil.readObject(this, in); } diff --git a/src/com/google/android/gms/maps/model/package-info.java b/src/com/google/android/gms/maps/model/package-info.java new file mode 100644 index 00000000..de5998b2 --- /dev/null +++ b/src/com/google/android/gms/maps/model/package-info.java @@ -0,0 +1,4 @@ +/** + * Contains the Google Maps Android API model classes. + */ +package com.google.android.gms.maps.model; diff --git a/src/org/microg/gms/maps/Constants.java b/src/org/microg/gms/maps/Constants.java new file mode 100644 index 00000000..89745851 --- /dev/null +++ b/src/org/microg/gms/maps/Constants.java @@ -0,0 +1,28 @@ +package org.microg.gms.maps; + +public class Constants { + /** + * No base map tiles. + */ + public static final int MAP_TYPE_NONE = 0; + + /** + * Basic maps. + */ + public static final int MAP_TYPE_NORMAL = 1; + + /** + * Satellite maps with no labels. + */ + public static final int MAP_TYPE_SATELLITE = 2; + + /** + * Terrain maps. + */ + public static final int MAP_TYPE_TERRAIN = 3; + + /** + * Satellite maps with a transparent layer of major streets. + */ + public static final int MAP_TYPE_HYBRID = 4; +} From 93666176e71e304bdd856f535f97adf51ee46074 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 9 Jan 2015 19:24:02 +0100 Subject: [PATCH 003/170] Some more API --- .../android/gms/maps/model/CircleOptions.java | 4 +- .../gms/maps/model/GroundOverlayOptions.java | 4 +- .../google/android/gms/maps/model/LatLng.java | 73 +++++++++++++++---- .../android/gms/maps/model/LatLngBounds.java | 39 +++++++--- .../gms/maps/model/PolylineOptions.java | 63 ++++++++-------- .../android/gms/maps/model/VisibleRegion.java | 4 +- 6 files changed, 123 insertions(+), 64 deletions(-) diff --git a/src/com/google/android/gms/maps/model/CircleOptions.java b/src/com/google/android/gms/maps/model/CircleOptions.java index e0224674..82f2af58 100644 --- a/src/com/google/android/gms/maps/model/CircleOptions.java +++ b/src/com/google/android/gms/maps/model/CircleOptions.java @@ -211,8 +211,8 @@ public class CircleOptions implements SafeParcelable { } @Override - public void writeToParcel(Parcel dest, int flags) { - SafeParcelUtil.writeObject(this, dest, flags); + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); } /** diff --git a/src/com/google/android/gms/maps/model/GroundOverlayOptions.java b/src/com/google/android/gms/maps/model/GroundOverlayOptions.java index 856ec8ae..0792a825 100644 --- a/src/com/google/android/gms/maps/model/GroundOverlayOptions.java +++ b/src/com/google/android/gms/maps/model/GroundOverlayOptions.java @@ -335,8 +335,8 @@ public class GroundOverlayOptions implements SafeParcelable { } @Override - public void writeToParcel(Parcel dest, int flags) { - SafeParcelUtil.writeObject(this, dest, flags); + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); } /** diff --git a/src/com/google/android/gms/maps/model/LatLng.java b/src/com/google/android/gms/maps/model/LatLng.java index 225828a6..0844021e 100644 --- a/src/com/google/android/gms/maps/model/LatLng.java +++ b/src/com/google/android/gms/maps/model/LatLng.java @@ -21,16 +21,47 @@ import org.microg.safeparcel.SafeParcelUtil; import org.microg.safeparcel.SafeParcelable; import org.microg.safeparcel.SafeParceled; -public class LatLng implements SafeParcelable { +/** + * An immutable class representing a pair of latitude and longitude coordinates, stored as degrees. + */ +public final class LatLng implements SafeParcelable { @SafeParceled(1) - private int versionCode; + private final int versionCode; + /** + * Latitude, in degrees. This value is in the range [-90, 90]. + */ @SafeParceled(2) - public double latitude; + public final double latitude; + /** + * Longitude, in degrees. This value is in the range [-180, 180). + */ @SafeParceled(3) - public double longitude; + public final double longitude; - public LatLng(int versionCode, double latitude, double longitude) { - this.versionCode = versionCode; + /** + * This constructor is dirty setting the final fields to make the compiler happy. + * In fact, those are replaced by their real values later using SafeParcelUtil. + */ + private LatLng() { + versionCode = -1; + latitude = longitude = 0; + } + + private LatLng(Parcel in) { + this(); + SafeParcelUtil.readObject(this, in); + } + + /** + * Constructs a LatLng with the given latitude and longitude, measured in degrees. + * + * @param latitude The point's latitude. This will be clamped to between -90 degrees and + * +90 degrees inclusive. + * @param longitude The point's longitude. This will be normalized to be within -180 degrees + * inclusive and +180 degrees exclusive. + */ + public LatLng(double latitude, double longitude) { + this.versionCode = 1; this.latitude = Math.max(-90, Math.min(90, latitude)); if ((-180 <= longitude) && (longitude < 180)) { this.longitude = longitude; @@ -39,12 +70,28 @@ public class LatLng implements SafeParcelable { } } - private LatLng(Parcel in) { - SafeParcelUtil.readObject(this, in); - } + /** + * Tests if this LatLng is equal to another. + *

+ * Two points are considered equal if and only if their latitudes are bitwise equal and their + * longitudes are bitwise equal. This means that two {@link LatLng}s that are very near, in + * terms of geometric distance, might not be considered {@code .equal()}. + */ + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; - public LatLng(double latitude, double longitude) { - this(1, latitude, longitude); + LatLng latLng = (LatLng) o; + + if (Double.compare(latLng.latitude, latitude) != 0) + return false; + if (Double.compare(latLng.longitude, longitude) != 0) + return false; + + return true; } @Override @@ -66,8 +113,8 @@ public class LatLng implements SafeParcelable { } @Override - public void writeToParcel(Parcel dest, int flags) { - SafeParcelUtil.writeObject(this, dest, flags); + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); } public static Creator CREATOR = new Creator() { diff --git a/src/com/google/android/gms/maps/model/LatLngBounds.java b/src/com/google/android/gms/maps/model/LatLngBounds.java index 371facb4..b864857e 100644 --- a/src/com/google/android/gms/maps/model/LatLngBounds.java +++ b/src/com/google/android/gms/maps/model/LatLngBounds.java @@ -21,28 +21,43 @@ import org.microg.safeparcel.SafeParcelUtil; import org.microg.safeparcel.SafeParcelable; import org.microg.safeparcel.SafeParceled; -public class LatLngBounds implements SafeParcelable { +/** + * An immutable class representing a latitude/longitude aligned rectangle. + */ +public final class LatLngBounds implements SafeParcelable { @SafeParceled(1) - private int versionCode; + private final int versionCode; + /** + * Southwest corner of the bound. + */ @SafeParceled(2) - public LatLng southWest; + public final LatLng southwest; + /** + * Northeast corner of the bound. + */ @SafeParceled(3) - public LatLng northEast; + public final LatLng northeast; - public LatLngBounds(int versionCode, LatLng southWest, LatLng northEast) { - this.versionCode = versionCode; - this.southWest = southWest; - this.northEast = northEast; - } - - public LatLngBounds(LatLng southWest, LatLng northEast) { - this(1, southWest, northEast); + /** + * This constructor is dirty setting the final fields to make the compiler happy. + * In fact, those are replaced by their real values later using SafeParcelUtil. + */ + private LatLngBounds() { + this.versionCode = -1; + southwest = northeast = null; } private LatLngBounds(Parcel in) { + this(); SafeParcelUtil.readObject(this, in); } + public LatLngBounds(LatLng southwest, LatLng northeast) throws IllegalArgumentException { + this.versionCode = 1; + this.southwest = southwest; + this.northeast = northeast; + } + @Override public int describeContents() { return 0; diff --git a/src/com/google/android/gms/maps/model/PolylineOptions.java b/src/com/google/android/gms/maps/model/PolylineOptions.java index 6cc21ac2..ee927934 100644 --- a/src/com/google/android/gms/maps/model/PolylineOptions.java +++ b/src/com/google/android/gms/maps/model/PolylineOptions.java @@ -17,50 +17,47 @@ package com.google.android.gms.maps.model; import android.os.Parcel; -import android.os.Parcelable; import org.microg.safeparcel.SafeParcelUtil; import org.microg.safeparcel.SafeParcelable; import org.microg.safeparcel.SafeParceled; -import java.util.ArrayList; import java.util.List; public class PolylineOptions implements SafeParcelable { - @SafeParceled(1) - private int versionCode; - // TODO - private List points; - private float width; - private int color; - private float zIndex; - private boolean visible; - private boolean geodesic; + @SafeParceled(1) + private int versionCode; + // TODO + private List points; + private float width; + private int color; + private float zIndex; + private boolean visible; + private boolean geodesic; + public PolylineOptions() { + } - public PolylineOptions() { - } + private PolylineOptions(Parcel in) { + SafeParcelUtil.readObject(this, in); + } - private PolylineOptions(Parcel in) { - SafeParcelUtil.readObject(this, in); - } + @Override + public int describeContents() { + return 0; + } - @Override - public int describeContents() { - return 0; - } + @Override + public void writeToParcel(Parcel dest, int flags) { + SafeParcelUtil.writeObject(this, dest, flags); + } - @Override - public void writeToParcel(Parcel dest, int flags) { - SafeParcelUtil.writeObject(this, dest, flags); - } + public static Creator CREATOR = new Creator() { + public PolylineOptions createFromParcel(Parcel source) { + return new PolylineOptions(source); + } - public static Creator CREATOR = new Creator() { - public PolylineOptions createFromParcel(Parcel source) { - return new PolylineOptions(source); - } - - public PolylineOptions[] newArray(int size) { - return new PolylineOptions[size]; - } - }; + public PolylineOptions[] newArray(int size) { + return new PolylineOptions[size]; + } + }; } diff --git a/src/com/google/android/gms/maps/model/VisibleRegion.java b/src/com/google/android/gms/maps/model/VisibleRegion.java index 76f2342c..7f96402f 100644 --- a/src/com/google/android/gms/maps/model/VisibleRegion.java +++ b/src/com/google/android/gms/maps/model/VisibleRegion.java @@ -55,8 +55,8 @@ public class VisibleRegion implements SafeParcelable { * orientated top view */ public VisibleRegion(LatLngBounds bounds) { - this(bounds.southWest, new LatLng(bounds.southWest.latitude, bounds.northEast.longitude), - new LatLng(bounds.northEast.latitude, bounds.southWest.longitude), bounds.northEast, + this(bounds.southwest, new LatLng(bounds.southwest.latitude, bounds.northeast.longitude), + new LatLng(bounds.northeast.latitude, bounds.southwest.longitude), bounds.northeast, bounds); } From c7e910af4b022877b0424011eec7336ef86c7f4e Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 9 Jan 2015 22:41:22 +0100 Subject: [PATCH 004/170] Add more API + docs (including TileProvider) --- .../gms/maps/model/CameraPosition.java | 9 +- .../gms/maps/model/GroundOverlayOptions.java | 21 +-- .../google/android/gms/maps/model/LatLng.java | 8 +- .../android/gms/maps/model/LatLngBounds.java | 176 +++++++++++++++++- .../gms/maps/model/PolygonOptions.java | 4 + .../gms/maps/model/PolylineOptions.java | 4 + .../google/android/gms/maps/model/Tile.java | 78 ++++++++ .../gms/maps/model/TileOverlayOptions.java | 100 +++++++++- .../android/gms/maps/model/TileProvider.java | 25 +++ 9 files changed, 401 insertions(+), 24 deletions(-) create mode 100644 src/com/google/android/gms/maps/model/Tile.java create mode 100644 src/com/google/android/gms/maps/model/TileProvider.java diff --git a/src/com/google/android/gms/maps/model/CameraPosition.java b/src/com/google/android/gms/maps/model/CameraPosition.java index ea00da74..f9bb0bed 100644 --- a/src/com/google/android/gms/maps/model/CameraPosition.java +++ b/src/com/google/android/gms/maps/model/CameraPosition.java @@ -173,7 +173,12 @@ public final class CameraPosition implements SafeParcelable { @Override public String toString() { - return super.toString(); // TODO + return "CameraPosition{" + + "target=" + target + + ", zoom=" + zoom + + ", tilt=" + tilt + + ", bearing=" + bearing + + '}'; } @Override @@ -222,7 +227,7 @@ public final class CameraPosition implements SafeParcelable { * Builds a {@link CameraPosition}. */ public CameraPosition build() { - return null; + return new CameraPosition(target, zoom, tilt, bearing); } /** diff --git a/src/com/google/android/gms/maps/model/GroundOverlayOptions.java b/src/com/google/android/gms/maps/model/GroundOverlayOptions.java index 0792a825..3cf9cfb4 100644 --- a/src/com/google/android/gms/maps/model/GroundOverlayOptions.java +++ b/src/com/google/android/gms/maps/model/GroundOverlayOptions.java @@ -251,14 +251,9 @@ public class GroundOverlayOptions implements SafeParcelable { */ public GroundOverlayOptions position(LatLng location, float width, float height) throws IllegalArgumentException, IllegalStateException { - if (location == null) - throw new IllegalArgumentException("location must not be null"); - if (width < 0 || height < 0) - throw new IllegalArgumentException("Width and height must not be negative"); - if (bounds != null) - throw new IllegalStateException("Position already set using positionFromBounds"); - this.location = location; - this.width = width; + position(location, width); + if (height < 0) + throw new IllegalArgumentException("height must not be negative"); this.height = height; return this; } @@ -284,10 +279,10 @@ public class GroundOverlayOptions implements SafeParcelable { throws IllegalArgumentException, IllegalStateException { if (location == null) throw new IllegalArgumentException("location must not be null"); - if (width < 0 || height < 0) - throw new IllegalArgumentException("Width must not be negative"); + if (width < 0) + throw new IllegalArgumentException("width must not be negative"); if (bounds != null) - throw new IllegalStateException("Position already set using positionFromBounds"); + throw new IllegalStateException("Position already set using positionFromBounds()"); this.location = location; this.width = width; return this; @@ -305,6 +300,8 @@ public class GroundOverlayOptions implements SafeParcelable { */ public GroundOverlayOptions positionFromBounds(LatLngBounds bounds) throws IllegalStateException { + if (location != null) + throw new IllegalStateException("Position already set using position()"); this.bounds = bounds; return this; } @@ -320,6 +317,8 @@ public class GroundOverlayOptions implements SafeParcelable { * @throws IllegalArgumentException if the transparency is outside the range [0..1]. */ public GroundOverlayOptions transparency(float transparency) throws IllegalArgumentException { + if (transparency < 0 || transparency > 1) + throw new IllegalArgumentException("transparency must be in range [0..1]"); this.transparency = transparency; return this; } diff --git a/src/com/google/android/gms/maps/model/LatLng.java b/src/com/google/android/gms/maps/model/LatLng.java index 0844021e..94a25340 100644 --- a/src/com/google/android/gms/maps/model/LatLng.java +++ b/src/com/google/android/gms/maps/model/LatLng.java @@ -96,10 +96,10 @@ public final class LatLng implements SafeParcelable { @Override public final int hashCode() { - long lat = Double.doubleToLongBits(latitude); - int tmp = 31 + (int) (lat ^ lat >>> 32); - long lon = Double.doubleToLongBits(longitude); - return tmp * 31 + (int) (lon ^ lon >>> 32); + long tmp1 = Double.doubleToLongBits(latitude); + int tmp2 = 31 + (int) (tmp1 ^ tmp1 >>> 32); + tmp1 = Double.doubleToLongBits(longitude); + return tmp2 * 31 + (int) (tmp1 ^ tmp1 >>> 32); } @Override diff --git a/src/com/google/android/gms/maps/model/LatLngBounds.java b/src/com/google/android/gms/maps/model/LatLngBounds.java index b864857e..ac849e37 100644 --- a/src/com/google/android/gms/maps/model/LatLngBounds.java +++ b/src/com/google/android/gms/maps/model/LatLngBounds.java @@ -21,6 +21,8 @@ import org.microg.safeparcel.SafeParcelUtil; import org.microg.safeparcel.SafeParcelable; import org.microg.safeparcel.SafeParceled; +import java.util.Arrays; + /** * An immutable class representing a latitude/longitude aligned rectangle. */ @@ -52,20 +54,145 @@ public final class LatLngBounds implements SafeParcelable { SafeParcelUtil.readObject(this, in); } + /** + * Creates a new bounds based on a southwest and a northeast corner. + *

+ * The bounds conceptually includes all points where: + *

    + *
  • the latitude is in the range [northeast.latitude, southwest.latitude];
  • + *
  • the longitude is in the range [southwest.longtitude, northeast.longitude] + * if southwest.longtitude ≤ northeast.longitude; and
  • + *
  • the longitude is in the range [southwest.longitude, 180) ∪ [-180, northeast.longitude] + * if southwest.longtitude > northeast.longitude.
  • + *
+ * + * @param southwest southwest corner + * @param northeast northeast corner + * @throws IllegalArgumentException if the latitude of the northeast corner is below the + * latitude of the southwest corner. + */ public LatLngBounds(LatLng southwest, LatLng northeast) throws IllegalArgumentException { + if (northeast.latitude < southwest.latitude) + throw new IllegalArgumentException("latitude of northeast corner must not be" + + " lower than latitude of southwest corner"); this.versionCode = 1; this.southwest = southwest; this.northeast = northeast; } + /** + * Creates a new builder. + */ + public Builder builder() { + return new Builder(); + } + + /** + * Returns whether this contains the given {@link LatLng}. + * + * @param point the {@link LatLng} to test + * @return {@code true} if this contains the given point; {@code false} if not. + */ + public boolean contains(LatLng point) { + return containsLatitude(point.latitude) && containsLongitude(point.longitude); + } + + private boolean containsLatitude(double latitude) { + return southwest.latitude <= latitude && latitude <= northeast.latitude; + } + + private boolean containsLongitude(double longitude) { + return southwest.longitude <= northeast.longitude ? ( + southwest.longitude <= longitude && longitude <= northeast.longitude + ) : ( + southwest.longitude >= longitude && longitude < 180 || + longitude >= -180 && longitude <= northeast.longitude + ); + } + @Override public int describeContents() { return 0; } @Override - public void writeToParcel(Parcel dest, int flags) { - SafeParcelUtil.writeObject(this, dest, flags); + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + + LatLngBounds that = (LatLngBounds) o; + + if (!northeast.equals(that.northeast)) + return false; + if (!southwest.equals(that.southwest)) + return false; + + return true; + } + + /** + * Returns the center of this {@link LatLngBounds}. The center is simply the average of the + * coordinates (taking into account if it crosses the antimeridian). This is approximately the + * geographical center (it would be exact if the Earth were a perfect sphere). It will not + * necessarily be the center of the rectangle as drawn on the map due to the Mercator + * projection. + * + * @return A {@link LatLng} that is the center of the {@link LatLngBounds}. + */ + public LatLng getCenter() { + double lat = (southwest.latitude + northeast.latitude) / 2.0; + double lon = (southwest.longitude + northeast.longitude) / 2.0 + + southwest.longitude <= northeast.latitude ? 0 : 180.0; + return new LatLng(lat, lon); + } + + @Override + public int hashCode() { + return Arrays.hashCode(new Object[] { southwest, northeast }); + } + + /** + * Returns a new {@link LatLngBounds} that extends this {@link LatLngBounds} to include the + * given {@link LatLng}. This will return the smallest LatLngBounds that contains both this + * and the extra point. + *

+ * In particular, it will consider extending the bounds both in the eastward and westward + * directions (one of which may cross the antimeridian) and choose the smaller of the two. In + * the case that both directions result in a LatLngBounds of the same size, this will extend + * it in the eastward direction. + * + * @param point a {@link LatLng} to be included in the new bounds + * @return A new {@link LatLngBounds} that contains this and the extra point. + */ + public LatLngBounds including(LatLng point) { + double latMin = Math.min(southwest.latitude, point.latitude); + double latMax = Math.max(northeast.latitude, point.latitude); + double lonMin = southwest.longitude; + double lonMax = northeast.longitude; + if (!containsLongitude(point.longitude)) { + if ((southwest.longitude - point.longitude + 360.0) % 360.0 < + (point.longitude - northeast.longitude + 360.0D) % 360.0D) { + lonMin = point.longitude; + } else { + lonMax = point.longitude; + } + } + return new LatLngBounds(new LatLng(latMin, lonMin), new LatLng(latMax, lonMax)); + } + + @Override + public String toString() { + return "LatLngBounds{" + + "southwest=" + southwest + + ", northeast=" + northeast + + '}'; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); } public static Creator CREATOR = new Creator() { @@ -77,4 +204,49 @@ public final class LatLngBounds implements SafeParcelable { return new LatLngBounds[size]; } }; + + /** + * This is a builder that is able to create a minimum bound based on a set of LatLng points. + */ + public static final class Builder { + private LatLngBounds bounds; + + public Builder() { + + } + + /** + * Creates the LatLng bounds. + * + * @throws IllegalStateException if no points have been included. + */ + public LatLngBounds build() throws IllegalStateException { + if (bounds == null) + throw new IllegalStateException( + "You must not call build() before adding points to the Builder"); + return bounds; + } + + /** + * Includes this point for building of the bounds. The bounds will be extended in a + * minimum way to include this point. + *

+ * More precisely, it will consider extending the bounds both in the eastward and westward + * directions (one of which may cross the antimeridian) and choose the smaller of the two. + * In the case that both directions result in a LatLngBounds of the same size, this will + * extend it in the eastward direction. For example, adding points (0, -179) and (1, 179) + * will create a bound crossing the 180 longitude. + * + * @param point A {@link LatLng} to be included in the bounds. + * @return This builder object with a new point added. + */ + public Builder include(LatLng point) { + if (bounds == null) { + bounds = new LatLngBounds(point, point); + } else { + bounds = bounds.including(point); + } + return this; + } + } } diff --git a/src/com/google/android/gms/maps/model/PolygonOptions.java b/src/com/google/android/gms/maps/model/PolygonOptions.java index aaefc97c..8898f11e 100644 --- a/src/com/google/android/gms/maps/model/PolygonOptions.java +++ b/src/com/google/android/gms/maps/model/PolygonOptions.java @@ -20,6 +20,10 @@ import android.os.Parcel; import org.microg.safeparcel.SafeParcelUtil; import org.microg.safeparcel.SafeParcelable; +/** + * Defines options for a polygon. + * TODO + */ public class PolygonOptions implements SafeParcelable { @Override public int describeContents() { diff --git a/src/com/google/android/gms/maps/model/PolylineOptions.java b/src/com/google/android/gms/maps/model/PolylineOptions.java index ee927934..5e861b7e 100644 --- a/src/com/google/android/gms/maps/model/PolylineOptions.java +++ b/src/com/google/android/gms/maps/model/PolylineOptions.java @@ -23,6 +23,10 @@ import org.microg.safeparcel.SafeParceled; import java.util.List; +/** + * Defines options for a polyline. + * TODO + */ public class PolylineOptions implements SafeParcelable { @SafeParceled(1) private int versionCode; diff --git a/src/com/google/android/gms/maps/model/Tile.java b/src/com/google/android/gms/maps/model/Tile.java new file mode 100644 index 00000000..9ba8b612 --- /dev/null +++ b/src/com/google/android/gms/maps/model/Tile.java @@ -0,0 +1,78 @@ +package com.google.android.gms.maps.model; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +/** + * Contains information about a Tile that is returned by a {@link TileProvider}. + * TODO SafeParceled + */ +public class Tile implements SafeParcelable { + @SafeParceled(1) + private final int versionCode; + /** + * The width of the image encoded by {@link #data} in pixels. + */ + @SafeParceled(2) + public final int width; + /** + * The height of the image encoded by {@link #data} in pixels. + */ + @SafeParceled(3) + public final int height; + /** + * A byte array containing the image data. The image will be created from this data by calling + * {@link android.graphics.BitmapFactory#decodeByteArray(byte[], int, int)}. + */ + @SafeParceled(4) + public final byte[] data; + + private Tile() { + versionCode = -1; + width = height = 0; + data = null; + } + + private Tile(Parcel in) { + this(); + SafeParcelUtil.readObject(this, in); + } + + /** + * Constructs a {@link Tile}. + * + * @param width the width of the image in pixels + * @param height the height of the image in pixels + * @param data A byte array containing the image data. The image will be created from this + * data by calling + * {@link android.graphics.BitmapFactory#decodeByteArray(byte[], int, int)}. + */ + public Tile(int width, int height, byte[] data) { + this.versionCode = 1; + this.width = width; + this.height = height; + this.data = data; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static Creator CREATOR = new Creator() { + public Tile createFromParcel(Parcel source) { + return new Tile(source); + } + + public Tile[] newArray(int size) { + return new Tile[size]; + } + }; +} diff --git a/src/com/google/android/gms/maps/model/TileOverlayOptions.java b/src/com/google/android/gms/maps/model/TileOverlayOptions.java index 0256adfc..6fad3fd7 100644 --- a/src/com/google/android/gms/maps/model/TileOverlayOptions.java +++ b/src/com/google/android/gms/maps/model/TileOverlayOptions.java @@ -20,23 +20,113 @@ import android.os.Parcel; import org.microg.safeparcel.SafeParcelUtil; import org.microg.safeparcel.SafeParcelable; +/** + * Defines options for a TileOverlay. + */ public class TileOverlayOptions implements SafeParcelable { + private TileProvider tileProvider; + private boolean visible = true; + private boolean fadeIn = true; + private float zIndex; + + /** + * Creates a new set of tile overlay options. + */ + public TileOverlayOptions() { + } + + private TileOverlayOptions(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + @Override public int describeContents() { return 0; } + /** + * Specifies whether the tiles should fade in. The default is {@code true}. + * + * @return this {@link TileOverlayOptions} object with a new fadeIn setting. + */ + public TileOverlayOptions fadeIn(boolean fadeIn) { + this.fadeIn = fadeIn; + return this; + } + + /** + * Gets whether the tiles should fade in. + * + * @return {@code true} if the tiles are to fade in; {@code false} if it is not. + */ + public boolean getFadeIn() { + return fadeIn; + } + + /** + * Gets the tile provider set for this {@link TileOverlayOptions} object. + * + * @return the {@link TileProvider} of the tile overlay. + */ + public TileProvider getTileProvider() { + return tileProvider; + } + + /** + * Gets the zIndex set for this {@link TileOverlayOptions} object. + * + * @return the zIndex of the tile overlay. + */ + public float getZIndex() { + return zIndex; + } + + /** + * Gets the visibility setting for this {@link TileOverlayOptions} object. + * + * @return {@code true} if the tile overlay is to be visible; {@code false} if it is not. + */ + public boolean isVisible() { + return visible; + } + + /** + * Specifies the tile provider to use for this tile overlay. + * + * @param tileProvider the {@link TileProvider} to use for this tile overlay. + * @return the object for which the method was called, with the new tile provider set. + */ + public TileOverlayOptions tileProvider(TileProvider tileProvider) { + this.tileProvider = tileProvider; + return this; + } + + /** + * Specifies the visibility for the tile overlay. The default visibility is {@code true}. + * + * @return this {@link TileOverlayOptions} object with a new visibility setting. + */ + public TileOverlayOptions visible(boolean visible) { + this.visible = visible; + return this; + } + @Override public void writeToParcel(Parcel dest, int flags) { SafeParcelUtil.writeObject(this, dest, flags); } - public TileOverlayOptions() { - } - - private TileOverlayOptions(Parcel in) { - SafeParcelUtil.readObject(this, in); + /** + * Specifies the tile overlay's zIndex, i.e., the order in which it will be drawn where + * overlays with larger values are drawn above those with lower values. See the documentation + * at the top of this class for more information about zIndex. + * + * @return this {@link TileOverlayOptions} object with a new zIndex set. + */ + public TileOverlayOptions zIndex(float zIndex) { + this.zIndex = zIndex; + return this; } public static Creator CREATOR = new Creator() { diff --git a/src/com/google/android/gms/maps/model/TileProvider.java b/src/com/google/android/gms/maps/model/TileProvider.java new file mode 100644 index 00000000..21eaaadc --- /dev/null +++ b/src/com/google/android/gms/maps/model/TileProvider.java @@ -0,0 +1,25 @@ +package com.google.android.gms.maps.model; + +/** + * An interface for a class that provides the tile images for a TileOverlay. For information about + * the tile coordinate system, see TileOverlay. + *

+ * Calls to methods in this interface might be made from multiple threads so implementations of + * this interface must be threadsafe. + */ +public interface TileProvider { + public static final Tile NO_TILE = new Tile(-1, -1, null); + + /** + * Returns the tile to be used for this tile coordinate. + * + * @param x The x coordinate of the tile. This will be in the range [0, 2^(zoom - 1)] inclusive. + * @param y The y coordinate of the tile. This will be in the range [0, 2^(zoom - 1)] inclusive. + * @param zoom The zoom level of the tile. + * @return the {@link Tile} to be used for this tile coordinate. If you do not wish to provide + * a tile for this tile coordinate, return {@link #NO_TILE}. If the tile could not be found at + * this point in time, return null and further requests might be made with an exponential + * backoff. + */ + public Tile getTile(int x, int y, int zoom); +} From 8ab6a25cfd28edc18064ad62eb2bdda6b4fe9834 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 9 Jan 2015 22:57:04 +0100 Subject: [PATCH 005/170] Full Tile support in Api --- .../android/gms/maps/model/MarkerOptions.java | 17 ++++++------- .../google/android/gms/maps/model/Tile.aidl | 3 +++ .../gms/maps/model/TileOverlayOptions.java | 24 +++++++++++++++++-- .../model/internal/ITileProviderDelegate.aidl | 7 ++++++ 4 files changed, 39 insertions(+), 12 deletions(-) create mode 100644 src/com/google/android/gms/maps/model/Tile.aidl create mode 100644 src/com/google/android/gms/maps/model/internal/ITileProviderDelegate.aidl diff --git a/src/com/google/android/gms/maps/model/MarkerOptions.java b/src/com/google/android/gms/maps/model/MarkerOptions.java index 4da6246b..b2683731 100644 --- a/src/com/google/android/gms/maps/model/MarkerOptions.java +++ b/src/com/google/android/gms/maps/model/MarkerOptions.java @@ -37,11 +37,8 @@ public class MarkerOptions implements SafeParcelable { * This is a IBinder to the remote BitmapDescriptor created using BitmapDescriptorFactory */ @SafeParceled(5) - private IBinder icon; - /** - * The real BitmapDescriptor. Not transferred through Parcel. - */ - private BitmapDescriptor iconDescriptor; + private IBinder iconBinder; + private BitmapDescriptor icon; @SafeParceled(6) private float anchorU = 0.5F; @SafeParceled(7) @@ -167,10 +164,10 @@ public class MarkerOptions implements SafeParcelable { * custom icon is set. */ public BitmapDescriptor getIcon() { - if (iconDescriptor == null && icon != null) { - iconDescriptor = new BitmapDescriptor(ObjectWrapper.asInterface(icon)); + if (icon == null && iconBinder != null) { + icon = new BitmapDescriptor(ObjectWrapper.asInterface(iconBinder)); } - return iconDescriptor; + return icon; } /** @@ -234,8 +231,8 @@ public class MarkerOptions implements SafeParcelable { * @return the object for which the method was called, with the new icon set. */ public MarkerOptions icon(BitmapDescriptor icon) { - this.iconDescriptor = icon; - this.icon = icon == null ? null : icon.getRemoteObject().asBinder(); + this.icon = icon; + this.iconBinder = icon == null ? null : icon.getRemoteObject().asBinder(); return this; } diff --git a/src/com/google/android/gms/maps/model/Tile.aidl b/src/com/google/android/gms/maps/model/Tile.aidl new file mode 100644 index 00000000..54f1872f --- /dev/null +++ b/src/com/google/android/gms/maps/model/Tile.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.maps.model; + +parcelable Tile; diff --git a/src/com/google/android/gms/maps/model/TileOverlayOptions.java b/src/com/google/android/gms/maps/model/TileOverlayOptions.java index 6fad3fd7..b38a5dce 100644 --- a/src/com/google/android/gms/maps/model/TileOverlayOptions.java +++ b/src/com/google/android/gms/maps/model/TileOverlayOptions.java @@ -16,19 +16,33 @@ package com.google.android.gms.maps.model; +import android.os.IBinder; import android.os.Parcel; +import android.os.RemoteException; +import com.google.android.gms.maps.model.internal.ITileProviderDelegate; import org.microg.safeparcel.SafeParcelUtil; import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; /** * Defines options for a TileOverlay. */ public class TileOverlayOptions implements SafeParcelable { + @SafeParceled(1) + private final int versionCode = 1; + /** + * This is a IBinder to the {@link #tileProvider}, built using {@link ITileProviderDelegate}. + */ + @SafeParceled(2) + private IBinder tileProviderBinder; private TileProvider tileProvider; + @SafeParceled(3) private boolean visible = true; - private boolean fadeIn = true; + @SafeParceled(4) private float zIndex; + @SafeParceled(5) + private boolean fadeIn = true; /** * Creates a new set of tile overlay options. @@ -97,8 +111,14 @@ public class TileOverlayOptions implements SafeParcelable { * @param tileProvider the {@link TileProvider} to use for this tile overlay. * @return the object for which the method was called, with the new tile provider set. */ - public TileOverlayOptions tileProvider(TileProvider tileProvider) { + public TileOverlayOptions tileProvider(final TileProvider tileProvider) { this.tileProvider = tileProvider; + this.tileProviderBinder = new ITileProviderDelegate.Stub() { + @Override + public Tile getTile(int x, int y, int zoom) throws RemoteException { + return tileProvider.getTile(x, y, zoom); + } + }; return this; } diff --git a/src/com/google/android/gms/maps/model/internal/ITileProviderDelegate.aidl b/src/com/google/android/gms/maps/model/internal/ITileProviderDelegate.aidl new file mode 100644 index 00000000..d6dc516b --- /dev/null +++ b/src/com/google/android/gms/maps/model/internal/ITileProviderDelegate.aidl @@ -0,0 +1,7 @@ +package com.google.android.gms.maps.model.internal; + +import com.google.android.gms.maps.model.Tile; + +interface ITileProviderDelegate { + Tile getTile(int x, int y, int zoom); +} From 012ce9bd3c170757b6382e55707c51cbdec73eff Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sun, 11 Jan 2015 12:53:42 +0100 Subject: [PATCH 006/170] Add Location APIs + empty files --- .../android/gms/auth/AccountChangeEvent.java | 4 + .../firstparty/dataservice/TokenRequest.java | 4 + .../firstparty/dataservice/TokenResponse.java | 4 + .../firstparty/proximity/data/Permit.java | 4 + .../android/gms/common/data/DataHolder.aidl | 3 + .../android/gms/common/data/DataHolder.java | 36 ++ .../metadata/internal/MetadataBundle.java | 4 + .../android/gms/fitness/data/DataPoint.java | 4 + .../android/gms/fitness/data/Device.java | 4 + .../android/gms/fitness/data/Field.java | 4 + .../android/gms/fitness/data/Value.java | 4 + .../identity/accounts/api/AccountData.java | 4 + .../intents/model/CountrySpecification.java | 4 + .../identity/intents/model/UserAddress.java | 4 + .../gms/location/GeofencingRequest.aidl | 3 + .../gms/location/GeofencingRequest.java | 38 ++ .../android/gms/location/LocationRequest.aidl | 3 + .../android/gms/location/LocationRequest.java | 445 ++++++++++++++++++ .../android/gms/location/LocationStatus.aidl | 3 + .../android/gms/location/LocationStatus.java | 103 ++++ .../gms/location/internal/ClientIdentity.java | 4 + .../IGoogleLocationManagerService.aidl | 54 ++- .../location/internal/ILocationListener.aidl | 7 + .../internal/LocationRequestInternal.aidl | 3 + .../internal/LocationRequestInternal.java | 37 ++ .../location/places/AutocompleteFilter.aidl | 3 + .../location/places/AutocompleteFilter.java | 46 ++ .../location/places/NearbyAlertRequest.aidl | 3 + .../location/places/NearbyAlertRequest.java | 36 ++ .../gms/location/places/PlaceFilter.aidl | 3 + .../gms/location/places/PlaceFilter.java | 37 ++ .../gms/location/places/PlaceReport.aidl | 3 + .../gms/location/places/PlaceReport.java | 38 ++ .../gms/location/places/PlaceRequest.aidl | 3 + .../gms/location/places/PlaceRequest.java | 36 ++ .../gms/location/places/UserAddedPlace.aidl | 3 + .../gms/location/places/UserAddedPlace.java | 46 ++ .../gms/location/places/UserDataType.aidl | 3 + .../gms/location/places/UserDataType.java | 36 ++ .../places/internal/IPlacesCallbacks.aidl | 9 + .../places/internal/PlacesParams.aidl | 3 + .../places/internal/PlacesParams.java | 52 ++ .../gms/maps/StreetViewPanoramaOptions.java | 4 + .../android/gms/maps/internal/Point.java | 4 + .../maps/model/StreetViewPanoramaCamera.java | 4 + .../maps/model/StreetViewPanoramaLink.java | 4 + .../model/StreetViewPanoramaLocation.java | 4 + .../model/StreetViewPanoramaOrientation.java | 4 + .../gms/plus/internal/PlusCommonExtras.java | 4 + .../gms/plus/internal/PlusSession.java | 4 + .../model/smart_profile/CardsRequest.java | 4 + .../model/smart_profile/CardsResponse.java | 4 + .../PeopleForProfilesRequest.java | 4 + .../PeopleForProfilesResponse.java | 4 + .../android/gms/plus/model/posts/Comment.java | 4 + .../android/gms/plus/model/posts/Post.java | 4 + .../gms/plus/model/posts/Settings.java | 4 + .../gms/wearable/ConnectionConfiguration.java | 4 + src/org/microg/gms/maps/Constants.java | 9 + 59 files changed, 1219 insertions(+), 1 deletion(-) create mode 100644 src/com/google/android/gms/auth/AccountChangeEvent.java create mode 100644 src/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java create mode 100644 src/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java create mode 100644 src/com/google/android/gms/auth/firstparty/proximity/data/Permit.java create mode 100644 src/com/google/android/gms/common/data/DataHolder.aidl create mode 100644 src/com/google/android/gms/common/data/DataHolder.java create mode 100644 src/com/google/android/gms/drive/metadata/internal/MetadataBundle.java create mode 100644 src/com/google/android/gms/fitness/data/DataPoint.java create mode 100644 src/com/google/android/gms/fitness/data/Device.java create mode 100644 src/com/google/android/gms/fitness/data/Field.java create mode 100644 src/com/google/android/gms/fitness/data/Value.java create mode 100644 src/com/google/android/gms/identity/accounts/api/AccountData.java create mode 100644 src/com/google/android/gms/identity/intents/model/CountrySpecification.java create mode 100644 src/com/google/android/gms/identity/intents/model/UserAddress.java create mode 100644 src/com/google/android/gms/location/GeofencingRequest.aidl create mode 100644 src/com/google/android/gms/location/GeofencingRequest.java create mode 100644 src/com/google/android/gms/location/LocationRequest.aidl create mode 100644 src/com/google/android/gms/location/LocationRequest.java create mode 100644 src/com/google/android/gms/location/LocationStatus.aidl create mode 100644 src/com/google/android/gms/location/LocationStatus.java create mode 100644 src/com/google/android/gms/location/internal/ClientIdentity.java create mode 100644 src/com/google/android/gms/location/internal/ILocationListener.aidl create mode 100644 src/com/google/android/gms/location/internal/LocationRequestInternal.aidl create mode 100644 src/com/google/android/gms/location/internal/LocationRequestInternal.java create mode 100644 src/com/google/android/gms/location/places/AutocompleteFilter.aidl create mode 100644 src/com/google/android/gms/location/places/AutocompleteFilter.java create mode 100644 src/com/google/android/gms/location/places/NearbyAlertRequest.aidl create mode 100644 src/com/google/android/gms/location/places/NearbyAlertRequest.java create mode 100644 src/com/google/android/gms/location/places/PlaceFilter.aidl create mode 100644 src/com/google/android/gms/location/places/PlaceFilter.java create mode 100644 src/com/google/android/gms/location/places/PlaceReport.aidl create mode 100644 src/com/google/android/gms/location/places/PlaceReport.java create mode 100644 src/com/google/android/gms/location/places/PlaceRequest.aidl create mode 100644 src/com/google/android/gms/location/places/PlaceRequest.java create mode 100644 src/com/google/android/gms/location/places/UserAddedPlace.aidl create mode 100644 src/com/google/android/gms/location/places/UserAddedPlace.java create mode 100644 src/com/google/android/gms/location/places/UserDataType.aidl create mode 100644 src/com/google/android/gms/location/places/UserDataType.java create mode 100644 src/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl create mode 100644 src/com/google/android/gms/location/places/internal/PlacesParams.aidl create mode 100644 src/com/google/android/gms/location/places/internal/PlacesParams.java create mode 100644 src/com/google/android/gms/maps/StreetViewPanoramaOptions.java create mode 100644 src/com/google/android/gms/maps/internal/Point.java create mode 100644 src/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java create mode 100644 src/com/google/android/gms/maps/model/StreetViewPanoramaLink.java create mode 100644 src/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java create mode 100644 src/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java create mode 100644 src/com/google/android/gms/plus/internal/PlusCommonExtras.java create mode 100644 src/com/google/android/gms/plus/internal/PlusSession.java create mode 100644 src/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java create mode 100644 src/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java create mode 100644 src/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java create mode 100644 src/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java create mode 100644 src/com/google/android/gms/plus/model/posts/Comment.java create mode 100644 src/com/google/android/gms/plus/model/posts/Post.java create mode 100644 src/com/google/android/gms/plus/model/posts/Settings.java create mode 100644 src/com/google/android/gms/wearable/ConnectionConfiguration.java diff --git a/src/com/google/android/gms/auth/AccountChangeEvent.java b/src/com/google/android/gms/auth/AccountChangeEvent.java new file mode 100644 index 00000000..4f927ab8 --- /dev/null +++ b/src/com/google/android/gms/auth/AccountChangeEvent.java @@ -0,0 +1,4 @@ +package com.google.android.gms.auth; + +public class AccountChangeEvent { +} diff --git a/src/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java b/src/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java new file mode 100644 index 00000000..1388bbdc --- /dev/null +++ b/src/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java @@ -0,0 +1,4 @@ +package com.google.android.gms.auth.firstparty.dataservice; + +public class TokenRequest { +} diff --git a/src/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java b/src/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java new file mode 100644 index 00000000..3b1b22ac --- /dev/null +++ b/src/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java @@ -0,0 +1,4 @@ +package com.google.android.gms.auth.firstparty.dataservice; + +public class TokenResponse { +} diff --git a/src/com/google/android/gms/auth/firstparty/proximity/data/Permit.java b/src/com/google/android/gms/auth/firstparty/proximity/data/Permit.java new file mode 100644 index 00000000..fcd07ddd --- /dev/null +++ b/src/com/google/android/gms/auth/firstparty/proximity/data/Permit.java @@ -0,0 +1,4 @@ +package com.google.android.gms.auth.firstparty.proximity.data; + +public class Permit { +} diff --git a/src/com/google/android/gms/common/data/DataHolder.aidl b/src/com/google/android/gms/common/data/DataHolder.aidl new file mode 100644 index 00000000..3bbd1174 --- /dev/null +++ b/src/com/google/android/gms/common/data/DataHolder.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.common.data; + +parcelable DataHolder; diff --git a/src/com/google/android/gms/common/data/DataHolder.java b/src/com/google/android/gms/common/data/DataHolder.java new file mode 100644 index 00000000..2cb2885c --- /dev/null +++ b/src/com/google/android/gms/common/data/DataHolder.java @@ -0,0 +1,36 @@ +package com.google.android.gms.common.data; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; + +/** + * TODO: usage + */ +public class DataHolder implements SafeParcelable { + private DataHolder(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static final Creator CREATOR = new Creator() { + @Override + public DataHolder createFromParcel(Parcel parcel) { + return new DataHolder(parcel); + } + + @Override + public DataHolder[] newArray(int i) { + return new DataHolder[i]; + } + }; +} diff --git a/src/com/google/android/gms/drive/metadata/internal/MetadataBundle.java b/src/com/google/android/gms/drive/metadata/internal/MetadataBundle.java new file mode 100644 index 00000000..538defa0 --- /dev/null +++ b/src/com/google/android/gms/drive/metadata/internal/MetadataBundle.java @@ -0,0 +1,4 @@ +package com.google.android.gms.drive.metadata.internal; + +public class MetadataBundle { +} diff --git a/src/com/google/android/gms/fitness/data/DataPoint.java b/src/com/google/android/gms/fitness/data/DataPoint.java new file mode 100644 index 00000000..e81a0172 --- /dev/null +++ b/src/com/google/android/gms/fitness/data/DataPoint.java @@ -0,0 +1,4 @@ +package com.google.android.gms.fitness.data; + +public class DataPoint { +} diff --git a/src/com/google/android/gms/fitness/data/Device.java b/src/com/google/android/gms/fitness/data/Device.java new file mode 100644 index 00000000..173f134f --- /dev/null +++ b/src/com/google/android/gms/fitness/data/Device.java @@ -0,0 +1,4 @@ +package com.google.android.gms.fitness.data; + +public class Device { +} diff --git a/src/com/google/android/gms/fitness/data/Field.java b/src/com/google/android/gms/fitness/data/Field.java new file mode 100644 index 00000000..ee2211d4 --- /dev/null +++ b/src/com/google/android/gms/fitness/data/Field.java @@ -0,0 +1,4 @@ +package com.google.android.gms.fitness.data; + +public class Field { +} diff --git a/src/com/google/android/gms/fitness/data/Value.java b/src/com/google/android/gms/fitness/data/Value.java new file mode 100644 index 00000000..91cd4b78 --- /dev/null +++ b/src/com/google/android/gms/fitness/data/Value.java @@ -0,0 +1,4 @@ +package com.google.android.gms.fitness.data; + +public class Value { +} diff --git a/src/com/google/android/gms/identity/accounts/api/AccountData.java b/src/com/google/android/gms/identity/accounts/api/AccountData.java new file mode 100644 index 00000000..993f6417 --- /dev/null +++ b/src/com/google/android/gms/identity/accounts/api/AccountData.java @@ -0,0 +1,4 @@ +package com.google.android.gms.identity.accounts.api; + +public class AccountData { +} diff --git a/src/com/google/android/gms/identity/intents/model/CountrySpecification.java b/src/com/google/android/gms/identity/intents/model/CountrySpecification.java new file mode 100644 index 00000000..1c9fe39b --- /dev/null +++ b/src/com/google/android/gms/identity/intents/model/CountrySpecification.java @@ -0,0 +1,4 @@ +package com.google.android.gms.identity.intents.model; + +public class CountrySpecification { +} diff --git a/src/com/google/android/gms/identity/intents/model/UserAddress.java b/src/com/google/android/gms/identity/intents/model/UserAddress.java new file mode 100644 index 00000000..3595f666 --- /dev/null +++ b/src/com/google/android/gms/identity/intents/model/UserAddress.java @@ -0,0 +1,4 @@ +package com.google.android.gms.identity.intents.model; + +public class UserAddress { +} diff --git a/src/com/google/android/gms/location/GeofencingRequest.aidl b/src/com/google/android/gms/location/GeofencingRequest.aidl new file mode 100644 index 00000000..d88a3ac8 --- /dev/null +++ b/src/com/google/android/gms/location/GeofencingRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location; + +parcelable GeofencingRequest; diff --git a/src/com/google/android/gms/location/GeofencingRequest.java b/src/com/google/android/gms/location/GeofencingRequest.java new file mode 100644 index 00000000..f8167e78 --- /dev/null +++ b/src/com/google/android/gms/location/GeofencingRequest.java @@ -0,0 +1,38 @@ +package com.google.android.gms.location; + +import android.os.Parcel; +import android.os.Parcelable; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; + +/** + * TODO: usage + */ +public class GeofencingRequest implements SafeParcelable { + + private GeofencingRequest(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + @Override + public GeofencingRequest createFromParcel(Parcel parcel) { + return new GeofencingRequest(parcel); + } + + @Override + public GeofencingRequest[] newArray(int i) { + return new GeofencingRequest[i]; + } + }; +} diff --git a/src/com/google/android/gms/location/LocationRequest.aidl b/src/com/google/android/gms/location/LocationRequest.aidl new file mode 100644 index 00000000..915aa2ae --- /dev/null +++ b/src/com/google/android/gms/location/LocationRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location; + +parcelable LocationRequest; diff --git a/src/com/google/android/gms/location/LocationRequest.java b/src/com/google/android/gms/location/LocationRequest.java new file mode 100644 index 00000000..dfc46811 --- /dev/null +++ b/src/com/google/android/gms/location/LocationRequest.java @@ -0,0 +1,445 @@ +package com.google.android.gms.location; + +import android.os.Parcel; +import android.os.SystemClock; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.Arrays; + +/** + * A data object that contains quality of service parameters for requests to the + * FusedLocationProviderApi. + *

+ * LocationRequest objects are used to request a quality of service for location updates from the + * FusedLocationProviderApi. + *

+ * For example, if your application wants high accuracy location it should create a location + * request with {@link #setPriority(int)} set to {@link #PRIORITY_HIGH_ACCURACY} and + * {@link #setInterval(long)} to 5 seconds. This would be appropriate for mapping applications that + * are showing your location in real-time. + *

+ * At the other extreme, if you want negligible power impact, but to still receive location updates + * when available, then create a location request with {@link #setPriority(int)} set to + * {@link #PRIORITY_NO_POWER}. With this request your application will not trigger (and therefore + * will not receive any power blame) any location updates, but will receive locations triggered by + * other applications. This would be appropriate for applications that have no firm requirement for + * location, but can take advantage when available. + *

+ * In between these two extremes is a very common use-case, where applications definitely want to + * receive updates at a specified interval, and can receive them faster when available, but still + * want a low power impact. These applications should consider + * {@link #PRIORITY_BALANCED_POWER_ACCURACY} combined with a faster + * {@link #setFastestInterval(long)} (such as 1 minute) and a slower {@link #setInterval(long)} + * (such as 60 minutes). They will only be assigned power blame for the interval set by + * {@link #setInterval(long)}, but can still receive locations triggered by other applications at a + * rate up to {@link #setFastestInterval(long)}. This style of request is appropriate for many + * location aware applications, including background usage. Do be careful to also throttle + * {@link #setFastestInterval(long)} if you perform heavy-weight work after receiving an update - + * such as using the network. + *

+ * Activities should strongly consider removing all location request when entering the background + * (for example at {@link android.app.Activity#onPause()}), or at least swap the request to a + * larger interval and lower quality. + *

+ * Applications cannot specify the exact location sources, such as GPS, that are used by the + * LocationClient. In fact, the system may have multiple location sources (providers) running and + * may fuse the results from several sources into a single Location object. + *

+ * Location requests from applications with + * {@link android.Manifest.permission#ACCESS_COARSE_LOCATION} and not + * {@link android.Manifest.permission#ACCESS_FINE_LOCATION} will be automatically throttled to a + * slower interval, and the location object will be obfuscated to only show a coarse level of + * accuracy. + *

+ * All location requests are considered hints, and you may receive locations that are more/less + * accurate, and faster/slower than requested. + *

+ * TODO: Works on wire, but methods not yet implemented. + */ +public class LocationRequest implements SafeParcelable { + + /** + * Used with {@link #setPriority(int)} to request "block" level accuracy. + *

+ * Block level accuracy is considered to be about 100 meter accuracy. Using a coarse accuracy + * such as this often consumes less power. + */ + public static final int PRIORITY_BALANCED_POWER_ACCURACY = 102; + /** + * Used with {@link #setPriority(int)} to request the most accurate locations available. + *

+ * This will return the finest location available. + */ + public static final int PRIORITY_HIGH_ACCURACY = 100; + /** + * Used with {@link #setPriority(int)} to request "city" level accuracy. + *

+ * City level accuracy is considered to be about 10km accuracy. Using a coarse accuracy such as + * this often consumes less power. + */ + public static final int PRIORITY_LOW_POWER = 104; + /** + * Used with {@link #setPriority(int)} to request the best accuracy possible with zero + * additional power consumption. + *

+ * No locations will be returned unless a different client has requested location updates in + * which case this request will act as a passive listener to those locations. + */ + public static final int PRIORITY_NO_POWER = 105; + + @SafeParceled(1000) + private final int versionCode; + @SafeParceled(1) + private int priority; + @SafeParceled(2) + private long interval; + @SafeParceled(3) + private long fastestInterval; + @SafeParceled(4) + private boolean explicitFastestInterval; + @SafeParceled(5) + private long expirationTime; + @SafeParceled(6) + private int numUpdates; + @SafeParceled(7) + private float smallestDesplacement; + @SafeParceled(8) + private long maxWaitTime; + + public LocationRequest() { + this.versionCode = 1; + this.priority = PRIORITY_BALANCED_POWER_ACCURACY; + this.interval = 3600000; + this.fastestInterval = 600000; + this.explicitFastestInterval = false; + this.expirationTime = Long.MAX_VALUE; + this.numUpdates = Integer.MAX_VALUE; + this.smallestDesplacement = 0; + this.maxWaitTime = 0; + } + + public LocationRequest(Parcel in) { + this(); + SafeParcelUtil.readObject(this, in); + } + + /** + * Create a location request with default parameters. + *

+ * Default parameters are for a block accuracy, slowly updated location. It can then be + * adjusted as required by the applications before passing to the FusedLocationProviderApi. + * + * @return a new location request + */ + public static LocationRequest create() { + return new LocationRequest(); + } + + @Override + public int describeContents() { + return 0; + } + + /** + * Get the request expiration time, in milliseconds since boot. + *

+ * This value can be compared to {@link SystemClock#elapsedRealtime()} to determine + * the time until expiration. + * + * @return expiration time of request, in milliseconds since boot including suspend + */ + public long getExpirationTime() { + return expirationTime; + } + + /** + * Get the fastest interval of this request, in milliseconds. + *

+ * The system will never provide location updates faster than the minimum of + * {@link #getFastestInterval()} and {@link #getInterval()}. + * + * @return fastest interval in milliseconds, exact + */ + public long getFastestInterval() { + return fastestInterval; + } + + /** + * Get the desired interval of this request, in milliseconds. + * + * @return desired interval in milliseconds, inexact + */ + public long getInterval() { + return interval; + } + + /** + * Get the number of updates requested. + *

+ * By default this is {@link java.lang.Integer#MAX_VALUE}, which indicates that locations are + * updated until the request is explicitly removed. + * + * @return number of updates + */ + public int getNumUpdates() { + return numUpdates; + } + + /** + * Get the quality of the request. + * + * @return an accuracy constant + */ + public int getPriority() { + return priority; + } + + /** + * Get the minimum displacement between location updates in meters + *

+ * By default this is 0. + * + * @return minimum displacement between location updates in meters + */ + public float getSmallestDesplacement() { + return smallestDesplacement; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + + LocationRequest that = (LocationRequest) o; + + if (expirationTime != that.expirationTime) + return false; + if (explicitFastestInterval != that.explicitFastestInterval) + return false; + if (fastestInterval != that.fastestInterval) + return false; + if (interval != that.interval) + return false; + if (maxWaitTime != that.maxWaitTime) + return false; + if (numUpdates != that.numUpdates) + return false; + if (priority != that.priority) + return false; + if (Float.compare(that.smallestDesplacement, smallestDesplacement) != 0) + return false; + + return true; + } + + @Override + public int hashCode() { + return Arrays.hashCode( + new Object[] { priority, interval, fastestInterval, explicitFastestInterval, + explicitFastestInterval, numUpdates, smallestDesplacement, maxWaitTime + }); + } + + /** + * Set the duration of this request, in milliseconds. + *

+ * The duration begins immediately (and not when the request is passed to the location client), + * so call this method again if the request is re-used at a later time. + *

+ * The location client will automatically stop updates after the request expires. + *

+ * The duration includes suspend time. Values less than 0 are allowed, but indicate that the + * request has already expired. + * + * @param millis duration of request in milliseconds + * @return the same object, so that setters can be chained + */ + public LocationRequest setExpirationDuration(long millis) { + expirationTime = SystemClock.elapsedRealtime() + millis; + return this; + } + + /** + * Set the request expiration time, in millisecond since boot. + *

+ * This expiration time uses the same time base as {@link SystemClock#elapsedRealtime()}. + *

+ * The location client will automatically stop updates after the request expires. + *

+ * The duration includes suspend time. Values before {@link SystemClock#elapsedRealtime()} are + * allowed, but indicate that the request has already expired. + * + * @param millis expiration time of request, in milliseconds since boot including suspend + * @return the same object, so that setters can be chained + */ + public LocationRequest setExpirationTime(long millis) { + expirationTime = millis; + return this; + } + + /** + * Explicitly set the fastest interval for location updates, in milliseconds. + *

+ * This controls the fastest rate at which your application will receive location updates, + * which might be faster than {@link #setInterval(long)} in some situations (for example, if + * other applications are triggering location updates). + *

+ * This allows your application to passively acquire locations at a rate faster than it + * actively acquires locations, saving power. + *

+ * Unlike {@link #setInterval(long)}, this parameter is exact. Your application will never + * receive updates faster than this value. + *

+ * If you don't call this method, a fastest interval will be selected for you. It will be a + * value faster than your active interval ({@link #setInterval(long)}). + *

+ * An interval of 0 is allowed, but not recommended, since location updates may be extremely + * fast on future implementations. + *

+ * If {@link #setFastestInterval(long)} is set slower than {@link #setInterval(long)}, then + * your effective fastest interval is {@link #setInterval(long)}. + * + * @param millis fastest interval for updates in milliseconds, exact + * @return the same object, so that setters can be chained + * @throws IllegalArgumentException if the interval is less than zero + */ + public LocationRequest setFastestInterval(long millis) throws IllegalArgumentException { + if (millis < 0) + throw new IllegalArgumentException("interval must not be negative"); + fastestInterval = millis; + return this; + } + + /** + * Set the desired interval for active location updates, in milliseconds. + *

+ * The location client will actively try to obtain location updates for your application at + * this interval, so it has a direct influence on the amount of power used by your application. + * Choose your interval wisely. + *

+ * This interval is inexact. You may not receive updates at all (if no location sources are + * available), or you may receive them slower than requested. You may also receive them faster + * than requested (if other applications are requesting location at a faster interval). The + * fastest rate that that you will receive updates can be controlled with + * {@link #setFastestInterval(long)}. By default this fastest rate is 6x the interval frequency. + *

+ * Applications with only the coarse location permission may have their interval silently + * throttled. + *

+ * An interval of 0 is allowed, but not recommended, since location updates may be extremely + * fast on future implementations. + *

+ * {@link #setPriority(int)} and {@link #setInterval(long)} are the most important parameters + * on a location request. + * + * @param millis desired interval in millisecond, inexact + * @return the same object, so that setters can be chained + * @throws IllegalArgumentException if the interval is less than zero + */ + public LocationRequest setInterval(long millis) throws IllegalArgumentException { + if (millis < 0) + throw new IllegalArgumentException("interval must not be negative"); + interval = millis; + return this; + } + + /** + * Set the number of location updates. + *

+ * By default locations are continuously updated until the request is explicitly removed, + * however you can optionally request a set number of updates. For example, if your application + * only needs a single fresh location, then call this method with a value of 1 before passing + * the request to the location client. + *

+ * When using this option care must be taken to either explicitly remove the request when no + * longer needed or to set an expiration with ({@link #setExpirationDuration(long)} or + * {@link #setExpirationTime(long)}. Otherwise in some cases if a location can't be computed, + * this request could stay active indefinitely consuming power. + * + * @param numUpdates the number of location updates requested + * @return the same object, so that setters can be chained + * @throws IllegalArgumentException if numUpdates is 0 or less + */ + public LocationRequest setNumUpdates(int numUpdates) throws IllegalArgumentException { + if (numUpdates <= 0) + throw new IllegalArgumentException("numUpdates must not be 0 or negative"); + this.numUpdates = numUpdates; + return this; + } + + /** + * Set the priority of the request. + *

+ * Use with a priority constant such as {@link #PRIORITY_HIGH_ACCURACY}. No other values are + * accepted. + *

+ * The priority of the request is a strong hint to the LocationClient for which location + * sources to use. For example, {@link #PRIORITY_HIGH_ACCURACY} is more likely to use GPS, and + * {@link #PRIORITY_BALANCED_POWER_ACCURACY} is more likely to use WIFI & Cell tower + * positioning, but it also depends on many other factors (such as which sources are available) + * and is implementation dependent. + *

+ * {@link #setPriority(int)} and {@link #setInterval(long)} are the most important parameters + * on a location request. + * + * @param priority an accuracy or power constant + * @return the same object, so that setters can be chained + * @throws IllegalArgumentException if the quality constant is not valid + */ + public LocationRequest setPriority(int priority) { + switch (priority) { + default: + throw new IllegalArgumentException("priority is not a known constant"); + case PRIORITY_BALANCED_POWER_ACCURACY: + case PRIORITY_HIGH_ACCURACY: + case PRIORITY_LOW_POWER: + case PRIORITY_NO_POWER: + this.priority = priority; + } + return this; + } + + /** + * Set the minimum displacement between location updates in meters + *

+ * By default this is 0. + * + * @param smallestDisplacementMeters the smallest displacement in meters the user must move + * between location updates. + * @return the same object, so that setters can be chained + * @throws IllegalArgumentException if smallestDisplacementMeters is negative + */ + public LocationRequest setSmallestDesplacement(float smallestDisplacementMeters) { + if (smallestDisplacementMeters < 0) + throw new IllegalArgumentException("smallestDisplacementMeters must not be negative"); + this.smallestDesplacement = smallestDisplacementMeters; + return this; + } + + @Override + public String toString() { + // TODO + return super.toString(); + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static final Creator CREATOR = new Creator() { + @Override + public LocationRequest createFromParcel(Parcel parcel) { + return new LocationRequest(parcel); + } + + @Override + public LocationRequest[] newArray(int i) { + return new LocationRequest[i]; + } + }; +} diff --git a/src/com/google/android/gms/location/LocationStatus.aidl b/src/com/google/android/gms/location/LocationStatus.aidl new file mode 100644 index 00000000..398d9c18 --- /dev/null +++ b/src/com/google/android/gms/location/LocationStatus.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location; + +parcelable LocationStatus; diff --git a/src/com/google/android/gms/location/LocationStatus.java b/src/com/google/android/gms/location/LocationStatus.java new file mode 100644 index 00000000..4009e57f --- /dev/null +++ b/src/com/google/android/gms/location/LocationStatus.java @@ -0,0 +1,103 @@ +package com.google.android.gms.location; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.Arrays; + +public class LocationStatus implements SafeParcelable { + public static final int STATUS_SUCCESSFUL = 0; + public static final int STATUS_UNKNOWN = 1; + public static final int STATUS_TIMED_OUT_ON_SCAN = 2; + public static final int STATUS_NO_INFO_IN_DATABASE = 3; + public static final int STATUS_INVALID_SCAN = 4; + public static final int STATUS_UNABLE_TO_QUERY_DATABASE = 5; + public static final int STATUS_SCANS_DISABLED_IN_SETTINGS = 6; + public static final int STATUS_LOCATION_DISABLED_IN_SETTINGS = 7; + public static final int STATUS_IN_PROGRESS = 8; + @SafeParceled(1000) + private final int versionCode; + @SafeParceled(1) + int cellStatus; + @SafeParceled(2) + int wifiStatus; + @SafeParceled(3) + long elapsedRealtimeNanos; + + private LocationStatus(Parcel in) { + versionCode = 1; + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + + LocationStatus that = (LocationStatus) o; + + if (cellStatus != that.cellStatus) + return false; + if (elapsedRealtimeNanos != that.elapsedRealtimeNanos) + return false; + if (wifiStatus != that.wifiStatus) + return false; + + return true; + } + + @Override + public int hashCode() { + return Arrays.hashCode(new Object[] { cellStatus, wifiStatus, elapsedRealtimeNanos }); + } + + private String statusToString(int status) { + switch (status) { + case STATUS_SUCCESSFUL: + return "STATUS_SUCCESSFUL"; + case STATUS_UNKNOWN: + default: + return "STATUS_UNKNOWN"; + case STATUS_TIMED_OUT_ON_SCAN: + return "STATUS_TIMED_OUT_ON_SCAN"; + case STATUS_NO_INFO_IN_DATABASE: + return "STATUS_NO_INFO_IN_DATABASE"; + case STATUS_INVALID_SCAN: + return "STATUS_INVALID_SCAN"; + case STATUS_UNABLE_TO_QUERY_DATABASE: + return "STATUS_UNABLE_TO_QUERY_DATABASE"; + case STATUS_SCANS_DISABLED_IN_SETTINGS: + return "STATUS_SCANS_DISABLED_IN_SETTINGS"; + case STATUS_LOCATION_DISABLED_IN_SETTINGS: + return "STATUS_LOCATION_DISABLED_IN_SETTINGS"; + case STATUS_IN_PROGRESS: + return "STATUS_IN_PROGRESS"; + } + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static final Creator CREATOR = new Creator() { + @Override + public LocationStatus createFromParcel(Parcel parcel) { + return new LocationStatus(parcel); + } + + @Override + public LocationStatus[] newArray(int i) { + return new LocationStatus[i]; + } + }; +} diff --git a/src/com/google/android/gms/location/internal/ClientIdentity.java b/src/com/google/android/gms/location/internal/ClientIdentity.java new file mode 100644 index 00000000..afb034ba --- /dev/null +++ b/src/com/google/android/gms/location/internal/ClientIdentity.java @@ -0,0 +1,4 @@ +package com.google.android.gms.location.internal; + +public class ClientIdentity { +} diff --git a/src/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl b/src/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl index c461587d..295de798 100644 --- a/src/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl +++ b/src/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl @@ -1,8 +1,60 @@ package com.google.android.gms.location.internal; +import com.google.android.gms.location.places.AutocompleteFilter; +import com.google.android.gms.location.places.internal.IPlacesCallbacks; +import com.google.android.gms.location.internal.LocationRequestInternal; +import com.google.android.gms.location.places.NearbyAlertRequest; +import com.google.android.gms.location.places.PlaceFilter; +import com.google.android.gms.location.places.PlaceRequest; +import com.google.android.gms.location.places.PlaceReport; +import com.google.android.gms.location.places.internal.PlacesParams; +import com.google.android.gms.location.places.UserAddedPlace; +import com.google.android.gms.location.places.UserDataType; import com.google.android.gms.location.Geofence; +import com.google.android.gms.location.GeofencingRequest; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationStatus; import com.google.android.gms.location.internal.IGeofencerCallbacks; +import com.google.android.gms.location.internal.ILocationListener; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.LatLngBounds; interface IGoogleLocationManagerService { - void addGeofences(in List geofences, in PendingIntent pendingIntent, IGeofencerCallbacks callback, String str); + void addGeofencesList(in List geofences, in PendingIntent pendingIntent, IGeofencerCallbacks callbacks, String packageName) = 0; + void removeGeofencesByIntent(in PendingIntent pendingIntent, IGeofencerCallbacks callbacks, String packageName) = 1; + void removeGeofencesById(in String[] geofenceRequestIds, IGeofencerCallbacks callbacks, String packageName) = 2; + void iglms4(IGeofencerCallbacks callbacks, String packageName) = 3; + void requestActivityUpdates(long detectionIntervalMillis, boolean alwaysTrue, in PendingIntent callbackIntent) = 4; + void removeActivityUpdates(in PendingIntent callbackIntent) = 5; + Location getLastLocation() = 6; + void requestLocationUpdatesWithListener(in LocationRequest request, ILocationListener listener) = 7; + void requestLocationUpdatesWithIntent(in LocationRequest request, in PendingIntent callbackIntent) = 8; + void removeLocationUpdatesWithListener(ILocationListener listener) = 9; // TODO + void removeLocationUpdatesWithIntent(in PendingIntent callbackIntent) = 11; + void setMockMode(boolean mockMode) = 12; + void setMockLocation(in Location mockLocation) = 13; + void iglms14(in LatLngBounds var1, int var2, in PlaceFilter var3, in PlacesParams var4, IPlacesCallbacks var5) = 14; + void iglms15(String var1, in PlacesParams var2, IPlacesCallbacks var3) = 15; + void iglms16(in LatLng var1, in PlaceFilter var2, in PlacesParams var3, IPlacesCallbacks var4) = 16; + void iglms17(in PlaceFilter var1, in PlacesParams var2, IPlacesCallbacks var3) = 17; + void iglms18(in PlaceRequest var1, in PlacesParams var2, in PendingIntent var3) = 18; + void iglms19(in PlacesParams var1, in PendingIntent var2) = 19; + void requestLocationUpdates(in LocationRequest request, ILocationListener listener, String packageName) = 20; + Location getLastLocationWithPackage(String packageName) = 21; + void iglms25(in PlaceReport var1, in PlacesParams var2) = 25; + void iglms26(in Location var1, int var2) = 26; + LocationStatus iglms34(String var1) = 34; + void iglms42(String var1, in PlacesParams var2, IPlacesCallbacks var3) = 42; + void iglms46(in UserAddedPlace var1, in PlacesParams var2, IPlacesCallbacks var3) = 46; + void iglms47(in LatLngBounds var1, int var2, String var3, in PlaceFilter var4, in PlacesParams var5, IPlacesCallbacks var6) = 47; + void iglms48(in NearbyAlertRequest var1, in PlacesParams var2, in PendingIntent var3) = 48; + void iglms49(in PlacesParams var1, in PendingIntent var2) = 49; + void iglms50(in UserDataType var1, in LatLngBounds var2, in List var3, in PlacesParams var4, IPlacesCallbacks var5) = 50; + IBinder iglms51() = 51; + void requestLocationUpdatesInternalWithListener(in LocationRequestInternal request, ILocationListener listener) = 52; + void requestLocationUpdatesInternalWithIntent(in LocationRequestInternal request, in PendingIntent callbackIntent) = 53; + IBinder iglms54() = 54; + void iglms55(String var1, in LatLngBounds var2, in AutocompleteFilter var3, in PlacesParams var4, IPlacesCallbacks var5) = 55; + void addGeofences(in GeofencingRequest geofencingRequest, in PendingIntent pendingIntent, IGeofencerCallbacks callbacks) = 57; + void iglms58(in List var1, in PlacesParams var2, IPlacesCallbacks var3) = 58; } diff --git a/src/com/google/android/gms/location/internal/ILocationListener.aidl b/src/com/google/android/gms/location/internal/ILocationListener.aidl new file mode 100644 index 00000000..055d6fdf --- /dev/null +++ b/src/com/google/android/gms/location/internal/ILocationListener.aidl @@ -0,0 +1,7 @@ +package com.google.android.gms.location.internal; + +import android.location.Location; + +interface ILocationListener { + void onLocationChanged(in Location location); +} diff --git a/src/com/google/android/gms/location/internal/LocationRequestInternal.aidl b/src/com/google/android/gms/location/internal/LocationRequestInternal.aidl new file mode 100644 index 00000000..4604714a --- /dev/null +++ b/src/com/google/android/gms/location/internal/LocationRequestInternal.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.internal; + +parcelable LocationRequestInternal; diff --git a/src/com/google/android/gms/location/internal/LocationRequestInternal.java b/src/com/google/android/gms/location/internal/LocationRequestInternal.java new file mode 100644 index 00000000..8ae27697 --- /dev/null +++ b/src/com/google/android/gms/location/internal/LocationRequestInternal.java @@ -0,0 +1,37 @@ +package com.google.android.gms.location.internal; + +import android.os.Parcel; +import android.os.Parcelable; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; + +/** + * TODO: usage + */ +public class LocationRequestInternal implements SafeParcelable { + private LocationRequestInternal(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + @Override + public LocationRequestInternal createFromParcel(Parcel parcel) { + return new LocationRequestInternal(parcel); + } + + @Override + public LocationRequestInternal[] newArray(int i) { + return new LocationRequestInternal[i]; + } + }; +} diff --git a/src/com/google/android/gms/location/places/AutocompleteFilter.aidl b/src/com/google/android/gms/location/places/AutocompleteFilter.aidl new file mode 100644 index 00000000..10b7539c --- /dev/null +++ b/src/com/google/android/gms/location/places/AutocompleteFilter.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.places; + +parcelable AutocompleteFilter; diff --git a/src/com/google/android/gms/location/places/AutocompleteFilter.java b/src/com/google/android/gms/location/places/AutocompleteFilter.java new file mode 100644 index 00000000..86847d4e --- /dev/null +++ b/src/com/google/android/gms/location/places/AutocompleteFilter.java @@ -0,0 +1,46 @@ +package com.google.android.gms.location.places; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +/** + * TODO usage + */ +public class AutocompleteFilter implements SafeParcelable { + + @SafeParceled(1000) + private final int versionCode; + + private AutocompleteFilter() { + this.versionCode = 1; + } + + private AutocompleteFilter(Parcel in) { + this(); + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static final Creator CREATOR = new Creator() { + @Override + public AutocompleteFilter createFromParcel(Parcel parcel) { + return new AutocompleteFilter(parcel); + } + + @Override + public AutocompleteFilter[] newArray(int i) { + return new AutocompleteFilter[i]; + } + }; +} diff --git a/src/com/google/android/gms/location/places/NearbyAlertRequest.aidl b/src/com/google/android/gms/location/places/NearbyAlertRequest.aidl new file mode 100644 index 00000000..b34605c8 --- /dev/null +++ b/src/com/google/android/gms/location/places/NearbyAlertRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.places; + +parcelable NearbyAlertRequest; diff --git a/src/com/google/android/gms/location/places/NearbyAlertRequest.java b/src/com/google/android/gms/location/places/NearbyAlertRequest.java new file mode 100644 index 00000000..0650e462 --- /dev/null +++ b/src/com/google/android/gms/location/places/NearbyAlertRequest.java @@ -0,0 +1,36 @@ +package com.google.android.gms.location.places; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; + +/** + * TODO: usage + */ +public class NearbyAlertRequest implements SafeParcelable { + private NearbyAlertRequest(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static final Creator CREATOR = new Creator() { + @Override + public NearbyAlertRequest createFromParcel(Parcel parcel) { + return new NearbyAlertRequest(parcel); + } + + @Override + public NearbyAlertRequest[] newArray(int i) { + return new NearbyAlertRequest[i]; + } + }; +} diff --git a/src/com/google/android/gms/location/places/PlaceFilter.aidl b/src/com/google/android/gms/location/places/PlaceFilter.aidl new file mode 100644 index 00000000..07a4eec6 --- /dev/null +++ b/src/com/google/android/gms/location/places/PlaceFilter.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.places; + +parcelable PlaceFilter; diff --git a/src/com/google/android/gms/location/places/PlaceFilter.java b/src/com/google/android/gms/location/places/PlaceFilter.java new file mode 100644 index 00000000..d13849b8 --- /dev/null +++ b/src/com/google/android/gms/location/places/PlaceFilter.java @@ -0,0 +1,37 @@ +package com.google.android.gms.location.places; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; + +/** + * TODO: usage + */ +public class PlaceFilter implements SafeParcelable { + + private PlaceFilter(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static final Creator CREATOR = new Creator() { + @Override + public PlaceFilter createFromParcel(Parcel parcel) { + return new PlaceFilter(parcel); + } + + @Override + public PlaceFilter[] newArray(int i) { + return new PlaceFilter[i]; + } + }; +} diff --git a/src/com/google/android/gms/location/places/PlaceReport.aidl b/src/com/google/android/gms/location/places/PlaceReport.aidl new file mode 100644 index 00000000..993899de --- /dev/null +++ b/src/com/google/android/gms/location/places/PlaceReport.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.places; + +parcelable PlaceReport; diff --git a/src/com/google/android/gms/location/places/PlaceReport.java b/src/com/google/android/gms/location/places/PlaceReport.java new file mode 100644 index 00000000..8fd57f86 --- /dev/null +++ b/src/com/google/android/gms/location/places/PlaceReport.java @@ -0,0 +1,38 @@ +package com.google.android.gms.location.places; + +import android.os.Parcel; +import android.os.Parcelable; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; + +/** + * TODO: usage + */ +public class PlaceReport implements SafeParcelable { + + private PlaceReport(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + @Override + public PlaceReport createFromParcel(Parcel parcel) { + return new PlaceReport(parcel); + } + + @Override + public PlaceReport[] newArray(int i) { + return new PlaceReport[i]; + } + }; +} diff --git a/src/com/google/android/gms/location/places/PlaceRequest.aidl b/src/com/google/android/gms/location/places/PlaceRequest.aidl new file mode 100644 index 00000000..8de920ef --- /dev/null +++ b/src/com/google/android/gms/location/places/PlaceRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.places; + +parcelable PlaceRequest; diff --git a/src/com/google/android/gms/location/places/PlaceRequest.java b/src/com/google/android/gms/location/places/PlaceRequest.java new file mode 100644 index 00000000..0960bdcb --- /dev/null +++ b/src/com/google/android/gms/location/places/PlaceRequest.java @@ -0,0 +1,36 @@ +package com.google.android.gms.location.places; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; + +/** + * TODO: usage + */ +public class PlaceRequest implements SafeParcelable { + private PlaceRequest(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static final Creator CREATOR = new Creator() { + @Override + public PlaceRequest createFromParcel(Parcel parcel) { + return new PlaceRequest(parcel); + } + + @Override + public PlaceRequest[] newArray(int i) { + return new PlaceRequest[i]; + } + }; +} diff --git a/src/com/google/android/gms/location/places/UserAddedPlace.aidl b/src/com/google/android/gms/location/places/UserAddedPlace.aidl new file mode 100644 index 00000000..aa543a60 --- /dev/null +++ b/src/com/google/android/gms/location/places/UserAddedPlace.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.places; + +parcelable UserAddedPlace; diff --git a/src/com/google/android/gms/location/places/UserAddedPlace.java b/src/com/google/android/gms/location/places/UserAddedPlace.java new file mode 100644 index 00000000..5f83f528 --- /dev/null +++ b/src/com/google/android/gms/location/places/UserAddedPlace.java @@ -0,0 +1,46 @@ +package com.google.android.gms.location.places; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +/** + * TODO: usage + */ +public class UserAddedPlace implements SafeParcelable { + + @SafeParceled(1000) + private final int versionCode; + + private UserAddedPlace() { + versionCode = -1; + } + + private UserAddedPlace(Parcel in) { + this(); + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static final Creator CREATOR = new Creator() { + @Override + public UserAddedPlace createFromParcel(Parcel parcel) { + return new UserAddedPlace(parcel); + } + + @Override + public UserAddedPlace[] newArray(int i) { + return new UserAddedPlace[i]; + } + }; +} diff --git a/src/com/google/android/gms/location/places/UserDataType.aidl b/src/com/google/android/gms/location/places/UserDataType.aidl new file mode 100644 index 00000000..503493a3 --- /dev/null +++ b/src/com/google/android/gms/location/places/UserDataType.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.places; + +parcelable UserDataType; diff --git a/src/com/google/android/gms/location/places/UserDataType.java b/src/com/google/android/gms/location/places/UserDataType.java new file mode 100644 index 00000000..858d3f0c --- /dev/null +++ b/src/com/google/android/gms/location/places/UserDataType.java @@ -0,0 +1,36 @@ +package com.google.android.gms.location.places; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; + +/** + * TODO: usage + */ +public class UserDataType implements SafeParcelable { + private UserDataType(Parcel in) { + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static final Creator CREATOR = new Creator() { + @Override + public UserDataType createFromParcel(Parcel parcel) { + return new UserDataType(parcel); + } + + @Override + public UserDataType[] newArray(int i) { + return new UserDataType[i]; + } + }; +} diff --git a/src/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl b/src/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl new file mode 100644 index 00000000..6e912606 --- /dev/null +++ b/src/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl @@ -0,0 +1,9 @@ +package com.google.android.gms.location.places.internal; + +import com.google.android.gms.common.data.DataHolder; + +interface IPlacesCallbacks { + void X(in DataHolder dataHolder); + void Y(in DataHolder dataHolder); + void Z(in DataHolder dataHolder); +} diff --git a/src/com/google/android/gms/location/places/internal/PlacesParams.aidl b/src/com/google/android/gms/location/places/internal/PlacesParams.aidl new file mode 100644 index 00000000..fa569540 --- /dev/null +++ b/src/com/google/android/gms/location/places/internal/PlacesParams.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.places.internal; + +parcelable PlacesParams; diff --git a/src/com/google/android/gms/location/places/internal/PlacesParams.java b/src/com/google/android/gms/location/places/internal/PlacesParams.java new file mode 100644 index 00000000..956c99da --- /dev/null +++ b/src/com/google/android/gms/location/places/internal/PlacesParams.java @@ -0,0 +1,52 @@ +package com.google.android.gms.location.places.internal; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class PlacesParams implements SafeParcelable { + + @SafeParceled(1000) + private final int versionCode; + @SafeParceled(1) + public final String clientPackageName; + @SafeParceled(2) + public final String locale; + @SafeParceled(3) + public final String accountName; + @SafeParceled(4) + public final String gCoreClientName; + + private PlacesParams() { + versionCode = -1; + clientPackageName = locale = accountName = gCoreClientName = null; + } + + private PlacesParams(Parcel in) { + this(); + SafeParcelUtil.readObject(this, in); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static final Creator CREATOR = new Creator() { + @Override + public PlacesParams createFromParcel(Parcel parcel) { + return new PlacesParams(parcel); + } + + @Override + public PlacesParams[] newArray(int i) { + return new PlacesParams[i]; + } + }; +} diff --git a/src/com/google/android/gms/maps/StreetViewPanoramaOptions.java b/src/com/google/android/gms/maps/StreetViewPanoramaOptions.java new file mode 100644 index 00000000..3d1810c4 --- /dev/null +++ b/src/com/google/android/gms/maps/StreetViewPanoramaOptions.java @@ -0,0 +1,4 @@ +package com.google.android.gms.maps; + +public class StreetViewPanoramaOptions { +} diff --git a/src/com/google/android/gms/maps/internal/Point.java b/src/com/google/android/gms/maps/internal/Point.java new file mode 100644 index 00000000..43ada12e --- /dev/null +++ b/src/com/google/android/gms/maps/internal/Point.java @@ -0,0 +1,4 @@ +package com.google.android.gms.maps.internal; + +public class Point { +} diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java b/src/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java new file mode 100644 index 00000000..534d8144 --- /dev/null +++ b/src/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java @@ -0,0 +1,4 @@ +package com.google.android.gms.maps.model; + +public class StreetViewPanoramaCamera { +} diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaLink.java b/src/com/google/android/gms/maps/model/StreetViewPanoramaLink.java new file mode 100644 index 00000000..66859e08 --- /dev/null +++ b/src/com/google/android/gms/maps/model/StreetViewPanoramaLink.java @@ -0,0 +1,4 @@ +package com.google.android.gms.maps.model; + +public class StreetViewPanoramaLink { +} diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java b/src/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java new file mode 100644 index 00000000..8ef5fda7 --- /dev/null +++ b/src/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java @@ -0,0 +1,4 @@ +package com.google.android.gms.maps.model; + +public class StreetViewPanoramaLocation { +} diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java b/src/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java new file mode 100644 index 00000000..285c0617 --- /dev/null +++ b/src/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java @@ -0,0 +1,4 @@ +package com.google.android.gms.maps.model; + +public class StreetViewPanoramaOrientation { +} diff --git a/src/com/google/android/gms/plus/internal/PlusCommonExtras.java b/src/com/google/android/gms/plus/internal/PlusCommonExtras.java new file mode 100644 index 00000000..b8735781 --- /dev/null +++ b/src/com/google/android/gms/plus/internal/PlusCommonExtras.java @@ -0,0 +1,4 @@ +package com.google.android.gms.plus.internal; + +public class PlusCommonExtras { +} diff --git a/src/com/google/android/gms/plus/internal/PlusSession.java b/src/com/google/android/gms/plus/internal/PlusSession.java new file mode 100644 index 00000000..d8b6c9a1 --- /dev/null +++ b/src/com/google/android/gms/plus/internal/PlusSession.java @@ -0,0 +1,4 @@ +package com.google.android.gms.plus.internal; + +public class PlusSession { +} diff --git a/src/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java b/src/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java new file mode 100644 index 00000000..2237e011 --- /dev/null +++ b/src/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java @@ -0,0 +1,4 @@ +package com.google.android.gms.plus.internal.model.smart_profile; + +public class CardsRequest { +} diff --git a/src/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java b/src/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java new file mode 100644 index 00000000..c6f3f23a --- /dev/null +++ b/src/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java @@ -0,0 +1,4 @@ +package com.google.android.gms.plus.internal.model.smart_profile; + +public class CardsResponse { +} diff --git a/src/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java b/src/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java new file mode 100644 index 00000000..7f4374c3 --- /dev/null +++ b/src/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java @@ -0,0 +1,4 @@ +package com.google.android.gms.plus.internal.model.smart_profile; + +public class PeopleForProfilesRequest { +} diff --git a/src/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java b/src/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java new file mode 100644 index 00000000..28bc9b79 --- /dev/null +++ b/src/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java @@ -0,0 +1,4 @@ +package com.google.android.gms.plus.internal.model.smart_profile; + +public class PeopleForProfilesResponse { +} diff --git a/src/com/google/android/gms/plus/model/posts/Comment.java b/src/com/google/android/gms/plus/model/posts/Comment.java new file mode 100644 index 00000000..34b179a5 --- /dev/null +++ b/src/com/google/android/gms/plus/model/posts/Comment.java @@ -0,0 +1,4 @@ +package com.google.android.gms.plus.model.posts; + +public class Comment { +} diff --git a/src/com/google/android/gms/plus/model/posts/Post.java b/src/com/google/android/gms/plus/model/posts/Post.java new file mode 100644 index 00000000..68d73f26 --- /dev/null +++ b/src/com/google/android/gms/plus/model/posts/Post.java @@ -0,0 +1,4 @@ +package com.google.android.gms.plus.model.posts; + +public class Post { +} diff --git a/src/com/google/android/gms/plus/model/posts/Settings.java b/src/com/google/android/gms/plus/model/posts/Settings.java new file mode 100644 index 00000000..943d0ced --- /dev/null +++ b/src/com/google/android/gms/plus/model/posts/Settings.java @@ -0,0 +1,4 @@ +package com.google.android.gms.plus.model.posts; + +public class Settings { +} diff --git a/src/com/google/android/gms/wearable/ConnectionConfiguration.java b/src/com/google/android/gms/wearable/ConnectionConfiguration.java new file mode 100644 index 00000000..1539f85d --- /dev/null +++ b/src/com/google/android/gms/wearable/ConnectionConfiguration.java @@ -0,0 +1,4 @@ +package com.google.android.gms.wearable; + +public class ConnectionConfiguration { +} diff --git a/src/org/microg/gms/maps/Constants.java b/src/org/microg/gms/maps/Constants.java index 89745851..7209e500 100644 --- a/src/org/microg/gms/maps/Constants.java +++ b/src/org/microg/gms/maps/Constants.java @@ -1,6 +1,12 @@ package org.microg.gms.maps; public class Constants { + /** + * This is the highest version that was looked at during development. + * Does not necessarily mean anything. + */ + public static final int MAX_REFERENCE_VERSION = 6599436; + /** * No base map tiles. */ @@ -25,4 +31,7 @@ public class Constants { * Satellite maps with a transparent layer of major streets. */ public static final int MAP_TYPE_HYBRID = 4; + + public static final String ACTION_GMS_LOCATION_MANAGER_SERVICE_START = "com.google.android.location.internal.GoogleLocationManagerService.START"; + public static final String KEY_MOCK_LOCATION = "mockLocation"; } From d1379984a19590f736e8e4b9b4efaaa8a3bcca41 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sun, 11 Jan 2015 17:52:29 +0100 Subject: [PATCH 007/170] Various --- .../{internal => }/ILocationListener.aidl | 2 +- .../IGoogleLocationManagerService.aidl | 58 +++++++++---------- 2 files changed, 30 insertions(+), 30 deletions(-) rename src/com/google/android/gms/location/{internal => }/ILocationListener.aidl (70%) diff --git a/src/com/google/android/gms/location/internal/ILocationListener.aidl b/src/com/google/android/gms/location/ILocationListener.aidl similarity index 70% rename from src/com/google/android/gms/location/internal/ILocationListener.aidl rename to src/com/google/android/gms/location/ILocationListener.aidl index 055d6fdf..323f9059 100644 --- a/src/com/google/android/gms/location/internal/ILocationListener.aidl +++ b/src/com/google/android/gms/location/ILocationListener.aidl @@ -1,4 +1,4 @@ -package com.google.android.gms.location.internal; +package com.google.android.gms.location; import android.location.Location; diff --git a/src/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl b/src/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl index 295de798..a60350fd 100644 --- a/src/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl +++ b/src/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl @@ -15,7 +15,7 @@ import com.google.android.gms.location.GeofencingRequest; import com.google.android.gms.location.LocationRequest; import com.google.android.gms.location.LocationStatus; import com.google.android.gms.location.internal.IGeofencerCallbacks; -import com.google.android.gms.location.internal.ILocationListener; +import com.google.android.gms.location.ILocationListener; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.LatLngBounds; @@ -29,32 +29,32 @@ interface IGoogleLocationManagerService { Location getLastLocation() = 6; void requestLocationUpdatesWithListener(in LocationRequest request, ILocationListener listener) = 7; void requestLocationUpdatesWithIntent(in LocationRequest request, in PendingIntent callbackIntent) = 8; - void removeLocationUpdatesWithListener(ILocationListener listener) = 9; // TODO - void removeLocationUpdatesWithIntent(in PendingIntent callbackIntent) = 11; - void setMockMode(boolean mockMode) = 12; - void setMockLocation(in Location mockLocation) = 13; - void iglms14(in LatLngBounds var1, int var2, in PlaceFilter var3, in PlacesParams var4, IPlacesCallbacks var5) = 14; - void iglms15(String var1, in PlacesParams var2, IPlacesCallbacks var3) = 15; - void iglms16(in LatLng var1, in PlaceFilter var2, in PlacesParams var3, IPlacesCallbacks var4) = 16; - void iglms17(in PlaceFilter var1, in PlacesParams var2, IPlacesCallbacks var3) = 17; - void iglms18(in PlaceRequest var1, in PlacesParams var2, in PendingIntent var3) = 18; - void iglms19(in PlacesParams var1, in PendingIntent var2) = 19; - void requestLocationUpdates(in LocationRequest request, ILocationListener listener, String packageName) = 20; - Location getLastLocationWithPackage(String packageName) = 21; - void iglms25(in PlaceReport var1, in PlacesParams var2) = 25; - void iglms26(in Location var1, int var2) = 26; - LocationStatus iglms34(String var1) = 34; - void iglms42(String var1, in PlacesParams var2, IPlacesCallbacks var3) = 42; - void iglms46(in UserAddedPlace var1, in PlacesParams var2, IPlacesCallbacks var3) = 46; - void iglms47(in LatLngBounds var1, int var2, String var3, in PlaceFilter var4, in PlacesParams var5, IPlacesCallbacks var6) = 47; - void iglms48(in NearbyAlertRequest var1, in PlacesParams var2, in PendingIntent var3) = 48; - void iglms49(in PlacesParams var1, in PendingIntent var2) = 49; - void iglms50(in UserDataType var1, in LatLngBounds var2, in List var3, in PlacesParams var4, IPlacesCallbacks var5) = 50; - IBinder iglms51() = 51; - void requestLocationUpdatesInternalWithListener(in LocationRequestInternal request, ILocationListener listener) = 52; - void requestLocationUpdatesInternalWithIntent(in LocationRequestInternal request, in PendingIntent callbackIntent) = 53; - IBinder iglms54() = 54; - void iglms55(String var1, in LatLngBounds var2, in AutocompleteFilter var3, in PlacesParams var4, IPlacesCallbacks var5) = 55; - void addGeofences(in GeofencingRequest geofencingRequest, in PendingIntent pendingIntent, IGeofencerCallbacks callbacks) = 57; - void iglms58(in List var1, in PlacesParams var2, IPlacesCallbacks var3) = 58; + void removeLocationUpdatesWithListener(ILocationListener listener) = 9; + void removeLocationUpdatesWithIntent(in PendingIntent callbackIntent) = 10; + void setMockMode(boolean mockMode) = 11; + void setMockLocation(in Location mockLocation) = 12; + void iglms14(in LatLngBounds var1, int var2, in PlaceFilter var3, in PlacesParams var4, IPlacesCallbacks var5) = 13; + void iglms15(String var1, in PlacesParams var2, IPlacesCallbacks var3) = 14; + void iglms16(in LatLng var1, in PlaceFilter var2, in PlacesParams var3, IPlacesCallbacks var4) = 15; + void iglms17(in PlaceFilter var1, in PlacesParams var2, IPlacesCallbacks var3) = 16; + void iglms18(in PlaceRequest var1, in PlacesParams var2, in PendingIntent var3) = 17; + void iglms19(in PlacesParams var1, in PendingIntent var2) = 18; + void requestLocationUpdatesWithPackage(in LocationRequest request, ILocationListener listener, String packageName) = 19; + Location getLastLocationWithPackage(String packageName) = 20; + void iglms25(in PlaceReport var1, in PlacesParams var2) = 24; + void iglms26(in Location var1, int var2) = 25; + LocationStatus iglms34(String var1) = 33; + void iglms42(String var1, in PlacesParams var2, IPlacesCallbacks var3) = 41; + void iglms46(in UserAddedPlace var1, in PlacesParams var2, IPlacesCallbacks var3) = 45; + void iglms47(in LatLngBounds var1, int var2, String var3, in PlaceFilter var4, in PlacesParams var5, IPlacesCallbacks var6) = 46; + void iglms48(in NearbyAlertRequest var1, in PlacesParams var2, in PendingIntent var3) = 47; + void iglms49(in PlacesParams var1, in PendingIntent var2) = 48; + void iglms50(in UserDataType var1, in LatLngBounds var2, in List var3, in PlacesParams var4, IPlacesCallbacks var5) = 49; + IBinder iglms51() = 50; + void requestLocationUpdatesInternalWithListener(in LocationRequestInternal request, ILocationListener listener) = 51; + void requestLocationUpdatesInternalWithIntent(in LocationRequestInternal request, in PendingIntent callbackIntent) = 52; + IBinder iglms54() = 53; + void iglms55(String var1, in LatLngBounds var2, in AutocompleteFilter var3, in PlacesParams var4, IPlacesCallbacks var5) = 54; + void addGeofences(in GeofencingRequest geofencingRequest, in PendingIntent pendingIntent, IGeofencerCallbacks callbacks) = 56; + void iglms58(in List var1, in PlacesParams var2, IPlacesCallbacks var3) = 57; } From 7c312bfe30a0b927619a8068d1cc9aecf2ab807c Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 12 Jan 2015 00:08:18 +0100 Subject: [PATCH 008/170] Add some common Api classes --- .../gms/common/AbstractGmsServiceBroker.java | 170 ------------------ src/com/google/android/gms/common/Scopes.java | 18 ++ .../google/android/gms/common/api/Scope.java | 73 ++++++++ src/org/microg/gms/{maps => }/Constants.java | 7 +- 4 files changed, 94 insertions(+), 174 deletions(-) delete mode 100644 src/com/google/android/gms/common/AbstractGmsServiceBroker.java create mode 100644 src/com/google/android/gms/common/Scopes.java create mode 100644 src/com/google/android/gms/common/api/Scope.java rename src/org/microg/gms/{maps => }/Constants.java (96%) diff --git a/src/com/google/android/gms/common/AbstractGmsServiceBroker.java b/src/com/google/android/gms/common/AbstractGmsServiceBroker.java deleted file mode 100644 index 758d6faf..00000000 --- a/src/com/google/android/gms/common/AbstractGmsServiceBroker.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (c) 2014 μg Project Team - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.gms.common; - -import android.os.Bundle; -import android.os.IBinder; -import android.os.RemoteException; -import com.google.android.gms.common.internal.IGmsCallbacks; -import com.google.android.gms.common.internal.IGmsServiceBroker; - -public abstract class AbstractGmsServiceBroker extends IGmsServiceBroker.Stub { - @Override - public void getPlusService(IGmsCallbacks callback, int versionCode, String packageName, - String str2, String[] paramArrayOfString, String str3, Bundle params) - throws RemoteException { - throw new IllegalArgumentException("Plus service not supported"); - } - - @Override - public void getPanoramaService(IGmsCallbacks callback, int versionCode, String packageName, - Bundle params) throws RemoteException { - throw new IllegalArgumentException("Panorama service not supported"); - } - - @Override - public void getAppDataSearchService(IGmsCallbacks callback, int versionCode, String packageName) - throws RemoteException { - throw new IllegalArgumentException("App Data Search service not supported"); - } - - @Override - public void getWalletService(IGmsCallbacks callback, int versionCode) throws RemoteException { - throw new IllegalArgumentException("Wallet service not supported"); - } - - @Override - public void getPeopleService(IGmsCallbacks callback, int versionCode, String packageName, - Bundle params) throws RemoteException { - throw new IllegalArgumentException("People service not supported"); - } - - @Override - public void getReportingService(IGmsCallbacks callback, int versionCode, String packageName, - Bundle params) throws RemoteException { - throw new IllegalArgumentException("Reporting service not supported"); - } - - @Override - public void getLocationService(IGmsCallbacks callback, int versionCode, String packageName, - Bundle params) throws RemoteException { - throw new IllegalArgumentException("Location service not supported"); - } - - @Override - public void getGoogleLocationManagerService(IGmsCallbacks callback, int versionCode, - String packageName, Bundle params) throws RemoteException { - throw new IllegalArgumentException("Google Location Manager service not supported"); - } - - @Override - public void getGamesService(IGmsCallbacks callback, int versionCode, String packageName, - String str2, String[] args, String str3, IBinder binder, String str4, Bundle params) - throws RemoteException { - throw new IllegalArgumentException("Games service not supported"); - } - - @Override - public void getAppStateService(IGmsCallbacks callback, int versionCode, String packageName, - String str2, String[] args) throws RemoteException { - throw new IllegalArgumentException("App State service not supported"); - } - - @Override - public void getPlayLogService(IGmsCallbacks callback, int versionCode, String packageName, - Bundle params) throws RemoteException { - throw new IllegalArgumentException("Play Log service not supported"); - } - - @Override - public void getAdMobService(IGmsCallbacks callback, int versionCode, String packageName, - Bundle params) throws RemoteException { - throw new IllegalArgumentException("AdMob service not supported"); - } - - @Override - public void getDroidGuardService(IGmsCallbacks callback, int versionCode, String packageName, - Bundle params) throws RemoteException { - throw new IllegalArgumentException("DroidGuard service not supported"); - } - - @Override - public void getLockboxService(IGmsCallbacks callback, int versionCode, String packageName, - Bundle params) throws RemoteException { - throw new IllegalArgumentException("Lockbox service not supported"); - } - - @Override - public void getCastMirroringService(IGmsCallbacks callback, int versionCode, String packageName, - Bundle params) throws RemoteException { - throw new IllegalArgumentException("Cast Mirroring service not supported"); - } - - @Override - public void getNetworkQualityService(IGmsCallbacks callback, int versionCode, - String packageName, Bundle params) throws RemoteException { - throw new IllegalArgumentException("Network Quality service not supported"); - } - - @Override - public void getGoogleIdentityService(IGmsCallbacks callback, int versionCode, - String packageName, Bundle params) throws RemoteException { - throw new IllegalArgumentException("Google Identity service not supported"); - } - - @Override - public void getGoogleFeedbackService(IGmsCallbacks callback, int versionCode, - String packageName, Bundle params) throws RemoteException { - throw new IllegalArgumentException("Google Feedback service not supported"); - } - - @Override - public void getCastService(IGmsCallbacks callback, int versionCode, String packageName, - IBinder binder, Bundle params) throws RemoteException { - throw new IllegalArgumentException("Cast service not supported"); - } - - @Override - public void getDriveService(IGmsCallbacks callback, int versionCode, String packageName, - String[] args, String str2, Bundle params) throws RemoteException { - throw new IllegalArgumentException("Drive service not supported"); - } - - @Override - public void getLightweightAppDataSearchService(IGmsCallbacks callback, int versionCode, - String packageName) throws RemoteException { - throw new IllegalArgumentException("Lightweight App Data Search service not supported"); - } - - @Override - public void getSearchAdministrationService(IGmsCallbacks callback, int versionCode, - String packageName) throws RemoteException { - throw new IllegalArgumentException("Search Administration service not supported"); - } - - @Override - public void getAutoBackupService(IGmsCallbacks callback, int versionCode, String packageName, - Bundle params) throws RemoteException { - throw new IllegalArgumentException("Auto Backup service not supported"); - } - - @Override - public void getAddressService(IGmsCallbacks callback, int versionCode, String packageName) - throws RemoteException { - throw new IllegalArgumentException("Address service not supported"); - } -} diff --git a/src/com/google/android/gms/common/Scopes.java b/src/com/google/android/gms/common/Scopes.java new file mode 100644 index 00000000..bbc0f55f --- /dev/null +++ b/src/com/google/android/gms/common/Scopes.java @@ -0,0 +1,18 @@ +package com.google.android.gms.common; + +public class Scopes { + public static final String PROFILE = "profile"; + public static final String PLUS_LOGIN = "https://www.googleapis.com/auth/plus.login"; + public static final String PLUS_ME = "https://www.googleapis.com/auth/plus.me"; + public static final String GAMES = "https://www.googleapis.com/auth/games"; + public static final String CLOUD_SAVE = "https://www.googleapis.com/auth/datastoremobile"; + public static final String APP_STATE = "https://www.googleapis.com/auth/appstate"; + public static final String DRIVE_FILE = "https://www.googleapis.com/auth/drive.file"; + public static final String DRIVE_APPFOLDER = "https://www.googleapis.com/auth/drive.appdata"; + public static final String FITNESS_ACTIVITY_READ = "https://www.googleapis.com/auth/fitness.activity.read"; + public static final String FITNESS_ACTIVITY_READ_WRITE = "https://www.googleapis.com/auth/fitness.activity.write"; + public static final String FITNESS_LOCATION_READ = "https://www.googleapis.com/auth/fitness.location.read"; + public static final String FITNESS_LOCATION_READ_WRITE = "https://www.googleapis.com/auth/fitness.location.write"; + public static final String FITNESS_BODY_READ = "https://www.googleapis.com/auth/fitness.body.read"; + public static final String FITNESS_BODY_READ_WRITE = "https://www.googleapis.com/auth/fitness.body.write"; +} diff --git a/src/com/google/android/gms/common/api/Scope.java b/src/com/google/android/gms/common/api/Scope.java new file mode 100644 index 00000000..21ad3321 --- /dev/null +++ b/src/com/google/android/gms/common/api/Scope.java @@ -0,0 +1,73 @@ +package com.google.android.gms.common.api; + +import android.os.Parcel; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParcelable; + +/** + * Describes an OAuth 2.0 scope to request. This has security implications for the user, and + * requesting additional scopes will result in authorization dialogs. + */ +public class Scope implements SafeParcelable { + private final int versionCode; + private final String scopeUri; + + private Scope() { + versionCode = -1; + scopeUri = null; + } + + private Scope(Parcel in) { + this(); + SafeParcelUtil.readObject(this, in); + } + + /** + * Creates a new scope with the given URI. + */ + public Scope(String scopeUri) { + versionCode = 1; + this.scopeUri = scopeUri; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public boolean equals(Object o) { + return this == o || o instanceof Scope && scopeUri.equals(((Scope) o).scopeUri); + } + + public String getScopeUri() { + return scopeUri; + } + + @Override + public int hashCode() { + return scopeUri.hashCode(); + } + + @Override + public String toString() { + return scopeUri; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + SafeParcelUtil.writeObject(this, out, flags); + } + + public static final Creator CREATOR = new Creator() { + @Override + public Scope createFromParcel(Parcel parcel) { + return new Scope(parcel); + } + + @Override + public Scope[] newArray(int i) { + return new Scope[i]; + } + }; +} diff --git a/src/org/microg/gms/maps/Constants.java b/src/org/microg/gms/Constants.java similarity index 96% rename from src/org/microg/gms/maps/Constants.java rename to src/org/microg/gms/Constants.java index 7209e500..9ff2f907 100644 --- a/src/org/microg/gms/maps/Constants.java +++ b/src/org/microg/gms/Constants.java @@ -1,4 +1,4 @@ -package org.microg.gms.maps; +package org.microg.gms; public class Constants { /** @@ -6,6 +6,8 @@ public class Constants { * Does not necessarily mean anything. */ public static final int MAX_REFERENCE_VERSION = 6599436; + public static final String ACTION_GMS_LOCATION_MANAGER_SERVICE_START = "com.google.android.location.internal.GoogleLocationManagerService.START"; + public static final String KEY_MOCK_LOCATION = "mockLocation"; /** * No base map tiles. @@ -31,7 +33,4 @@ public class Constants { * Satellite maps with a transparent layer of major streets. */ public static final int MAP_TYPE_HYBRID = 4; - - public static final String ACTION_GMS_LOCATION_MANAGER_SERVICE_START = "com.google.android.location.internal.GoogleLocationManagerService.START"; - public static final String KEY_MOCK_LOCATION = "mockLocation"; } From 95fabdd877cea17a7ad25d05e875c883ede2fb99 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 12 Jan 2015 11:02:10 +0100 Subject: [PATCH 009/170] Migrate to AutoSafeParcelable --- .../android/gms/common/api/AccountInfo.java | 7 ++++ .../google/android/gms/common/api/Scope.java | 38 ++++-------------- .../android/gms/common/data/DataHolder.java | 31 ++------------- .../google/android/gms/location/Geofence.java | 30 ++------------ .../gms/location/GeofencingRequest.java | 34 ++-------------- .../android/gms/location/LocationRequest.java | 35 ++--------------- .../android/gms/location/LocationStatus.java | 31 ++------------- .../internal/LocationRequestInternal.java | 33 ++-------------- .../location/places/AutocompleteFilter.java | 36 +++-------------- .../location/places/NearbyAlertRequest.java | 32 ++------------- .../gms/location/places/PlaceFilter.java | 32 ++------------- .../gms/location/places/PlaceReport.java | 34 ++-------------- .../gms/location/places/PlaceRequest.java | 32 ++------------- .../gms/location/places/UserAddedPlace.java | 39 +++---------------- .../gms/location/places/UserDataType.java | 31 ++------------- .../places/internal/PlacesParams.java | 35 ++--------------- .../android/gms/maps/GoogleMapOptions.java | 30 ++------------ .../gms/maps/model/CameraPosition.java | 35 ++--------------- .../android/gms/maps/model/CircleOptions.java | 30 ++------------ .../gms/maps/model/GroundOverlayOptions.java | 31 ++------------- .../google/android/gms/maps/model/LatLng.java | 35 +++-------------- .../android/gms/maps/model/LatLngBounds.java | 33 ++-------------- .../android/gms/maps/model/MarkerOptions.java | 30 ++------------ .../gms/maps/model/PolygonOptions.java | 30 ++------------ .../gms/maps/model/PolylineOptions.java | 30 ++------------ .../google/android/gms/maps/model/Tile.java | 33 ++-------------- .../gms/maps/model/TileOverlayOptions.java | 30 ++------------ .../android/gms/maps/model/VisibleRegion.java | 33 +++------------- src/org/microg/gms/Constants.java | 1 + 29 files changed, 112 insertions(+), 779 deletions(-) create mode 100644 src/com/google/android/gms/common/api/AccountInfo.java diff --git a/src/com/google/android/gms/common/api/AccountInfo.java b/src/com/google/android/gms/common/api/AccountInfo.java new file mode 100644 index 00000000..e482b9fd --- /dev/null +++ b/src/com/google/android/gms/common/api/AccountInfo.java @@ -0,0 +1,7 @@ +package com.google.android.gms.common.api; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class AccountInfo extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator<>(AccountInfo.class); +} diff --git a/src/com/google/android/gms/common/api/Scope.java b/src/com/google/android/gms/common/api/Scope.java index 21ad3321..ab9a05a1 100644 --- a/src/com/google/android/gms/common/api/Scope.java +++ b/src/com/google/android/gms/common/api/Scope.java @@ -1,15 +1,16 @@ package com.google.android.gms.common.api; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; /** - * Describes an OAuth 2.0 scope to request. This has security implications for the user, and + * Describes an OAuth 2.0 scope to request. This has security implications for the user, and * requesting additional scopes will result in authorization dialogs. */ -public class Scope implements SafeParcelable { +public class Scope extends AutoSafeParcelable { + @SafeParceled(1) private final int versionCode; + @SafeParceled(2) private final String scopeUri; private Scope() { @@ -17,11 +18,6 @@ public class Scope implements SafeParcelable { scopeUri = null; } - private Scope(Parcel in) { - this(); - SafeParcelUtil.readObject(this, in); - } - /** * Creates a new scope with the given URI. */ @@ -30,11 +26,6 @@ public class Scope implements SafeParcelable { this.scopeUri = scopeUri; } - @Override - public int describeContents() { - return 0; - } - @Override public boolean equals(Object o) { return this == o || o instanceof Scope && scopeUri.equals(((Scope) o).scopeUri); @@ -54,20 +45,5 @@ public class Scope implements SafeParcelable { return scopeUri; } - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static final Creator CREATOR = new Creator() { - @Override - public Scope createFromParcel(Parcel parcel) { - return new Scope(parcel); - } - - @Override - public Scope[] newArray(int i) { - return new Scope[i]; - } - }; + public static final Creator CREATOR = new AutoCreator<>(Scope.class); } diff --git a/src/com/google/android/gms/common/data/DataHolder.java b/src/com/google/android/gms/common/data/DataHolder.java index 2cb2885c..ef5d89ef 100644 --- a/src/com/google/android/gms/common/data/DataHolder.java +++ b/src/com/google/android/gms/common/data/DataHolder.java @@ -1,36 +1,11 @@ package com.google.android.gms.common.data; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; /** * TODO: usage */ -public class DataHolder implements SafeParcelable { - private DataHolder(Parcel in) { - SafeParcelUtil.readObject(this, in); - } +public class DataHolder extends AutoSafeParcelable { - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static final Creator CREATOR = new Creator() { - @Override - public DataHolder createFromParcel(Parcel parcel) { - return new DataHolder(parcel); - } - - @Override - public DataHolder[] newArray(int i) { - return new DataHolder[i]; - } - }; + public static final Creator CREATOR = new AutoCreator<>(DataHolder.class); } diff --git a/src/com/google/android/gms/location/Geofence.java b/src/com/google/android/gms/location/Geofence.java index 0c65cfa5..c47a90d8 100644 --- a/src/com/google/android/gms/location/Geofence.java +++ b/src/com/google/android/gms/location/Geofence.java @@ -16,33 +16,9 @@ package com.google.android.gms.location; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; -public class Geofence implements SafeParcelable { +public class Geofence extends AutoSafeParcelable { - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - SafeParcelUtil.writeObject(this, dest, flags); - } - - - public static Creator CREATOR = new Creator() { - @Override - public Geofence createFromParcel(Parcel source) { - return new Geofence(); - } - - @Override - public Geofence[] newArray(int size) { - return new Geofence[size]; - } - }; + public static Creator CREATOR = new AutoCreator<>(Geofence.class); } diff --git a/src/com/google/android/gms/location/GeofencingRequest.java b/src/com/google/android/gms/location/GeofencingRequest.java index f8167e78..a36d29e6 100644 --- a/src/com/google/android/gms/location/GeofencingRequest.java +++ b/src/com/google/android/gms/location/GeofencingRequest.java @@ -1,38 +1,12 @@ package com.google.android.gms.location; -import android.os.Parcel; -import android.os.Parcelable; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; /** * TODO: usage */ -public class GeofencingRequest implements SafeParcelable { +public class GeofencingRequest extends AutoSafeParcelable { - private GeofencingRequest(Parcel in) { - SafeParcelUtil.readObject(this, in); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { - @Override - public GeofencingRequest createFromParcel(Parcel parcel) { - return new GeofencingRequest(parcel); - } - - @Override - public GeofencingRequest[] newArray(int i) { - return new GeofencingRequest[i]; - } - }; + public static final Creator CREATOR = new AutoCreator<>( + GeofencingRequest.class); } diff --git a/src/com/google/android/gms/location/LocationRequest.java b/src/com/google/android/gms/location/LocationRequest.java index dfc46811..a1105821 100644 --- a/src/com/google/android/gms/location/LocationRequest.java +++ b/src/com/google/android/gms/location/LocationRequest.java @@ -1,9 +1,7 @@ package com.google.android.gms.location; -import android.os.Parcel; import android.os.SystemClock; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; import java.util.Arrays; @@ -55,10 +53,8 @@ import java.util.Arrays; *

* All location requests are considered hints, and you may receive locations that are more/less * accurate, and faster/slower than requested. - *

- * TODO: Works on wire, but methods not yet implemented. */ -public class LocationRequest implements SafeParcelable { +public class LocationRequest extends AutoSafeParcelable { /** * Used with {@link #setPriority(int)} to request "block" level accuracy. @@ -120,11 +116,6 @@ public class LocationRequest implements SafeParcelable { this.maxWaitTime = 0; } - public LocationRequest(Parcel in) { - this(); - SafeParcelUtil.readObject(this, in); - } - /** * Create a location request with default parameters. *

@@ -137,11 +128,6 @@ public class LocationRequest implements SafeParcelable { return new LocationRequest(); } - @Override - public int describeContents() { - return 0; - } - /** * Get the request expiration time, in milliseconds since boot. *

@@ -426,20 +412,5 @@ public class LocationRequest implements SafeParcelable { return super.toString(); } - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static final Creator CREATOR = new Creator() { - @Override - public LocationRequest createFromParcel(Parcel parcel) { - return new LocationRequest(parcel); - } - - @Override - public LocationRequest[] newArray(int i) { - return new LocationRequest[i]; - } - }; + public static final Creator CREATOR = new AutoCreator<>(LocationRequest.class); } diff --git a/src/com/google/android/gms/location/LocationStatus.java b/src/com/google/android/gms/location/LocationStatus.java index 4009e57f..e60c531f 100644 --- a/src/com/google/android/gms/location/LocationStatus.java +++ b/src/com/google/android/gms/location/LocationStatus.java @@ -1,13 +1,11 @@ package com.google.android.gms.location; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; import java.util.Arrays; -public class LocationStatus implements SafeParcelable { +public class LocationStatus extends AutoSafeParcelable { public static final int STATUS_SUCCESSFUL = 0; public static final int STATUS_UNKNOWN = 1; public static final int STATUS_TIMED_OUT_ON_SCAN = 2; @@ -26,14 +24,8 @@ public class LocationStatus implements SafeParcelable { @SafeParceled(3) long elapsedRealtimeNanos; - private LocationStatus(Parcel in) { + private LocationStatus() { versionCode = 1; - SafeParcelUtil.readObject(this, in); - } - - @Override - public int describeContents() { - return 0; } @Override @@ -84,20 +76,5 @@ public class LocationStatus implements SafeParcelable { } } - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static final Creator CREATOR = new Creator() { - @Override - public LocationStatus createFromParcel(Parcel parcel) { - return new LocationStatus(parcel); - } - - @Override - public LocationStatus[] newArray(int i) { - return new LocationStatus[i]; - } - }; + public static final Creator CREATOR = new AutoCreator<>(LocationStatus.class); } diff --git a/src/com/google/android/gms/location/internal/LocationRequestInternal.java b/src/com/google/android/gms/location/internal/LocationRequestInternal.java index 8ae27697..3ab5568d 100644 --- a/src/com/google/android/gms/location/internal/LocationRequestInternal.java +++ b/src/com/google/android/gms/location/internal/LocationRequestInternal.java @@ -1,37 +1,12 @@ package com.google.android.gms.location.internal; -import android.os.Parcel; -import android.os.Parcelable; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; /** * TODO: usage */ -public class LocationRequestInternal implements SafeParcelable { - private LocationRequestInternal(Parcel in) { - SafeParcelUtil.readObject(this, in); - } +public class LocationRequestInternal extends AutoSafeParcelable { - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { - @Override - public LocationRequestInternal createFromParcel(Parcel parcel) { - return new LocationRequestInternal(parcel); - } - - @Override - public LocationRequestInternal[] newArray(int i) { - return new LocationRequestInternal[i]; - } - }; + public static final Creator CREATOR = new AutoCreator<>( + LocationRequestInternal.class); } diff --git a/src/com/google/android/gms/location/places/AutocompleteFilter.java b/src/com/google/android/gms/location/places/AutocompleteFilter.java index 86847d4e..23ffa4d4 100644 --- a/src/com/google/android/gms/location/places/AutocompleteFilter.java +++ b/src/com/google/android/gms/location/places/AutocompleteFilter.java @@ -1,15 +1,13 @@ package com.google.android.gms.location.places; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; /** * TODO usage */ -public class AutocompleteFilter implements SafeParcelable { - +public class AutocompleteFilter extends AutoSafeParcelable { + @SafeParceled(1000) private final int versionCode; @@ -17,30 +15,6 @@ public class AutocompleteFilter implements SafeParcelable { this.versionCode = 1; } - private AutocompleteFilter(Parcel in) { - this(); - SafeParcelUtil.readObject(this, in); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static final Creator CREATOR = new Creator() { - @Override - public AutocompleteFilter createFromParcel(Parcel parcel) { - return new AutocompleteFilter(parcel); - } - - @Override - public AutocompleteFilter[] newArray(int i) { - return new AutocompleteFilter[i]; - } - }; + public static final Creator CREATOR = new AutoCreator<>( + AutocompleteFilter.class); } diff --git a/src/com/google/android/gms/location/places/NearbyAlertRequest.java b/src/com/google/android/gms/location/places/NearbyAlertRequest.java index 0650e462..94c415a5 100644 --- a/src/com/google/android/gms/location/places/NearbyAlertRequest.java +++ b/src/com/google/android/gms/location/places/NearbyAlertRequest.java @@ -1,36 +1,12 @@ package com.google.android.gms.location.places; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; /** * TODO: usage */ -public class NearbyAlertRequest implements SafeParcelable { - private NearbyAlertRequest(Parcel in) { - SafeParcelUtil.readObject(this, in); - } +public class NearbyAlertRequest extends AutoSafeParcelable { - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static final Creator CREATOR = new Creator() { - @Override - public NearbyAlertRequest createFromParcel(Parcel parcel) { - return new NearbyAlertRequest(parcel); - } - - @Override - public NearbyAlertRequest[] newArray(int i) { - return new NearbyAlertRequest[i]; - } - }; + public static final Creator CREATOR = new AutoCreator<>( + NearbyAlertRequest.class); } diff --git a/src/com/google/android/gms/location/places/PlaceFilter.java b/src/com/google/android/gms/location/places/PlaceFilter.java index d13849b8..2bbc41f6 100644 --- a/src/com/google/android/gms/location/places/PlaceFilter.java +++ b/src/com/google/android/gms/location/places/PlaceFilter.java @@ -1,37 +1,11 @@ package com.google.android.gms.location.places; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; /** * TODO: usage */ -public class PlaceFilter implements SafeParcelable { +public class PlaceFilter extends AutoSafeParcelable { - private PlaceFilter(Parcel in) { - SafeParcelUtil.readObject(this, in); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static final Creator CREATOR = new Creator() { - @Override - public PlaceFilter createFromParcel(Parcel parcel) { - return new PlaceFilter(parcel); - } - - @Override - public PlaceFilter[] newArray(int i) { - return new PlaceFilter[i]; - } - }; + public static final Creator CREATOR = new AutoCreator<>(PlaceFilter.class); } diff --git a/src/com/google/android/gms/location/places/PlaceReport.java b/src/com/google/android/gms/location/places/PlaceReport.java index 8fd57f86..38d39007 100644 --- a/src/com/google/android/gms/location/places/PlaceReport.java +++ b/src/com/google/android/gms/location/places/PlaceReport.java @@ -1,38 +1,10 @@ package com.google.android.gms.location.places; -import android.os.Parcel; -import android.os.Parcelable; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; /** * TODO: usage */ -public class PlaceReport implements SafeParcelable { - - private PlaceReport(Parcel in) { - SafeParcelUtil.readObject(this, in); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { - @Override - public PlaceReport createFromParcel(Parcel parcel) { - return new PlaceReport(parcel); - } - - @Override - public PlaceReport[] newArray(int i) { - return new PlaceReport[i]; - } - }; +public class PlaceReport extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator<>(PlaceReport.class); } diff --git a/src/com/google/android/gms/location/places/PlaceRequest.java b/src/com/google/android/gms/location/places/PlaceRequest.java index 0960bdcb..ad46244e 100644 --- a/src/com/google/android/gms/location/places/PlaceRequest.java +++ b/src/com/google/android/gms/location/places/PlaceRequest.java @@ -1,36 +1,10 @@ package com.google.android.gms.location.places; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; /** * TODO: usage */ -public class PlaceRequest implements SafeParcelable { - private PlaceRequest(Parcel in) { - SafeParcelUtil.readObject(this, in); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static final Creator CREATOR = new Creator() { - @Override - public PlaceRequest createFromParcel(Parcel parcel) { - return new PlaceRequest(parcel); - } - - @Override - public PlaceRequest[] newArray(int i) { - return new PlaceRequest[i]; - } - }; +public class PlaceRequest extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator<>(PlaceRequest.class); } diff --git a/src/com/google/android/gms/location/places/UserAddedPlace.java b/src/com/google/android/gms/location/places/UserAddedPlace.java index 5f83f528..534dac3e 100644 --- a/src/com/google/android/gms/location/places/UserAddedPlace.java +++ b/src/com/google/android/gms/location/places/UserAddedPlace.java @@ -1,46 +1,19 @@ package com.google.android.gms.location.places; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; /** * TODO: usage */ -public class UserAddedPlace implements SafeParcelable { - +public class UserAddedPlace extends AutoSafeParcelable { + @SafeParceled(1000) private final int versionCode; - + private UserAddedPlace() { - versionCode = -1; + versionCode = 1; } - private UserAddedPlace(Parcel in) { - this(); - SafeParcelUtil.readObject(this, in); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static final Creator CREATOR = new Creator() { - @Override - public UserAddedPlace createFromParcel(Parcel parcel) { - return new UserAddedPlace(parcel); - } - - @Override - public UserAddedPlace[] newArray(int i) { - return new UserAddedPlace[i]; - } - }; + public static final Creator CREATOR = new AutoCreator<>(UserAddedPlace.class); } diff --git a/src/com/google/android/gms/location/places/UserDataType.java b/src/com/google/android/gms/location/places/UserDataType.java index 858d3f0c..7ac8579a 100644 --- a/src/com/google/android/gms/location/places/UserDataType.java +++ b/src/com/google/android/gms/location/places/UserDataType.java @@ -1,36 +1,11 @@ package com.google.android.gms.location.places; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; /** * TODO: usage */ -public class UserDataType implements SafeParcelable { - private UserDataType(Parcel in) { - SafeParcelUtil.readObject(this, in); - } +public class UserDataType extends AutoSafeParcelable { - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static final Creator CREATOR = new Creator() { - @Override - public UserDataType createFromParcel(Parcel parcel) { - return new UserDataType(parcel); - } - - @Override - public UserDataType[] newArray(int i) { - return new UserDataType[i]; - } - }; + public static final Creator CREATOR = new AutoCreator<>(UserDataType.class); } diff --git a/src/com/google/android/gms/location/places/internal/PlacesParams.java b/src/com/google/android/gms/location/places/internal/PlacesParams.java index 956c99da..ad739c40 100644 --- a/src/com/google/android/gms/location/places/internal/PlacesParams.java +++ b/src/com/google/android/gms/location/places/internal/PlacesParams.java @@ -1,11 +1,9 @@ package com.google.android.gms.location.places.internal; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; -public class PlacesParams implements SafeParcelable { +public class PlacesParams extends AutoSafeParcelable { @SafeParceled(1000) private final int versionCode; @@ -19,34 +17,9 @@ public class PlacesParams implements SafeParcelable { public final String gCoreClientName; private PlacesParams() { - versionCode = -1; + versionCode = 1; clientPackageName = locale = accountName = gCoreClientName = null; } - private PlacesParams(Parcel in) { - this(); - SafeParcelUtil.readObject(this, in); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static final Creator CREATOR = new Creator() { - @Override - public PlacesParams createFromParcel(Parcel parcel) { - return new PlacesParams(parcel); - } - - @Override - public PlacesParams[] newArray(int i) { - return new PlacesParams[i]; - } - }; + public static final Creator CREATOR = new AutoCreator<>(PlacesParams.class); } diff --git a/src/com/google/android/gms/maps/GoogleMapOptions.java b/src/com/google/android/gms/maps/GoogleMapOptions.java index 8219b155..19e62bba 100644 --- a/src/com/google/android/gms/maps/GoogleMapOptions.java +++ b/src/com/google/android/gms/maps/GoogleMapOptions.java @@ -16,13 +16,11 @@ package com.google.android.gms.maps; -import android.os.Parcel; import com.google.android.gms.maps.model.CameraPosition; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; -public final class GoogleMapOptions implements SafeParcelable { +public final class GoogleMapOptions extends AutoSafeParcelable { @SafeParceled(1) private int versionCode; @SafeParceled(2) @@ -46,23 +44,9 @@ public final class GoogleMapOptions implements SafeParcelable { @SafeParceled(11) private boolean rotateGesturesEnabled; - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - SafeParcelUtil.writeObject(this, dest, flags); - } - public GoogleMapOptions() { } - private GoogleMapOptions(Parcel in) { - SafeParcelUtil.readObject(this, in); - } - public int getMapType() { return mapType; } @@ -95,13 +79,5 @@ public final class GoogleMapOptions implements SafeParcelable { return rotateGesturesEnabled; } - public static Creator CREATOR = new Creator() { - public GoogleMapOptions createFromParcel(Parcel source) { - return new GoogleMapOptions(source); - } - - public GoogleMapOptions[] newArray(int size) { - return new GoogleMapOptions[size]; - } - }; + public static Creator CREATOR = new AutoCreator<>(GoogleMapOptions.class); } diff --git a/src/com/google/android/gms/maps/model/CameraPosition.java b/src/com/google/android/gms/maps/model/CameraPosition.java index f9bb0bed..c989ed47 100644 --- a/src/com/google/android/gms/maps/model/CameraPosition.java +++ b/src/com/google/android/gms/maps/model/CameraPosition.java @@ -17,10 +17,8 @@ package com.google.android.gms.maps.model; import android.content.Context; -import android.os.Parcel; import android.util.AttributeSet; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; import java.util.Arrays; @@ -28,7 +26,7 @@ import java.util.Arrays; /** * An immutable class that aggregates all camera position parameters. */ -public final class CameraPosition implements SafeParcelable { +public final class CameraPosition extends AutoSafeParcelable { @SafeParceled(1) private final int versionCode; /** @@ -60,17 +58,10 @@ public final class CameraPosition implements SafeParcelable { */ private CameraPosition() { target = null; - versionCode = -1; + versionCode = 1; zoom = tilt = bearing = 0; } - private CameraPosition(Parcel in) { - this(); - SafeParcelUtil.readObject(this, in); - if (target == null) - throw new NullPointerException("Target must not be null"); - } - /** * Constructs a CameraPosition. * @@ -126,11 +117,6 @@ public final class CameraPosition implements SafeParcelable { return null; // TODO } - @Override - public int describeContents() { - return 0; - } - @Override public boolean equals(Object o) { if (this == o) @@ -181,20 +167,7 @@ public final class CameraPosition implements SafeParcelable { '}'; } - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static Creator CREATOR = new Creator() { - public CameraPosition createFromParcel(Parcel source) { - return new CameraPosition(source); - } - - public CameraPosition[] newArray(int size) { - return new CameraPosition[size]; - } - }; + public static Creator CREATOR = new AutoCreator<>(CameraPosition.class); /** * Builds camera position. diff --git a/src/com/google/android/gms/maps/model/CircleOptions.java b/src/com/google/android/gms/maps/model/CircleOptions.java index 82f2af58..4002c6b7 100644 --- a/src/com/google/android/gms/maps/model/CircleOptions.java +++ b/src/com/google/android/gms/maps/model/CircleOptions.java @@ -17,15 +17,13 @@ package com.google.android.gms.maps.model; import android.graphics.Color; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; /** * Defines options for a Circle. */ -public class CircleOptions implements SafeParcelable { +public class CircleOptions extends AutoSafeParcelable { @SafeParceled(1) private int versionCode; @SafeParceled(2) @@ -49,15 +47,6 @@ public class CircleOptions implements SafeParcelable { public CircleOptions() { } - private CircleOptions(Parcel in) { - SafeParcelUtil.readObject(this, in); - } - - @Override - public int describeContents() { - return 0; - } - /** * Sets the center using a {@link LatLng}. *

@@ -210,11 +199,6 @@ public class CircleOptions implements SafeParcelable { return this; } - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - /** * Sets the zIndex. *

@@ -230,13 +214,5 @@ public class CircleOptions implements SafeParcelable { return this; } - public static Creator CREATOR = new Creator() { - public CircleOptions createFromParcel(Parcel source) { - return new CircleOptions(source); - } - - public CircleOptions[] newArray(int size) { - return new CircleOptions[size]; - } - }; + public static Creator CREATOR = new AutoCreator<>(CircleOptions.class); } diff --git a/src/com/google/android/gms/maps/model/GroundOverlayOptions.java b/src/com/google/android/gms/maps/model/GroundOverlayOptions.java index 3cf9cfb4..12ede558 100644 --- a/src/com/google/android/gms/maps/model/GroundOverlayOptions.java +++ b/src/com/google/android/gms/maps/model/GroundOverlayOptions.java @@ -17,16 +17,14 @@ package com.google.android.gms.maps.model; import android.os.IBinder; -import android.os.Parcel; import com.google.android.gms.dynamic.ObjectWrapper; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; /** * Defines options for a ground overlay. */ -public class GroundOverlayOptions implements SafeParcelable { +public class GroundOverlayOptions extends AutoSafeParcelable { /** * Flag for when no dimension is specified for the height. */ @@ -64,10 +62,6 @@ public class GroundOverlayOptions implements SafeParcelable { public GroundOverlayOptions() { } - private GroundOverlayOptions(Parcel in) { - SafeParcelUtil.readObject(this, in); - } - /** * Specifies the anchor to be at a particular point in the image. *

@@ -104,11 +98,6 @@ public class GroundOverlayOptions implements SafeParcelable { return this; } - @Override - public int describeContents() { - return 0; - } - /** * Horizontal distance, normalized to [0, 1], of the anchor from the left edge. * @@ -333,11 +322,6 @@ public class GroundOverlayOptions implements SafeParcelable { return this; } - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - /** * Specifies the ground overlay's zIndex, i.e., the order in which it will be drawn. See the * documentation at the top of this class for more information about zIndex. @@ -349,13 +333,6 @@ public class GroundOverlayOptions implements SafeParcelable { return this; } - public static Creator CREATOR = new Creator() { - public GroundOverlayOptions createFromParcel(Parcel source) { - return new GroundOverlayOptions(source); - } - - public GroundOverlayOptions[] newArray(int size) { - return new GroundOverlayOptions[size]; - } - }; + public static Creator CREATOR = new AutoCreator<>( + GroundOverlayOptions.class); } diff --git a/src/com/google/android/gms/maps/model/LatLng.java b/src/com/google/android/gms/maps/model/LatLng.java index 94a25340..2606b533 100644 --- a/src/com/google/android/gms/maps/model/LatLng.java +++ b/src/com/google/android/gms/maps/model/LatLng.java @@ -16,15 +16,13 @@ package com.google.android.gms.maps.model; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; /** * An immutable class representing a pair of latitude and longitude coordinates, stored as degrees. */ -public final class LatLng implements SafeParcelable { +public final class LatLng extends AutoSafeParcelable { @SafeParceled(1) private final int versionCode; /** @@ -43,15 +41,10 @@ public final class LatLng implements SafeParcelable { * In fact, those are replaced by their real values later using SafeParcelUtil. */ private LatLng() { - versionCode = -1; + versionCode = 1; latitude = longitude = 0; } - private LatLng(Parcel in) { - this(); - SafeParcelUtil.readObject(this, in); - } - /** * Constructs a LatLng with the given latitude and longitude, measured in degrees. * @@ -106,24 +99,6 @@ public final class LatLng implements SafeParcelable { public String toString() { return "lat/lng: (" + latitude + "," + longitude + ")"; } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static Creator CREATOR = new Creator() { - public LatLng createFromParcel(Parcel source) { - return new LatLng(source); - } - - public LatLng[] newArray(int size) { - return new LatLng[size]; - } - }; + + public static Creator CREATOR = new AutoCreator<>(LatLng.class); } diff --git a/src/com/google/android/gms/maps/model/LatLngBounds.java b/src/com/google/android/gms/maps/model/LatLngBounds.java index ac849e37..5a6653f5 100644 --- a/src/com/google/android/gms/maps/model/LatLngBounds.java +++ b/src/com/google/android/gms/maps/model/LatLngBounds.java @@ -16,9 +16,7 @@ package com.google.android.gms.maps.model; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; import java.util.Arrays; @@ -26,7 +24,7 @@ import java.util.Arrays; /** * An immutable class representing a latitude/longitude aligned rectangle. */ -public final class LatLngBounds implements SafeParcelable { +public final class LatLngBounds extends AutoSafeParcelable { @SafeParceled(1) private final int versionCode; /** @@ -45,15 +43,10 @@ public final class LatLngBounds implements SafeParcelable { * In fact, those are replaced by their real values later using SafeParcelUtil. */ private LatLngBounds() { - this.versionCode = -1; + this.versionCode = 1; southwest = northeast = null; } - private LatLngBounds(Parcel in) { - this(); - SafeParcelUtil.readObject(this, in); - } - /** * Creates a new bounds based on a southwest and a northeast corner. *

@@ -110,11 +103,6 @@ public final class LatLngBounds implements SafeParcelable { ); } - @Override - public int describeContents() { - return 0; - } - @Override public boolean equals(Object o) { if (this == o) @@ -190,20 +178,7 @@ public final class LatLngBounds implements SafeParcelable { '}'; } - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static Creator CREATOR = new Creator() { - public LatLngBounds createFromParcel(Parcel source) { - return new LatLngBounds(source); - } - - public LatLngBounds[] newArray(int size) { - return new LatLngBounds[size]; - } - }; + public static Creator CREATOR = new AutoCreator<>(LatLngBounds.class); /** * This is a builder that is able to create a minimum bound based on a set of LatLng points. diff --git a/src/com/google/android/gms/maps/model/MarkerOptions.java b/src/com/google/android/gms/maps/model/MarkerOptions.java index b2683731..4a076ac0 100644 --- a/src/com/google/android/gms/maps/model/MarkerOptions.java +++ b/src/com/google/android/gms/maps/model/MarkerOptions.java @@ -17,13 +17,11 @@ package com.google.android.gms.maps.model; import android.os.IBinder; -import android.os.Parcel; import com.google.android.gms.dynamic.ObjectWrapper; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; -public class MarkerOptions implements SafeParcelable { +public class MarkerOptions extends AutoSafeParcelable { @SafeParceled(1) private int versionCode = 1; @@ -64,15 +62,6 @@ public class MarkerOptions implements SafeParcelable { public MarkerOptions() { } - private MarkerOptions(Parcel in) { - SafeParcelUtil.readObject(this, in); - } - - @Override - public int describeContents() { - return 0; - } - /** * Sets the alpha (opacity) of the marker. This is a value from 0 to 1, where 0 means the * marker is completely transparent and 1 means the marker is completely opaque. @@ -334,18 +323,5 @@ public class MarkerOptions implements SafeParcelable { return this; } - @Override - public void writeToParcel(Parcel dest, int flags) { - SafeParcelUtil.writeObject(this, dest, flags); - } - - public static Creator CREATOR = new Creator() { - public MarkerOptions createFromParcel(Parcel source) { - return new MarkerOptions(source); - } - - public MarkerOptions[] newArray(int size) { - return new MarkerOptions[size]; - } - }; + public static Creator CREATOR = new AutoCreator<>(MarkerOptions.class); } diff --git a/src/com/google/android/gms/maps/model/PolygonOptions.java b/src/com/google/android/gms/maps/model/PolygonOptions.java index 8898f11e..b74d2ea0 100644 --- a/src/com/google/android/gms/maps/model/PolygonOptions.java +++ b/src/com/google/android/gms/maps/model/PolygonOptions.java @@ -16,39 +16,15 @@ package com.google.android.gms.maps.model; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; /** * Defines options for a polygon. * TODO */ -public class PolygonOptions implements SafeParcelable { - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - SafeParcelUtil.writeObject(this, dest, flags); - } - +public class PolygonOptions extends AutoSafeParcelable { public PolygonOptions() { } - private PolygonOptions(Parcel in) { - SafeParcelUtil.readObject(this, in); - } - - public static Creator CREATOR = new Creator() { - public PolygonOptions createFromParcel(Parcel source) { - return new PolygonOptions(source); - } - - public PolygonOptions[] newArray(int size) { - return new PolygonOptions[size]; - } - }; + public static Creator CREATOR = new AutoCreator<>(PolygonOptions.class); } diff --git a/src/com/google/android/gms/maps/model/PolylineOptions.java b/src/com/google/android/gms/maps/model/PolylineOptions.java index 5e861b7e..2a06e96a 100644 --- a/src/com/google/android/gms/maps/model/PolylineOptions.java +++ b/src/com/google/android/gms/maps/model/PolylineOptions.java @@ -16,9 +16,7 @@ package com.google.android.gms.maps.model; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; import java.util.List; @@ -27,7 +25,7 @@ import java.util.List; * Defines options for a polyline. * TODO */ -public class PolylineOptions implements SafeParcelable { +public class PolylineOptions extends AutoSafeParcelable { @SafeParceled(1) private int versionCode; // TODO @@ -41,27 +39,5 @@ public class PolylineOptions implements SafeParcelable { public PolylineOptions() { } - private PolylineOptions(Parcel in) { - SafeParcelUtil.readObject(this, in); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - SafeParcelUtil.writeObject(this, dest, flags); - } - - public static Creator CREATOR = new Creator() { - public PolylineOptions createFromParcel(Parcel source) { - return new PolylineOptions(source); - } - - public PolylineOptions[] newArray(int size) { - return new PolylineOptions[size]; - } - }; + public static Creator CREATOR = new AutoCreator<>(PolylineOptions.class); } diff --git a/src/com/google/android/gms/maps/model/Tile.java b/src/com/google/android/gms/maps/model/Tile.java index 9ba8b612..a3062e5f 100644 --- a/src/com/google/android/gms/maps/model/Tile.java +++ b/src/com/google/android/gms/maps/model/Tile.java @@ -1,15 +1,13 @@ package com.google.android.gms.maps.model; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; /** * Contains information about a Tile that is returned by a {@link TileProvider}. * TODO SafeParceled */ -public class Tile implements SafeParcelable { +public class Tile extends AutoSafeParcelable { @SafeParceled(1) private final int versionCode; /** @@ -30,16 +28,11 @@ public class Tile implements SafeParcelable { public final byte[] data; private Tile() { - versionCode = -1; + versionCode = 1; width = height = 0; data = null; } - private Tile(Parcel in) { - this(); - SafeParcelUtil.readObject(this, in); - } - /** * Constructs a {@link Tile}. * @@ -56,23 +49,5 @@ public class Tile implements SafeParcelable { this.data = data; } - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - SafeParcelUtil.writeObject(this, out, flags); - } - - public static Creator CREATOR = new Creator() { - public Tile createFromParcel(Parcel source) { - return new Tile(source); - } - - public Tile[] newArray(int size) { - return new Tile[size]; - } - }; + public static Creator CREATOR = new AutoCreator<>(Tile.class); } diff --git a/src/com/google/android/gms/maps/model/TileOverlayOptions.java b/src/com/google/android/gms/maps/model/TileOverlayOptions.java index b38a5dce..15523837 100644 --- a/src/com/google/android/gms/maps/model/TileOverlayOptions.java +++ b/src/com/google/android/gms/maps/model/TileOverlayOptions.java @@ -17,17 +17,15 @@ package com.google.android.gms.maps.model; import android.os.IBinder; -import android.os.Parcel; import android.os.RemoteException; import com.google.android.gms.maps.model.internal.ITileProviderDelegate; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; /** * Defines options for a TileOverlay. */ -public class TileOverlayOptions implements SafeParcelable { +public class TileOverlayOptions extends AutoSafeParcelable { @SafeParceled(1) private final int versionCode = 1; @@ -50,15 +48,6 @@ public class TileOverlayOptions implements SafeParcelable { public TileOverlayOptions() { } - private TileOverlayOptions(Parcel in) { - SafeParcelUtil.readObject(this, in); - } - - @Override - public int describeContents() { - return 0; - } - /** * Specifies whether the tiles should fade in. The default is {@code true}. * @@ -132,11 +121,6 @@ public class TileOverlayOptions implements SafeParcelable { return this; } - @Override - public void writeToParcel(Parcel dest, int flags) { - SafeParcelUtil.writeObject(this, dest, flags); - } - /** * Specifies the tile overlay's zIndex, i.e., the order in which it will be drawn where * overlays with larger values are drawn above those with lower values. See the documentation @@ -149,13 +133,5 @@ public class TileOverlayOptions implements SafeParcelable { return this; } - public static Creator CREATOR = new Creator() { - public TileOverlayOptions createFromParcel(Parcel source) { - return new TileOverlayOptions(source); - } - - public TileOverlayOptions[] newArray(int size) { - return new TileOverlayOptions[size]; - } - }; + public static Creator CREATOR = new AutoCreator<>(TileOverlayOptions.class); } diff --git a/src/com/google/android/gms/maps/model/VisibleRegion.java b/src/com/google/android/gms/maps/model/VisibleRegion.java index 7f96402f..43f161db 100644 --- a/src/com/google/android/gms/maps/model/VisibleRegion.java +++ b/src/com/google/android/gms/maps/model/VisibleRegion.java @@ -16,12 +16,10 @@ package com.google.android.gms.maps.model; -import android.os.Parcel; -import org.microg.safeparcel.SafeParcelUtil; -import org.microg.safeparcel.SafeParcelable; +import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; -public class VisibleRegion implements SafeParcelable { +public class VisibleRegion extends AutoSafeParcelable { @SafeParceled(1) private int versionCode; @SafeParceled(2) @@ -35,6 +33,9 @@ public class VisibleRegion implements SafeParcelable { @SafeParceled(6) private LatLngBounds bounds; + private VisibleRegion() { + } + public VisibleRegion(int versionCode, LatLng nearLeft, LatLng nearRight, LatLng farLeft, LatLng farRight, LatLngBounds bounds) { this.versionCode = versionCode; @@ -60,27 +61,5 @@ public class VisibleRegion implements SafeParcelable { bounds); } - public VisibleRegion(Parcel in) { - SafeParcelUtil.readObject(this, in); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - SafeParcelUtil.writeObject(this, dest, flags); - } - - public static Creator CREATOR = new Creator() { - public VisibleRegion createFromParcel(Parcel source) { - return new VisibleRegion(source); - } - - public VisibleRegion[] newArray(int size) { - return new VisibleRegion[size]; - } - }; + public static Creator CREATOR = new AutoCreator<>(VisibleRegion.class); } diff --git a/src/org/microg/gms/Constants.java b/src/org/microg/gms/Constants.java index 9ff2f907..a855bbc5 100644 --- a/src/org/microg/gms/Constants.java +++ b/src/org/microg/gms/Constants.java @@ -8,6 +8,7 @@ public class Constants { public static final int MAX_REFERENCE_VERSION = 6599436; public static final String ACTION_GMS_LOCATION_MANAGER_SERVICE_START = "com.google.android.location.internal.GoogleLocationManagerService.START"; public static final String KEY_MOCK_LOCATION = "mockLocation"; + public static final String DEFAULT_ACCOUNT = "<>"; /** * No base map tiles. From c1f66a6b3b462c53f0d67345cc9ca2c7c6bdab74 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Thu, 15 Jan 2015 20:16:15 +0100 Subject: [PATCH 010/170] Add api stuff --- build.gradle | 2 +- .../google/android/gms/common/api/Result.java | 8 ++ .../google/android/gms/common/api/Status.java | 79 +++++++++++++++++++ src/org/microg/gms/Constants.java | 1 + 4 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 src/com/google/android/gms/common/api/Result.java create mode 100644 src/com/google/android/gms/common/api/Status.java diff --git a/build.gradle b/build.gradle index f433729e..dd90597a 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ dependencies { android { compileSdkVersion 21 - buildToolsVersion "21.0.2" + buildToolsVersion "21.1.2" lintOptions.abortOnError false sourceSets { diff --git a/src/com/google/android/gms/common/api/Result.java b/src/com/google/android/gms/common/api/Result.java new file mode 100644 index 00000000..d8408112 --- /dev/null +++ b/src/com/google/android/gms/common/api/Result.java @@ -0,0 +1,8 @@ +package com.google.android.gms.common.api; + +/** + * Represents the final result of invoking an API method in Google Play Services. + */ +public interface Result { + public Status getStatus(); +} diff --git a/src/com/google/android/gms/common/api/Status.java b/src/com/google/android/gms/common/api/Status.java new file mode 100644 index 00000000..1431f98c --- /dev/null +++ b/src/com/google/android/gms/common/api/Status.java @@ -0,0 +1,79 @@ +package com.google.android.gms.common.api; + +import android.app.PendingIntent; +import org.microg.safeparcel.AutoSafeParcelable; + +/** + * Represents the results of work. + *

+ * TODO: Docs + */ +public final class Status extends AutoSafeParcelable implements Result { + private static final int STATUS_CODE_INTERRUPTED = 14; + private static final int STATUS_CODE_CANCELED = 16; + + public static final Status INTERRUPTED = new Status(STATUS_CODE_INTERRUPTED); + public static final Status CANCELED = new Status(STATUS_CODE_CANCELED); + + private final int versionCode; + private final int statusCode; + private final String statusMessage; + private final PendingIntent resolution; + + private Status() { + versionCode = 1; + statusCode = 0; + statusMessage = null; + resolution = null; + } + + public Status(int statusCode) { + this(statusCode, null); + } + + public Status(int statusCode, String statusMessage) { + this(statusCode, statusMessage, null); + } + + public Status(int statusCode, String statusMessage, PendingIntent resolution) { + this.versionCode = 1; + this.statusCode = statusCode; + this.statusMessage = statusMessage; + this.resolution = resolution; + } + + public PendingIntent getResolution() { + return resolution; + } + + public int getStatusCode() { + return statusCode; + } + + public String getStatusMessage() { + return statusMessage; + } + + public boolean hasResolution() { + return resolution != null; + } + + public boolean isCanceled() { + return statusCode == STATUS_CODE_CANCELED; + } + + public boolean isInterrupted() { + return statusCode == STATUS_CODE_INTERRUPTED; + } + + public boolean isSuccess() { + return statusCode <= 0; + } + + @Override + public Status getStatus() { + return this; + } + + public static final Creator CREATOR = new AutoCreator<>(Status.class); +} diff --git a/src/org/microg/gms/Constants.java b/src/org/microg/gms/Constants.java index a855bbc5..8e6c6844 100644 --- a/src/org/microg/gms/Constants.java +++ b/src/org/microg/gms/Constants.java @@ -9,6 +9,7 @@ public class Constants { public static final String ACTION_GMS_LOCATION_MANAGER_SERVICE_START = "com.google.android.location.internal.GoogleLocationManagerService.START"; public static final String KEY_MOCK_LOCATION = "mockLocation"; public static final String DEFAULT_ACCOUNT = "<>"; + public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; /** * No base map tiles. From 3ec1456a3e9ed5238b4a0360b23f646f1cb93645 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 19 Jan 2015 01:45:41 +0100 Subject: [PATCH 011/170] Small fixes --- src/com/google/android/gms/common/api/Status.java | 1 + src/com/google/android/gms/location/LocationRequest.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/google/android/gms/common/api/Status.java b/src/com/google/android/gms/common/api/Status.java index 1431f98c..903563ad 100644 --- a/src/com/google/android/gms/common/api/Status.java +++ b/src/com/google/android/gms/common/api/Status.java @@ -14,6 +14,7 @@ public final class Status extends AutoSafeParcelable implements Result { public static final Status INTERRUPTED = new Status(STATUS_CODE_INTERRUPTED); public static final Status CANCELED = new Status(STATUS_CODE_CANCELED); + public static final Status SUCCESS = new Status(0); private final int versionCode; private final int statusCode; diff --git a/src/com/google/android/gms/location/LocationRequest.java b/src/com/google/android/gms/location/LocationRequest.java index a1105821..a5369fd0 100644 --- a/src/com/google/android/gms/location/LocationRequest.java +++ b/src/com/google/android/gms/location/LocationRequest.java @@ -399,7 +399,7 @@ public class LocationRequest extends AutoSafeParcelable { * @return the same object, so that setters can be chained * @throws IllegalArgumentException if smallestDisplacementMeters is negative */ - public LocationRequest setSmallestDesplacement(float smallestDisplacementMeters) { + public LocationRequest setSmallestDisplacement(float smallestDisplacementMeters) { if (smallestDisplacementMeters < 0) throw new IllegalArgumentException("smallestDisplacementMeters must not be negative"); this.smallestDesplacement = smallestDisplacementMeters; From e7a815f6554e38451ab027bbba796b10710c70d8 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sat, 24 Jan 2015 22:20:41 +0100 Subject: [PATCH 012/170] Add submodule --- .gitignore | 6 ++++++ .gitmodules | 3 +++ SafeParcel | 1 + 3 files changed, 10 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 160000 SafeParcel diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..2653ad41 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +out/ +build/ +*.iml +local.properties +gradle/ +gradlew diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..20fd0301 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "SafeParcel"] + path = SafeParcel + url = https://github.com/microg/android_external_SafeParcel.git diff --git a/SafeParcel b/SafeParcel new file mode 160000 index 00000000..330b6bd4 --- /dev/null +++ b/SafeParcel @@ -0,0 +1 @@ +Subproject commit 330b6bd4f38297473c661e7f7727579cc1659181 From 426b7b07db28b65ba9c4ae937ad757ac83539736 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sun, 25 Jan 2015 01:09:54 +0100 Subject: [PATCH 013/170] Add settings.gradle --- .gitignore | 1 + settings.gradle | 1 + 2 files changed, 2 insertions(+) create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore index 2653ad41..bf3b44e9 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ build/ local.properties gradle/ gradlew +.gradle/ diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 00000000..0151283d --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include ':SafeParcel' From b82cd0aeccc00fcbbfe4778b29c7a07f2b4c2c48 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sun, 25 Jan 2015 01:14:08 +0100 Subject: [PATCH 014/170] Update SafeParcel --- SafeParcel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SafeParcel b/SafeParcel index 330b6bd4..3efecf38 160000 --- a/SafeParcel +++ b/SafeParcel @@ -1 +1 @@ -Subproject commit 330b6bd4f38297473c661e7f7727579cc1659181 +Subproject commit 3efecf38ca8b1f89cd8f0c40eea4b497f1563d90 From 7e2f3b8f7b598ee243486e03f0637b8334be216f Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sun, 25 Jan 2015 01:19:43 +0100 Subject: [PATCH 015/170] Fix gradle --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index dd90597a..ea4fbdb4 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript { apply plugin: 'com.android.library' dependencies { - compile project(':SafeParcel') + compile project('SafeParcel') } android { From c4db81d1fcf5c301f34e12d5675b9b50c507bd42 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sun, 25 Jan 2015 01:27:21 +0100 Subject: [PATCH 016/170] Revert "Fix gradle" This reverts commit 7e2f3b8f7b598ee243486e03f0637b8334be216f. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index ea4fbdb4..dd90597a 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript { apply plugin: 'com.android.library' dependencies { - compile project('SafeParcel') + compile project(':SafeParcel') } android { From ae39009ccd9db363888c292814ce91a12451c16f Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sun, 25 Jan 2015 17:59:09 +0100 Subject: [PATCH 017/170] Add some Wearable classes, mark public apis --- .../gms/common/api/CommonStatusCodes.java | 40 ++++++++++ .../google/android/gms/common/api/Result.java | 3 + .../google/android/gms/common/api/Scope.java | 2 + .../google/android/gms/common/api/Status.java | 3 + .../gms/maps/model/BitmapDescriptor.java | 3 + .../gms/maps/model/CameraPosition.java | 3 + .../android/gms/maps/model/CircleOptions.java | 3 + .../gms/maps/model/GroundOverlayOptions.java | 3 + .../google/android/gms/maps/model/LatLng.java | 2 + .../android/gms/maps/model/LatLngBounds.java | 2 + .../android/gms/maps/model/MarkerOptions.java | 3 + .../gms/maps/model/PolygonOptions.java | 2 + .../gms/maps/model/PolylineOptions.java | 2 + .../maps/model/StreetViewPanoramaCamera.java | 3 + .../maps/model/StreetViewPanoramaLink.java | 3 + .../model/StreetViewPanoramaLocation.java | 3 + .../model/StreetViewPanoramaOrientation.java | 3 + .../google/android/gms/maps/model/Tile.java | 2 + .../gms/maps/model/TileOverlayOptions.java | 3 + .../android/gms/maps/model/VisibleRegion.java | 2 + src/com/google/android/gms/wearable/Node.java | 36 +++++++++ .../gms/wearable/WearableStatusCodes.java | 53 +++++++++++++ .../gms/wearable/internal/NodeParcelable.java | 79 +++++++++++++++++++ src/org/microg/gms/PublicApi.java | 23 ++++++ 24 files changed, 281 insertions(+) create mode 100644 src/com/google/android/gms/common/api/CommonStatusCodes.java create mode 100644 src/com/google/android/gms/wearable/Node.java create mode 100644 src/com/google/android/gms/wearable/WearableStatusCodes.java create mode 100644 src/com/google/android/gms/wearable/internal/NodeParcelable.java create mode 100644 src/org/microg/gms/PublicApi.java diff --git a/src/com/google/android/gms/common/api/CommonStatusCodes.java b/src/com/google/android/gms/common/api/CommonStatusCodes.java new file mode 100644 index 00000000..c0c1beb8 --- /dev/null +++ b/src/com/google/android/gms/common/api/CommonStatusCodes.java @@ -0,0 +1,40 @@ +/* + * Copyright 2014-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.common.api; + +import org.microg.gms.PublicApi; + +@PublicApi +public class CommonStatusCodes { + public static final int SUCCESS_CACHE = -1; + public static final int SUCCESS = 0; + public static final int SERVICE_MISSING = 1; + public static final int SERVICE_VERSION_UPDATE_REQUIRED = 2; + public static final int SERVICE_DISABLED = 3; + public static final int SIGN_IN_REQUIRED = 4; + public static final int INVALID_ACCOUNT = 5; + public static final int RESOLUTION_REQUIRED = 6; + public static final int NETWORK_ERROR = 7; + public static final int INTERNAL_ERROR = 8; + public static final int SERVICE_INVALID = 9; + public static final int DEVELOPER_ERROR = 10; + public static final int LICENSE_CHECK_FAILED = 11; + public static final int ERROR = 13; + public static final int INTERRUPTED = 14; + public static final int TIMEOUT = 15; + public static final int CANCELED = 16; +} diff --git a/src/com/google/android/gms/common/api/Result.java b/src/com/google/android/gms/common/api/Result.java index d8408112..e1bf524c 100644 --- a/src/com/google/android/gms/common/api/Result.java +++ b/src/com/google/android/gms/common/api/Result.java @@ -1,8 +1,11 @@ package com.google.android.gms.common.api; +import org.microg.gms.PublicApi; + /** * Represents the final result of invoking an API method in Google Play Services. */ +@PublicApi public interface Result { public Status getStatus(); } diff --git a/src/com/google/android/gms/common/api/Scope.java b/src/com/google/android/gms/common/api/Scope.java index ab9a05a1..f1ed8f9d 100644 --- a/src/com/google/android/gms/common/api/Scope.java +++ b/src/com/google/android/gms/common/api/Scope.java @@ -1,5 +1,6 @@ package com.google.android.gms.common.api; +import org.microg.gms.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; @@ -7,6 +8,7 @@ import org.microg.safeparcel.SafeParceled; * Describes an OAuth 2.0 scope to request. This has security implications for the user, and * requesting additional scopes will result in authorization dialogs. */ +@PublicApi public class Scope extends AutoSafeParcelable { @SafeParceled(1) private final int versionCode; diff --git a/src/com/google/android/gms/common/api/Status.java b/src/com/google/android/gms/common/api/Status.java index 903563ad..eadbefbb 100644 --- a/src/com/google/android/gms/common/api/Status.java +++ b/src/com/google/android/gms/common/api/Status.java @@ -1,6 +1,8 @@ package com.google.android.gms.common.api; import android.app.PendingIntent; + +import org.microg.gms.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; /** @@ -8,6 +10,7 @@ import org.microg.safeparcel.AutoSafeParcelable; *

* TODO: Docs */ +@PublicApi public final class Status extends AutoSafeParcelable implements Result { private static final int STATUS_CODE_INTERRUPTED = 14; private static final int STATUS_CODE_CANCELED = 16; diff --git a/src/com/google/android/gms/maps/model/BitmapDescriptor.java b/src/com/google/android/gms/maps/model/BitmapDescriptor.java index 800c1745..5a8b3088 100644 --- a/src/com/google/android/gms/maps/model/BitmapDescriptor.java +++ b/src/com/google/android/gms/maps/model/BitmapDescriptor.java @@ -18,10 +18,13 @@ package com.google.android.gms.maps.model; import com.google.android.gms.dynamic.IObjectWrapper; +import org.microg.gms.PublicApi; + /** * Defines an image. For a marker, it can be used to set the image of the marker icon. For a ground * overlay, it can be used to set the image to place on the surface of the earth. */ +@PublicApi public class BitmapDescriptor { private final IObjectWrapper remoteObject; diff --git a/src/com/google/android/gms/maps/model/CameraPosition.java b/src/com/google/android/gms/maps/model/CameraPosition.java index c989ed47..cff10680 100644 --- a/src/com/google/android/gms/maps/model/CameraPosition.java +++ b/src/com/google/android/gms/maps/model/CameraPosition.java @@ -18,6 +18,8 @@ package com.google.android.gms.maps.model; import android.content.Context; import android.util.AttributeSet; + +import org.microg.gms.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; @@ -26,6 +28,7 @@ import java.util.Arrays; /** * An immutable class that aggregates all camera position parameters. */ +@PublicApi public final class CameraPosition extends AutoSafeParcelable { @SafeParceled(1) private final int versionCode; diff --git a/src/com/google/android/gms/maps/model/CircleOptions.java b/src/com/google/android/gms/maps/model/CircleOptions.java index 4002c6b7..eb3e2561 100644 --- a/src/com/google/android/gms/maps/model/CircleOptions.java +++ b/src/com/google/android/gms/maps/model/CircleOptions.java @@ -17,12 +17,15 @@ package com.google.android.gms.maps.model; import android.graphics.Color; + +import org.microg.gms.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; /** * Defines options for a Circle. */ +@PublicApi public class CircleOptions extends AutoSafeParcelable { @SafeParceled(1) private int versionCode; diff --git a/src/com/google/android/gms/maps/model/GroundOverlayOptions.java b/src/com/google/android/gms/maps/model/GroundOverlayOptions.java index 12ede558..25c024d4 100644 --- a/src/com/google/android/gms/maps/model/GroundOverlayOptions.java +++ b/src/com/google/android/gms/maps/model/GroundOverlayOptions.java @@ -18,12 +18,15 @@ package com.google.android.gms.maps.model; import android.os.IBinder; import com.google.android.gms.dynamic.ObjectWrapper; + +import org.microg.gms.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; /** * Defines options for a ground overlay. */ +@PublicApi public class GroundOverlayOptions extends AutoSafeParcelable { /** * Flag for when no dimension is specified for the height. diff --git a/src/com/google/android/gms/maps/model/LatLng.java b/src/com/google/android/gms/maps/model/LatLng.java index 2606b533..f1eb4b12 100644 --- a/src/com/google/android/gms/maps/model/LatLng.java +++ b/src/com/google/android/gms/maps/model/LatLng.java @@ -16,12 +16,14 @@ package com.google.android.gms.maps.model; +import org.microg.gms.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; /** * An immutable class representing a pair of latitude and longitude coordinates, stored as degrees. */ +@PublicApi public final class LatLng extends AutoSafeParcelable { @SafeParceled(1) private final int versionCode; diff --git a/src/com/google/android/gms/maps/model/LatLngBounds.java b/src/com/google/android/gms/maps/model/LatLngBounds.java index 5a6653f5..1ef2c39c 100644 --- a/src/com/google/android/gms/maps/model/LatLngBounds.java +++ b/src/com/google/android/gms/maps/model/LatLngBounds.java @@ -16,6 +16,7 @@ package com.google.android.gms.maps.model; +import org.microg.gms.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; @@ -24,6 +25,7 @@ import java.util.Arrays; /** * An immutable class representing a latitude/longitude aligned rectangle. */ +@PublicApi public final class LatLngBounds extends AutoSafeParcelable { @SafeParceled(1) private final int versionCode; diff --git a/src/com/google/android/gms/maps/model/MarkerOptions.java b/src/com/google/android/gms/maps/model/MarkerOptions.java index 4a076ac0..34ddaaf5 100644 --- a/src/com/google/android/gms/maps/model/MarkerOptions.java +++ b/src/com/google/android/gms/maps/model/MarkerOptions.java @@ -18,9 +18,12 @@ package com.google.android.gms.maps.model; import android.os.IBinder; import com.google.android.gms.dynamic.ObjectWrapper; + +import org.microg.gms.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; +@PublicApi public class MarkerOptions extends AutoSafeParcelable { @SafeParceled(1) diff --git a/src/com/google/android/gms/maps/model/PolygonOptions.java b/src/com/google/android/gms/maps/model/PolygonOptions.java index b74d2ea0..162ae2fa 100644 --- a/src/com/google/android/gms/maps/model/PolygonOptions.java +++ b/src/com/google/android/gms/maps/model/PolygonOptions.java @@ -16,12 +16,14 @@ package com.google.android.gms.maps.model; +import org.microg.gms.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; /** * Defines options for a polygon. * TODO */ +@PublicApi public class PolygonOptions extends AutoSafeParcelable { public PolygonOptions() { } diff --git a/src/com/google/android/gms/maps/model/PolylineOptions.java b/src/com/google/android/gms/maps/model/PolylineOptions.java index 2a06e96a..6a0b809e 100644 --- a/src/com/google/android/gms/maps/model/PolylineOptions.java +++ b/src/com/google/android/gms/maps/model/PolylineOptions.java @@ -16,6 +16,7 @@ package com.google.android.gms.maps.model; +import org.microg.gms.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; @@ -25,6 +26,7 @@ import java.util.List; * Defines options for a polyline. * TODO */ +@PublicApi public class PolylineOptions extends AutoSafeParcelable { @SafeParceled(1) private int versionCode; diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java b/src/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java index 534d8144..1281fcbc 100644 --- a/src/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java +++ b/src/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java @@ -1,4 +1,7 @@ package com.google.android.gms.maps.model; +import org.microg.gms.PublicApi; + +@PublicApi public class StreetViewPanoramaCamera { } diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaLink.java b/src/com/google/android/gms/maps/model/StreetViewPanoramaLink.java index 66859e08..0b85a6e6 100644 --- a/src/com/google/android/gms/maps/model/StreetViewPanoramaLink.java +++ b/src/com/google/android/gms/maps/model/StreetViewPanoramaLink.java @@ -1,4 +1,7 @@ package com.google.android.gms.maps.model; +import org.microg.gms.PublicApi; + +@PublicApi public class StreetViewPanoramaLink { } diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java b/src/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java index 8ef5fda7..cfd3a29d 100644 --- a/src/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java +++ b/src/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java @@ -1,4 +1,7 @@ package com.google.android.gms.maps.model; +import org.microg.gms.PublicApi; + +@PublicApi public class StreetViewPanoramaLocation { } diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java b/src/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java index 285c0617..32eec064 100644 --- a/src/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java +++ b/src/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java @@ -1,4 +1,7 @@ package com.google.android.gms.maps.model; +import org.microg.gms.PublicApi; + +@PublicApi public class StreetViewPanoramaOrientation { } diff --git a/src/com/google/android/gms/maps/model/Tile.java b/src/com/google/android/gms/maps/model/Tile.java index a3062e5f..3e5031c5 100644 --- a/src/com/google/android/gms/maps/model/Tile.java +++ b/src/com/google/android/gms/maps/model/Tile.java @@ -1,5 +1,6 @@ package com.google.android.gms.maps.model; +import org.microg.gms.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; @@ -7,6 +8,7 @@ import org.microg.safeparcel.SafeParceled; * Contains information about a Tile that is returned by a {@link TileProvider}. * TODO SafeParceled */ +@PublicApi public class Tile extends AutoSafeParcelable { @SafeParceled(1) private final int versionCode; diff --git a/src/com/google/android/gms/maps/model/TileOverlayOptions.java b/src/com/google/android/gms/maps/model/TileOverlayOptions.java index 15523837..55825613 100644 --- a/src/com/google/android/gms/maps/model/TileOverlayOptions.java +++ b/src/com/google/android/gms/maps/model/TileOverlayOptions.java @@ -19,12 +19,15 @@ package com.google.android.gms.maps.model; import android.os.IBinder; import android.os.RemoteException; import com.google.android.gms.maps.model.internal.ITileProviderDelegate; + +import org.microg.gms.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; /** * Defines options for a TileOverlay. */ +@PublicApi public class TileOverlayOptions extends AutoSafeParcelable { @SafeParceled(1) diff --git a/src/com/google/android/gms/maps/model/VisibleRegion.java b/src/com/google/android/gms/maps/model/VisibleRegion.java index 43f161db..601f1509 100644 --- a/src/com/google/android/gms/maps/model/VisibleRegion.java +++ b/src/com/google/android/gms/maps/model/VisibleRegion.java @@ -16,9 +16,11 @@ package com.google.android.gms.maps.model; +import org.microg.gms.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; +@PublicApi public class VisibleRegion extends AutoSafeParcelable { @SafeParceled(1) private int versionCode; diff --git a/src/com/google/android/gms/wearable/Node.java b/src/com/google/android/gms/wearable/Node.java new file mode 100644 index 00000000..9c7d5796 --- /dev/null +++ b/src/com/google/android/gms/wearable/Node.java @@ -0,0 +1,36 @@ +/* + * Copyright 2014-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import org.microg.gms.PublicApi; + +/** + * Information about a particular node in the Android Wear network. + */ +@PublicApi +public interface Node { + /** + * Returns a human readable description of the node. Sometimes generated from the Bluetooth + * device name + */ + public abstract String getDisplayName(); + + /** + * Returns an opaque string that represents a node in the Android Wear network. + */ + public abstract String getId(); +} diff --git a/src/com/google/android/gms/wearable/WearableStatusCodes.java b/src/com/google/android/gms/wearable/WearableStatusCodes.java new file mode 100644 index 00000000..46e4dbdd --- /dev/null +++ b/src/com/google/android/gms/wearable/WearableStatusCodes.java @@ -0,0 +1,53 @@ +/* + * Copyright 2014-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import com.google.android.gms.common.api.CommonStatusCodes; + +import org.microg.gms.PublicApi; + +/** + * Error codes for wearable API failures. These values may be returned by APIs to indicate the + * success or failure of a request. + */ +@PublicApi +public class WearableStatusCodes extends CommonStatusCodes { + /** + * Indicates that the targeted node is not accessible in the wearable network. + */ + public static final int TARGET_NODE_NOT_CONNECTED = 4000; + /** + * Indicates that the specified listener is already registered. + */ + public static final int DUPLICATE_LISTENER = 4001; + /** + * Indicates that the specified listener is not recognized. + */ + public static final int UNKNOWN_LISTENER = 4002; + /** + * Indicates that the data item was too large to set. + */ + public static final int DATA_ITEM_TOO_LARGE = 4003; + /** + * Indicates that the targeted node is not a valid node in the wearable network. + */ + public static final int INVALID_TARGET_NODE = 4004; + /** + * Indicates that the requested asset is unavailable. + */ + public static final int ASSET_UNAVAILABLE = 4005; +} diff --git a/src/com/google/android/gms/wearable/internal/NodeParcelable.java b/src/com/google/android/gms/wearable/internal/NodeParcelable.java new file mode 100644 index 00000000..9c96a109 --- /dev/null +++ b/src/com/google/android/gms/wearable/internal/NodeParcelable.java @@ -0,0 +1,79 @@ +/* + * Copyright 2014-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable.internal; + +import com.google.android.gms.wearable.Node; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +/** + * Parcelable implementation of the {@link com.google.android.gms.wearable.Node} interface. + */ +public class NodeParcelable extends AutoSafeParcelable implements Node { + @SafeParceled(1) + private final int versionCode; + @SafeParceled(2) + private final String id; + @SafeParceled(3) + private final String displayName; + + private NodeParcelable() { + versionCode = 1; + id = displayName = null; + } + + public NodeParcelable(String id, String displayName) { + versionCode = 1; + this.id = id; + this.displayName = displayName; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + NodeParcelable that = (NodeParcelable) o; + + if (!id.equals(that.id)) return false; + if (!displayName.equals(that.displayName)) return false; + + return true; + } + + @Override + public String getDisplayName() { + return displayName; + } + + @Override + public String getId() { + return id; + } + + @Override + public int hashCode() { + int result = 37 * 17 + id.hashCode(); + return 37 * result + displayName.hashCode(); + } + + @Override + public String toString() { + return "NodeParcelable{" + id + "," + displayName + "}"; + } +} diff --git a/src/org/microg/gms/PublicApi.java b/src/org/microg/gms/PublicApi.java new file mode 100644 index 00000000..00092bac --- /dev/null +++ b/src/org/microg/gms/PublicApi.java @@ -0,0 +1,23 @@ +/* + * Copyright 2014-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.microg.gms; + +public @interface PublicApi { + String since() default "-1"; + + String until() default "-1"; +} From 61d5ccde6ccad258245d06167317dc5c8f145c07 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sun, 25 Jan 2015 18:03:54 +0100 Subject: [PATCH 018/170] Further describe the public api interface --- src/org/microg/gms/PublicApi.java | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/org/microg/gms/PublicApi.java b/src/org/microg/gms/PublicApi.java index 00092bac..1766f220 100644 --- a/src/org/microg/gms/PublicApi.java +++ b/src/org/microg/gms/PublicApi.java @@ -16,8 +16,24 @@ package org.microg.gms; +/** + * An class, method or field is named public, if it can be used with the original play services + * client library. + */ public @interface PublicApi { - String since() default "-1"; + /** + * @return the first version that contains the given class, method or field + */ + String since() default "0"; - String until() default "-1"; + /** + * @return the last version that contains the given class, method or field + */ + String until() default "latest"; + + /** + * @return used on a method or field to exclude it from the public api if the corresponding + * class was marked as public api + */ + boolean exclude() default false; } From 3c19d84eaa9842a2526166a38ad445125dbd2300 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 26 Jan 2015 00:42:56 +0100 Subject: [PATCH 019/170] Fix NodeParcelable, meta-annotate @PublicApi --- .../android/gms/wearable/internal/NodeParcelable.java | 2 ++ src/org/microg/gms/PublicApi.java | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/src/com/google/android/gms/wearable/internal/NodeParcelable.java b/src/com/google/android/gms/wearable/internal/NodeParcelable.java index 9c96a109..d673c1bb 100644 --- a/src/com/google/android/gms/wearable/internal/NodeParcelable.java +++ b/src/com/google/android/gms/wearable/internal/NodeParcelable.java @@ -76,4 +76,6 @@ public class NodeParcelable extends AutoSafeParcelable implements Node { public String toString() { return "NodeParcelable{" + id + "," + displayName + "}"; } + + public static final Creator CREATOR = new AutoCreator<>(NodeParcelable.class); } diff --git a/src/org/microg/gms/PublicApi.java b/src/org/microg/gms/PublicApi.java index 1766f220..488f6c3a 100644 --- a/src/org/microg/gms/PublicApi.java +++ b/src/org/microg/gms/PublicApi.java @@ -16,10 +16,17 @@ package org.microg.gms; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + /** * An class, method or field is named public, if it can be used with the original play services * client library. */ +@Retention(RetentionPolicy.SOURCE) +@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.CONSTRUCTOR}) public @interface PublicApi { /** * @return the first version that contains the given class, method or field From 5d2364f3dcc66bdd1ae19c91d76d77d2a4a785b6 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 2 Feb 2015 00:02:32 +0100 Subject: [PATCH 020/170] Update --- AndroidManifest.xml | 6 ++++-- .../google/android/gms/common/api/CommonStatusCodes.java | 2 +- src/com/google/android/gms/common/api/Result.java | 2 +- src/com/google/android/gms/common/api/Scope.java | 2 +- src/com/google/android/gms/common/api/Status.java | 2 +- src/com/google/android/gms/maps/model/BitmapDescriptor.java | 2 +- src/com/google/android/gms/maps/model/CameraPosition.java | 2 +- src/com/google/android/gms/maps/model/CircleOptions.java | 2 +- .../google/android/gms/maps/model/GroundOverlayOptions.java | 2 +- src/com/google/android/gms/maps/model/LatLng.java | 2 +- src/com/google/android/gms/maps/model/LatLngBounds.java | 2 +- src/com/google/android/gms/maps/model/MarkerOptions.java | 2 +- src/com/google/android/gms/maps/model/PolygonOptions.java | 2 +- src/com/google/android/gms/maps/model/PolylineOptions.java | 2 +- .../android/gms/maps/model/StreetViewPanoramaCamera.java | 2 +- .../android/gms/maps/model/StreetViewPanoramaLink.java | 2 +- .../android/gms/maps/model/StreetViewPanoramaLocation.java | 2 +- .../gms/maps/model/StreetViewPanoramaOrientation.java | 2 +- src/com/google/android/gms/maps/model/Tile.java | 2 +- .../google/android/gms/maps/model/TileOverlayOptions.java | 2 +- src/com/google/android/gms/maps/model/VisibleRegion.java | 2 +- src/com/google/android/gms/wearable/Node.java | 2 +- .../google/android/gms/wearable/WearableStatusCodes.java | 2 +- src/org/microg/gms/{ => common}/Constants.java | 2 +- src/org/microg/gms/{ => common}/PublicApi.java | 2 +- 25 files changed, 28 insertions(+), 26 deletions(-) rename src/org/microg/gms/{ => common}/Constants.java (97%) rename src/org/microg/gms/{ => common}/PublicApi.java (97%) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 1b9d6274..39f687cb 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,4 +1,6 @@ - - + + + diff --git a/src/com/google/android/gms/common/api/CommonStatusCodes.java b/src/com/google/android/gms/common/api/CommonStatusCodes.java index c0c1beb8..402d501e 100644 --- a/src/com/google/android/gms/common/api/CommonStatusCodes.java +++ b/src/com/google/android/gms/common/api/CommonStatusCodes.java @@ -16,7 +16,7 @@ package com.google.android.gms.common.api; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; @PublicApi public class CommonStatusCodes { diff --git a/src/com/google/android/gms/common/api/Result.java b/src/com/google/android/gms/common/api/Result.java index e1bf524c..394234d0 100644 --- a/src/com/google/android/gms/common/api/Result.java +++ b/src/com/google/android/gms/common/api/Result.java @@ -1,6 +1,6 @@ package com.google.android.gms.common.api; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; /** * Represents the final result of invoking an API method in Google Play Services. diff --git a/src/com/google/android/gms/common/api/Scope.java b/src/com/google/android/gms/common/api/Scope.java index f1ed8f9d..47c05291 100644 --- a/src/com/google/android/gms/common/api/Scope.java +++ b/src/com/google/android/gms/common/api/Scope.java @@ -1,6 +1,6 @@ package com.google.android.gms.common.api; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/src/com/google/android/gms/common/api/Status.java b/src/com/google/android/gms/common/api/Status.java index eadbefbb..52e2cf7f 100644 --- a/src/com/google/android/gms/common/api/Status.java +++ b/src/com/google/android/gms/common/api/Status.java @@ -2,7 +2,7 @@ package com.google.android.gms.common.api; import android.app.PendingIntent; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; /** diff --git a/src/com/google/android/gms/maps/model/BitmapDescriptor.java b/src/com/google/android/gms/maps/model/BitmapDescriptor.java index 5a8b3088..9b45597b 100644 --- a/src/com/google/android/gms/maps/model/BitmapDescriptor.java +++ b/src/com/google/android/gms/maps/model/BitmapDescriptor.java @@ -18,7 +18,7 @@ package com.google.android.gms.maps.model; import com.google.android.gms.dynamic.IObjectWrapper; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; /** * Defines an image. For a marker, it can be used to set the image of the marker icon. For a ground diff --git a/src/com/google/android/gms/maps/model/CameraPosition.java b/src/com/google/android/gms/maps/model/CameraPosition.java index cff10680..86c2b255 100644 --- a/src/com/google/android/gms/maps/model/CameraPosition.java +++ b/src/com/google/android/gms/maps/model/CameraPosition.java @@ -19,7 +19,7 @@ package com.google.android.gms.maps.model; import android.content.Context; import android.util.AttributeSet; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/src/com/google/android/gms/maps/model/CircleOptions.java b/src/com/google/android/gms/maps/model/CircleOptions.java index eb3e2561..0629d6fa 100644 --- a/src/com/google/android/gms/maps/model/CircleOptions.java +++ b/src/com/google/android/gms/maps/model/CircleOptions.java @@ -18,7 +18,7 @@ package com.google.android.gms.maps.model; import android.graphics.Color; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/src/com/google/android/gms/maps/model/GroundOverlayOptions.java b/src/com/google/android/gms/maps/model/GroundOverlayOptions.java index 25c024d4..191afda1 100644 --- a/src/com/google/android/gms/maps/model/GroundOverlayOptions.java +++ b/src/com/google/android/gms/maps/model/GroundOverlayOptions.java @@ -19,7 +19,7 @@ package com.google.android.gms.maps.model; import android.os.IBinder; import com.google.android.gms.dynamic.ObjectWrapper; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/src/com/google/android/gms/maps/model/LatLng.java b/src/com/google/android/gms/maps/model/LatLng.java index f1eb4b12..356e04d6 100644 --- a/src/com/google/android/gms/maps/model/LatLng.java +++ b/src/com/google/android/gms/maps/model/LatLng.java @@ -16,7 +16,7 @@ package com.google.android.gms.maps.model; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/src/com/google/android/gms/maps/model/LatLngBounds.java b/src/com/google/android/gms/maps/model/LatLngBounds.java index 1ef2c39c..eae9cb2d 100644 --- a/src/com/google/android/gms/maps/model/LatLngBounds.java +++ b/src/com/google/android/gms/maps/model/LatLngBounds.java @@ -16,7 +16,7 @@ package com.google.android.gms.maps.model; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/src/com/google/android/gms/maps/model/MarkerOptions.java b/src/com/google/android/gms/maps/model/MarkerOptions.java index 34ddaaf5..bb289362 100644 --- a/src/com/google/android/gms/maps/model/MarkerOptions.java +++ b/src/com/google/android/gms/maps/model/MarkerOptions.java @@ -19,7 +19,7 @@ package com.google.android.gms.maps.model; import android.os.IBinder; import com.google.android.gms.dynamic.ObjectWrapper; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/src/com/google/android/gms/maps/model/PolygonOptions.java b/src/com/google/android/gms/maps/model/PolygonOptions.java index 162ae2fa..0b5aaa59 100644 --- a/src/com/google/android/gms/maps/model/PolygonOptions.java +++ b/src/com/google/android/gms/maps/model/PolygonOptions.java @@ -16,7 +16,7 @@ package com.google.android.gms.maps.model; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; /** diff --git a/src/com/google/android/gms/maps/model/PolylineOptions.java b/src/com/google/android/gms/maps/model/PolylineOptions.java index 6a0b809e..ce34b343 100644 --- a/src/com/google/android/gms/maps/model/PolylineOptions.java +++ b/src/com/google/android/gms/maps/model/PolylineOptions.java @@ -16,7 +16,7 @@ package com.google.android.gms.maps.model; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java b/src/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java index 1281fcbc..585fc072 100644 --- a/src/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java +++ b/src/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java @@ -1,6 +1,6 @@ package com.google.android.gms.maps.model; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; @PublicApi public class StreetViewPanoramaCamera { diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaLink.java b/src/com/google/android/gms/maps/model/StreetViewPanoramaLink.java index 0b85a6e6..88cf0542 100644 --- a/src/com/google/android/gms/maps/model/StreetViewPanoramaLink.java +++ b/src/com/google/android/gms/maps/model/StreetViewPanoramaLink.java @@ -1,6 +1,6 @@ package com.google.android.gms.maps.model; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; @PublicApi public class StreetViewPanoramaLink { diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java b/src/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java index cfd3a29d..75422e12 100644 --- a/src/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java +++ b/src/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java @@ -1,6 +1,6 @@ package com.google.android.gms.maps.model; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; @PublicApi public class StreetViewPanoramaLocation { diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java b/src/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java index 32eec064..9b77f9b4 100644 --- a/src/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java +++ b/src/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java @@ -1,6 +1,6 @@ package com.google.android.gms.maps.model; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; @PublicApi public class StreetViewPanoramaOrientation { diff --git a/src/com/google/android/gms/maps/model/Tile.java b/src/com/google/android/gms/maps/model/Tile.java index 3e5031c5..cf6f437a 100644 --- a/src/com/google/android/gms/maps/model/Tile.java +++ b/src/com/google/android/gms/maps/model/Tile.java @@ -1,6 +1,6 @@ package com.google.android.gms.maps.model; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/src/com/google/android/gms/maps/model/TileOverlayOptions.java b/src/com/google/android/gms/maps/model/TileOverlayOptions.java index 55825613..85ab38f0 100644 --- a/src/com/google/android/gms/maps/model/TileOverlayOptions.java +++ b/src/com/google/android/gms/maps/model/TileOverlayOptions.java @@ -20,7 +20,7 @@ import android.os.IBinder; import android.os.RemoteException; import com.google.android.gms.maps.model.internal.ITileProviderDelegate; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/src/com/google/android/gms/maps/model/VisibleRegion.java b/src/com/google/android/gms/maps/model/VisibleRegion.java index 601f1509..ab0e20b7 100644 --- a/src/com/google/android/gms/maps/model/VisibleRegion.java +++ b/src/com/google/android/gms/maps/model/VisibleRegion.java @@ -16,7 +16,7 @@ package com.google.android.gms.maps.model; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/src/com/google/android/gms/wearable/Node.java b/src/com/google/android/gms/wearable/Node.java index 9c7d5796..f308c611 100644 --- a/src/com/google/android/gms/wearable/Node.java +++ b/src/com/google/android/gms/wearable/Node.java @@ -16,7 +16,7 @@ package com.google.android.gms.wearable; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; /** * Information about a particular node in the Android Wear network. diff --git a/src/com/google/android/gms/wearable/WearableStatusCodes.java b/src/com/google/android/gms/wearable/WearableStatusCodes.java index 46e4dbdd..13cc75d2 100644 --- a/src/com/google/android/gms/wearable/WearableStatusCodes.java +++ b/src/com/google/android/gms/wearable/WearableStatusCodes.java @@ -18,7 +18,7 @@ package com.google.android.gms.wearable; import com.google.android.gms.common.api.CommonStatusCodes; -import org.microg.gms.PublicApi; +import org.microg.gms.common.PublicApi; /** * Error codes for wearable API failures. These values may be returned by APIs to indicate the diff --git a/src/org/microg/gms/Constants.java b/src/org/microg/gms/common/Constants.java similarity index 97% rename from src/org/microg/gms/Constants.java rename to src/org/microg/gms/common/Constants.java index 8e6c6844..1197f46a 100644 --- a/src/org/microg/gms/Constants.java +++ b/src/org/microg/gms/common/Constants.java @@ -1,4 +1,4 @@ -package org.microg.gms; +package org.microg.gms.common; public class Constants { /** diff --git a/src/org/microg/gms/PublicApi.java b/src/org/microg/gms/common/PublicApi.java similarity index 97% rename from src/org/microg/gms/PublicApi.java rename to src/org/microg/gms/common/PublicApi.java index 488f6c3a..45afeb22 100644 --- a/src/org/microg/gms/PublicApi.java +++ b/src/org/microg/gms/common/PublicApi.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.microg.gms; +package org.microg.gms.common; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; From 19b0b0f1d782640c0e5a9a381a0191665de0b053 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Tue, 3 Feb 2015 23:07:55 +0100 Subject: [PATCH 021/170] Add SHA1 to Constants --- src/org/microg/gms/common/Constants.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/org/microg/gms/common/Constants.java b/src/org/microg/gms/common/Constants.java index 1197f46a..3f7e65cb 100644 --- a/src/org/microg/gms/common/Constants.java +++ b/src/org/microg/gms/common/Constants.java @@ -10,6 +10,7 @@ public class Constants { public static final String KEY_MOCK_LOCATION = "mockLocation"; public static final String DEFAULT_ACCOUNT = "<>"; public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; + public static final String GMS_PACKAGE_SIGNATURE_SHA1 = "38918a453d07199354f8b19af05ec6562ced5788"; /** * No base map tiles. From 5ef9d262b405d0b0ba241d4e740d87bf22e0a5a9 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Tue, 10 Feb 2015 03:31:53 +0100 Subject: [PATCH 022/170] Add missing AuthManager method --- .../android/auth/IAuthManagerService.aidl | 4 ++ .../android/gms/auth/AccountChangeEvent.java | 5 ++- .../gms/auth/AccountChangeEventsRequest.aidl | 3 ++ .../gms/auth/AccountChangeEventsRequest.java | 37 +++++++++++++++++++ .../gms/auth/AccountChangeEventsResponse.aidl | 3 ++ .../gms/auth/AccountChangeEventsResponse.java | 37 +++++++++++++++++++ 6 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 src/com/google/android/gms/auth/AccountChangeEventsRequest.aidl create mode 100644 src/com/google/android/gms/auth/AccountChangeEventsRequest.java create mode 100644 src/com/google/android/gms/auth/AccountChangeEventsResponse.aidl create mode 100644 src/com/google/android/gms/auth/AccountChangeEventsResponse.java diff --git a/src/com/google/android/auth/IAuthManagerService.aidl b/src/com/google/android/auth/IAuthManagerService.aidl index 0b84c375..94ced65c 100644 --- a/src/com/google/android/auth/IAuthManagerService.aidl +++ b/src/com/google/android/auth/IAuthManagerService.aidl @@ -1,6 +1,10 @@ package com.google.android.auth; +import com.google.android.gms.auth.AccountChangeEventsResponse; +import com.google.android.gms.auth.AccountChangeEventsRequest; + interface IAuthManagerService { Bundle getToken(String accountName, String scope, in Bundle extras); Bundle clearToken(String token, in Bundle extras); + AccountChangeEventsResponse getChangeEvents(in AccountChangeEventsRequest request); } diff --git a/src/com/google/android/gms/auth/AccountChangeEvent.java b/src/com/google/android/gms/auth/AccountChangeEvent.java index 4f927ab8..cfa84122 100644 --- a/src/com/google/android/gms/auth/AccountChangeEvent.java +++ b/src/com/google/android/gms/auth/AccountChangeEvent.java @@ -1,4 +1,7 @@ package com.google.android.gms.auth; -public class AccountChangeEvent { +import org.microg.safeparcel.AutoSafeParcelable; + +public class AccountChangeEvent extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator<>(AccountChangeEvent.class); } diff --git a/src/com/google/android/gms/auth/AccountChangeEventsRequest.aidl b/src/com/google/android/gms/auth/AccountChangeEventsRequest.aidl new file mode 100644 index 00000000..206b1a9d --- /dev/null +++ b/src/com/google/android/gms/auth/AccountChangeEventsRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.auth; + +parcelable AccountChangeEventsRequest; \ No newline at end of file diff --git a/src/com/google/android/gms/auth/AccountChangeEventsRequest.java b/src/com/google/android/gms/auth/AccountChangeEventsRequest.java new file mode 100644 index 00000000..940301d3 --- /dev/null +++ b/src/com/google/android/gms/auth/AccountChangeEventsRequest.java @@ -0,0 +1,37 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class AccountChangeEventsRequest extends AutoSafeParcelable { + @SafeParceled(1) + private final int versionCode; + @SafeParceled(2) + private int i; + @SafeParceled(3) + private String s; + + + private AccountChangeEventsRequest() { + versionCode = 1; + } + + public static Creator CREATOR = new AutoCreator<>(AccountChangeEventsRequest.class); + +} diff --git a/src/com/google/android/gms/auth/AccountChangeEventsResponse.aidl b/src/com/google/android/gms/auth/AccountChangeEventsResponse.aidl new file mode 100644 index 00000000..832e5859 --- /dev/null +++ b/src/com/google/android/gms/auth/AccountChangeEventsResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.auth; + +parcelable AccountChangeEventsResponse; \ No newline at end of file diff --git a/src/com/google/android/gms/auth/AccountChangeEventsResponse.java b/src/com/google/android/gms/auth/AccountChangeEventsResponse.java new file mode 100644 index 00000000..a319e621 --- /dev/null +++ b/src/com/google/android/gms/auth/AccountChangeEventsResponse.java @@ -0,0 +1,37 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.ArrayList; +import java.util.List; + +public class AccountChangeEventsResponse extends AutoSafeParcelable { + @SafeParceled(1) + private final int versionCode; + @SafeParceled(value = 2, subType = "com.google.android.gms.auth.AccountChangeEvent") + private List events; + + public AccountChangeEventsResponse() { + versionCode = 1; + events = new ArrayList<>(); + } + + public static Creator CREATOR = new AutoCreator<>(AccountChangeEventsResponse.class); +} From 07e3208a26361d35253c1c50abca93689b643081 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Tue, 10 Feb 2015 03:32:55 +0100 Subject: [PATCH 023/170] Update SafeParcel --- SafeParcel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SafeParcel b/SafeParcel index 3efecf38..a650ca5b 160000 --- a/SafeParcel +++ b/SafeParcel @@ -1 +1 @@ -Subproject commit 3efecf38ca8b1f89cd8f0c40eea4b497f1563d90 +Subproject commit a650ca5beac2a374460d820935b40f9539e692db From 3243e7d3ecf2f7ff92279b61c4a7e7831356f5c7 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Tue, 10 Feb 2015 15:29:44 +0100 Subject: [PATCH 024/170] Add PeopleService interface --- build.gradle | 2 +- .../google/android/gms/people/internal/IPeopleService.aidl | 5 +++++ src/org/microg/gms/common/Constants.java | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 src/com/google/android/gms/people/internal/IPeopleService.aidl diff --git a/build.gradle b/build.gradle index dd90597a..eb5bd3cb 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:1.0.0' + classpath 'com.android.tools.build:gradle:1.0.1' } } diff --git a/src/com/google/android/gms/people/internal/IPeopleService.aidl b/src/com/google/android/gms/people/internal/IPeopleService.aidl new file mode 100644 index 00000000..563c976e --- /dev/null +++ b/src/com/google/android/gms/people/internal/IPeopleService.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.people.internal; + +interface IPeopleService { + +} diff --git a/src/org/microg/gms/common/Constants.java b/src/org/microg/gms/common/Constants.java index 3f7e65cb..bc1642ba 100644 --- a/src/org/microg/gms/common/Constants.java +++ b/src/org/microg/gms/common/Constants.java @@ -7,6 +7,7 @@ public class Constants { */ public static final int MAX_REFERENCE_VERSION = 6599436; public static final String ACTION_GMS_LOCATION_MANAGER_SERVICE_START = "com.google.android.location.internal.GoogleLocationManagerService.START"; + public static final String ACTION_GMS_PEOPLE_SERVICE_START = "com.google.android.gms.people.service.START"; public static final String KEY_MOCK_LOCATION = "mockLocation"; public static final String DEFAULT_ACCOUNT = "<>"; public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; From 6020cd818a17d1d38a85157b0d44e3505fe791ee Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sun, 1 Mar 2015 14:53:06 +0100 Subject: [PATCH 025/170] Add Lightweight Icing service API --- .../android/gms/appdatasearch/UsageInfo.aidl | 3 +++ .../android/gms/appdatasearch/UsageInfo.java | 24 +++++++++++++++++++ .../internal/ILightweightAppDataSearch.aidl | 8 +++++++ .../ILightweightAppDataSearchCallbacks.aidl | 4 ++++ 4 files changed, 39 insertions(+) create mode 100644 src/com/google/android/gms/appdatasearch/UsageInfo.aidl create mode 100644 src/com/google/android/gms/appdatasearch/UsageInfo.java create mode 100644 src/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl create mode 100644 src/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl diff --git a/src/com/google/android/gms/appdatasearch/UsageInfo.aidl b/src/com/google/android/gms/appdatasearch/UsageInfo.aidl new file mode 100644 index 00000000..b52e3d4f --- /dev/null +++ b/src/com/google/android/gms/appdatasearch/UsageInfo.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.appdatasearch; + +parcelable UsageInfo; \ No newline at end of file diff --git a/src/com/google/android/gms/appdatasearch/UsageInfo.java b/src/com/google/android/gms/appdatasearch/UsageInfo.java new file mode 100644 index 00000000..47e12395 --- /dev/null +++ b/src/com/google/android/gms/appdatasearch/UsageInfo.java @@ -0,0 +1,24 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.appdatasearch; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class UsageInfo extends AutoSafeParcelable { + + public static Creator CREATOR = new AutoCreator<>(UsageInfo.class); +} diff --git a/src/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl b/src/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl new file mode 100644 index 00000000..77e618ac --- /dev/null +++ b/src/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl @@ -0,0 +1,8 @@ +package com.google.android.gms.appdatasearch.internal; + +import com.google.android.gms.appdatasearch.internal.ILightweightAppDataSearchCallbacks; +import com.google.android.gms.appdatasearch.UsageInfo; + +interface ILightweightAppDataSearch { + void view(ILightweightAppDataSearchCallbacks callbacks, String packageName, in UsageInfo[] usageInfos); +} diff --git a/src/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl b/src/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl new file mode 100644 index 00000000..338a1427 --- /dev/null +++ b/src/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl @@ -0,0 +1,4 @@ +package com.google.android.gms.appdatasearch.internal; + +interface ILightweightAppDataSearchCallbacks { +} From c29a2cbc8937b6e41d125aab34328c988d99e345 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 2 Mar 2015 03:54:11 +0100 Subject: [PATCH 026/170] More reporting API --- .../location/reporting/ReportingState.aidl | 3 ++ .../location/reporting/ReportingState.java | 41 +++++++++++++++++++ .../reporting/internal/IReportingService.aidl | 8 ++++ 3 files changed, 52 insertions(+) create mode 100644 src/com/google/android/gms/location/reporting/ReportingState.aidl create mode 100644 src/com/google/android/gms/location/reporting/ReportingState.java create mode 100644 src/com/google/android/gms/location/reporting/internal/IReportingService.aidl diff --git a/src/com/google/android/gms/location/reporting/ReportingState.aidl b/src/com/google/android/gms/location/reporting/ReportingState.aidl new file mode 100644 index 00000000..4b1bf63c --- /dev/null +++ b/src/com/google/android/gms/location/reporting/ReportingState.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.reporting; + +parcelable ReportingState; \ No newline at end of file diff --git a/src/com/google/android/gms/location/reporting/ReportingState.java b/src/com/google/android/gms/location/reporting/ReportingState.java new file mode 100644 index 00000000..b99bde56 --- /dev/null +++ b/src/com/google/android/gms/location/reporting/ReportingState.java @@ -0,0 +1,41 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location.reporting; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class ReportingState extends AutoSafeParcelable { + @SafeParceled(1) + public int versionCode; + @SafeParceled(2) + public int reportingEnabled; + @SafeParceled(3) + public int historyEnabled; + @SafeParceled(4) + public boolean allowed; + @SafeParceled(5) + public boolean active; + @SafeParceled(6) + public boolean defer; + @SafeParceled(7) + public int expectedOptInResult; + @SafeParceled(8) + public Integer deviceTag; + + public static final Creator CREATOR = new AutoCreator<>(ReportingState.class); +} diff --git a/src/com/google/android/gms/location/reporting/internal/IReportingService.aidl b/src/com/google/android/gms/location/reporting/internal/IReportingService.aidl new file mode 100644 index 00000000..c9eb0aae --- /dev/null +++ b/src/com/google/android/gms/location/reporting/internal/IReportingService.aidl @@ -0,0 +1,8 @@ +package com.google.android.gms.location.reporting.internal; + +import android.accounts.Account; +import com.google.android.gms.location.reporting.ReportingState; + +interface IReportingService { + ReportingState unknown3(in Account account); +} From 059d4a7b835dc52b99b5313077fa3dfd2e61b831 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Tue, 3 Mar 2015 22:30:51 +0100 Subject: [PATCH 027/170] Start adding IPeopleService --- .../common/server/FavaDiagnosticsEntity.aidl | 3 ++ .../common/server/FavaDiagnosticsEntity.java | 24 ++++++++++++++ .../gms/people/internal/IPeopleCallbacks.aidl | 4 +++ .../gms/people/internal/IPeopleService.aidl | 32 ++++++++++++++++++- 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 src/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl create mode 100644 src/com/google/android/gms/common/server/FavaDiagnosticsEntity.java create mode 100644 src/com/google/android/gms/people/internal/IPeopleCallbacks.aidl diff --git a/src/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl b/src/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl new file mode 100644 index 00000000..69b856bc --- /dev/null +++ b/src/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.common.server; + +parcelable FavaDiagnosticsEntity; \ No newline at end of file diff --git a/src/com/google/android/gms/common/server/FavaDiagnosticsEntity.java b/src/com/google/android/gms/common/server/FavaDiagnosticsEntity.java new file mode 100644 index 00000000..6183e2f8 --- /dev/null +++ b/src/com/google/android/gms/common/server/FavaDiagnosticsEntity.java @@ -0,0 +1,24 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.common.server; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class FavaDiagnosticsEntity extends AutoSafeParcelable { + + public static final Creator CREATOR = new AutoCreator<>(FavaDiagnosticsEntity.class); +} diff --git a/src/com/google/android/gms/people/internal/IPeopleCallbacks.aidl b/src/com/google/android/gms/people/internal/IPeopleCallbacks.aidl new file mode 100644 index 00000000..f1f0d5fa --- /dev/null +++ b/src/com/google/android/gms/people/internal/IPeopleCallbacks.aidl @@ -0,0 +1,4 @@ +package com.google.android.gms.people.internal; + +interface IPeopleCallbacks { +} diff --git a/src/com/google/android/gms/people/internal/IPeopleService.aidl b/src/com/google/android/gms/people/internal/IPeopleService.aidl index 563c976e..8c41d3a0 100644 --- a/src/com/google/android/gms/people/internal/IPeopleService.aidl +++ b/src/com/google/android/gms/people/internal/IPeopleService.aidl @@ -1,5 +1,35 @@ package com.google.android.gms.people.internal; -interface IPeopleService { +import com.google.android.gms.people.internal.IPeopleCallbacks; +import com.google.android.gms.common.server.FavaDiagnosticsEntity; +interface IPeopleService { + void unknown1(); + void loadOwners1(IPeopleCallbacks var1, boolean var2, boolean var3, String var4, String var5); + void loadCirclesOld(IPeopleCallbacks var1, String var2, String var3, String var4, int var5, String var6); + void loadPeopleOld(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, int var6, boolean var7, long var8); + void loadAvatarLegacy(IPeopleCallbacks var1, String var2, int var3, int var4); + void loadContactImageLegacy(IPeopleCallbacks var1, long var2, boolean var4); + void blockPerson(IPeopleCallbacks var1, String var2, String var3, String var4, boolean var5); + Bundle syncRawContact(in Uri var1); + void loadPeopleForAggregation8(IPeopleCallbacks var1, String var2, String var3, String var4, boolean var5, int var6); + void setSyncToContactsSettings(IPeopleCallbacks var1, String var2, boolean var3, in String[] var4); + Bundle registerDataChangedListener(IPeopleCallbacks var1, boolean var2, String var3, String var4, int var5); + Bundle startSync(String var1, String var2); + void requestSync(IPeopleCallbacks var1, String var2, String var3, in Uri var4); + void updatePersonCirclesOld(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, in List var6); + void a(boolean var1); + boolean isSyncToContactsEnabled(); + Bundle requestSyncOld(String var1, String var2); + void setAvatar(IPeopleCallbacks var1, String var2, String var3, in Uri var4, boolean var5); + void loadCircles(IPeopleCallbacks var1, String var2, String var3, String var4, int var5, String var6, boolean var7); + Bundle requestSyncOld19(String var1, String var2, long var3); + void loadPeople20(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, int var6, boolean var7, long var8, String var10, int var11); + void loadPeopleLive(IPeopleCallbacks var1, String var2, String var3, String var4, int var5, String var6); + void updatePersonCircles(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, in List var6, in FavaDiagnosticsEntity var7); + void loadRemoteImageLegacy(IPeopleCallbacks var1, String var2); + void loadContactsGaiaIds24(IPeopleCallbacks var1, String var2, String var3); + Bundle requestSyncOld25(String var1, String var2, long var3, boolean var5); + void addCircle(IPeopleCallbacks var1, String var2, String var3, String var4, String var5); + void addPeopleToCircle(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5); } From adb160c25bf23be73738a732c94b903db41a338d Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Wed, 4 Mar 2015 23:22:49 +0100 Subject: [PATCH 028/170] Beginning IPeopleService --- .../android/gms/common/data/DataHolder.java | 6 +- .../gms/people/internal/IPeopleCallbacks.aidl | 3 + .../gms/people/internal/IPeopleService.aidl | 56 +++++++++---------- .../gms/people/model/AccountMetadata.java | 28 ++++++++++ 4 files changed, 62 insertions(+), 31 deletions(-) create mode 100644 src/com/google/android/gms/people/model/AccountMetadata.java diff --git a/src/com/google/android/gms/common/data/DataHolder.java b/src/com/google/android/gms/common/data/DataHolder.java index ef5d89ef..6ec81e9e 100644 --- a/src/com/google/android/gms/common/data/DataHolder.java +++ b/src/com/google/android/gms/common/data/DataHolder.java @@ -1,11 +1,11 @@ package com.google.android.gms.common.data; import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; -/** - * TODO: usage - */ public class DataHolder extends AutoSafeParcelable { + @SafeParceled(1000) + private int versionCode = 1; public static final Creator CREATOR = new AutoCreator<>(DataHolder.class); } diff --git a/src/com/google/android/gms/people/internal/IPeopleCallbacks.aidl b/src/com/google/android/gms/people/internal/IPeopleCallbacks.aidl index f1f0d5fa..43d52a41 100644 --- a/src/com/google/android/gms/people/internal/IPeopleCallbacks.aidl +++ b/src/com/google/android/gms/people/internal/IPeopleCallbacks.aidl @@ -1,4 +1,7 @@ package com.google.android.gms.people.internal; +import com.google.android.gms.common.data.DataHolder; + interface IPeopleCallbacks { + void onDataHolders(int code, in Bundle meta, in DataHolder[] data) = 3; } diff --git a/src/com/google/android/gms/people/internal/IPeopleService.aidl b/src/com/google/android/gms/people/internal/IPeopleService.aidl index 8c41d3a0..15a17a33 100644 --- a/src/com/google/android/gms/people/internal/IPeopleService.aidl +++ b/src/com/google/android/gms/people/internal/IPeopleService.aidl @@ -4,32 +4,32 @@ import com.google.android.gms.people.internal.IPeopleCallbacks; import com.google.android.gms.common.server.FavaDiagnosticsEntity; interface IPeopleService { - void unknown1(); - void loadOwners1(IPeopleCallbacks var1, boolean var2, boolean var3, String var4, String var5); - void loadCirclesOld(IPeopleCallbacks var1, String var2, String var3, String var4, int var5, String var6); - void loadPeopleOld(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, int var6, boolean var7, long var8); - void loadAvatarLegacy(IPeopleCallbacks var1, String var2, int var3, int var4); - void loadContactImageLegacy(IPeopleCallbacks var1, long var2, boolean var4); - void blockPerson(IPeopleCallbacks var1, String var2, String var3, String var4, boolean var5); - Bundle syncRawContact(in Uri var1); - void loadPeopleForAggregation8(IPeopleCallbacks var1, String var2, String var3, String var4, boolean var5, int var6); - void setSyncToContactsSettings(IPeopleCallbacks var1, String var2, boolean var3, in String[] var4); - Bundle registerDataChangedListener(IPeopleCallbacks var1, boolean var2, String var3, String var4, int var5); - Bundle startSync(String var1, String var2); - void requestSync(IPeopleCallbacks var1, String var2, String var3, in Uri var4); - void updatePersonCirclesOld(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, in List var6); - void a(boolean var1); - boolean isSyncToContactsEnabled(); - Bundle requestSyncOld(String var1, String var2); - void setAvatar(IPeopleCallbacks var1, String var2, String var3, in Uri var4, boolean var5); - void loadCircles(IPeopleCallbacks var1, String var2, String var3, String var4, int var5, String var6, boolean var7); - Bundle requestSyncOld19(String var1, String var2, long var3); - void loadPeople20(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, int var6, boolean var7, long var8, String var10, int var11); - void loadPeopleLive(IPeopleCallbacks var1, String var2, String var3, String var4, int var5, String var6); - void updatePersonCircles(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, in List var6, in FavaDiagnosticsEntity var7); - void loadRemoteImageLegacy(IPeopleCallbacks var1, String var2); - void loadContactsGaiaIds24(IPeopleCallbacks var1, String var2, String var3); - Bundle requestSyncOld25(String var1, String var2, long var3, boolean var5); - void addCircle(IPeopleCallbacks var1, String var2, String var3, String var4, String var5); - void addPeopleToCircle(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5); + // void loadOwners1(IPeopleCallbacks var1, boolean var2, boolean var3, String var4, String var5); + // void loadCirclesOld(IPeopleCallbacks var1, String var2, String var3, String var4, int var5, String var6); + // void loadPeopleOld(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, int var6, boolean var7, long var8); + // void loadAvatarLegacy(IPeopleCallbacks var1, String var2, int var3, int var4); + // void loadContactImageLegacy(IPeopleCallbacks var1, long var2, boolean var4); + // void blockPerson(IPeopleCallbacks var1, String var2, String var3, String var4, boolean var5); + // Bundle syncRawContact(in Uri var1); + // void loadPeopleForAggregation8(IPeopleCallbacks var1, String var2, String var3, String var4, boolean var5, int var6); + // void setSyncToContactsSettings(IPeopleCallbacks var1, String var2, boolean var3, in String[] var4); + // Bundle registerDataChangedListener(IPeopleCallbacks var1, boolean var2, String var3, String var4, int var5); + // Bundle startSync(String var1, String var2); + // void requestSync(IPeopleCallbacks var1, String var2, String var3, in Uri var4); + // void updatePersonCirclesOld(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, in List var6); + // boolean isSyncToContactsEnabled(); + // Bundle requestSyncOld(String var1, String var2); + // void setAvatar(IPeopleCallbacks var1, String var2, String var3, in Uri var4, boolean var5); + // void loadCircles(IPeopleCallbacks var1, String var2, String var3, String var4, int var5, String var6, boolean var7); + // Bundle requestSyncOld19(String var1, String var2, long var3); + // void loadPeople20(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, int var6, boolean var7, long var8, String var10, int var11); + // void loadPeopleLive(IPeopleCallbacks var1, String var2, String var3, String var4, int var5, String var6); + // void updatePersonCircles(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, in List var6, in FavaDiagnosticsEntity var7); + // void loadRemoteImageLegacy(IPeopleCallbacks var1, String var2); + // void loadContactsGaiaIds24(IPeopleCallbacks var1, String var2, String var3); + // Bundle requestSyncOld25(String var1, String var2, long var3, boolean var5); + // void addCircle(IPeopleCallbacks var1, String var2, String var3, String var4, String var5); + // void addPeopleToCircle(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5); + + void loadOwners(IPeopleCallbacks callbacks, boolean var2, boolean var3, String var4, String var5, int var6) = 304; } diff --git a/src/com/google/android/gms/people/model/AccountMetadata.java b/src/com/google/android/gms/people/model/AccountMetadata.java new file mode 100644 index 00000000..943aac86 --- /dev/null +++ b/src/com/google/android/gms/people/model/AccountMetadata.java @@ -0,0 +1,28 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.people.model; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class AccountMetadata extends AutoSafeParcelable { + + @SafeParceled(1) + private int versionCode = 2; + + public static Creator CREATOR = new AutoCreator<>(AccountMetadata.class); +} From 4b5be5f4bb6b5e4e88a74011e8c150594769bcba Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Thu, 5 Mar 2015 23:26:08 +0100 Subject: [PATCH 029/170] Add DataHolder and SignInButtonCreator --- AndroidManifest.xml | 4 +- SafeParcel | 2 +- .../android/gms/common/data/DataHolder.java | 80 +++++++++++++++++++ .../common/internal/ISignInButtonCreator.aidl | 7 ++ .../gms/people/internal/IPeopleCallbacks.aidl | 3 +- 5 files changed, 92 insertions(+), 4 deletions(-) create mode 100644 src/com/google/android/gms/common/internal/ISignInButtonCreator.aidl diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 39f687cb..7bef5e7d 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,6 +1,6 @@ + package="org.microg.gms.api"> - + diff --git a/SafeParcel b/SafeParcel index a650ca5b..462316b1 160000 --- a/SafeParcel +++ b/SafeParcel @@ -1 +1 @@ -Subproject commit a650ca5beac2a374460d820935b40f9539e692db +Subproject commit 462316b18e2620bd5c0cb843abd67671d941300d diff --git a/src/com/google/android/gms/common/data/DataHolder.java b/src/com/google/android/gms/common/data/DataHolder.java index 6ec81e9e..335a004a 100644 --- a/src/com/google/android/gms/common/data/DataHolder.java +++ b/src/com/google/android/gms/common/data/DataHolder.java @@ -1,11 +1,91 @@ package com.google.android.gms.common.data; +import android.database.Cursor; +import android.database.CursorWindow; +import android.os.Bundle; + import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * Class for accessing collections of data, organized into columns. This provides the backing + * support for DataBuffer. Much like a cursor, the holder supports the notion of a current + * position, and has methods for extracting various types of data from named columns. + */ public class DataHolder extends AutoSafeParcelable { @SafeParceled(1000) private int versionCode = 1; + @SafeParceled(1) + private String[] columns; + + @SafeParceled(2) + private CursorWindow[] windows; + + @SafeParceled(3) + private int statusCode; + + @SafeParceled(4) + private Bundle metadata; + + public DataHolder(String[] columns, CursorWindow[] windows, int statusCode, Bundle metadata) { + this.columns = columns; + this.windows = windows; + this.statusCode = statusCode; + this.metadata = metadata; + } + + + public static DataHolder fromCursor(Cursor cursor, int statusCode, Bundle metadata) { + List windows = new ArrayList<>(); + CursorWindow cursorWindow = null; + int row = 0; + while (cursor.moveToNext()) { + if (cursorWindow == null || !cursorWindow.allocRow()) { + cursorWindow = new CursorWindow(false); + cursorWindow.setNumColumns(cursor.getColumnCount()); + windows.add(cursorWindow); + row = 0; + } + for (int i = 0; i < cursor.getColumnCount(); i++) { + switch (cursor.getType(i)) { + case Cursor.FIELD_TYPE_NULL: + cursorWindow.putNull(row, i); + break; + case Cursor.FIELD_TYPE_BLOB: + cursorWindow.putBlob(cursor.getBlob(i), row, i); + break; + case Cursor.FIELD_TYPE_FLOAT: + cursorWindow.putDouble(cursor.getDouble(i), row, i); + break; + case Cursor.FIELD_TYPE_INTEGER: + cursorWindow.putLong(cursor.getLong(i), row, i); + break; + case Cursor.FIELD_TYPE_STRING: + cursorWindow.putString(cursor.getString(i), row, i); + break; + } + } + row++; + } + DataHolder dataHolder = new DataHolder(cursor.getColumnNames(), windows.toArray(new CursorWindow[windows.size()]), statusCode, metadata); + cursor.close(); + return dataHolder; + } + + @Override + public String toString() { + return "DataHolder{" + + "columns=" + Arrays.toString(columns) + + ", windows=" + Arrays.toString(windows) + + ", statusCode=" + statusCode + + ", metadata=" + metadata + + '}'; + } + public static final Creator CREATOR = new AutoCreator<>(DataHolder.class); } diff --git a/src/com/google/android/gms/common/internal/ISignInButtonCreator.aidl b/src/com/google/android/gms/common/internal/ISignInButtonCreator.aidl new file mode 100644 index 00000000..f6c53996 --- /dev/null +++ b/src/com/google/android/gms/common/internal/ISignInButtonCreator.aidl @@ -0,0 +1,7 @@ +package com.google.android.gms.common.internal; + +import com.google.android.gms.dynamic.IObjectWrapper; + +interface ISignInButtonCreator { + IObjectWrapper createSignInButton(IObjectWrapper context, int size, int color); // returns View +} diff --git a/src/com/google/android/gms/people/internal/IPeopleCallbacks.aidl b/src/com/google/android/gms/people/internal/IPeopleCallbacks.aidl index 43d52a41..8738a9ea 100644 --- a/src/com/google/android/gms/people/internal/IPeopleCallbacks.aidl +++ b/src/com/google/android/gms/people/internal/IPeopleCallbacks.aidl @@ -3,5 +3,6 @@ package com.google.android.gms.people.internal; import com.google.android.gms.common.data.DataHolder; interface IPeopleCallbacks { - void onDataHolders(int code, in Bundle meta, in DataHolder[] data) = 3; + void onDataHolder(int code, in Bundle resolution, in DataHolder holder) = 1; + void onDataHolders(int code, in Bundle resolution, in DataHolder[] holders) = 3; } From a19db96290c410e54101396b2109d47005c39eaa Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sun, 8 Mar 2015 22:47:12 +0100 Subject: [PATCH 030/170] Fix DataHolder --- src/com/google/android/gms/common/data/DataHolder.java | 2 ++ .../google/android/gms/people/internal/IPeopleService.aidl | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/com/google/android/gms/common/data/DataHolder.java b/src/com/google/android/gms/common/data/DataHolder.java index 335a004a..75a57dd4 100644 --- a/src/com/google/android/gms/common/data/DataHolder.java +++ b/src/com/google/android/gms/common/data/DataHolder.java @@ -49,6 +49,8 @@ public class DataHolder extends AutoSafeParcelable { cursorWindow = new CursorWindow(false); cursorWindow.setNumColumns(cursor.getColumnCount()); windows.add(cursorWindow); + if (!cursorWindow.allocRow()) + throw new RuntimeException("Impossible to store Cursor in CursorWindows"); row = 0; } for (int i = 0; i < cursor.getColumnCount(); i++) { diff --git a/src/com/google/android/gms/people/internal/IPeopleService.aidl b/src/com/google/android/gms/people/internal/IPeopleService.aidl index 15a17a33..c6cd04e9 100644 --- a/src/com/google/android/gms/people/internal/IPeopleService.aidl +++ b/src/com/google/android/gms/people/internal/IPeopleService.aidl @@ -13,7 +13,7 @@ interface IPeopleService { // Bundle syncRawContact(in Uri var1); // void loadPeopleForAggregation8(IPeopleCallbacks var1, String var2, String var3, String var4, boolean var5, int var6); // void setSyncToContactsSettings(IPeopleCallbacks var1, String var2, boolean var3, in String[] var4); - // Bundle registerDataChangedListener(IPeopleCallbacks var1, boolean var2, String var3, String var4, int var5); + // Bundle startSync(String var1, String var2); // void requestSync(IPeopleCallbacks var1, String var2, String var3, in Uri var4); // void updatePersonCirclesOld(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, in List var6); @@ -31,5 +31,6 @@ interface IPeopleService { // void addCircle(IPeopleCallbacks var1, String var2, String var3, String var4, String var5); // void addPeopleToCircle(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5); - void loadOwners(IPeopleCallbacks callbacks, boolean var2, boolean var3, String var4, String var5, int var6) = 304; + Bundle registerDataChangedListener(IPeopleCallbacks callbacks, boolean register, String var3, String var4, int scopes) = 10; + void loadOwners(IPeopleCallbacks callbacks, boolean var2, boolean var3, String account, String var5, int sortOrder) = 304; } From cee8188daef20716b4879be8f34c3ad730161e17 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 9 Mar 2015 02:59:35 +0100 Subject: [PATCH 031/170] Add loadOwnerAvatar() --- src/com/google/android/gms/common/internal/ICancelToken.aidl | 5 +++++ .../google/android/gms/people/internal/IPeopleService.aidl | 2 ++ 2 files changed, 7 insertions(+) create mode 100644 src/com/google/android/gms/common/internal/ICancelToken.aidl diff --git a/src/com/google/android/gms/common/internal/ICancelToken.aidl b/src/com/google/android/gms/common/internal/ICancelToken.aidl new file mode 100644 index 00000000..aebd4794 --- /dev/null +++ b/src/com/google/android/gms/common/internal/ICancelToken.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.common.internal; + +interface ICancelToken { + void cancel(); +} diff --git a/src/com/google/android/gms/people/internal/IPeopleService.aidl b/src/com/google/android/gms/people/internal/IPeopleService.aidl index c6cd04e9..e399cd02 100644 --- a/src/com/google/android/gms/people/internal/IPeopleService.aidl +++ b/src/com/google/android/gms/people/internal/IPeopleService.aidl @@ -2,6 +2,7 @@ package com.google.android.gms.people.internal; import com.google.android.gms.people.internal.IPeopleCallbacks; import com.google.android.gms.common.server.FavaDiagnosticsEntity; +import com.google.android.gms.common.internal.ICancelToken; interface IPeopleService { // void loadOwners1(IPeopleCallbacks var1, boolean var2, boolean var3, String var4, String var5); @@ -33,4 +34,5 @@ interface IPeopleService { Bundle registerDataChangedListener(IPeopleCallbacks callbacks, boolean register, String var3, String var4, int scopes) = 10; void loadOwners(IPeopleCallbacks callbacks, boolean var2, boolean var3, String account, String var5, int sortOrder) = 304; + ICancelToken loadOwnerAvatar(IPeopleCallbacks callbacks, String account, String pageId, int size, int flags) = 504; } From 1510aa1b0adeeed9dbe591b25ad75b015f968d82 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Wed, 11 Mar 2015 22:46:22 +0100 Subject: [PATCH 032/170] Start adding IAppDataSearch --- .../gms/appdatasearch/CorpusStatus.aidl | 3 ++ .../gms/appdatasearch/CorpusStatus.java | 42 +++++++++++++++ .../appdatasearch/SuggestSpecification.aidl | 3 ++ .../appdatasearch/SuggestSpecification.java | 27 ++++++++++ .../gms/appdatasearch/SuggestionResults.aidl | 3 ++ .../gms/appdatasearch/SuggestionResults.java | 51 +++++++++++++++++++ .../internal/IAppDataSearch.aidl | 10 ++++ 7 files changed, 139 insertions(+) create mode 100644 src/com/google/android/gms/appdatasearch/CorpusStatus.aidl create mode 100644 src/com/google/android/gms/appdatasearch/CorpusStatus.java create mode 100644 src/com/google/android/gms/appdatasearch/SuggestSpecification.aidl create mode 100644 src/com/google/android/gms/appdatasearch/SuggestSpecification.java create mode 100644 src/com/google/android/gms/appdatasearch/SuggestionResults.aidl create mode 100644 src/com/google/android/gms/appdatasearch/SuggestionResults.java create mode 100644 src/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl diff --git a/src/com/google/android/gms/appdatasearch/CorpusStatus.aidl b/src/com/google/android/gms/appdatasearch/CorpusStatus.aidl new file mode 100644 index 00000000..f893aef8 --- /dev/null +++ b/src/com/google/android/gms/appdatasearch/CorpusStatus.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.appdatasearch; + +parcelable CorpusStatus; \ No newline at end of file diff --git a/src/com/google/android/gms/appdatasearch/CorpusStatus.java b/src/com/google/android/gms/appdatasearch/CorpusStatus.java new file mode 100644 index 00000000..99a4fd6d --- /dev/null +++ b/src/com/google/android/gms/appdatasearch/CorpusStatus.java @@ -0,0 +1,42 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.appdatasearch; + +import android.os.Bundle; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class CorpusStatus extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 2; + @SafeParceled(1) + public boolean found; + @SafeParceled(2) + public long lastIndexedSeqno; + @SafeParceled(3) + public long lastCommittedSeqno; + @SafeParceled(4) + public long committedNumDocuments; + @SafeParceled(5) + public Bundle counters; + @SafeParceled(6) + public String g; + + public static final Creator CREATOR = new AutoCreator<>(CorpusStatus.class); +} diff --git a/src/com/google/android/gms/appdatasearch/SuggestSpecification.aidl b/src/com/google/android/gms/appdatasearch/SuggestSpecification.aidl new file mode 100644 index 00000000..0b3c47ff --- /dev/null +++ b/src/com/google/android/gms/appdatasearch/SuggestSpecification.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.appdatasearch; + +parcelable SuggestSpecification; \ No newline at end of file diff --git a/src/com/google/android/gms/appdatasearch/SuggestSpecification.java b/src/com/google/android/gms/appdatasearch/SuggestSpecification.java new file mode 100644 index 00000000..e8433284 --- /dev/null +++ b/src/com/google/android/gms/appdatasearch/SuggestSpecification.java @@ -0,0 +1,27 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.appdatasearch; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class SuggestSpecification extends AutoSafeParcelable { + @SafeParceled(1000) + private int versionCode = 2; + + public static final Creator CREATOR = new AutoCreator<>(SuggestSpecification.class); +} diff --git a/src/com/google/android/gms/appdatasearch/SuggestionResults.aidl b/src/com/google/android/gms/appdatasearch/SuggestionResults.aidl new file mode 100644 index 00000000..57d2d63b --- /dev/null +++ b/src/com/google/android/gms/appdatasearch/SuggestionResults.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.appdatasearch; + +parcelable SuggestionResults; \ No newline at end of file diff --git a/src/com/google/android/gms/appdatasearch/SuggestionResults.java b/src/com/google/android/gms/appdatasearch/SuggestionResults.java new file mode 100644 index 00000000..83818551 --- /dev/null +++ b/src/com/google/android/gms/appdatasearch/SuggestionResults.java @@ -0,0 +1,51 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.appdatasearch; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class SuggestionResults extends AutoSafeParcelable { + @SafeParceled(1000) + private int versionCode = 2; + @SafeParceled(1) + public final String errorMessage; + + @SafeParceled(2) + public final String[] s1; + @SafeParceled(3) + public final String[] s2; + + private SuggestionResults() { + errorMessage = null; + s1 = s2 = null; + } + + public SuggestionResults(String errorMessage) { + this.errorMessage = errorMessage; + this.s1 = null; + this.s2 = null; + } + + public SuggestionResults(String[] s1, String[] s2) { + this.errorMessage = null; + this.s1 = s1; + this.s2 = s2; + } + + public static final Creator CREATOR = new AutoCreator<>(SuggestionResults.class); +} diff --git a/src/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl b/src/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl new file mode 100644 index 00000000..37a6a905 --- /dev/null +++ b/src/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl @@ -0,0 +1,10 @@ +package com.google.android.gms.appdatasearch.internal; + +import com.google.android.gms.appdatasearch.CorpusStatus; +import com.google.android.gms.appdatasearch.SuggestionResults; +import com.google.android.gms.appdatasearch.SuggestSpecification; + +interface IAppDataSearch { + SuggestionResults getSuggestions(String var1, String packageName, in String[] accounts, int maxNum, in SuggestSpecification specs) = 1; + CorpusStatus getStatus(String packageName, String accountName) = 4; +} From 32663c095b2539fe8feae0afece83272815327a6 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 13 Mar 2015 00:13:22 +0100 Subject: [PATCH 033/170] Switch to gradle/maven project structure --- build.gradle | 11 +---- .../main/AndroidManifest.xml | 0 .../android/auth/IAuthManagerService.aidl | 0 .../gms/appdatasearch/CorpusStatus.aidl | 0 .../appdatasearch/SuggestSpecification.aidl | 0 .../gms/appdatasearch/SuggestionResults.aidl | 0 .../android/gms/appdatasearch/UsageInfo.aidl | 0 .../internal/IAppDataSearch.aidl | 0 .../internal/ILightweightAppDataSearch.aidl | 0 .../ILightweightAppDataSearchCallbacks.aidl | 0 .../gms/auth/AccountChangeEventsRequest.aidl | 0 .../gms/auth/AccountChangeEventsResponse.aidl | 0 .../android/gms/common/data/DataHolder.aidl | 0 .../gms/common/internal/ICancelToken.aidl | 0 .../gms/common/internal/IGmsCallbacks.aidl | 0 .../common/internal/IGmsServiceBroker.aidl | 0 .../common/internal/ISignInButtonCreator.aidl | 0 .../common/server/FavaDiagnosticsEntity.aidl | 0 .../android/gms/dynamic/IObjectWrapper.aidl | 0 .../google/android/gms/location/Geofence.aidl | 0 .../gms/location/GeofencingRequest.aidl | 0 .../gms/location/ILocationListener.aidl | 0 .../android/gms/location/LocationRequest.aidl | 0 .../android/gms/location/LocationStatus.aidl | 0 .../internal/IGeofencerCallbacks.aidl | 0 .../IGoogleLocationManagerService.aidl | 0 .../internal/LocationRequestInternal.aidl | 0 .../location/places/AutocompleteFilter.aidl | 0 .../location/places/NearbyAlertRequest.aidl | 0 .../gms/location/places/PlaceFilter.aidl | 0 .../gms/location/places/PlaceReport.aidl | 0 .../gms/location/places/PlaceRequest.aidl | 0 .../gms/location/places/UserAddedPlace.aidl | 0 .../gms/location/places/UserDataType.aidl | 0 .../places/internal/IPlacesCallbacks.aidl | 0 .../places/internal/PlacesParams.aidl | 0 .../location/reporting/ReportingState.aidl | 0 .../reporting/internal/IReportingService.aidl | 0 .../android/gms/maps/GoogleMapOptions.aidl | 0 .../ICameraUpdateFactoryDelegate.aidl | 0 .../maps/internal/ICancelableCallback.aidl | 0 .../android/gms/maps/internal/ICreator.aidl | 0 .../gms/maps/internal/IGoogleMapDelegate.aidl | 0 .../gms/maps/internal/IInfoWindowAdapter.aidl | 0 .../internal/ILocationSourceDelegate.aidl | 0 .../maps/internal/IMapFragmentDelegate.aidl | 0 .../gms/maps/internal/IMapViewDelegate.aidl | 0 .../internal/IOnCameraChangeListener.aidl | 0 .../internal/IOnInfoWindowClickListener.aidl | 0 .../maps/internal/IOnMapClickListener.aidl | 0 .../maps/internal/IOnMapLoadedCallback.aidl | 0 .../internal/IOnMapLongClickListener.aidl | 0 .../maps/internal/IOnMarkerClickListener.aidl | 0 .../maps/internal/IOnMarkerDragListener.aidl | 0 .../IOnMyLocationButtonClickListener.aidl | 0 .../internal/IOnMyLocationChangeListener.aidl | 0 .../maps/internal/IProjectionDelegate.aidl | 0 .../maps/internal/ISnapshotReadyCallback.aidl | 0 .../maps/internal/IUiSettingsDelegate.aidl | 0 .../gms/maps/model/CameraPosition.aidl | 0 .../android/gms/maps/model/CircleOptions.aidl | 0 .../gms/maps/model/GroundOverlayOptions.aidl | 0 .../google/android/gms/maps/model/LatLng.aidl | 0 .../android/gms/maps/model/LatLngBounds.aidl | 0 .../android/gms/maps/model/MarkerOptions.aidl | 0 .../gms/maps/model/PolygonOptions.aidl | 0 .../gms/maps/model/PolylineOptions.aidl | 0 .../google/android/gms/maps/model/Tile.aidl | 0 .../gms/maps/model/TileOverlayOptions.aidl | 0 .../android/gms/maps/model/VisibleRegion.aidl | 0 .../IBitmapDescriptorFactoryDelegate.aidl | 0 .../maps/model/internal/ICircleDelegate.aidl | 0 .../internal/IGroundOverlayDelegate.aidl | 0 .../maps/model/internal/IMarkerDelegate.aidl | 0 .../maps/model/internal/IPolygonDelegate.aidl | 0 .../model/internal/IPolylineDelegate.aidl | 0 .../model/internal/ITileOverlayDelegate.aidl | 0 .../model/internal/ITileProviderDelegate.aidl | 0 .../gms/people/internal/IPeopleCallbacks.aidl | 0 .../gms/people/internal/IPeopleService.aidl | 0 .../plus/internal/IPlusOneButtonCreator.aidl | 0 .../gms/appdatasearch/CorpusStatus.java | 0 .../appdatasearch/SuggestSpecification.java | 0 .../gms/appdatasearch/SuggestionResults.java | 0 .../android/gms/appdatasearch/UsageInfo.java | 0 .../android/gms/auth/AccountChangeEvent.java | 0 .../gms/auth/AccountChangeEventsRequest.java | 0 .../gms/auth/AccountChangeEventsResponse.java | 0 .../firstparty/dataservice/TokenRequest.java | 0 .../firstparty/dataservice/TokenResponse.java | 0 .../firstparty/proximity/data/Permit.java | 0 .../com/google/android/gms/common/Scopes.java | 0 .../android/gms/common/api/AccountInfo.java | 0 .../gms/common/api/CommonStatusCodes.java | 0 .../google/android/gms/common/api/Result.java | 0 .../google/android/gms/common/api/Scope.java | 0 .../google/android/gms/common/api/Status.java | 0 .../android/gms/common/data/DataHolder.java | 46 ++++++++++++++++--- .../common/server/FavaDiagnosticsEntity.java | 0 .../metadata/internal/MetadataBundle.java | 0 .../android/gms/dynamic/ObjectWrapper.java | 0 .../android/gms/fitness/data/DataPoint.java | 0 .../android/gms/fitness/data/Device.java | 0 .../android/gms/fitness/data/Field.java | 0 .../android/gms/fitness/data/Value.java | 0 .../identity/accounts/api/AccountData.java | 0 .../intents/model/CountrySpecification.java | 0 .../identity/intents/model/UserAddress.java | 0 .../google/android/gms/location/Geofence.java | 0 .../gms/location/GeofencingRequest.java | 0 .../android/gms/location/LocationRequest.java | 0 .../android/gms/location/LocationStatus.java | 0 .../gms/location/internal/ClientIdentity.java | 0 .../internal/LocationRequestInternal.java | 0 .../location/places/AutocompleteFilter.java | 0 .../location/places/NearbyAlertRequest.java | 0 .../gms/location/places/PlaceFilter.java | 0 .../gms/location/places/PlaceReport.java | 0 .../gms/location/places/PlaceRequest.java | 0 .../gms/location/places/UserAddedPlace.java | 0 .../gms/location/places/UserDataType.java | 0 .../places/internal/PlacesParams.java | 0 .../location/reporting/ReportingState.java | 0 .../android/gms/maps/GoogleMapOptions.java | 0 .../gms/maps/StreetViewPanoramaOptions.java | 0 .../android/gms/maps/internal/Point.java | 0 .../gms/maps/model/BitmapDescriptor.java | 0 .../gms/maps/model/CameraPosition.java | 0 .../android/gms/maps/model/CircleOptions.java | 0 .../gms/maps/model/GroundOverlayOptions.java | 0 .../google/android/gms/maps/model/LatLng.java | 0 .../android/gms/maps/model/LatLngBounds.java | 0 .../android/gms/maps/model/MarkerOptions.java | 0 .../gms/maps/model/PolygonOptions.java | 0 .../gms/maps/model/PolylineOptions.java | 0 .../maps/model/StreetViewPanoramaCamera.java | 0 .../maps/model/StreetViewPanoramaLink.java | 0 .../model/StreetViewPanoramaLocation.java | 0 .../model/StreetViewPanoramaOrientation.java | 0 .../google/android/gms/maps/model/Tile.java | 0 .../gms/maps/model/TileOverlayOptions.java | 0 .../android/gms/maps/model/TileProvider.java | 0 .../android/gms/maps/model/VisibleRegion.java | 0 .../android/gms/maps/model/package-info.java | 0 .../gms/people/model/AccountMetadata.java | 0 .../gms/plus/internal/PlusCommonExtras.java | 0 .../gms/plus/internal/PlusSession.java | 0 .../model/smart_profile/CardsRequest.java | 0 .../model/smart_profile/CardsResponse.java | 0 .../PeopleForProfilesRequest.java | 0 .../PeopleForProfilesResponse.java | 0 .../android/gms/plus/model/posts/Comment.java | 0 .../android/gms/plus/model/posts/Post.java | 0 .../gms/plus/model/posts/Settings.java | 0 .../gms/wearable/ConnectionConfiguration.java | 0 .../com/google/android/gms/wearable/Node.java | 0 .../gms/wearable/WearableStatusCodes.java | 0 .../gms/wearable/internal/NodeParcelable.java | 0 .../org/microg/gms/common/Constants.java | 0 .../org/microg/gms/common/PublicApi.java | 0 160 files changed, 41 insertions(+), 16 deletions(-) rename AndroidManifest.xml => src/main/AndroidManifest.xml (100%) rename src/{ => main/aidl}/com/google/android/auth/IAuthManagerService.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/appdatasearch/CorpusStatus.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/appdatasearch/SuggestSpecification.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/appdatasearch/SuggestionResults.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/appdatasearch/UsageInfo.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/auth/AccountChangeEventsRequest.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/auth/AccountChangeEventsResponse.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/common/data/DataHolder.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/common/internal/ICancelToken.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/common/internal/IGmsCallbacks.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/common/internal/IGmsServiceBroker.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/common/internal/ISignInButtonCreator.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/dynamic/IObjectWrapper.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/Geofence.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/GeofencingRequest.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/ILocationListener.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/LocationRequest.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/LocationStatus.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/internal/LocationRequestInternal.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/places/AutocompleteFilter.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/places/NearbyAlertRequest.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/places/PlaceFilter.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/places/PlaceReport.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/places/PlaceRequest.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/places/UserAddedPlace.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/places/UserDataType.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/places/internal/PlacesParams.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/reporting/ReportingState.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/location/reporting/internal/IReportingService.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/GoogleMapOptions.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/ICancelableCallback.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/ICreator.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IInfoWindowAdapter.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/ILocationSourceDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IMapViewDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IOnInfoWindowClickListener.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IOnMapClickListener.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IOnMapLongClickListener.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IOnMarkerClickListener.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IOnMyLocationButtonClickListener.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IProjectionDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/internal/IUiSettingsDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/CameraPosition.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/CircleOptions.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/GroundOverlayOptions.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/LatLng.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/LatLngBounds.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/MarkerOptions.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/PolygonOptions.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/PolylineOptions.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/Tile.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/TileOverlayOptions.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/VisibleRegion.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/internal/IBitmapDescriptorFactoryDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/internal/ICircleDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/internal/IGroundOverlayDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/internal/IMarkerDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/internal/IPolygonDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/internal/IPolylineDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/internal/ITileOverlayDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/maps/model/internal/ITileProviderDelegate.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/people/internal/IPeopleCallbacks.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/people/internal/IPeopleService.aidl (100%) rename src/{ => main/aidl}/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl (100%) rename src/{ => main/java}/com/google/android/gms/appdatasearch/CorpusStatus.java (100%) rename src/{ => main/java}/com/google/android/gms/appdatasearch/SuggestSpecification.java (100%) rename src/{ => main/java}/com/google/android/gms/appdatasearch/SuggestionResults.java (100%) rename src/{ => main/java}/com/google/android/gms/appdatasearch/UsageInfo.java (100%) rename src/{ => main/java}/com/google/android/gms/auth/AccountChangeEvent.java (100%) rename src/{ => main/java}/com/google/android/gms/auth/AccountChangeEventsRequest.java (100%) rename src/{ => main/java}/com/google/android/gms/auth/AccountChangeEventsResponse.java (100%) rename src/{ => main/java}/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java (100%) rename src/{ => main/java}/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java (100%) rename src/{ => main/java}/com/google/android/gms/auth/firstparty/proximity/data/Permit.java (100%) rename src/{ => main/java}/com/google/android/gms/common/Scopes.java (100%) rename src/{ => main/java}/com/google/android/gms/common/api/AccountInfo.java (100%) rename src/{ => main/java}/com/google/android/gms/common/api/CommonStatusCodes.java (100%) rename src/{ => main/java}/com/google/android/gms/common/api/Result.java (100%) rename src/{ => main/java}/com/google/android/gms/common/api/Scope.java (100%) rename src/{ => main/java}/com/google/android/gms/common/api/Status.java (100%) rename src/{ => main/java}/com/google/android/gms/common/data/DataHolder.java (64%) rename src/{ => main/java}/com/google/android/gms/common/server/FavaDiagnosticsEntity.java (100%) rename src/{ => main/java}/com/google/android/gms/drive/metadata/internal/MetadataBundle.java (100%) rename src/{ => main/java}/com/google/android/gms/dynamic/ObjectWrapper.java (100%) rename src/{ => main/java}/com/google/android/gms/fitness/data/DataPoint.java (100%) rename src/{ => main/java}/com/google/android/gms/fitness/data/Device.java (100%) rename src/{ => main/java}/com/google/android/gms/fitness/data/Field.java (100%) rename src/{ => main/java}/com/google/android/gms/fitness/data/Value.java (100%) rename src/{ => main/java}/com/google/android/gms/identity/accounts/api/AccountData.java (100%) rename src/{ => main/java}/com/google/android/gms/identity/intents/model/CountrySpecification.java (100%) rename src/{ => main/java}/com/google/android/gms/identity/intents/model/UserAddress.java (100%) rename src/{ => main/java}/com/google/android/gms/location/Geofence.java (100%) rename src/{ => main/java}/com/google/android/gms/location/GeofencingRequest.java (100%) rename src/{ => main/java}/com/google/android/gms/location/LocationRequest.java (100%) rename src/{ => main/java}/com/google/android/gms/location/LocationStatus.java (100%) rename src/{ => main/java}/com/google/android/gms/location/internal/ClientIdentity.java (100%) rename src/{ => main/java}/com/google/android/gms/location/internal/LocationRequestInternal.java (100%) rename src/{ => main/java}/com/google/android/gms/location/places/AutocompleteFilter.java (100%) rename src/{ => main/java}/com/google/android/gms/location/places/NearbyAlertRequest.java (100%) rename src/{ => main/java}/com/google/android/gms/location/places/PlaceFilter.java (100%) rename src/{ => main/java}/com/google/android/gms/location/places/PlaceReport.java (100%) rename src/{ => main/java}/com/google/android/gms/location/places/PlaceRequest.java (100%) rename src/{ => main/java}/com/google/android/gms/location/places/UserAddedPlace.java (100%) rename src/{ => main/java}/com/google/android/gms/location/places/UserDataType.java (100%) rename src/{ => main/java}/com/google/android/gms/location/places/internal/PlacesParams.java (100%) rename src/{ => main/java}/com/google/android/gms/location/reporting/ReportingState.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/GoogleMapOptions.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/StreetViewPanoramaOptions.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/internal/Point.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/BitmapDescriptor.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/CameraPosition.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/CircleOptions.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/GroundOverlayOptions.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/LatLng.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/LatLngBounds.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/MarkerOptions.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/PolygonOptions.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/PolylineOptions.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/StreetViewPanoramaLink.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/Tile.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/TileOverlayOptions.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/TileProvider.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/VisibleRegion.java (100%) rename src/{ => main/java}/com/google/android/gms/maps/model/package-info.java (100%) rename src/{ => main/java}/com/google/android/gms/people/model/AccountMetadata.java (100%) rename src/{ => main/java}/com/google/android/gms/plus/internal/PlusCommonExtras.java (100%) rename src/{ => main/java}/com/google/android/gms/plus/internal/PlusSession.java (100%) rename src/{ => main/java}/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java (100%) rename src/{ => main/java}/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java (100%) rename src/{ => main/java}/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java (100%) rename src/{ => main/java}/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java (100%) rename src/{ => main/java}/com/google/android/gms/plus/model/posts/Comment.java (100%) rename src/{ => main/java}/com/google/android/gms/plus/model/posts/Post.java (100%) rename src/{ => main/java}/com/google/android/gms/plus/model/posts/Settings.java (100%) rename src/{ => main/java}/com/google/android/gms/wearable/ConnectionConfiguration.java (100%) rename src/{ => main/java}/com/google/android/gms/wearable/Node.java (100%) rename src/{ => main/java}/com/google/android/gms/wearable/WearableStatusCodes.java (100%) rename src/{ => main/java}/com/google/android/gms/wearable/internal/NodeParcelable.java (100%) rename src/{ => main/java}/org/microg/gms/common/Constants.java (100%) rename src/{ => main/java}/org/microg/gms/common/PublicApi.java (100%) diff --git a/build.gradle b/build.gradle index eb5bd3cb..48491609 100644 --- a/build.gradle +++ b/build.gradle @@ -10,19 +10,10 @@ buildscript { apply plugin: 'com.android.library' dependencies { - compile project(':SafeParcel') + compile project('SafeParcel') } android { compileSdkVersion 21 buildToolsVersion "21.1.2" - lintOptions.abortOnError false - - sourceSets { - main { - manifest.srcFile 'AndroidManifest.xml' - java.srcDirs = ['src'] - aidl.srcDirs = ['src'] - } - } } diff --git a/AndroidManifest.xml b/src/main/AndroidManifest.xml similarity index 100% rename from AndroidManifest.xml rename to src/main/AndroidManifest.xml diff --git a/src/com/google/android/auth/IAuthManagerService.aidl b/src/main/aidl/com/google/android/auth/IAuthManagerService.aidl similarity index 100% rename from src/com/google/android/auth/IAuthManagerService.aidl rename to src/main/aidl/com/google/android/auth/IAuthManagerService.aidl diff --git a/src/com/google/android/gms/appdatasearch/CorpusStatus.aidl b/src/main/aidl/com/google/android/gms/appdatasearch/CorpusStatus.aidl similarity index 100% rename from src/com/google/android/gms/appdatasearch/CorpusStatus.aidl rename to src/main/aidl/com/google/android/gms/appdatasearch/CorpusStatus.aidl diff --git a/src/com/google/android/gms/appdatasearch/SuggestSpecification.aidl b/src/main/aidl/com/google/android/gms/appdatasearch/SuggestSpecification.aidl similarity index 100% rename from src/com/google/android/gms/appdatasearch/SuggestSpecification.aidl rename to src/main/aidl/com/google/android/gms/appdatasearch/SuggestSpecification.aidl diff --git a/src/com/google/android/gms/appdatasearch/SuggestionResults.aidl b/src/main/aidl/com/google/android/gms/appdatasearch/SuggestionResults.aidl similarity index 100% rename from src/com/google/android/gms/appdatasearch/SuggestionResults.aidl rename to src/main/aidl/com/google/android/gms/appdatasearch/SuggestionResults.aidl diff --git a/src/com/google/android/gms/appdatasearch/UsageInfo.aidl b/src/main/aidl/com/google/android/gms/appdatasearch/UsageInfo.aidl similarity index 100% rename from src/com/google/android/gms/appdatasearch/UsageInfo.aidl rename to src/main/aidl/com/google/android/gms/appdatasearch/UsageInfo.aidl diff --git a/src/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl b/src/main/aidl/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl similarity index 100% rename from src/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl rename to src/main/aidl/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl diff --git a/src/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl b/src/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl similarity index 100% rename from src/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl rename to src/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl diff --git a/src/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl b/src/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl similarity index 100% rename from src/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl rename to src/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl diff --git a/src/com/google/android/gms/auth/AccountChangeEventsRequest.aidl b/src/main/aidl/com/google/android/gms/auth/AccountChangeEventsRequest.aidl similarity index 100% rename from src/com/google/android/gms/auth/AccountChangeEventsRequest.aidl rename to src/main/aidl/com/google/android/gms/auth/AccountChangeEventsRequest.aidl diff --git a/src/com/google/android/gms/auth/AccountChangeEventsResponse.aidl b/src/main/aidl/com/google/android/gms/auth/AccountChangeEventsResponse.aidl similarity index 100% rename from src/com/google/android/gms/auth/AccountChangeEventsResponse.aidl rename to src/main/aidl/com/google/android/gms/auth/AccountChangeEventsResponse.aidl diff --git a/src/com/google/android/gms/common/data/DataHolder.aidl b/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl similarity index 100% rename from src/com/google/android/gms/common/data/DataHolder.aidl rename to src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl diff --git a/src/com/google/android/gms/common/internal/ICancelToken.aidl b/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl similarity index 100% rename from src/com/google/android/gms/common/internal/ICancelToken.aidl rename to src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl diff --git a/src/com/google/android/gms/common/internal/IGmsCallbacks.aidl b/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl similarity index 100% rename from src/com/google/android/gms/common/internal/IGmsCallbacks.aidl rename to src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl diff --git a/src/com/google/android/gms/common/internal/IGmsServiceBroker.aidl b/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl similarity index 100% rename from src/com/google/android/gms/common/internal/IGmsServiceBroker.aidl rename to src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl diff --git a/src/com/google/android/gms/common/internal/ISignInButtonCreator.aidl b/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl similarity index 100% rename from src/com/google/android/gms/common/internal/ISignInButtonCreator.aidl rename to src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl diff --git a/src/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl b/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl similarity index 100% rename from src/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl rename to src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl diff --git a/src/com/google/android/gms/dynamic/IObjectWrapper.aidl b/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl similarity index 100% rename from src/com/google/android/gms/dynamic/IObjectWrapper.aidl rename to src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl diff --git a/src/com/google/android/gms/location/Geofence.aidl b/src/main/aidl/com/google/android/gms/location/Geofence.aidl similarity index 100% rename from src/com/google/android/gms/location/Geofence.aidl rename to src/main/aidl/com/google/android/gms/location/Geofence.aidl diff --git a/src/com/google/android/gms/location/GeofencingRequest.aidl b/src/main/aidl/com/google/android/gms/location/GeofencingRequest.aidl similarity index 100% rename from src/com/google/android/gms/location/GeofencingRequest.aidl rename to src/main/aidl/com/google/android/gms/location/GeofencingRequest.aidl diff --git a/src/com/google/android/gms/location/ILocationListener.aidl b/src/main/aidl/com/google/android/gms/location/ILocationListener.aidl similarity index 100% rename from src/com/google/android/gms/location/ILocationListener.aidl rename to src/main/aidl/com/google/android/gms/location/ILocationListener.aidl diff --git a/src/com/google/android/gms/location/LocationRequest.aidl b/src/main/aidl/com/google/android/gms/location/LocationRequest.aidl similarity index 100% rename from src/com/google/android/gms/location/LocationRequest.aidl rename to src/main/aidl/com/google/android/gms/location/LocationRequest.aidl diff --git a/src/com/google/android/gms/location/LocationStatus.aidl b/src/main/aidl/com/google/android/gms/location/LocationStatus.aidl similarity index 100% rename from src/com/google/android/gms/location/LocationStatus.aidl rename to src/main/aidl/com/google/android/gms/location/LocationStatus.aidl diff --git a/src/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl b/src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl similarity index 100% rename from src/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl rename to src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl diff --git a/src/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl b/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl similarity index 100% rename from src/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl rename to src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl diff --git a/src/com/google/android/gms/location/internal/LocationRequestInternal.aidl b/src/main/aidl/com/google/android/gms/location/internal/LocationRequestInternal.aidl similarity index 100% rename from src/com/google/android/gms/location/internal/LocationRequestInternal.aidl rename to src/main/aidl/com/google/android/gms/location/internal/LocationRequestInternal.aidl diff --git a/src/com/google/android/gms/location/places/AutocompleteFilter.aidl b/src/main/aidl/com/google/android/gms/location/places/AutocompleteFilter.aidl similarity index 100% rename from src/com/google/android/gms/location/places/AutocompleteFilter.aidl rename to src/main/aidl/com/google/android/gms/location/places/AutocompleteFilter.aidl diff --git a/src/com/google/android/gms/location/places/NearbyAlertRequest.aidl b/src/main/aidl/com/google/android/gms/location/places/NearbyAlertRequest.aidl similarity index 100% rename from src/com/google/android/gms/location/places/NearbyAlertRequest.aidl rename to src/main/aidl/com/google/android/gms/location/places/NearbyAlertRequest.aidl diff --git a/src/com/google/android/gms/location/places/PlaceFilter.aidl b/src/main/aidl/com/google/android/gms/location/places/PlaceFilter.aidl similarity index 100% rename from src/com/google/android/gms/location/places/PlaceFilter.aidl rename to src/main/aidl/com/google/android/gms/location/places/PlaceFilter.aidl diff --git a/src/com/google/android/gms/location/places/PlaceReport.aidl b/src/main/aidl/com/google/android/gms/location/places/PlaceReport.aidl similarity index 100% rename from src/com/google/android/gms/location/places/PlaceReport.aidl rename to src/main/aidl/com/google/android/gms/location/places/PlaceReport.aidl diff --git a/src/com/google/android/gms/location/places/PlaceRequest.aidl b/src/main/aidl/com/google/android/gms/location/places/PlaceRequest.aidl similarity index 100% rename from src/com/google/android/gms/location/places/PlaceRequest.aidl rename to src/main/aidl/com/google/android/gms/location/places/PlaceRequest.aidl diff --git a/src/com/google/android/gms/location/places/UserAddedPlace.aidl b/src/main/aidl/com/google/android/gms/location/places/UserAddedPlace.aidl similarity index 100% rename from src/com/google/android/gms/location/places/UserAddedPlace.aidl rename to src/main/aidl/com/google/android/gms/location/places/UserAddedPlace.aidl diff --git a/src/com/google/android/gms/location/places/UserDataType.aidl b/src/main/aidl/com/google/android/gms/location/places/UserDataType.aidl similarity index 100% rename from src/com/google/android/gms/location/places/UserDataType.aidl rename to src/main/aidl/com/google/android/gms/location/places/UserDataType.aidl diff --git a/src/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl b/src/main/aidl/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl similarity index 100% rename from src/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl rename to src/main/aidl/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl diff --git a/src/com/google/android/gms/location/places/internal/PlacesParams.aidl b/src/main/aidl/com/google/android/gms/location/places/internal/PlacesParams.aidl similarity index 100% rename from src/com/google/android/gms/location/places/internal/PlacesParams.aidl rename to src/main/aidl/com/google/android/gms/location/places/internal/PlacesParams.aidl diff --git a/src/com/google/android/gms/location/reporting/ReportingState.aidl b/src/main/aidl/com/google/android/gms/location/reporting/ReportingState.aidl similarity index 100% rename from src/com/google/android/gms/location/reporting/ReportingState.aidl rename to src/main/aidl/com/google/android/gms/location/reporting/ReportingState.aidl diff --git a/src/com/google/android/gms/location/reporting/internal/IReportingService.aidl b/src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl similarity index 100% rename from src/com/google/android/gms/location/reporting/internal/IReportingService.aidl rename to src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl diff --git a/src/com/google/android/gms/maps/GoogleMapOptions.aidl b/src/main/aidl/com/google/android/gms/maps/GoogleMapOptions.aidl similarity index 100% rename from src/com/google/android/gms/maps/GoogleMapOptions.aidl rename to src/main/aidl/com/google/android/gms/maps/GoogleMapOptions.aidl diff --git a/src/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl diff --git a/src/com/google/android/gms/maps/internal/ICancelableCallback.aidl b/src/main/aidl/com/google/android/gms/maps/internal/ICancelableCallback.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/ICancelableCallback.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/ICancelableCallback.aidl diff --git a/src/com/google/android/gms/maps/internal/ICreator.aidl b/src/main/aidl/com/google/android/gms/maps/internal/ICreator.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/ICreator.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/ICreator.aidl diff --git a/src/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl diff --git a/src/com/google/android/gms/maps/internal/IInfoWindowAdapter.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IInfoWindowAdapter.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IInfoWindowAdapter.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IInfoWindowAdapter.aidl diff --git a/src/com/google/android/gms/maps/internal/ILocationSourceDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/internal/ILocationSourceDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/ILocationSourceDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/ILocationSourceDelegate.aidl diff --git a/src/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl diff --git a/src/com/google/android/gms/maps/internal/IMapViewDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IMapViewDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl diff --git a/src/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl diff --git a/src/com/google/android/gms/maps/internal/IOnInfoWindowClickListener.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IOnInfoWindowClickListener.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IOnInfoWindowClickListener.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IOnInfoWindowClickListener.aidl diff --git a/src/com/google/android/gms/maps/internal/IOnMapClickListener.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IOnMapClickListener.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IOnMapClickListener.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IOnMapClickListener.aidl diff --git a/src/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl diff --git a/src/com/google/android/gms/maps/internal/IOnMapLongClickListener.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IOnMapLongClickListener.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IOnMapLongClickListener.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IOnMapLongClickListener.aidl diff --git a/src/com/google/android/gms/maps/internal/IOnMarkerClickListener.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerClickListener.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IOnMarkerClickListener.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerClickListener.aidl diff --git a/src/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl diff --git a/src/com/google/android/gms/maps/internal/IOnMyLocationButtonClickListener.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationButtonClickListener.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IOnMyLocationButtonClickListener.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationButtonClickListener.aidl diff --git a/src/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl diff --git a/src/com/google/android/gms/maps/internal/IProjectionDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IProjectionDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IProjectionDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IProjectionDelegate.aidl diff --git a/src/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl b/src/main/aidl/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl diff --git a/src/com/google/android/gms/maps/internal/IUiSettingsDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/internal/IUiSettingsDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/internal/IUiSettingsDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/internal/IUiSettingsDelegate.aidl diff --git a/src/com/google/android/gms/maps/model/CameraPosition.aidl b/src/main/aidl/com/google/android/gms/maps/model/CameraPosition.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/CameraPosition.aidl rename to src/main/aidl/com/google/android/gms/maps/model/CameraPosition.aidl diff --git a/src/com/google/android/gms/maps/model/CircleOptions.aidl b/src/main/aidl/com/google/android/gms/maps/model/CircleOptions.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/CircleOptions.aidl rename to src/main/aidl/com/google/android/gms/maps/model/CircleOptions.aidl diff --git a/src/com/google/android/gms/maps/model/GroundOverlayOptions.aidl b/src/main/aidl/com/google/android/gms/maps/model/GroundOverlayOptions.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/GroundOverlayOptions.aidl rename to src/main/aidl/com/google/android/gms/maps/model/GroundOverlayOptions.aidl diff --git a/src/com/google/android/gms/maps/model/LatLng.aidl b/src/main/aidl/com/google/android/gms/maps/model/LatLng.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/LatLng.aidl rename to src/main/aidl/com/google/android/gms/maps/model/LatLng.aidl diff --git a/src/com/google/android/gms/maps/model/LatLngBounds.aidl b/src/main/aidl/com/google/android/gms/maps/model/LatLngBounds.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/LatLngBounds.aidl rename to src/main/aidl/com/google/android/gms/maps/model/LatLngBounds.aidl diff --git a/src/com/google/android/gms/maps/model/MarkerOptions.aidl b/src/main/aidl/com/google/android/gms/maps/model/MarkerOptions.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/MarkerOptions.aidl rename to src/main/aidl/com/google/android/gms/maps/model/MarkerOptions.aidl diff --git a/src/com/google/android/gms/maps/model/PolygonOptions.aidl b/src/main/aidl/com/google/android/gms/maps/model/PolygonOptions.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/PolygonOptions.aidl rename to src/main/aidl/com/google/android/gms/maps/model/PolygonOptions.aidl diff --git a/src/com/google/android/gms/maps/model/PolylineOptions.aidl b/src/main/aidl/com/google/android/gms/maps/model/PolylineOptions.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/PolylineOptions.aidl rename to src/main/aidl/com/google/android/gms/maps/model/PolylineOptions.aidl diff --git a/src/com/google/android/gms/maps/model/Tile.aidl b/src/main/aidl/com/google/android/gms/maps/model/Tile.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/Tile.aidl rename to src/main/aidl/com/google/android/gms/maps/model/Tile.aidl diff --git a/src/com/google/android/gms/maps/model/TileOverlayOptions.aidl b/src/main/aidl/com/google/android/gms/maps/model/TileOverlayOptions.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/TileOverlayOptions.aidl rename to src/main/aidl/com/google/android/gms/maps/model/TileOverlayOptions.aidl diff --git a/src/com/google/android/gms/maps/model/VisibleRegion.aidl b/src/main/aidl/com/google/android/gms/maps/model/VisibleRegion.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/VisibleRegion.aidl rename to src/main/aidl/com/google/android/gms/maps/model/VisibleRegion.aidl diff --git a/src/com/google/android/gms/maps/model/internal/IBitmapDescriptorFactoryDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/model/internal/IBitmapDescriptorFactoryDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/internal/IBitmapDescriptorFactoryDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/model/internal/IBitmapDescriptorFactoryDelegate.aidl diff --git a/src/com/google/android/gms/maps/model/internal/ICircleDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/model/internal/ICircleDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/internal/ICircleDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/model/internal/ICircleDelegate.aidl diff --git a/src/com/google/android/gms/maps/model/internal/IGroundOverlayDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/model/internal/IGroundOverlayDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/internal/IGroundOverlayDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/model/internal/IGroundOverlayDelegate.aidl diff --git a/src/com/google/android/gms/maps/model/internal/IMarkerDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/model/internal/IMarkerDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/internal/IMarkerDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/model/internal/IMarkerDelegate.aidl diff --git a/src/com/google/android/gms/maps/model/internal/IPolygonDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/model/internal/IPolygonDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/internal/IPolygonDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/model/internal/IPolygonDelegate.aidl diff --git a/src/com/google/android/gms/maps/model/internal/IPolylineDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/model/internal/IPolylineDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/internal/IPolylineDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/model/internal/IPolylineDelegate.aidl diff --git a/src/com/google/android/gms/maps/model/internal/ITileOverlayDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/model/internal/ITileOverlayDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/internal/ITileOverlayDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/model/internal/ITileOverlayDelegate.aidl diff --git a/src/com/google/android/gms/maps/model/internal/ITileProviderDelegate.aidl b/src/main/aidl/com/google/android/gms/maps/model/internal/ITileProviderDelegate.aidl similarity index 100% rename from src/com/google/android/gms/maps/model/internal/ITileProviderDelegate.aidl rename to src/main/aidl/com/google/android/gms/maps/model/internal/ITileProviderDelegate.aidl diff --git a/src/com/google/android/gms/people/internal/IPeopleCallbacks.aidl b/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl similarity index 100% rename from src/com/google/android/gms/people/internal/IPeopleCallbacks.aidl rename to src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl diff --git a/src/com/google/android/gms/people/internal/IPeopleService.aidl b/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl similarity index 100% rename from src/com/google/android/gms/people/internal/IPeopleService.aidl rename to src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl diff --git a/src/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl b/src/main/aidl/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl similarity index 100% rename from src/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl rename to src/main/aidl/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl diff --git a/src/com/google/android/gms/appdatasearch/CorpusStatus.java b/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java similarity index 100% rename from src/com/google/android/gms/appdatasearch/CorpusStatus.java rename to src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java diff --git a/src/com/google/android/gms/appdatasearch/SuggestSpecification.java b/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java similarity index 100% rename from src/com/google/android/gms/appdatasearch/SuggestSpecification.java rename to src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java diff --git a/src/com/google/android/gms/appdatasearch/SuggestionResults.java b/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java similarity index 100% rename from src/com/google/android/gms/appdatasearch/SuggestionResults.java rename to src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java diff --git a/src/com/google/android/gms/appdatasearch/UsageInfo.java b/src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java similarity index 100% rename from src/com/google/android/gms/appdatasearch/UsageInfo.java rename to src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java diff --git a/src/com/google/android/gms/auth/AccountChangeEvent.java b/src/main/java/com/google/android/gms/auth/AccountChangeEvent.java similarity index 100% rename from src/com/google/android/gms/auth/AccountChangeEvent.java rename to src/main/java/com/google/android/gms/auth/AccountChangeEvent.java diff --git a/src/com/google/android/gms/auth/AccountChangeEventsRequest.java b/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java similarity index 100% rename from src/com/google/android/gms/auth/AccountChangeEventsRequest.java rename to src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java diff --git a/src/com/google/android/gms/auth/AccountChangeEventsResponse.java b/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java similarity index 100% rename from src/com/google/android/gms/auth/AccountChangeEventsResponse.java rename to src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java diff --git a/src/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java b/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java similarity index 100% rename from src/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java rename to src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java diff --git a/src/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java b/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java similarity index 100% rename from src/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java rename to src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java diff --git a/src/com/google/android/gms/auth/firstparty/proximity/data/Permit.java b/src/main/java/com/google/android/gms/auth/firstparty/proximity/data/Permit.java similarity index 100% rename from src/com/google/android/gms/auth/firstparty/proximity/data/Permit.java rename to src/main/java/com/google/android/gms/auth/firstparty/proximity/data/Permit.java diff --git a/src/com/google/android/gms/common/Scopes.java b/src/main/java/com/google/android/gms/common/Scopes.java similarity index 100% rename from src/com/google/android/gms/common/Scopes.java rename to src/main/java/com/google/android/gms/common/Scopes.java diff --git a/src/com/google/android/gms/common/api/AccountInfo.java b/src/main/java/com/google/android/gms/common/api/AccountInfo.java similarity index 100% rename from src/com/google/android/gms/common/api/AccountInfo.java rename to src/main/java/com/google/android/gms/common/api/AccountInfo.java diff --git a/src/com/google/android/gms/common/api/CommonStatusCodes.java b/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java similarity index 100% rename from src/com/google/android/gms/common/api/CommonStatusCodes.java rename to src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java diff --git a/src/com/google/android/gms/common/api/Result.java b/src/main/java/com/google/android/gms/common/api/Result.java similarity index 100% rename from src/com/google/android/gms/common/api/Result.java rename to src/main/java/com/google/android/gms/common/api/Result.java diff --git a/src/com/google/android/gms/common/api/Scope.java b/src/main/java/com/google/android/gms/common/api/Scope.java similarity index 100% rename from src/com/google/android/gms/common/api/Scope.java rename to src/main/java/com/google/android/gms/common/api/Scope.java diff --git a/src/com/google/android/gms/common/api/Status.java b/src/main/java/com/google/android/gms/common/api/Status.java similarity index 100% rename from src/com/google/android/gms/common/api/Status.java rename to src/main/java/com/google/android/gms/common/api/Status.java diff --git a/src/com/google/android/gms/common/data/DataHolder.java b/src/main/java/com/google/android/gms/common/data/DataHolder.java similarity index 64% rename from src/com/google/android/gms/common/data/DataHolder.java rename to src/main/java/com/google/android/gms/common/data/DataHolder.java index 75a57dd4..99811a18 100644 --- a/src/com/google/android/gms/common/data/DataHolder.java +++ b/src/main/java/com/google/android/gms/common/data/DataHolder.java @@ -1,7 +1,10 @@ package com.google.android.gms.common.data; +import android.annotation.SuppressLint; +import android.database.AbstractWindowedCursor; import android.database.Cursor; import android.database.CursorWindow; +import android.os.Build; import android.os.Bundle; import org.microg.safeparcel.AutoSafeParcelable; @@ -39,6 +42,37 @@ public class DataHolder extends AutoSafeParcelable { this.metadata = metadata; } + protected static final int FIELD_TYPE_BLOB = 4; + protected static final int FIELD_TYPE_FLOAT = 2; + protected static final int FIELD_TYPE_INTEGER = 1; + protected static final int FIELD_TYPE_NULL = 0; + protected static final int FIELD_TYPE_STRING = 3; + + @SuppressLint("NewApi") + static int getCursorType(Cursor cursor, int i) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + return cursor.getType(i); + } + if (cursor instanceof AbstractWindowedCursor) { + CursorWindow cursorWindow = ((AbstractWindowedCursor)cursor).getWindow(); + int pos = cursor.getPosition(); + int type = -1; + if (cursorWindow.isNull(pos, i)) { + type = FIELD_TYPE_NULL; + } else if (cursorWindow.isLong(pos, i)) { + type = FIELD_TYPE_INTEGER; + } else if (cursorWindow.isFloat(pos, i)) { + type = FIELD_TYPE_FLOAT; + } else if (cursorWindow.isString(pos, i)) { + type = FIELD_TYPE_STRING; + } else if (cursorWindow.isBlob(pos, i)) { + type = FIELD_TYPE_BLOB; + } + + return type; + } + throw new RuntimeException("Unsupported cursor on this platform!"); + } public static DataHolder fromCursor(Cursor cursor, int statusCode, Bundle metadata) { List windows = new ArrayList<>(); @@ -54,20 +88,20 @@ public class DataHolder extends AutoSafeParcelable { row = 0; } for (int i = 0; i < cursor.getColumnCount(); i++) { - switch (cursor.getType(i)) { - case Cursor.FIELD_TYPE_NULL: + switch (getCursorType(cursor, i)) { + case FIELD_TYPE_NULL: cursorWindow.putNull(row, i); break; - case Cursor.FIELD_TYPE_BLOB: + case FIELD_TYPE_BLOB: cursorWindow.putBlob(cursor.getBlob(i), row, i); break; - case Cursor.FIELD_TYPE_FLOAT: + case FIELD_TYPE_FLOAT: cursorWindow.putDouble(cursor.getDouble(i), row, i); break; - case Cursor.FIELD_TYPE_INTEGER: + case FIELD_TYPE_INTEGER: cursorWindow.putLong(cursor.getLong(i), row, i); break; - case Cursor.FIELD_TYPE_STRING: + case FIELD_TYPE_STRING: cursorWindow.putString(cursor.getString(i), row, i); break; } diff --git a/src/com/google/android/gms/common/server/FavaDiagnosticsEntity.java b/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java similarity index 100% rename from src/com/google/android/gms/common/server/FavaDiagnosticsEntity.java rename to src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java diff --git a/src/com/google/android/gms/drive/metadata/internal/MetadataBundle.java b/src/main/java/com/google/android/gms/drive/metadata/internal/MetadataBundle.java similarity index 100% rename from src/com/google/android/gms/drive/metadata/internal/MetadataBundle.java rename to src/main/java/com/google/android/gms/drive/metadata/internal/MetadataBundle.java diff --git a/src/com/google/android/gms/dynamic/ObjectWrapper.java b/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java similarity index 100% rename from src/com/google/android/gms/dynamic/ObjectWrapper.java rename to src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java diff --git a/src/com/google/android/gms/fitness/data/DataPoint.java b/src/main/java/com/google/android/gms/fitness/data/DataPoint.java similarity index 100% rename from src/com/google/android/gms/fitness/data/DataPoint.java rename to src/main/java/com/google/android/gms/fitness/data/DataPoint.java diff --git a/src/com/google/android/gms/fitness/data/Device.java b/src/main/java/com/google/android/gms/fitness/data/Device.java similarity index 100% rename from src/com/google/android/gms/fitness/data/Device.java rename to src/main/java/com/google/android/gms/fitness/data/Device.java diff --git a/src/com/google/android/gms/fitness/data/Field.java b/src/main/java/com/google/android/gms/fitness/data/Field.java similarity index 100% rename from src/com/google/android/gms/fitness/data/Field.java rename to src/main/java/com/google/android/gms/fitness/data/Field.java diff --git a/src/com/google/android/gms/fitness/data/Value.java b/src/main/java/com/google/android/gms/fitness/data/Value.java similarity index 100% rename from src/com/google/android/gms/fitness/data/Value.java rename to src/main/java/com/google/android/gms/fitness/data/Value.java diff --git a/src/com/google/android/gms/identity/accounts/api/AccountData.java b/src/main/java/com/google/android/gms/identity/accounts/api/AccountData.java similarity index 100% rename from src/com/google/android/gms/identity/accounts/api/AccountData.java rename to src/main/java/com/google/android/gms/identity/accounts/api/AccountData.java diff --git a/src/com/google/android/gms/identity/intents/model/CountrySpecification.java b/src/main/java/com/google/android/gms/identity/intents/model/CountrySpecification.java similarity index 100% rename from src/com/google/android/gms/identity/intents/model/CountrySpecification.java rename to src/main/java/com/google/android/gms/identity/intents/model/CountrySpecification.java diff --git a/src/com/google/android/gms/identity/intents/model/UserAddress.java b/src/main/java/com/google/android/gms/identity/intents/model/UserAddress.java similarity index 100% rename from src/com/google/android/gms/identity/intents/model/UserAddress.java rename to src/main/java/com/google/android/gms/identity/intents/model/UserAddress.java diff --git a/src/com/google/android/gms/location/Geofence.java b/src/main/java/com/google/android/gms/location/Geofence.java similarity index 100% rename from src/com/google/android/gms/location/Geofence.java rename to src/main/java/com/google/android/gms/location/Geofence.java diff --git a/src/com/google/android/gms/location/GeofencingRequest.java b/src/main/java/com/google/android/gms/location/GeofencingRequest.java similarity index 100% rename from src/com/google/android/gms/location/GeofencingRequest.java rename to src/main/java/com/google/android/gms/location/GeofencingRequest.java diff --git a/src/com/google/android/gms/location/LocationRequest.java b/src/main/java/com/google/android/gms/location/LocationRequest.java similarity index 100% rename from src/com/google/android/gms/location/LocationRequest.java rename to src/main/java/com/google/android/gms/location/LocationRequest.java diff --git a/src/com/google/android/gms/location/LocationStatus.java b/src/main/java/com/google/android/gms/location/LocationStatus.java similarity index 100% rename from src/com/google/android/gms/location/LocationStatus.java rename to src/main/java/com/google/android/gms/location/LocationStatus.java diff --git a/src/com/google/android/gms/location/internal/ClientIdentity.java b/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java similarity index 100% rename from src/com/google/android/gms/location/internal/ClientIdentity.java rename to src/main/java/com/google/android/gms/location/internal/ClientIdentity.java diff --git a/src/com/google/android/gms/location/internal/LocationRequestInternal.java b/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java similarity index 100% rename from src/com/google/android/gms/location/internal/LocationRequestInternal.java rename to src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java diff --git a/src/com/google/android/gms/location/places/AutocompleteFilter.java b/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java similarity index 100% rename from src/com/google/android/gms/location/places/AutocompleteFilter.java rename to src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java diff --git a/src/com/google/android/gms/location/places/NearbyAlertRequest.java b/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java similarity index 100% rename from src/com/google/android/gms/location/places/NearbyAlertRequest.java rename to src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java diff --git a/src/com/google/android/gms/location/places/PlaceFilter.java b/src/main/java/com/google/android/gms/location/places/PlaceFilter.java similarity index 100% rename from src/com/google/android/gms/location/places/PlaceFilter.java rename to src/main/java/com/google/android/gms/location/places/PlaceFilter.java diff --git a/src/com/google/android/gms/location/places/PlaceReport.java b/src/main/java/com/google/android/gms/location/places/PlaceReport.java similarity index 100% rename from src/com/google/android/gms/location/places/PlaceReport.java rename to src/main/java/com/google/android/gms/location/places/PlaceReport.java diff --git a/src/com/google/android/gms/location/places/PlaceRequest.java b/src/main/java/com/google/android/gms/location/places/PlaceRequest.java similarity index 100% rename from src/com/google/android/gms/location/places/PlaceRequest.java rename to src/main/java/com/google/android/gms/location/places/PlaceRequest.java diff --git a/src/com/google/android/gms/location/places/UserAddedPlace.java b/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java similarity index 100% rename from src/com/google/android/gms/location/places/UserAddedPlace.java rename to src/main/java/com/google/android/gms/location/places/UserAddedPlace.java diff --git a/src/com/google/android/gms/location/places/UserDataType.java b/src/main/java/com/google/android/gms/location/places/UserDataType.java similarity index 100% rename from src/com/google/android/gms/location/places/UserDataType.java rename to src/main/java/com/google/android/gms/location/places/UserDataType.java diff --git a/src/com/google/android/gms/location/places/internal/PlacesParams.java b/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java similarity index 100% rename from src/com/google/android/gms/location/places/internal/PlacesParams.java rename to src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java diff --git a/src/com/google/android/gms/location/reporting/ReportingState.java b/src/main/java/com/google/android/gms/location/reporting/ReportingState.java similarity index 100% rename from src/com/google/android/gms/location/reporting/ReportingState.java rename to src/main/java/com/google/android/gms/location/reporting/ReportingState.java diff --git a/src/com/google/android/gms/maps/GoogleMapOptions.java b/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java similarity index 100% rename from src/com/google/android/gms/maps/GoogleMapOptions.java rename to src/main/java/com/google/android/gms/maps/GoogleMapOptions.java diff --git a/src/com/google/android/gms/maps/StreetViewPanoramaOptions.java b/src/main/java/com/google/android/gms/maps/StreetViewPanoramaOptions.java similarity index 100% rename from src/com/google/android/gms/maps/StreetViewPanoramaOptions.java rename to src/main/java/com/google/android/gms/maps/StreetViewPanoramaOptions.java diff --git a/src/com/google/android/gms/maps/internal/Point.java b/src/main/java/com/google/android/gms/maps/internal/Point.java similarity index 100% rename from src/com/google/android/gms/maps/internal/Point.java rename to src/main/java/com/google/android/gms/maps/internal/Point.java diff --git a/src/com/google/android/gms/maps/model/BitmapDescriptor.java b/src/main/java/com/google/android/gms/maps/model/BitmapDescriptor.java similarity index 100% rename from src/com/google/android/gms/maps/model/BitmapDescriptor.java rename to src/main/java/com/google/android/gms/maps/model/BitmapDescriptor.java diff --git a/src/com/google/android/gms/maps/model/CameraPosition.java b/src/main/java/com/google/android/gms/maps/model/CameraPosition.java similarity index 100% rename from src/com/google/android/gms/maps/model/CameraPosition.java rename to src/main/java/com/google/android/gms/maps/model/CameraPosition.java diff --git a/src/com/google/android/gms/maps/model/CircleOptions.java b/src/main/java/com/google/android/gms/maps/model/CircleOptions.java similarity index 100% rename from src/com/google/android/gms/maps/model/CircleOptions.java rename to src/main/java/com/google/android/gms/maps/model/CircleOptions.java diff --git a/src/com/google/android/gms/maps/model/GroundOverlayOptions.java b/src/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java similarity index 100% rename from src/com/google/android/gms/maps/model/GroundOverlayOptions.java rename to src/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java diff --git a/src/com/google/android/gms/maps/model/LatLng.java b/src/main/java/com/google/android/gms/maps/model/LatLng.java similarity index 100% rename from src/com/google/android/gms/maps/model/LatLng.java rename to src/main/java/com/google/android/gms/maps/model/LatLng.java diff --git a/src/com/google/android/gms/maps/model/LatLngBounds.java b/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java similarity index 100% rename from src/com/google/android/gms/maps/model/LatLngBounds.java rename to src/main/java/com/google/android/gms/maps/model/LatLngBounds.java diff --git a/src/com/google/android/gms/maps/model/MarkerOptions.java b/src/main/java/com/google/android/gms/maps/model/MarkerOptions.java similarity index 100% rename from src/com/google/android/gms/maps/model/MarkerOptions.java rename to src/main/java/com/google/android/gms/maps/model/MarkerOptions.java diff --git a/src/com/google/android/gms/maps/model/PolygonOptions.java b/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java similarity index 100% rename from src/com/google/android/gms/maps/model/PolygonOptions.java rename to src/main/java/com/google/android/gms/maps/model/PolygonOptions.java diff --git a/src/com/google/android/gms/maps/model/PolylineOptions.java b/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java similarity index 100% rename from src/com/google/android/gms/maps/model/PolylineOptions.java rename to src/main/java/com/google/android/gms/maps/model/PolylineOptions.java diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java b/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java similarity index 100% rename from src/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java rename to src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaLink.java b/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLink.java similarity index 100% rename from src/com/google/android/gms/maps/model/StreetViewPanoramaLink.java rename to src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLink.java diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java b/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java similarity index 100% rename from src/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java rename to src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java diff --git a/src/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java b/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java similarity index 100% rename from src/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java rename to src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java diff --git a/src/com/google/android/gms/maps/model/Tile.java b/src/main/java/com/google/android/gms/maps/model/Tile.java similarity index 100% rename from src/com/google/android/gms/maps/model/Tile.java rename to src/main/java/com/google/android/gms/maps/model/Tile.java diff --git a/src/com/google/android/gms/maps/model/TileOverlayOptions.java b/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java similarity index 100% rename from src/com/google/android/gms/maps/model/TileOverlayOptions.java rename to src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java diff --git a/src/com/google/android/gms/maps/model/TileProvider.java b/src/main/java/com/google/android/gms/maps/model/TileProvider.java similarity index 100% rename from src/com/google/android/gms/maps/model/TileProvider.java rename to src/main/java/com/google/android/gms/maps/model/TileProvider.java diff --git a/src/com/google/android/gms/maps/model/VisibleRegion.java b/src/main/java/com/google/android/gms/maps/model/VisibleRegion.java similarity index 100% rename from src/com/google/android/gms/maps/model/VisibleRegion.java rename to src/main/java/com/google/android/gms/maps/model/VisibleRegion.java diff --git a/src/com/google/android/gms/maps/model/package-info.java b/src/main/java/com/google/android/gms/maps/model/package-info.java similarity index 100% rename from src/com/google/android/gms/maps/model/package-info.java rename to src/main/java/com/google/android/gms/maps/model/package-info.java diff --git a/src/com/google/android/gms/people/model/AccountMetadata.java b/src/main/java/com/google/android/gms/people/model/AccountMetadata.java similarity index 100% rename from src/com/google/android/gms/people/model/AccountMetadata.java rename to src/main/java/com/google/android/gms/people/model/AccountMetadata.java diff --git a/src/com/google/android/gms/plus/internal/PlusCommonExtras.java b/src/main/java/com/google/android/gms/plus/internal/PlusCommonExtras.java similarity index 100% rename from src/com/google/android/gms/plus/internal/PlusCommonExtras.java rename to src/main/java/com/google/android/gms/plus/internal/PlusCommonExtras.java diff --git a/src/com/google/android/gms/plus/internal/PlusSession.java b/src/main/java/com/google/android/gms/plus/internal/PlusSession.java similarity index 100% rename from src/com/google/android/gms/plus/internal/PlusSession.java rename to src/main/java/com/google/android/gms/plus/internal/PlusSession.java diff --git a/src/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java b/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java similarity index 100% rename from src/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java rename to src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java diff --git a/src/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java b/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java similarity index 100% rename from src/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java rename to src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java diff --git a/src/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java b/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java similarity index 100% rename from src/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java rename to src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java diff --git a/src/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java b/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java similarity index 100% rename from src/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java rename to src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java diff --git a/src/com/google/android/gms/plus/model/posts/Comment.java b/src/main/java/com/google/android/gms/plus/model/posts/Comment.java similarity index 100% rename from src/com/google/android/gms/plus/model/posts/Comment.java rename to src/main/java/com/google/android/gms/plus/model/posts/Comment.java diff --git a/src/com/google/android/gms/plus/model/posts/Post.java b/src/main/java/com/google/android/gms/plus/model/posts/Post.java similarity index 100% rename from src/com/google/android/gms/plus/model/posts/Post.java rename to src/main/java/com/google/android/gms/plus/model/posts/Post.java diff --git a/src/com/google/android/gms/plus/model/posts/Settings.java b/src/main/java/com/google/android/gms/plus/model/posts/Settings.java similarity index 100% rename from src/com/google/android/gms/plus/model/posts/Settings.java rename to src/main/java/com/google/android/gms/plus/model/posts/Settings.java diff --git a/src/com/google/android/gms/wearable/ConnectionConfiguration.java b/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java similarity index 100% rename from src/com/google/android/gms/wearable/ConnectionConfiguration.java rename to src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java diff --git a/src/com/google/android/gms/wearable/Node.java b/src/main/java/com/google/android/gms/wearable/Node.java similarity index 100% rename from src/com/google/android/gms/wearable/Node.java rename to src/main/java/com/google/android/gms/wearable/Node.java diff --git a/src/com/google/android/gms/wearable/WearableStatusCodes.java b/src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java similarity index 100% rename from src/com/google/android/gms/wearable/WearableStatusCodes.java rename to src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java diff --git a/src/com/google/android/gms/wearable/internal/NodeParcelable.java b/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java similarity index 100% rename from src/com/google/android/gms/wearable/internal/NodeParcelable.java rename to src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java diff --git a/src/org/microg/gms/common/Constants.java b/src/main/java/org/microg/gms/common/Constants.java similarity index 100% rename from src/org/microg/gms/common/Constants.java rename to src/main/java/org/microg/gms/common/Constants.java diff --git a/src/org/microg/gms/common/PublicApi.java b/src/main/java/org/microg/gms/common/PublicApi.java similarity index 100% rename from src/org/microg/gms/common/PublicApi.java rename to src/main/java/org/microg/gms/common/PublicApi.java From d2ec5f52fa6c1aed0640e65130b20e3ffce5f8b0 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 13 Mar 2015 00:22:54 +0100 Subject: [PATCH 034/170] Fix build.gradle/Android.mk --- Android.mk | 5 +++-- SafeParcel | 2 +- build.gradle | 7 ++++++- settings.gradle | 2 ++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Android.mk b/Android.mk index 4b9abaa0..88845431 100644 --- a/Android.mk +++ b/Android.mk @@ -3,7 +3,8 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := GmsApi -LOCAL_SRC_FILES := $(call all-java-files-under, src) -LOCAL_SRC_FILES := $(call all-Iaidl-files-under, src) +LOCAL_SRC_FILES := $(call all-java-files-under, src/main/java) +LOCAL_SRC_FILES := $(call all-Iaidl-files-under, src/main/aidl) +LOCAL_STATIC_JAVA_LIBRARIES := SafeParcel include $(BUILD_STATIC_JAVA_LIBRARY) diff --git a/SafeParcel b/SafeParcel index 462316b1..0bb4f3d6 160000 --- a/SafeParcel +++ b/SafeParcel @@ -1 +1 @@ -Subproject commit 462316b18e2620bd5c0cb843abd67671d941300d +Subproject commit 0bb4f3d602d8565bbf500a880f563a2b1fa47d1d diff --git a/build.gradle b/build.gradle index 48491609..cd548167 100644 --- a/build.gradle +++ b/build.gradle @@ -4,13 +4,18 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:1.0.1' + classpath 'com.github.dcendents:android-maven-plugin:1.2' } } apply plugin: 'com.android.library' +apply plugin: 'com.github.dcendents.android-maven' + +group = 'org.microg.gms' +version = '1.0-SNAPSHOT' dependencies { - compile project('SafeParcel') + compile project(':SafeParcel') } android { diff --git a/settings.gradle b/settings.gradle index 0151283d..930a2c14 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,3 @@ +rootProject.name = 'play-services-api' + include ':SafeParcel' From dbae4add94505fb0765ca9a18896848df6ae6ae4 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 13 Mar 2015 02:32:32 +0100 Subject: [PATCH 035/170] Make older gradle happy --- src/main/AndroidManifest.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 7bef5e7d..52b6af60 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -3,4 +3,6 @@ package="org.microg.gms.api"> + + From c0c4a78eab3064cdd7545cb7fcdddfe93ca1674d Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sat, 14 Mar 2015 22:09:18 +0100 Subject: [PATCH 036/170] Update safe-parcel --- .gitmodules | 2 +- Android.mk | 4 ++-- SafeParcel | 1 - extern/SafeParcel | 1 + build.gradle => play-services-api/build.gradle | 4 ++-- {src => play-services-api/src}/main/AndroidManifest.xml | 0 .../aidl/com/google/android/auth/IAuthManagerService.aidl | 0 .../com/google/android/gms/appdatasearch/CorpusStatus.aidl | 0 .../android/gms/appdatasearch/SuggestSpecification.aidl | 0 .../google/android/gms/appdatasearch/SuggestionResults.aidl | 0 .../aidl/com/google/android/gms/appdatasearch/UsageInfo.aidl | 0 .../android/gms/appdatasearch/internal/IAppDataSearch.aidl | 0 .../appdatasearch/internal/ILightweightAppDataSearch.aidl | 0 .../internal/ILightweightAppDataSearchCallbacks.aidl | 0 .../google/android/gms/auth/AccountChangeEventsRequest.aidl | 0 .../google/android/gms/auth/AccountChangeEventsResponse.aidl | 0 .../aidl/com/google/android/gms/common/data/DataHolder.aidl | 0 .../com/google/android/gms/common/internal/ICancelToken.aidl | 0 .../google/android/gms/common/internal/IGmsCallbacks.aidl | 0 .../android/gms/common/internal/IGmsServiceBroker.aidl | 0 .../android/gms/common/internal/ISignInButtonCreator.aidl | 0 .../android/gms/common/server/FavaDiagnosticsEntity.aidl | 0 .../aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl | 0 .../main/aidl/com/google/android/gms/location/Geofence.aidl | 0 .../com/google/android/gms/location/GeofencingRequest.aidl | 0 .../com/google/android/gms/location/ILocationListener.aidl | 0 .../com/google/android/gms/location/LocationRequest.aidl | 0 .../aidl/com/google/android/gms/location/LocationStatus.aidl | 0 .../android/gms/location/internal/IGeofencerCallbacks.aidl | 0 .../gms/location/internal/IGoogleLocationManagerService.aidl | 0 .../gms/location/internal/LocationRequestInternal.aidl | 0 .../android/gms/location/places/AutocompleteFilter.aidl | 0 .../android/gms/location/places/NearbyAlertRequest.aidl | 0 .../com/google/android/gms/location/places/PlaceFilter.aidl | 0 .../com/google/android/gms/location/places/PlaceReport.aidl | 0 .../com/google/android/gms/location/places/PlaceRequest.aidl | 0 .../google/android/gms/location/places/UserAddedPlace.aidl | 0 .../com/google/android/gms/location/places/UserDataType.aidl | 0 .../gms/location/places/internal/IPlacesCallbacks.aidl | 0 .../android/gms/location/places/internal/PlacesParams.aidl | 0 .../android/gms/location/reporting/ReportingState.aidl | 0 .../gms/location/reporting/internal/IReportingService.aidl | 0 .../aidl/com/google/android/gms/maps/GoogleMapOptions.aidl | 0 .../gms/maps/internal/ICameraUpdateFactoryDelegate.aidl | 0 .../android/gms/maps/internal/ICancelableCallback.aidl | 0 .../aidl/com/google/android/gms/maps/internal/ICreator.aidl | 0 .../google/android/gms/maps/internal/IGoogleMapDelegate.aidl | 0 .../google/android/gms/maps/internal/IInfoWindowAdapter.aidl | 0 .../android/gms/maps/internal/ILocationSourceDelegate.aidl | 0 .../android/gms/maps/internal/IMapFragmentDelegate.aidl | 0 .../google/android/gms/maps/internal/IMapViewDelegate.aidl | 0 .../android/gms/maps/internal/IOnCameraChangeListener.aidl | 0 .../gms/maps/internal/IOnInfoWindowClickListener.aidl | 0 .../android/gms/maps/internal/IOnMapClickListener.aidl | 0 .../android/gms/maps/internal/IOnMapLoadedCallback.aidl | 0 .../android/gms/maps/internal/IOnMapLongClickListener.aidl | 0 .../android/gms/maps/internal/IOnMarkerClickListener.aidl | 0 .../android/gms/maps/internal/IOnMarkerDragListener.aidl | 0 .../gms/maps/internal/IOnMyLocationButtonClickListener.aidl | 0 .../gms/maps/internal/IOnMyLocationChangeListener.aidl | 0 .../android/gms/maps/internal/IProjectionDelegate.aidl | 0 .../android/gms/maps/internal/ISnapshotReadyCallback.aidl | 0 .../android/gms/maps/internal/IUiSettingsDelegate.aidl | 0 .../com/google/android/gms/maps/model/CameraPosition.aidl | 0 .../com/google/android/gms/maps/model/CircleOptions.aidl | 0 .../google/android/gms/maps/model/GroundOverlayOptions.aidl | 0 .../main/aidl/com/google/android/gms/maps/model/LatLng.aidl | 0 .../aidl/com/google/android/gms/maps/model/LatLngBounds.aidl | 0 .../com/google/android/gms/maps/model/MarkerOptions.aidl | 0 .../com/google/android/gms/maps/model/PolygonOptions.aidl | 0 .../com/google/android/gms/maps/model/PolylineOptions.aidl | 0 .../main/aidl/com/google/android/gms/maps/model/Tile.aidl | 0 .../google/android/gms/maps/model/TileOverlayOptions.aidl | 0 .../com/google/android/gms/maps/model/VisibleRegion.aidl | 0 .../model/internal/IBitmapDescriptorFactoryDelegate.aidl | 0 .../android/gms/maps/model/internal/ICircleDelegate.aidl | 0 .../gms/maps/model/internal/IGroundOverlayDelegate.aidl | 0 .../android/gms/maps/model/internal/IMarkerDelegate.aidl | 0 .../android/gms/maps/model/internal/IPolygonDelegate.aidl | 0 .../android/gms/maps/model/internal/IPolylineDelegate.aidl | 0 .../gms/maps/model/internal/ITileOverlayDelegate.aidl | 0 .../gms/maps/model/internal/ITileProviderDelegate.aidl | 0 .../google/android/gms/people/internal/IPeopleCallbacks.aidl | 0 .../google/android/gms/people/internal/IPeopleService.aidl | 0 .../android/gms/plus/internal/IPlusOneButtonCreator.aidl | 0 .../com/google/android/gms/appdatasearch/CorpusStatus.java | 0 .../android/gms/appdatasearch/SuggestSpecification.java | 0 .../google/android/gms/appdatasearch/SuggestionResults.java | 0 .../java/com/google/android/gms/appdatasearch/UsageInfo.java | 0 .../java/com/google/android/gms/auth/AccountChangeEvent.java | 0 .../google/android/gms/auth/AccountChangeEventsRequest.java | 0 .../google/android/gms/auth/AccountChangeEventsResponse.java | 0 .../gms/auth/firstparty/dataservice/TokenRequest.java | 0 .../gms/auth/firstparty/dataservice/TokenResponse.java | 0 .../android/gms/auth/firstparty/proximity/data/Permit.java | 0 .../src}/main/java/com/google/android/gms/common/Scopes.java | 0 .../java/com/google/android/gms/common/api/AccountInfo.java | 0 .../com/google/android/gms/common/api/CommonStatusCodes.java | 0 .../main/java/com/google/android/gms/common/api/Result.java | 0 .../main/java/com/google/android/gms/common/api/Scope.java | 0 .../main/java/com/google/android/gms/common/api/Status.java | 0 .../java/com/google/android/gms/common/data/DataHolder.java | 0 .../android/gms/common/server/FavaDiagnosticsEntity.java | 0 .../android/gms/drive/metadata/internal/MetadataBundle.java | 0 .../java/com/google/android/gms/dynamic/ObjectWrapper.java | 0 .../java/com/google/android/gms/fitness/data/DataPoint.java | 0 .../java/com/google/android/gms/fitness/data/Device.java | 0 .../main/java/com/google/android/gms/fitness/data/Field.java | 0 .../main/java/com/google/android/gms/fitness/data/Value.java | 0 .../android/gms/identity/accounts/api/AccountData.java | 0 .../gms/identity/intents/model/CountrySpecification.java | 0 .../android/gms/identity/intents/model/UserAddress.java | 0 .../main/java/com/google/android/gms/location/Geofence.java | 0 .../com/google/android/gms/location/GeofencingRequest.java | 0 .../com/google/android/gms/location/LocationRequest.java | 0 .../java/com/google/android/gms/location/LocationStatus.java | 0 .../google/android/gms/location/internal/ClientIdentity.java | 0 .../gms/location/internal/LocationRequestInternal.java | 0 .../android/gms/location/places/AutocompleteFilter.java | 0 .../android/gms/location/places/NearbyAlertRequest.java | 0 .../com/google/android/gms/location/places/PlaceFilter.java | 0 .../com/google/android/gms/location/places/PlaceReport.java | 0 .../com/google/android/gms/location/places/PlaceRequest.java | 0 .../google/android/gms/location/places/UserAddedPlace.java | 0 .../com/google/android/gms/location/places/UserDataType.java | 0 .../android/gms/location/places/internal/PlacesParams.java | 0 .../android/gms/location/reporting/ReportingState.java | 0 .../java/com/google/android/gms/maps/GoogleMapOptions.java | 0 .../google/android/gms/maps/StreetViewPanoramaOptions.java | 0 .../java/com/google/android/gms/maps/internal/Point.java | 0 .../com/google/android/gms/maps/model/BitmapDescriptor.java | 0 .../com/google/android/gms/maps/model/CameraPosition.java | 0 .../com/google/android/gms/maps/model/CircleOptions.java | 0 .../google/android/gms/maps/model/GroundOverlayOptions.java | 0 .../main/java/com/google/android/gms/maps/model/LatLng.java | 0 .../java/com/google/android/gms/maps/model/LatLngBounds.java | 0 .../com/google/android/gms/maps/model/MarkerOptions.java | 0 .../com/google/android/gms/maps/model/PolygonOptions.java | 0 .../com/google/android/gms/maps/model/PolylineOptions.java | 0 .../android/gms/maps/model/StreetViewPanoramaCamera.java | 0 .../android/gms/maps/model/StreetViewPanoramaLink.java | 0 .../android/gms/maps/model/StreetViewPanoramaLocation.java | 0 .../gms/maps/model/StreetViewPanoramaOrientation.java | 0 .../main/java/com/google/android/gms/maps/model/Tile.java | 0 .../google/android/gms/maps/model/TileOverlayOptions.java | 0 .../java/com/google/android/gms/maps/model/TileProvider.java | 0 .../com/google/android/gms/maps/model/VisibleRegion.java | 0 .../java/com/google/android/gms/maps/model/package-info.java | 0 .../com/google/android/gms/people/model/AccountMetadata.java | 0 .../google/android/gms/plus/internal/PlusCommonExtras.java | 0 .../com/google/android/gms/plus/internal/PlusSession.java | 0 .../gms/plus/internal/model/smart_profile/CardsRequest.java | 0 .../gms/plus/internal/model/smart_profile/CardsResponse.java | 0 .../model/smart_profile/PeopleForProfilesRequest.java | 0 .../model/smart_profile/PeopleForProfilesResponse.java | 0 .../com/google/android/gms/plus/model/posts/Comment.java | 0 .../java/com/google/android/gms/plus/model/posts/Post.java | 0 .../com/google/android/gms/plus/model/posts/Settings.java | 0 .../google/android/gms/wearable/ConnectionConfiguration.java | 0 .../src}/main/java/com/google/android/gms/wearable/Node.java | 0 .../com/google/android/gms/wearable/WearableStatusCodes.java | 0 .../google/android/gms/wearable/internal/NodeParcelable.java | 0 .../src}/main/java/org/microg/gms/common/Constants.java | 0 .../src}/main/java/org/microg/gms/common/PublicApi.java | 0 safe-parcel | 1 + settings.gradle | 5 ++--- 166 files changed, 9 insertions(+), 9 deletions(-) delete mode 160000 SafeParcel create mode 160000 extern/SafeParcel rename build.gradle => play-services-api/build.gradle (87%) rename {src => play-services-api/src}/main/AndroidManifest.xml (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/auth/IAuthManagerService.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/appdatasearch/CorpusStatus.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/appdatasearch/SuggestSpecification.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/appdatasearch/SuggestionResults.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/appdatasearch/UsageInfo.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/auth/AccountChangeEventsRequest.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/auth/AccountChangeEventsResponse.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/common/data/DataHolder.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/Geofence.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/GeofencingRequest.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/ILocationListener.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/LocationRequest.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/LocationStatus.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/internal/LocationRequestInternal.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/places/AutocompleteFilter.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/places/NearbyAlertRequest.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/places/PlaceFilter.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/places/PlaceReport.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/places/PlaceRequest.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/places/UserAddedPlace.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/places/UserDataType.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/places/internal/PlacesParams.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/reporting/ReportingState.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/GoogleMapOptions.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/ICancelableCallback.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/ICreator.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IInfoWindowAdapter.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/ILocationSourceDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IOnInfoWindowClickListener.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IOnMapClickListener.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IOnMapLongClickListener.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IOnMarkerClickListener.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationButtonClickListener.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IProjectionDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/internal/IUiSettingsDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/CameraPosition.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/CircleOptions.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/GroundOverlayOptions.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/LatLng.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/LatLngBounds.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/MarkerOptions.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/PolygonOptions.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/PolylineOptions.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/Tile.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/TileOverlayOptions.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/VisibleRegion.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/internal/IBitmapDescriptorFactoryDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/internal/ICircleDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/internal/IGroundOverlayDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/internal/IMarkerDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/internal/IPolygonDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/internal/IPolylineDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/internal/ITileOverlayDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/maps/model/internal/ITileProviderDelegate.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl (100%) rename {src => play-services-api/src}/main/aidl/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/appdatasearch/UsageInfo.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/auth/AccountChangeEvent.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/auth/firstparty/proximity/data/Permit.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/common/Scopes.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/common/api/AccountInfo.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/common/api/CommonStatusCodes.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/common/api/Result.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/common/api/Scope.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/common/api/Status.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/common/data/DataHolder.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/drive/metadata/internal/MetadataBundle.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/dynamic/ObjectWrapper.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/fitness/data/DataPoint.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/fitness/data/Device.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/fitness/data/Field.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/fitness/data/Value.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/identity/accounts/api/AccountData.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/identity/intents/model/CountrySpecification.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/identity/intents/model/UserAddress.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/Geofence.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/GeofencingRequest.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/LocationRequest.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/LocationStatus.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/internal/ClientIdentity.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/places/AutocompleteFilter.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/places/PlaceFilter.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/places/PlaceReport.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/places/PlaceRequest.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/places/UserAddedPlace.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/places/UserDataType.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/places/internal/PlacesParams.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/location/reporting/ReportingState.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/GoogleMapOptions.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/StreetViewPanoramaOptions.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/internal/Point.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/BitmapDescriptor.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/CameraPosition.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/CircleOptions.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/LatLng.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/LatLngBounds.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/MarkerOptions.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/PolygonOptions.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/PolylineOptions.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLink.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/Tile.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/TileProvider.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/VisibleRegion.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/maps/model/package-info.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/people/model/AccountMetadata.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/plus/internal/PlusCommonExtras.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/plus/internal/PlusSession.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/plus/model/posts/Comment.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/plus/model/posts/Post.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/plus/model/posts/Settings.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/wearable/Node.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/wearable/WearableStatusCodes.java (100%) rename {src => play-services-api/src}/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java (100%) rename {src => play-services-api/src}/main/java/org/microg/gms/common/Constants.java (100%) rename {src => play-services-api/src}/main/java/org/microg/gms/common/PublicApi.java (100%) create mode 120000 safe-parcel diff --git a/.gitmodules b/.gitmodules index 20fd0301..134f71c7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "SafeParcel"] - path = SafeParcel + path = extern/SafeParcel url = https://github.com/microg/android_external_SafeParcel.git diff --git a/Android.mk b/Android.mk index 88845431..fb4008de 100644 --- a/Android.mk +++ b/Android.mk @@ -3,8 +3,8 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := GmsApi -LOCAL_SRC_FILES := $(call all-java-files-under, src/main/java) -LOCAL_SRC_FILES := $(call all-Iaidl-files-under, src/main/aidl) +LOCAL_SRC_FILES := $(call all-java-files-under, play-services-api/src/main/java) +LOCAL_SRC_FILES := $(call all-Iaidl-files-under, play-services-api/src/main/aidl) LOCAL_STATIC_JAVA_LIBRARIES := SafeParcel include $(BUILD_STATIC_JAVA_LIBRARY) diff --git a/SafeParcel b/SafeParcel deleted file mode 160000 index 0bb4f3d6..00000000 --- a/SafeParcel +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0bb4f3d602d8565bbf500a880f563a2b1fa47d1d diff --git a/extern/SafeParcel b/extern/SafeParcel new file mode 160000 index 00000000..454265fd --- /dev/null +++ b/extern/SafeParcel @@ -0,0 +1 @@ +Subproject commit 454265fd3ee465cc0741a57f3a74a6e747c2fcd5 diff --git a/build.gradle b/play-services-api/build.gradle similarity index 87% rename from build.gradle rename to play-services-api/build.gradle index cd548167..2e94b779 100644 --- a/build.gradle +++ b/play-services-api/build.gradle @@ -11,11 +11,11 @@ buildscript { apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' -group = 'org.microg.gms' +group = 'org.microg' version = '1.0-SNAPSHOT' dependencies { - compile project(':SafeParcel') + compile project(':safe-parcel') } android { diff --git a/src/main/AndroidManifest.xml b/play-services-api/src/main/AndroidManifest.xml similarity index 100% rename from src/main/AndroidManifest.xml rename to play-services-api/src/main/AndroidManifest.xml diff --git a/src/main/aidl/com/google/android/auth/IAuthManagerService.aidl b/play-services-api/src/main/aidl/com/google/android/auth/IAuthManagerService.aidl similarity index 100% rename from src/main/aidl/com/google/android/auth/IAuthManagerService.aidl rename to play-services-api/src/main/aidl/com/google/android/auth/IAuthManagerService.aidl diff --git a/src/main/aidl/com/google/android/gms/appdatasearch/CorpusStatus.aidl b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/CorpusStatus.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/appdatasearch/CorpusStatus.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/CorpusStatus.aidl diff --git a/src/main/aidl/com/google/android/gms/appdatasearch/SuggestSpecification.aidl b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/SuggestSpecification.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/appdatasearch/SuggestSpecification.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/SuggestSpecification.aidl diff --git a/src/main/aidl/com/google/android/gms/appdatasearch/SuggestionResults.aidl b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/SuggestionResults.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/appdatasearch/SuggestionResults.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/SuggestionResults.aidl diff --git a/src/main/aidl/com/google/android/gms/appdatasearch/UsageInfo.aidl b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/UsageInfo.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/appdatasearch/UsageInfo.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/UsageInfo.aidl diff --git a/src/main/aidl/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl diff --git a/src/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl diff --git a/src/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl diff --git a/src/main/aidl/com/google/android/gms/auth/AccountChangeEventsRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/auth/AccountChangeEventsRequest.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/auth/AccountChangeEventsRequest.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/auth/AccountChangeEventsRequest.aidl diff --git a/src/main/aidl/com/google/android/gms/auth/AccountChangeEventsResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/auth/AccountChangeEventsResponse.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/auth/AccountChangeEventsResponse.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/auth/AccountChangeEventsResponse.aidl diff --git a/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl b/play-services-api/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl diff --git a/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl diff --git a/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl diff --git a/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl diff --git a/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl diff --git a/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl b/play-services-api/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl diff --git a/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl b/play-services-api/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl diff --git a/src/main/aidl/com/google/android/gms/location/Geofence.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/Geofence.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/Geofence.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/Geofence.aidl diff --git a/src/main/aidl/com/google/android/gms/location/GeofencingRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/GeofencingRequest.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/GeofencingRequest.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/GeofencingRequest.aidl diff --git a/src/main/aidl/com/google/android/gms/location/ILocationListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/ILocationListener.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/ILocationListener.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/ILocationListener.aidl diff --git a/src/main/aidl/com/google/android/gms/location/LocationRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/LocationRequest.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/LocationRequest.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/LocationRequest.aidl diff --git a/src/main/aidl/com/google/android/gms/location/LocationStatus.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/LocationStatus.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/LocationStatus.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/LocationStatus.aidl diff --git a/src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl diff --git a/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl diff --git a/src/main/aidl/com/google/android/gms/location/internal/LocationRequestInternal.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/LocationRequestInternal.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/internal/LocationRequestInternal.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/internal/LocationRequestInternal.aidl diff --git a/src/main/aidl/com/google/android/gms/location/places/AutocompleteFilter.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/places/AutocompleteFilter.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/places/AutocompleteFilter.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/places/AutocompleteFilter.aidl diff --git a/src/main/aidl/com/google/android/gms/location/places/NearbyAlertRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/places/NearbyAlertRequest.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/places/NearbyAlertRequest.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/places/NearbyAlertRequest.aidl diff --git a/src/main/aidl/com/google/android/gms/location/places/PlaceFilter.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/places/PlaceFilter.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/places/PlaceFilter.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/places/PlaceFilter.aidl diff --git a/src/main/aidl/com/google/android/gms/location/places/PlaceReport.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/places/PlaceReport.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/places/PlaceReport.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/places/PlaceReport.aidl diff --git a/src/main/aidl/com/google/android/gms/location/places/PlaceRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/places/PlaceRequest.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/places/PlaceRequest.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/places/PlaceRequest.aidl diff --git a/src/main/aidl/com/google/android/gms/location/places/UserAddedPlace.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/places/UserAddedPlace.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/places/UserAddedPlace.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/places/UserAddedPlace.aidl diff --git a/src/main/aidl/com/google/android/gms/location/places/UserDataType.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/places/UserDataType.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/places/UserDataType.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/places/UserDataType.aidl diff --git a/src/main/aidl/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl diff --git a/src/main/aidl/com/google/android/gms/location/places/internal/PlacesParams.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/PlacesParams.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/places/internal/PlacesParams.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/PlacesParams.aidl diff --git a/src/main/aidl/com/google/android/gms/location/reporting/ReportingState.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/ReportingState.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/reporting/ReportingState.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/reporting/ReportingState.aidl diff --git a/src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/GoogleMapOptions.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/GoogleMapOptions.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/GoogleMapOptions.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/GoogleMapOptions.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/ICancelableCallback.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ICancelableCallback.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/ICancelableCallback.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ICancelableCallback.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/ICreator.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ICreator.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/ICreator.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ICreator.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IInfoWindowAdapter.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IInfoWindowAdapter.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IInfoWindowAdapter.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IInfoWindowAdapter.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/ILocationSourceDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ILocationSourceDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/ILocationSourceDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ILocationSourceDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IOnInfoWindowClickListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnInfoWindowClickListener.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IOnInfoWindowClickListener.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnInfoWindowClickListener.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IOnMapClickListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMapClickListener.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IOnMapClickListener.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMapClickListener.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IOnMapLongClickListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMapLongClickListener.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IOnMapLongClickListener.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMapLongClickListener.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerClickListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerClickListener.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerClickListener.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerClickListener.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationButtonClickListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationButtonClickListener.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationButtonClickListener.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationButtonClickListener.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IProjectionDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IProjectionDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IProjectionDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IProjectionDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/internal/IUiSettingsDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IUiSettingsDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/internal/IUiSettingsDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IUiSettingsDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/CameraPosition.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/CameraPosition.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/CameraPosition.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/CameraPosition.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/CircleOptions.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/CircleOptions.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/CircleOptions.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/CircleOptions.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/GroundOverlayOptions.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/GroundOverlayOptions.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/GroundOverlayOptions.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/GroundOverlayOptions.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/LatLng.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/LatLng.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/LatLng.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/LatLng.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/LatLngBounds.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/LatLngBounds.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/LatLngBounds.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/LatLngBounds.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/MarkerOptions.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/MarkerOptions.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/MarkerOptions.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/MarkerOptions.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/PolygonOptions.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/PolygonOptions.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/PolygonOptions.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/PolygonOptions.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/PolylineOptions.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/PolylineOptions.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/PolylineOptions.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/PolylineOptions.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/Tile.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/Tile.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/Tile.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/Tile.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/TileOverlayOptions.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/TileOverlayOptions.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/TileOverlayOptions.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/TileOverlayOptions.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/VisibleRegion.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/VisibleRegion.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/VisibleRegion.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/VisibleRegion.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/internal/IBitmapDescriptorFactoryDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/IBitmapDescriptorFactoryDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/internal/IBitmapDescriptorFactoryDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/IBitmapDescriptorFactoryDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/internal/ICircleDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/ICircleDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/internal/ICircleDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/ICircleDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/internal/IGroundOverlayDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/IGroundOverlayDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/internal/IGroundOverlayDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/IGroundOverlayDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/internal/IMarkerDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/IMarkerDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/internal/IMarkerDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/IMarkerDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/internal/IPolygonDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/IPolygonDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/internal/IPolygonDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/IPolygonDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/internal/IPolylineDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/IPolylineDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/internal/IPolylineDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/IPolylineDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/internal/ITileOverlayDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/ITileOverlayDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/internal/ITileOverlayDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/ITileOverlayDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/maps/model/internal/ITileProviderDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/ITileProviderDelegate.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/maps/model/internal/ITileProviderDelegate.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/maps/model/internal/ITileProviderDelegate.aidl diff --git a/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl diff --git a/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl diff --git a/src/main/aidl/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl b/play-services-api/src/main/aidl/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl similarity index 100% rename from src/main/aidl/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl rename to play-services-api/src/main/aidl/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl diff --git a/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java similarity index 100% rename from src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java rename to play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java diff --git a/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java similarity index 100% rename from src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java rename to play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java diff --git a/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java similarity index 100% rename from src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java rename to play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java diff --git a/src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java similarity index 100% rename from src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java rename to play-services-api/src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java diff --git a/src/main/java/com/google/android/gms/auth/AccountChangeEvent.java b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEvent.java similarity index 100% rename from src/main/java/com/google/android/gms/auth/AccountChangeEvent.java rename to play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEvent.java diff --git a/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java similarity index 100% rename from src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java rename to play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java diff --git a/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java similarity index 100% rename from src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java rename to play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java diff --git a/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java similarity index 100% rename from src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java rename to play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java diff --git a/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java similarity index 100% rename from src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java rename to play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java diff --git a/src/main/java/com/google/android/gms/auth/firstparty/proximity/data/Permit.java b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/proximity/data/Permit.java similarity index 100% rename from src/main/java/com/google/android/gms/auth/firstparty/proximity/data/Permit.java rename to play-services-api/src/main/java/com/google/android/gms/auth/firstparty/proximity/data/Permit.java diff --git a/src/main/java/com/google/android/gms/common/Scopes.java b/play-services-api/src/main/java/com/google/android/gms/common/Scopes.java similarity index 100% rename from src/main/java/com/google/android/gms/common/Scopes.java rename to play-services-api/src/main/java/com/google/android/gms/common/Scopes.java diff --git a/src/main/java/com/google/android/gms/common/api/AccountInfo.java b/play-services-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java similarity index 100% rename from src/main/java/com/google/android/gms/common/api/AccountInfo.java rename to play-services-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java diff --git a/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java b/play-services-api/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java similarity index 100% rename from src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java rename to play-services-api/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java diff --git a/src/main/java/com/google/android/gms/common/api/Result.java b/play-services-api/src/main/java/com/google/android/gms/common/api/Result.java similarity index 100% rename from src/main/java/com/google/android/gms/common/api/Result.java rename to play-services-api/src/main/java/com/google/android/gms/common/api/Result.java diff --git a/src/main/java/com/google/android/gms/common/api/Scope.java b/play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java similarity index 100% rename from src/main/java/com/google/android/gms/common/api/Scope.java rename to play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java diff --git a/src/main/java/com/google/android/gms/common/api/Status.java b/play-services-api/src/main/java/com/google/android/gms/common/api/Status.java similarity index 100% rename from src/main/java/com/google/android/gms/common/api/Status.java rename to play-services-api/src/main/java/com/google/android/gms/common/api/Status.java diff --git a/src/main/java/com/google/android/gms/common/data/DataHolder.java b/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java similarity index 100% rename from src/main/java/com/google/android/gms/common/data/DataHolder.java rename to play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java diff --git a/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java b/play-services-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java similarity index 100% rename from src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java rename to play-services-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java diff --git a/src/main/java/com/google/android/gms/drive/metadata/internal/MetadataBundle.java b/play-services-api/src/main/java/com/google/android/gms/drive/metadata/internal/MetadataBundle.java similarity index 100% rename from src/main/java/com/google/android/gms/drive/metadata/internal/MetadataBundle.java rename to play-services-api/src/main/java/com/google/android/gms/drive/metadata/internal/MetadataBundle.java diff --git a/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java b/play-services-api/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java similarity index 100% rename from src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java rename to play-services-api/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java diff --git a/src/main/java/com/google/android/gms/fitness/data/DataPoint.java b/play-services-api/src/main/java/com/google/android/gms/fitness/data/DataPoint.java similarity index 100% rename from src/main/java/com/google/android/gms/fitness/data/DataPoint.java rename to play-services-api/src/main/java/com/google/android/gms/fitness/data/DataPoint.java diff --git a/src/main/java/com/google/android/gms/fitness/data/Device.java b/play-services-api/src/main/java/com/google/android/gms/fitness/data/Device.java similarity index 100% rename from src/main/java/com/google/android/gms/fitness/data/Device.java rename to play-services-api/src/main/java/com/google/android/gms/fitness/data/Device.java diff --git a/src/main/java/com/google/android/gms/fitness/data/Field.java b/play-services-api/src/main/java/com/google/android/gms/fitness/data/Field.java similarity index 100% rename from src/main/java/com/google/android/gms/fitness/data/Field.java rename to play-services-api/src/main/java/com/google/android/gms/fitness/data/Field.java diff --git a/src/main/java/com/google/android/gms/fitness/data/Value.java b/play-services-api/src/main/java/com/google/android/gms/fitness/data/Value.java similarity index 100% rename from src/main/java/com/google/android/gms/fitness/data/Value.java rename to play-services-api/src/main/java/com/google/android/gms/fitness/data/Value.java diff --git a/src/main/java/com/google/android/gms/identity/accounts/api/AccountData.java b/play-services-api/src/main/java/com/google/android/gms/identity/accounts/api/AccountData.java similarity index 100% rename from src/main/java/com/google/android/gms/identity/accounts/api/AccountData.java rename to play-services-api/src/main/java/com/google/android/gms/identity/accounts/api/AccountData.java diff --git a/src/main/java/com/google/android/gms/identity/intents/model/CountrySpecification.java b/play-services-api/src/main/java/com/google/android/gms/identity/intents/model/CountrySpecification.java similarity index 100% rename from src/main/java/com/google/android/gms/identity/intents/model/CountrySpecification.java rename to play-services-api/src/main/java/com/google/android/gms/identity/intents/model/CountrySpecification.java diff --git a/src/main/java/com/google/android/gms/identity/intents/model/UserAddress.java b/play-services-api/src/main/java/com/google/android/gms/identity/intents/model/UserAddress.java similarity index 100% rename from src/main/java/com/google/android/gms/identity/intents/model/UserAddress.java rename to play-services-api/src/main/java/com/google/android/gms/identity/intents/model/UserAddress.java diff --git a/src/main/java/com/google/android/gms/location/Geofence.java b/play-services-api/src/main/java/com/google/android/gms/location/Geofence.java similarity index 100% rename from src/main/java/com/google/android/gms/location/Geofence.java rename to play-services-api/src/main/java/com/google/android/gms/location/Geofence.java diff --git a/src/main/java/com/google/android/gms/location/GeofencingRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/GeofencingRequest.java similarity index 100% rename from src/main/java/com/google/android/gms/location/GeofencingRequest.java rename to play-services-api/src/main/java/com/google/android/gms/location/GeofencingRequest.java diff --git a/src/main/java/com/google/android/gms/location/LocationRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java similarity index 100% rename from src/main/java/com/google/android/gms/location/LocationRequest.java rename to play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java diff --git a/src/main/java/com/google/android/gms/location/LocationStatus.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java similarity index 100% rename from src/main/java/com/google/android/gms/location/LocationStatus.java rename to play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java diff --git a/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java b/play-services-api/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java similarity index 100% rename from src/main/java/com/google/android/gms/location/internal/ClientIdentity.java rename to play-services-api/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java diff --git a/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java b/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java similarity index 100% rename from src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java rename to play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java diff --git a/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java b/play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java similarity index 100% rename from src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java rename to play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java diff --git a/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java similarity index 100% rename from src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java rename to play-services-api/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java diff --git a/src/main/java/com/google/android/gms/location/places/PlaceFilter.java b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceFilter.java similarity index 100% rename from src/main/java/com/google/android/gms/location/places/PlaceFilter.java rename to play-services-api/src/main/java/com/google/android/gms/location/places/PlaceFilter.java diff --git a/src/main/java/com/google/android/gms/location/places/PlaceReport.java b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java similarity index 100% rename from src/main/java/com/google/android/gms/location/places/PlaceReport.java rename to play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java diff --git a/src/main/java/com/google/android/gms/location/places/PlaceRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceRequest.java similarity index 100% rename from src/main/java/com/google/android/gms/location/places/PlaceRequest.java rename to play-services-api/src/main/java/com/google/android/gms/location/places/PlaceRequest.java diff --git a/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java b/play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java similarity index 100% rename from src/main/java/com/google/android/gms/location/places/UserAddedPlace.java rename to play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java diff --git a/src/main/java/com/google/android/gms/location/places/UserDataType.java b/play-services-api/src/main/java/com/google/android/gms/location/places/UserDataType.java similarity index 100% rename from src/main/java/com/google/android/gms/location/places/UserDataType.java rename to play-services-api/src/main/java/com/google/android/gms/location/places/UserDataType.java diff --git a/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java b/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java similarity index 100% rename from src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java rename to play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java diff --git a/src/main/java/com/google/android/gms/location/reporting/ReportingState.java b/play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java similarity index 100% rename from src/main/java/com/google/android/gms/location/reporting/ReportingState.java rename to play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java diff --git a/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/GoogleMapOptions.java rename to play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java diff --git a/src/main/java/com/google/android/gms/maps/StreetViewPanoramaOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/StreetViewPanoramaOptions.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/StreetViewPanoramaOptions.java rename to play-services-api/src/main/java/com/google/android/gms/maps/StreetViewPanoramaOptions.java diff --git a/src/main/java/com/google/android/gms/maps/internal/Point.java b/play-services-api/src/main/java/com/google/android/gms/maps/internal/Point.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/internal/Point.java rename to play-services-api/src/main/java/com/google/android/gms/maps/internal/Point.java diff --git a/src/main/java/com/google/android/gms/maps/model/BitmapDescriptor.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/BitmapDescriptor.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/BitmapDescriptor.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/BitmapDescriptor.java diff --git a/src/main/java/com/google/android/gms/maps/model/CameraPosition.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/CameraPosition.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/CameraPosition.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/CameraPosition.java diff --git a/src/main/java/com/google/android/gms/maps/model/CircleOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/CircleOptions.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/CircleOptions.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/CircleOptions.java diff --git a/src/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java diff --git a/src/main/java/com/google/android/gms/maps/model/LatLng.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/LatLng.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java diff --git a/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/LatLngBounds.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java diff --git a/src/main/java/com/google/android/gms/maps/model/MarkerOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/MarkerOptions.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/MarkerOptions.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/MarkerOptions.java diff --git a/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/PolygonOptions.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java diff --git a/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/PolylineOptions.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java diff --git a/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java diff --git a/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLink.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLink.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLink.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLink.java diff --git a/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java diff --git a/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java diff --git a/src/main/java/com/google/android/gms/maps/model/Tile.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/Tile.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/Tile.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/Tile.java diff --git a/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java diff --git a/src/main/java/com/google/android/gms/maps/model/TileProvider.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/TileProvider.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/TileProvider.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/TileProvider.java diff --git a/src/main/java/com/google/android/gms/maps/model/VisibleRegion.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/VisibleRegion.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/VisibleRegion.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/VisibleRegion.java diff --git a/src/main/java/com/google/android/gms/maps/model/package-info.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/package-info.java similarity index 100% rename from src/main/java/com/google/android/gms/maps/model/package-info.java rename to play-services-api/src/main/java/com/google/android/gms/maps/model/package-info.java diff --git a/src/main/java/com/google/android/gms/people/model/AccountMetadata.java b/play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java similarity index 100% rename from src/main/java/com/google/android/gms/people/model/AccountMetadata.java rename to play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java diff --git a/src/main/java/com/google/android/gms/plus/internal/PlusCommonExtras.java b/play-services-api/src/main/java/com/google/android/gms/plus/internal/PlusCommonExtras.java similarity index 100% rename from src/main/java/com/google/android/gms/plus/internal/PlusCommonExtras.java rename to play-services-api/src/main/java/com/google/android/gms/plus/internal/PlusCommonExtras.java diff --git a/src/main/java/com/google/android/gms/plus/internal/PlusSession.java b/play-services-api/src/main/java/com/google/android/gms/plus/internal/PlusSession.java similarity index 100% rename from src/main/java/com/google/android/gms/plus/internal/PlusSession.java rename to play-services-api/src/main/java/com/google/android/gms/plus/internal/PlusSession.java diff --git a/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java b/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java similarity index 100% rename from src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java rename to play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java diff --git a/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java b/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java similarity index 100% rename from src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java rename to play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java diff --git a/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java b/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java similarity index 100% rename from src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java rename to play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java diff --git a/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java b/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java similarity index 100% rename from src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java rename to play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java diff --git a/src/main/java/com/google/android/gms/plus/model/posts/Comment.java b/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Comment.java similarity index 100% rename from src/main/java/com/google/android/gms/plus/model/posts/Comment.java rename to play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Comment.java diff --git a/src/main/java/com/google/android/gms/plus/model/posts/Post.java b/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Post.java similarity index 100% rename from src/main/java/com/google/android/gms/plus/model/posts/Post.java rename to play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Post.java diff --git a/src/main/java/com/google/android/gms/plus/model/posts/Settings.java b/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Settings.java similarity index 100% rename from src/main/java/com/google/android/gms/plus/model/posts/Settings.java rename to play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Settings.java diff --git a/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java b/play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java similarity index 100% rename from src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java diff --git a/src/main/java/com/google/android/gms/wearable/Node.java b/play-services-api/src/main/java/com/google/android/gms/wearable/Node.java similarity index 100% rename from src/main/java/com/google/android/gms/wearable/Node.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/Node.java diff --git a/src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java b/play-services-api/src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java similarity index 100% rename from src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java diff --git a/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java similarity index 100% rename from src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java diff --git a/src/main/java/org/microg/gms/common/Constants.java b/play-services-api/src/main/java/org/microg/gms/common/Constants.java similarity index 100% rename from src/main/java/org/microg/gms/common/Constants.java rename to play-services-api/src/main/java/org/microg/gms/common/Constants.java diff --git a/src/main/java/org/microg/gms/common/PublicApi.java b/play-services-api/src/main/java/org/microg/gms/common/PublicApi.java similarity index 100% rename from src/main/java/org/microg/gms/common/PublicApi.java rename to play-services-api/src/main/java/org/microg/gms/common/PublicApi.java diff --git a/safe-parcel b/safe-parcel new file mode 120000 index 00000000..76875b71 --- /dev/null +++ b/safe-parcel @@ -0,0 +1 @@ +extern/SafeParcel/safe-parcel \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 930a2c14..22f70d94 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,2 @@ -rootProject.name = 'play-services-api' - -include ':SafeParcel' +include ':play-services-api' +include ':safe-parcel' From bce1d500c93fbf04a25a0045919098f71abd3127 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Wed, 25 Mar 2015 23:07:07 +0100 Subject: [PATCH 037/170] Add some AIDL specs --- .../aidl/com/google/android/gms/http/IGoogleHttpService.aidl | 5 +++++ .../google/android/gms/people/internal/IPeopleCallbacks.aidl | 1 + .../google/android/gms/people/internal/IPeopleService.aidl | 3 +++ .../google/android/gms/playlog/internal/IPlayLogService.aidl | 4 ++++ 4 files changed, 13 insertions(+) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/http/IGoogleHttpService.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/IPlayLogService.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/http/IGoogleHttpService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/http/IGoogleHttpService.aidl new file mode 100644 index 00000000..1503e8d1 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/http/IGoogleHttpService.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.http; + +interface IGoogleHttpService { + Bundle checkUrl(String url); +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl index 8738a9ea..8aa1e23c 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl @@ -5,4 +5,5 @@ import com.google.android.gms.common.data.DataHolder; interface IPeopleCallbacks { void onDataHolder(int code, in Bundle resolution, in DataHolder holder) = 1; void onDataHolders(int code, in Bundle resolution, in DataHolder[] holders) = 3; + void onParcelFileDescriptor(int code, in Bundle resolution, in ParcelFileDescriptor fileDescriptor, in Bundle extras) = 4; } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl index e399cd02..e46f354e 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl @@ -33,6 +33,9 @@ interface IPeopleService { // void addPeopleToCircle(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5); Bundle registerDataChangedListener(IPeopleCallbacks callbacks, boolean register, String var3, String var4, int scopes) = 10; + void loadCircles(IPeopleCallbacks callbacks, String account, String pageGaiaId, String circleId, int type, String var6, boolean var7) = 18; + Bundle requestSync(String account, String var2, long var3, boolean var5, boolean var6) = 204; void loadOwners(IPeopleCallbacks callbacks, boolean var2, boolean var3, String account, String var5, int sortOrder) = 304; + void loadPeopleForAggregation(IPeopleCallbacks callbacks, String account, String var3, String filter, int var5, boolean var6, int var7, int var8, String var9, boolean var10, int var11, int var12) = 401; ICancelToken loadOwnerAvatar(IPeopleCallbacks callbacks, String account, String pageId, int size, int flags) = 504; } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/IPlayLogService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/IPlayLogService.aidl new file mode 100644 index 00000000..38e620ea --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/IPlayLogService.aidl @@ -0,0 +1,4 @@ +package com.google.android.gms.playlog.internal; + +interface IPlayLogService { +} From 712f24a59fd7b79449842945d7d383cc4559a68b Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Wed, 25 Mar 2015 23:10:19 +0100 Subject: [PATCH 038/170] Fix Android.mk --- Android.mk | 3 ++- .../aidl/com/google/android/auth/IAuthManagerService.aidl | 2 ++ .../com/google/android/gms/common/internal/IGmsCallbacks.aidl | 2 ++ .../google/android/gms/common/internal/IGmsServiceBroker.aidl | 2 ++ .../gms/location/internal/IGoogleLocationManagerService.aidl | 4 ++++ .../google/android/gms/maps/internal/IGoogleMapDelegate.aidl | 2 ++ .../android/gms/maps/internal/IMapFragmentDelegate.aidl | 2 ++ .../google/android/gms/maps/internal/IMapViewDelegate.aidl | 2 ++ .../google/android/gms/people/internal/IPeopleCallbacks.aidl | 2 ++ .../google/android/gms/people/internal/IPeopleService.aidl | 2 ++ 10 files changed, 22 insertions(+), 1 deletion(-) diff --git a/Android.mk b/Android.mk index fb4008de..74850272 100644 --- a/Android.mk +++ b/Android.mk @@ -4,7 +4,8 @@ include $(CLEAR_VARS) LOCAL_MODULE := GmsApi LOCAL_SRC_FILES := $(call all-java-files-under, play-services-api/src/main/java) -LOCAL_SRC_FILES := $(call all-Iaidl-files-under, play-services-api/src/main/aidl) +LOCAL_SRC_FILES += $(call all-Iaidl-files-under, play-services-api/src/main/aidl) +LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/play-services-api/src/main/aidl LOCAL_STATIC_JAVA_LIBRARIES := SafeParcel include $(BUILD_STATIC_JAVA_LIBRARY) diff --git a/play-services-api/src/main/aidl/com/google/android/auth/IAuthManagerService.aidl b/play-services-api/src/main/aidl/com/google/android/auth/IAuthManagerService.aidl index 94ced65c..ac46a323 100644 --- a/play-services-api/src/main/aidl/com/google/android/auth/IAuthManagerService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/auth/IAuthManagerService.aidl @@ -1,5 +1,7 @@ package com.google.android.auth; +import android.os.Bundle; + import com.google.android.gms.auth.AccountChangeEventsResponse; import com.google.android.gms.auth.AccountChangeEventsRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl index 9a36b0ed..b0210281 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl @@ -1,5 +1,7 @@ package com.google.android.gms.common.internal; +import android.os.Bundle; + interface IGmsCallbacks { void onPostInitComplete(int statusCode, IBinder binder, in Bundle params); } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl index 318c4dab..185b394a 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl @@ -1,5 +1,7 @@ package com.google.android.gms.common.internal; +import android.os.Bundle; + import com.google.android.gms.common.internal.IGmsCallbacks; interface IGmsServiceBroker { diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl index a60350fd..e2fb3acc 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl @@ -1,5 +1,9 @@ package com.google.android.gms.location.internal; +import android.app.PendingIntent; +import android.location.Location; +import android.os.Bundle; + import com.google.android.gms.location.places.AutocompleteFilter; import com.google.android.gms.location.places.internal.IPlacesCallbacks; import com.google.android.gms.location.internal.LocationRequestInternal; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl index ac474c35..ae5e402b 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl @@ -1,5 +1,7 @@ package com.google.android.gms.maps.internal; +import android.location.Location; + import com.google.android.gms.dynamic.IObjectWrapper; import com.google.android.gms.maps.model.CameraPosition; import com.google.android.gms.maps.internal.ICancelableCallback; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl index 966c4e4b..ebfee0d1 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl @@ -1,5 +1,7 @@ package com.google.android.gms.maps.internal; +import android.os.Bundle; + import com.google.android.gms.maps.internal.IGoogleMapDelegate; import com.google.android.gms.maps.GoogleMapOptions; import com.google.android.gms.dynamic.IObjectWrapper; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl index 820e27b4..2efb5649 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl @@ -1,5 +1,7 @@ package com.google.android.gms.maps.internal; +import android.os.Bundle; + import com.google.android.gms.maps.internal.IGoogleMapDelegate; import com.google.android.gms.dynamic.IObjectWrapper; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl index 8738a9ea..66b35e43 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl @@ -1,5 +1,7 @@ package com.google.android.gms.people.internal; +import android.os.Bundle; + import com.google.android.gms.common.data.DataHolder; interface IPeopleCallbacks { diff --git a/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl index e399cd02..d50aee4a 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl @@ -1,5 +1,7 @@ package com.google.android.gms.people.internal; +import android.os.Bundle; + import com.google.android.gms.people.internal.IPeopleCallbacks; import com.google.android.gms.common.server.FavaDiagnosticsEntity; import com.google.android.gms.common.internal.ICancelToken; From b852fefd86cb1583b41dc5ca00467a61fe67808a Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 30 Mar 2015 23:49:40 +0200 Subject: [PATCH 039/170] Update SafeParcel to 1.0.0 release --- extern/SafeParcel | 2 +- play-services-api/build.gradle | 7 +- play-services-api/gradle-mvn-push.gradle | 114 +++++++++++++++++++++++ play-services-api/gradle.properties | 22 +++++ 4 files changed, 140 insertions(+), 5 deletions(-) create mode 100644 play-services-api/gradle-mvn-push.gradle create mode 100644 play-services-api/gradle.properties diff --git a/extern/SafeParcel b/extern/SafeParcel index 454265fd..b3837016 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit 454265fd3ee465cc0741a57f3a74a6e747c2fcd5 +Subproject commit b383701659ca342ee08ff2b2f15b5611daaac2f4 diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index 2e94b779..1013422a 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -4,12 +4,11 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:1.0.1' - classpath 'com.github.dcendents:android-maven-plugin:1.2' } } apply plugin: 'com.android.library' -apply plugin: 'com.github.dcendents.android-maven' +apply from: 'gradle-mvn-push.gradle' group = 'org.microg' version = '1.0-SNAPSHOT' @@ -19,6 +18,6 @@ dependencies { } android { - compileSdkVersion 21 - buildToolsVersion "21.1.2" + compileSdkVersion 22 + buildToolsVersion "22.0.0" } diff --git a/play-services-api/gradle-mvn-push.gradle b/play-services-api/gradle-mvn-push.gradle new file mode 100644 index 00000000..f5f4129c --- /dev/null +++ b/play-services-api/gradle-mvn-push.gradle @@ -0,0 +1,114 @@ +/* + * Copyright 2013 Chris Banes + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +apply plugin: 'maven' +apply plugin: 'signing' + +def isReleaseBuild() { + return VERSION_NAME.contains("SNAPSHOT") == false +} + +def getReleaseRepositoryUrl() { + return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL + : "https://oss.sonatype.org/service/local/staging/deploy/maven2/" +} + +def getSnapshotRepositoryUrl() { + return hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL + : "https://oss.sonatype.org/content/repositories/snapshots/" +} + +def getRepositoryUsername() { + return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : "" +} + +def getRepositoryPassword() { + return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : "" +} + +afterEvaluate { project -> + uploadArchives { + repositories { + mavenDeployer { + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + + pom.groupId = GROUP + pom.artifactId = POM_ARTIFACT_ID + pom.version = VERSION_NAME + + repository(url: getReleaseRepositoryUrl()) { + authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) + } + snapshotRepository(url: getSnapshotRepositoryUrl()) { + authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) + } + + pom.project { + name POM_NAME + packaging POM_PACKAGING + description POM_DESCRIPTION + url POM_URL + + scm { + url POM_SCM_URL + connection POM_SCM_CONNECTION + developerConnection POM_SCM_DEV_CONNECTION + } + + licenses { + license { + name POM_LICENCE_NAME + url POM_LICENCE_URL + distribution POM_LICENCE_DIST + } + } + + developers { + developer { + id POM_DEVELOPER_ID + name POM_DEVELOPER_NAME + } + } + } + } + } + } + + signing { + required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } + sign configurations.archives + } + + task androidJavadocs(type: Javadoc) { + source = android.sourceSets.main.java.srcDirs + classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + } + + task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) { + classifier = 'javadoc' + from androidJavadocs.destinationDir + } + + task androidSourcesJar(type: Jar) { + classifier = 'sources' + from android.sourceSets.main.java.sourceFiles + } + + artifacts { + archives androidSourcesJar + archives androidJavadocsJar + } +} diff --git a/play-services-api/gradle.properties b/play-services-api/gradle.properties new file mode 100644 index 00000000..0859459b --- /dev/null +++ b/play-services-api/gradle.properties @@ -0,0 +1,22 @@ +GROUP=org.microg +POM_ARTIFACT_ID=play-services-api +VERSION_NAME=1.0-SNAPSHOT + +POM_NAME=µg GmsApi +POM_DESCRIPTION=Interfaces and objects for IPC between Play Services Library and Play Services Core + +POM_PACKAGING=aar + +POM_URL=https://github.com/microg/android_external_GmsApi + +POM_SCM_URL=https://github.com/microg/android_external_GmsApi +POM_SCM_CONNECTION=scm:git@github.com:microg/android_external_GmsApi.git +POM_SCM_DEV_CONNECTION=scm:git@github.com:microg/android_external_GmsApi.git + +POM_LICENCE_NAME=The Apache Software License, Version 2.0 +POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt +POM_LICENCE_DIST=repo + +POM_DEVELOPER_ID=mar-v-in +POM_DEVELOPER_NAME=Marvin W + From 704199355e1c6f8b14402e01063fbae7b187b35b Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 30 Mar 2015 23:55:35 +0200 Subject: [PATCH 040/170] Add some wearable APIs --- .../android/gms/common/data/DataHolder.java | 29 ++++- .../android/gms/common/data/Freezable.java | 39 +++++++ .../google/android/gms/wearable/Asset.java | 89 ++++++++++++++++ .../google/android/gms/wearable/DataItem.java | 56 ++++++++++ .../android/gms/wearable/DataItemAsset.java | 36 +++++++ .../com/google/android/gms/wearable/Node.java | 4 +- .../android/gms/wearable/PutDataRequest.java | 100 ++++++++++++++++++ .../java/org/microg/gms/common/PublicApi.java | 6 +- 8 files changed, 350 insertions(+), 9 deletions(-) create mode 100644 play-services-api/src/main/java/com/google/android/gms/common/data/Freezable.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/DataItem.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/DataItemAsset.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java diff --git a/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java b/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java index 99811a18..91bfbd68 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java @@ -24,16 +24,23 @@ public class DataHolder extends AutoSafeParcelable { private int versionCode = 1; @SafeParceled(1) - private String[] columns; + public final String[] columns; @SafeParceled(2) - private CursorWindow[] windows; + public final CursorWindow[] windows; @SafeParceled(3) - private int statusCode; + public final int statusCode; @SafeParceled(4) - private Bundle metadata; + public final Bundle metadata; + + private DataHolder() { + columns = null; + windows = null; + statusCode = 0; + metadata = null; + } public DataHolder(String[] columns, CursorWindow[] windows, int statusCode, Bundle metadata) { this.columns = columns; @@ -48,13 +55,14 @@ public class DataHolder extends AutoSafeParcelable { protected static final int FIELD_TYPE_NULL = 0; protected static final int FIELD_TYPE_STRING = 3; + @SuppressWarnings("deprecation") @SuppressLint("NewApi") static int getCursorType(Cursor cursor, int i) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { return cursor.getType(i); } if (cursor instanceof AbstractWindowedCursor) { - CursorWindow cursorWindow = ((AbstractWindowedCursor)cursor).getWindow(); + CursorWindow cursorWindow = ((AbstractWindowedCursor) cursor).getWindow(); int pos = cursor.getPosition(); int type = -1; if (cursorWindow.isNull(pos, i)) { @@ -113,6 +121,17 @@ public class DataHolder extends AutoSafeParcelable { return dataHolder; } + + public int getCount() { + int c = 0; + if (windows != null) { + for (CursorWindow window : windows) { + c += window.getNumRows(); + } + } + return c; + } + @Override public String toString() { return "DataHolder{" + diff --git a/play-services-api/src/main/java/com/google/android/gms/common/data/Freezable.java b/play-services-api/src/main/java/com/google/android/gms/common/data/Freezable.java new file mode 100644 index 00000000..a6d69d46 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/common/data/Freezable.java @@ -0,0 +1,39 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.common.data; + +public interface Freezable { + /** + * Freeze a volatile representation into an immutable representation. Objects returned from + * this call are safe to cache. + *

+ * Note that the output of {@link #freeze} may not be identical to the parent object, but + * should be equal. + * + * @return A concrete implementation of the data object. + */ + T freeze(); + + /** + * Check to see if this object is valid for use. If the object is still volatile, this method + * will indicate whether or not the object can be safely used. + * The output of a call to {@link #freeze()} will always be valid. + * + * @return whether or not the object is valid for use. + */ + boolean isDataValid(); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java b/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java new file mode 100644 index 00000000..6967fbdd --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java @@ -0,0 +1,89 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import android.net.Uri; +import android.os.ParcelFileDescriptor; + +import org.microg.gms.common.PublicApi; +import org.microg.safeparcel.AutoSafeParcelable; + +/** + * An asset is a binary blob shared between data items that is replicated across the wearable + * network on demand. + *

+ * It may represent an asset not yet added with the Android Wear network. DataItemAssets + * are representations of an asset after it has been added to the network through a + * {@link PutDataRequest}. + */ +@PublicApi +public class Asset extends AutoSafeParcelable { + + /** + * Creates an Asset using a byte array. + */ + public static Asset createFromBytes(byte[] assetData) { + return null; + } + + /** + * Creates an Asset using a file descriptor. The FD should be closed after being successfully + * sent in a putDataItem request. + */ + public static Asset createFromFd(ParcelFileDescriptor fd) { + return null; + } + + /** + * Create an Asset using an existing Asset's digest. + */ + public static Asset createFromRef(String digest) { + return null; + } + + /** + * Creates an Asset using a content URI. Google Play services must have permission to read this + * Uri. + */ + public static Asset createFromUri(Uri uri) { + return null; + } + + /** + * @return the digest associated with the asset data. A digest is a content identifier used to + * identify the asset across devices. + */ + public String getDigest() { + return null; + } + + /** + * @return the file descriptor referencing the asset. + */ + public ParcelFileDescriptor getFd() { + return null; + } + + /** + * @return the uri referencing the asset data. + */ + public Uri getUri() { + return null; + } + + public static final Creator CREATOR = new AutoCreator<>(Asset.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/DataItem.java b/play-services-api/src/main/java/com/google/android/gms/wearable/DataItem.java new file mode 100644 index 00000000..9acb48f8 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/DataItem.java @@ -0,0 +1,56 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import android.net.Uri; + +import com.google.android.gms.common.data.Freezable; + +import org.microg.gms.common.PublicApi; + +import java.util.Map; + +/** + * The base object of data stored in the Android Wear network. {@link DataItem} are replicated + * across all devices in the network. It contains a small blob of data and associated assets. + *

+ * A {@link DataItem} is identified by its Uri, which contains its creator and a path. + */ +@PublicApi +public interface DataItem extends Freezable { + /** + * A map of assets associated with this data item. + */ + Map getAssets(); + + /** + * An array of data stored at the specified {@link Uri}. + */ + byte[] getData(); + + /** + * Returns the DataItem's Uri. {@link Uri#getHost()} returns the id of the node that created it. + */ + Uri getUri(); + + /** + * Sets the data in a data item. + *

+ * The current maximum data item size limit is approximately 100k. Data items should generally be much smaller than this limit. + */ + DataItem setData(byte[] data); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/DataItemAsset.java b/play-services-api/src/main/java/com/google/android/gms/wearable/DataItemAsset.java new file mode 100644 index 00000000..70057975 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/DataItemAsset.java @@ -0,0 +1,36 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import com.google.android.gms.common.data.Freezable; + +/** + * A reference to an asset stored in a data item. Used to fetch file descriptors using + * DataApi#getFdForAsset(GoogleApiClient, DataItemAsset). + */ +public interface DataItemAsset extends Freezable { + /** + * @return the identifier used to address this asset in the context of an existing + * {@link DataItem}. + */ + String getDataItemKey(); + + /** + * @return the Android Wear-wide unique identifier for a particular asset. + */ + String getId(); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/Node.java b/play-services-api/src/main/java/com/google/android/gms/wearable/Node.java index f308c611..f52fe4df 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/Node.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/Node.java @@ -27,10 +27,10 @@ public interface Node { * Returns a human readable description of the node. Sometimes generated from the Bluetooth * device name */ - public abstract String getDisplayName(); + String getDisplayName(); /** * Returns an opaque string that represents a node in the Android Wear network. */ - public abstract String getId(); + String getId(); } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java b/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java new file mode 100644 index 00000000..8d049eba --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java @@ -0,0 +1,100 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import android.net.Uri; + +import org.microg.gms.common.PublicApi; +import org.microg.safeparcel.AutoSafeParcelable; + +import java.util.Collections; +import java.util.Map; + +/** + * {@link PutDataRequest} is used to create new data items in the Android Wear network. + */ +@PublicApi +public class PutDataRequest extends AutoSafeParcelable { + public static final String WEAR_URI_SCHEME = "wear"; + + private DataItem dataItem; + + private PutDataRequest(DataItem dataItem) { + this.dataItem = dataItem; + } + + public static PutDataRequest create(String path) { + // TODO + return new PutDataRequest(null); + } + + public static PutDataRequest createFromDataItem(DataItem source) { + return new PutDataRequest(source); + } + + public static PutDataRequest createWithAutoAppendedId(String pathPrefix) { + return new PutDataRequest(null); + } + + public Asset getAsset(String key) { + // TODO + return null; + } + + public Map getAssets() { + // TODO + return Collections.emptyMap(); + } + + public byte[] getData() { + return dataItem.getData(); + } + + public Uri getUri() { + return dataItem.getUri(); + } + + public boolean hasAsset(String key) { + return dataItem.getAssets().containsKey(key); + } + + public PutDataRequest putAsset(String key, Asset value) { + // TODO + return this; + } + + public PutDataRequest removeAsset(String key) { + // TODO + return this; + } + + public PutDataRequest setData(byte[] data) { + // TODO + return this; + } + + @Override + public String toString() { + return toString(false); + } + + public String toString(boolean verbose) { + return "PutDataRequest{data=" + dataItem + "}"; + } + + public static final Creator CREATOR = new AutoCreator<>(PutDataRequest.class); +} diff --git a/play-services-api/src/main/java/org/microg/gms/common/PublicApi.java b/play-services-api/src/main/java/org/microg/gms/common/PublicApi.java index 45afeb22..94f84583 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/PublicApi.java +++ b/play-services-api/src/main/java/org/microg/gms/common/PublicApi.java @@ -39,8 +39,10 @@ public @interface PublicApi { String until() default "latest"; /** - * @return used on a method or field to exclude it from the public api if the corresponding - * class was marked as public api + * Used on a method or field to exclude it from the public api if the corresponding class was + * marked as public api. + * + * @return true if the method or field is not part of the public api */ boolean exclude() default false; } From 9dea25dca4c45e12dd9e72580d67d9e252837325 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 6 Apr 2015 23:54:07 +0200 Subject: [PATCH 041/170] Extend ServiceBroker --- .../common/internal/GetServiceRequest.aidl | 3 + .../common/internal/IGmsServiceBroker.aidl | 53 +++++++++------- .../internal/ValidateAccountRequest.aidl | 3 + .../common/internal/GetServiceRequest.java | 63 +++++++++++++++++++ .../internal/ValidateAccountRequest.java | 23 +++++++ 5 files changed, 121 insertions(+), 24 deletions(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl new file mode 100644 index 00000000..791dbe90 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.common.internal; + +parcelable GetServiceRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl index 185b394a..2074e4aa 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl @@ -3,30 +3,35 @@ package com.google.android.gms.common.internal; import android.os.Bundle; import com.google.android.gms.common.internal.IGmsCallbacks; +import com.google.android.gms.common.internal.GetServiceRequest; +import com.google.android.gms.common.internal.ValidateAccountRequest; interface IGmsServiceBroker { - void getPlusService(IGmsCallbacks callback, int code, String str1, String str2, in String[] paramArrayOfString, String str3, in Bundle params); - void getPanoramaService(IGmsCallbacks callback, int code, String str, in Bundle params); - void getAppDataSearchService(IGmsCallbacks callback, int code, String str); - void getWalletService(IGmsCallbacks callback, int code); - void getPeopleService(IGmsCallbacks callback, int code, String str, in Bundle params); - void getReportingService(IGmsCallbacks callback, int code, String str, in Bundle params); - void getLocationService(IGmsCallbacks callback, int code, String str, in Bundle params); - void getGoogleLocationManagerService(IGmsCallbacks callback, int code, String str, in Bundle params); - void getGamesService(IGmsCallbacks callback, int code, String str1, String str2, in String[] args, String str3, IBinder binder, String str4, in Bundle params); - void getAppStateService(IGmsCallbacks callback, int code, String str1, String str2, in String[] args); - void getPlayLogService(IGmsCallbacks callback, int code, String str, in Bundle params); - void getAdMobService(IGmsCallbacks callback, int code, String str, in Bundle params); - void getDroidGuardService(IGmsCallbacks callback, int code, String str, in Bundle params); - void getLockboxService(IGmsCallbacks callback, int code, String str, in Bundle params); - void getCastMirroringService(IGmsCallbacks callback, int code, String str, in Bundle params); - void getNetworkQualityService(IGmsCallbacks callback, int code, String str, in Bundle params); - void getGoogleIdentityService(IGmsCallbacks callback, int code, String str, in Bundle params); - void getGoogleFeedbackService(IGmsCallbacks callback, int code, String str, in Bundle params); - void getCastService(IGmsCallbacks callback, int code, String str, IBinder binder, in Bundle params); - void getDriveService(IGmsCallbacks callback, int code, String str1, in String[] args, String str2, in Bundle params); - void getLightweightAppDataSearchService(IGmsCallbacks callback, int code, String str); - void getSearchAdministrationService(IGmsCallbacks callback, int code, String str); - void getAutoBackupService(IGmsCallbacks callback, int code, String str, in Bundle params); - void getAddressService(IGmsCallbacks callback, int code, String str); + void getPlusService(IGmsCallbacks callback, int code, String str1, String str2, in String[] paramArrayOfString, String str3, in Bundle params) = 0; + void getPanoramaService(IGmsCallbacks callback, int code, String str, in Bundle params) = 1; + void getAppDataSearchService(IGmsCallbacks callback, int code, String str) = 2; + void getWalletService(IGmsCallbacks callback, int code) = 3; + void getPeopleService(IGmsCallbacks callback, int code, String str, in Bundle params) = 4; + void getReportingService(IGmsCallbacks callback, int code, String str, in Bundle params) = 5; + void getLocationService(IGmsCallbacks callback, int code, String str, in Bundle params) = 6; + void getGoogleLocationManagerService(IGmsCallbacks callback, int code, String str, in Bundle params) = 7; + void getGamesService(IGmsCallbacks callback, int code, String str1, String str2, in String[] args, String str3, IBinder binder, String str4, in Bundle params) = 8; + void getAppStateService(IGmsCallbacks callback, int code, String str1, String str2, in String[] args) = 9; + void getPlayLogService(IGmsCallbacks callback, int code, String str, in Bundle params) = 10; + void getAdMobService(IGmsCallbacks callback, int code, String str, in Bundle params) = 11; + void getDroidGuardService(IGmsCallbacks callback, int code, String str, in Bundle params) = 12; + void getLockboxService(IGmsCallbacks callback, int code, String str, in Bundle params) = 13; + void getCastMirroringService(IGmsCallbacks callback, int code, String str, in Bundle params) = 14; + void getNetworkQualityService(IGmsCallbacks callback, int code, String str, in Bundle params) = 15; + void getGoogleIdentityService(IGmsCallbacks callback, int code, String str, in Bundle params) = 16; + void getGoogleFeedbackService(IGmsCallbacks callback, int code, String str, in Bundle params) = 17; + void getCastService(IGmsCallbacks callback, int code, String str, IBinder binder, in Bundle params) = 18; + void getDriveService(IGmsCallbacks callback, int code, String str1, in String[] args, String str2, in Bundle params) = 19; + void getLightweightAppDataSearchService(IGmsCallbacks callback, int code, String str) = 20; + void getSearchAdministrationService(IGmsCallbacks callback, int code, String str) = 21; + void getAutoBackupService(IGmsCallbacks callback, int code, String str, in Bundle params) = 22; + void getAddressService(IGmsCallbacks callback, int code, String str) = 23; + + void getService(IGmsCallbacks callback, in GetServiceRequest request) = 45; + void validateAccount(IGmsCallbacks callback, in ValidateAccountRequest request) = 46; } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl new file mode 100644 index 00000000..cef6ad7e --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.common.internal; + +parcelable ValidateAccountRequest; diff --git a/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java b/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java new file mode 100644 index 00000000..ecaa97ff --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java @@ -0,0 +1,63 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.common.internal; + +import android.accounts.Account; +import android.os.Bundle; +import android.os.IBinder; + +import com.google.android.gms.common.api.Scope; + +import org.microg.gms.common.Constants; +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class GetServiceRequest extends AutoSafeParcelable { + @SafeParceled(1) + private final int versionCode = 2; + + @SafeParceled(2) + public final int serviceId; + + @SafeParceled(3) + public int gmsVersion = Constants.MAX_REFERENCE_VERSION; + + @SafeParceled(4) + public String packageName; + + @SafeParceled(5) + public IBinder accountAccessor; + + @SafeParceled(6) + public Scope[] scopes; + + @SafeParceled(7) + public Bundle extras; + + @SafeParceled(8) + public Account account; + + private GetServiceRequest() { + serviceId = -1; + } + + public GetServiceRequest(int serviceId) { + this.serviceId = serviceId; + } + + public static Creator CREATOR = new AutoCreator<>(GetServiceRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java b/play-services-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java new file mode 100644 index 00000000..0c93abba --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.common.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class ValidateAccountRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator<>(ValidateAccountRequest.class); +} From a0e9645c796dfd8af38f8cdedf21f5a299c9c5b0 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Tue, 7 Apr 2015 23:56:09 +0200 Subject: [PATCH 042/170] Add info about services --- .../java/org/microg/gms/common/Constants.java | 2 - .../java/org/microg/gms/common/Services.java | 310 ++++++++++++++++++ 2 files changed, 310 insertions(+), 2 deletions(-) create mode 100644 play-services-api/src/main/java/org/microg/gms/common/Services.java diff --git a/play-services-api/src/main/java/org/microg/gms/common/Constants.java b/play-services-api/src/main/java/org/microg/gms/common/Constants.java index bc1642ba..097d36ef 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Constants.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Constants.java @@ -6,8 +6,6 @@ public class Constants { * Does not necessarily mean anything. */ public static final int MAX_REFERENCE_VERSION = 6599436; - public static final String ACTION_GMS_LOCATION_MANAGER_SERVICE_START = "com.google.android.location.internal.GoogleLocationManagerService.START"; - public static final String ACTION_GMS_PEOPLE_SERVICE_START = "com.google.android.gms.people.service.START"; public static final String KEY_MOCK_LOCATION = "mockLocation"; public static final String DEFAULT_ACCOUNT = "<>"; public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; diff --git a/play-services-api/src/main/java/org/microg/gms/common/Services.java b/play-services-api/src/main/java/org/microg/gms/common/Services.java new file mode 100644 index 00000000..9d717e7d --- /dev/null +++ b/play-services-api/src/main/java/org/microg/gms/common/Services.java @@ -0,0 +1,310 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.microg.gms.common; + +public final class Services { + public static final class GAMES { + public static final int SERVICE_ID = 1; + public static final String ACTION = "com.google.android.gms.games.service.START"; + } + + public static final class PLUS { + public static final int SERVICE_ID = 2; + public static final String ACTION = "com.google.android.gms.plus.service.START"; + public static final String ACTION_INTERNAL = "com.google.android.gms.plus.service.internal.START"; + } + + public static final class PANORAMA { + public static final int SERVICE_ID = 3; + public static final String ACTION = "com.google.android.gms.panorama.service.START"; + } + + public static final class WALLET { + public static final int SERVICE_ID = 4; + public static final String ACTION = "com.google.android.gms.wallet.service.BIND"; + } + + public static final class PEOPLE { + public static final int SERVICE_ID = 5; + public static final String ACTION = "com.google.android.gms.people.service.START"; + } + + @Deprecated + public static final class LOCATION { + public static final int SERVICE_ID = 5; + } + + public static final class APPSTATE { + public static final int SERVICE_ID = 7; + public static final String ACTION = "com.google.android.gms.appstate.service.START"; + } + + public static final class ADREQUEST { + public static final int SERVICE_ID = 8; + public static final String ACTION = "com.google.android.gms.ads.service.START"; + } + + public static final class ACCOUNT { + public static final int SERVICE_ID = 9; + public static final String ACTION = "com.google.android.gms.accounts.ACCOUNT_SERVICE"; + } + + public static final class CAST { + public static final int SERVICE_ID = 10; + public static final String ACTION = "com.google.android.gms.cast.service.BIND_CAST_DEVICE_CONTROLLER_SERVICE"; + } + + public static final class DRIVE { + public static final int SERVICE_ID = 11; + public static final String ACTION = "com.google.android.gms.drive.ApiService.START"; + } + + public static final class ADDRESS { + public static final int SERVICE_ID = 12; + public static final String ACTION = "com.google.android.gms.identity.service.BIND"; + } + + public static final class CAR { + public static final int SERVICE_ID = 13; + public static final String ACTION = "com.google.android.gms.car.service.START"; + } + + public static final class WEARABLE { + public static final int SERVICE_ID = 14; + public static final String ACTION = "com.google.android.gms.wearable.BIND"; + } + + public static final class AUTH { + public static final int SERVICE_ID = 16; + public static final String ACTION = "com.google.android.gms.auth.service.START"; + } + + public static final class FITNESS { + public static final int SERVICE_ID = 17; + public static final String ACTION = "com.google.android.gms.fitness.GoogleFitnessService.START"; + } + + public static final class REMINDERS { + public static final int SERVICE_ID = 18; + public static final String ACTION = "com.google.android.gms.reminders.service.START"; + } + + public static final class LIGHTWEIGHT_INDEX { + public static final int SERVICE_ID = 19; + public static final String ACTION = "com.google.android.gms.icing.LIGHTWEIGHT_INDEX_SERVICE"; + } + + public static final class DEVICE_CONNECTION { + public static final int SERVICE_ID = 20; + public static final String ACTION = "com.google.android.gms.deviceconnection.service.START"; + } + + public static final class INDEX { + public static final int SERVICE_ID = 21; + public static final String ACTION = "com.google.android.gms.icing.INDEX_SERVICE"; + } + + public static final class LOCATION_REPORTING { + public static final int SERVICE_ID = 22; + public static final String ACTION = "com.google.android.gms.location.reporting.service.START"; + } + + public static final class LOCATION_MANAGER { + public static final int SERVICE_ID = 23; + public static final String ACTION = "com.google.android.location.internal.GoogleLocationManagerService.START"; + } + + public static final class DROIDGUARD { + public static final int SERVICE_ID = 25; + public static final String ACTION = "com.google.android.gms.droidguard.service.START"; + } + + public static final class LOCKBOX { + public static final int SERVICE_ID = 26; + public static final String ACTION = "com.google.android.gms.lockbox.service.START"; + } + + public static final class CAST_MIRRORING { + public static final int SERVICE_ID = 27; + public static final String ACTION = "com.google.android.gms.cast_mirroring.service.START"; + } + + @Deprecated + public static final class NETWORK_QUALITY { + public static final int SERVICE_ID = 28; + public static final String ACTION = "com.google.android.gms.mdm.services.START"; + } + + public static final class FEEDBACK { + public static final int SERVICE_ID = 29; + public static final String ACTION = "com.google.android.gms.feedback.internal.IFeedbackService"; + } + + public static final class PHOTO_AUTO_BACKUP { + public static final int SERVICE_ID = 31; + public static final String ACTION = "com.google.android.gms.photos.autobackup.service.START"; + } + + public static final class UDC { + public static final int SERVICE_ID = 35; + public static final String ACTION = "com.google.android.gms.udc.service.START"; + } + + public static final class DEVICE_MANAGER { + public static final int SERVICE_ID = 37; + public static final String ACTION = "com.google.android.gms.mdm.services.DeviceManagerApiService.START"; + } + + public static final class PSEUDONYMOUS_ID { + public static final int SERVICE_ID = 38; + public static final String ACTION = "com.google.android.gms.pseudonymous.service.START"; + } + + public static final class COMMON { + public static final int SERVICE_ID = 39; + public static final String ACTION = "com.google.android.gms.common.service.START"; + } + + public static final class CLEARCUT_LOGGER { + public static final int SERVICE_ID = 40; + public static final String ACTION = "com.google.android.gms.clearcut.service.START"; + } + + public static final class USAGE_REPORTING { + public static final int SERVICE_ID = 41; + public static final String ACTION = "com.google.android.gms.usagereporting.service.START"; + } + + public static final class KIDS { + public static final int SERVICE_ID = 42; + public static final String ACTION = "com.google.android.gms.kids.service.START"; + } + + public static final class DOWNLOAD { + public static final int SERVICE_ID = 43; + public static final String ACTION = "com.google.android.gms.common.download.START"; + } + + public static final class SIGN_IN { + public static final int SERVICE_ID = 44; + public static final String ACTION = "com.google.android.gms.signin.service.START"; + } + + public static final class SAFETY_NET_CLIENT { + public static final int SERVICE_ID = 45; + public static final String ACTION = "com.google.android.gms.safetynet.service.START"; + } + + public static final class GSERVICES { + public static final int SERVICE_ID = 46; + public static final String ACTION = "com.google.android.gms.ads.gservice.START"; + } + + public static final class CONTEXT_MANAGER { + public static final int SERVICE_ID = 47; + public static final String ACTION = "com.google.android.contextmanager.service.ContextManagerService.START"; + } + + public static final class AUDIO_MODEM { + public static final int SERVICE_ID = 48; + public static final String ACTION = "com.google.android.gms.audiomodem.service.AudioModemService.START"; + } + + public static final class NEARBY_SHARING { + public static final int SERVICE_ID = 49; + public static final String ACTION = "com.google.android.gms.nearby.sharing.service.NearbySharingService.START"; + } + + public static final class LIGHTWEIGHT_NETWORK_QUALITY { + public static final int SERVICE_ID = 51; + public static final String ACTION = "com.google.android.gms.herrevad.services.LightweightNetworkQualityAndroidService.START"; + } + + public static final class PHENOTYPE { + public static final int SERVICE_ID = 51; + public static final String ACTION = "com.google.android.gms.phenotype.service.START"; + } + + public static final class VOICE_UNLOCK { + public static final int SERVICE_ID = 52; + public static final String ACTION = "com.google.android.gms.speech.service.START"; + } + + public static final class NEARBY_CONNECTIONS { + public static final int SERVICE_ID = 54; + public static final String ACTION = "com.google.android.gms.nearby.connection.service.START"; + } + + public static final class FITNESS_SENSORS { + public static final int SERVICE_ID = 55; + public static final String ACTION = "com.google.android.gms.fitness.SensorsApi"; + } + + public static final class FITNESS_RECORDING { + public static final int SERVICE_ID = 56; + public static final String ACTION = "com.google.android.gms.fitness.RecordingApi"; + } + + public static final class FITNESS_HISTORY { + public static final int SERVICE_ID = 57; + public static final String ACTION = "com.google.android.gms.fitness.HistoryApi"; + } + + public static final class FITNESS_SESSIONS { + public static final int SERVICE_ID = 58; + public static final String ACTION = "com.google.android.gms.fitness.SessionsApi"; + } + + /** + * BLE = Bluetooth Low Energy + */ + public static final class FITNESS_BLE { + public static final int SERVICE_ID = 59; + public static final String ACTION = "com.google.android.gms.fitness.BleApi"; + } + + public static final class FITNESS_CONFIG { + public static final int SERVICE_ID = 60; + public static final String ACTION = "com.google.android.gms.fitness.ConfigApi"; + } + + public static final class FITNESS_INTERNAL { + public static final int SERVICE_ID = 61; + public static final String ACTION = "com.google.android.gms.fitness.InternalApi"; + } + + public static final class NEARBY_MESSAGES { + public static final int SERVICE_ID = 62; + public static final String ACTION = "com.google.android.gms.nearby.messages.service.NearbyMessagesService.START"; + } + + public static final class HELP { + public static final int SERVICE_ID = 63; + public static final String ACTION = "com.google.android.gms.googlehelp.service.GoogleHelpService.START"; + } + + public static final class CONFIG { + public static final int SERVICE_ID = 64; + public static final String ACTION = "com.google.android.gms.config.START"; + } + + public static final class CREDENTIALS { + public static final int SERVICE_ID = 68; + public static final String ACTION = "com.google.android.gms.auth.api.credentials.service.START"; + } + +} From a181a0f3b98c682d9d1e0b522c5ada9e749433f3 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Wed, 8 Apr 2015 02:48:25 +0200 Subject: [PATCH 043/170] Add some Logging APIs, fix services list --- .../common/internal/IGmsServiceBroker.aidl | 12 +-- .../gms/playlog/internal/IPlayLogService.aidl | 4 + .../gms/playlog/internal/LogEvent.aidl | 3 + .../playlog/internal/PlayLoggerContext.aidl | 3 + .../common/internal/GetServiceRequest.java | 23 +++++- .../gms/maps/model/TileOverlayOptions.java | 3 +- .../gms/playlog/internal/LogEvent.java | 55 ++++++++++++++ .../playlog/internal/PlayLoggerContext.java | 75 +++++++++++++++++++ .../java/org/microg/gms/common/Constants.java | 2 +- .../java/org/microg/gms/common/Services.java | 48 +++++++++++- 10 files changed, 216 insertions(+), 12 deletions(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/LogEvent.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/PlayLoggerContext.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl index 2074e4aa..9649150d 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl @@ -7,16 +7,16 @@ import com.google.android.gms.common.internal.GetServiceRequest; import com.google.android.gms.common.internal.ValidateAccountRequest; interface IGmsServiceBroker { - void getPlusService(IGmsCallbacks callback, int code, String str1, String str2, in String[] paramArrayOfString, String str3, in Bundle params) = 0; - void getPanoramaService(IGmsCallbacks callback, int code, String str, in Bundle params) = 1; - void getAppDataSearchService(IGmsCallbacks callback, int code, String str) = 2; + void getPlusService(IGmsCallbacks callback, int code, String packageName, String authPackage, in String[] scopes, String accountName, in Bundle params) = 0; + void getPanoramaService(IGmsCallbacks callback, int code, String packageName, in Bundle params) = 1; + void getAppDataSearchService(IGmsCallbacks callback, int code, String packageName) = 2; void getWalletService(IGmsCallbacks callback, int code) = 3; void getPeopleService(IGmsCallbacks callback, int code, String str, in Bundle params) = 4; void getReportingService(IGmsCallbacks callback, int code, String str, in Bundle params) = 5; void getLocationService(IGmsCallbacks callback, int code, String str, in Bundle params) = 6; void getGoogleLocationManagerService(IGmsCallbacks callback, int code, String str, in Bundle params) = 7; - void getGamesService(IGmsCallbacks callback, int code, String str1, String str2, in String[] args, String str3, IBinder binder, String str4, in Bundle params) = 8; - void getAppStateService(IGmsCallbacks callback, int code, String str1, String str2, in String[] args) = 9; + void getGamesService(IGmsCallbacks callback, int code, String packageName, String accountName, in String[] scopes, String gamePackageName, IBinder popupWindowToken, String desiredLocale, in Bundle params) = 8; + void getAppStateService(IGmsCallbacks callback, int code, String packageName, String accountName, in String[] scopes) = 9; void getPlayLogService(IGmsCallbacks callback, int code, String str, in Bundle params) = 10; void getAdMobService(IGmsCallbacks callback, int code, String str, in Bundle params) = 11; void getDroidGuardService(IGmsCallbacks callback, int code, String str, in Bundle params) = 12; @@ -32,6 +32,8 @@ interface IGmsServiceBroker { void getAutoBackupService(IGmsCallbacks callback, int code, String str, in Bundle params) = 22; void getAddressService(IGmsCallbacks callback, int code, String str) = 23; + void getWalletServiceWithPackageName(IGmsCallbacks callback, int code, String packageName) = 41; + void getService(IGmsCallbacks callback, in GetServiceRequest request) = 45; void validateAccount(IGmsCallbacks callback, in ValidateAccountRequest request) = 46; } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/IPlayLogService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/IPlayLogService.aidl index 38e620ea..521df957 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/IPlayLogService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/IPlayLogService.aidl @@ -1,4 +1,8 @@ package com.google.android.gms.playlog.internal; +import com.google.android.gms.playlog.internal.LogEvent; +import com.google.android.gms.playlog.internal.PlayLoggerContext; + interface IPlayLogService { + void event(String packageName, in PlayLoggerContext context, in LogEvent event) = 1; } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/LogEvent.aidl b/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/LogEvent.aidl new file mode 100644 index 00000000..6e7bed53 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/LogEvent.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.playlog.internal; + +parcelable LogEvent; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/PlayLoggerContext.aidl b/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/PlayLoggerContext.aidl new file mode 100644 index 00000000..9cc0e0e4 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/PlayLoggerContext.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.playlog.internal; + +parcelable PlayLoggerContext; diff --git a/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java b/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java index ecaa97ff..29660700 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java @@ -23,18 +23,21 @@ import android.os.IBinder; import com.google.android.gms.common.api.Scope; import org.microg.gms.common.Constants; +import org.microg.gms.common.Services; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; +import java.util.Arrays; + public class GetServiceRequest extends AutoSafeParcelable { @SafeParceled(1) - private final int versionCode = 2; + private final int versionCode; @SafeParceled(2) public final int serviceId; @SafeParceled(3) - public int gmsVersion = Constants.MAX_REFERENCE_VERSION; + public int gmsVersion; @SafeParceled(4) public String packageName; @@ -52,11 +55,27 @@ public class GetServiceRequest extends AutoSafeParcelable { public Account account; private GetServiceRequest() { + versionCode = 2; serviceId = -1; + gmsVersion = Constants.MAX_REFERENCE_VERSION; } public GetServiceRequest(int serviceId) { + this.versionCode = 2; this.serviceId = serviceId; + this.gmsVersion = Constants.MAX_REFERENCE_VERSION; + } + + @Override + public String toString() { + return "GetServiceRequest{" + + "serviceId=" + Services.nameFromServiceId(serviceId) + + ", gmsVersion=" + gmsVersion + + ", packageName='" + packageName + '\'' + + (scopes == null || scopes.length == 0 ? "" : (", scopes=" + Arrays.toString(scopes))) + + (extras == null ? "" : (", extras=" + extras)) + + (account == null ? "" : (", account=" + account)) + + '}'; } public static Creator CREATOR = new AutoCreator<>(GetServiceRequest.class); diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java index 85ab38f0..7f2df331 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java @@ -31,7 +31,7 @@ import org.microg.safeparcel.SafeParceled; public class TileOverlayOptions extends AutoSafeParcelable { @SafeParceled(1) - private final int versionCode = 1; + private final int versionCode; /** * This is a IBinder to the {@link #tileProvider}, built using {@link ITileProviderDelegate}. */ @@ -49,6 +49,7 @@ public class TileOverlayOptions extends AutoSafeParcelable { * Creates a new set of tile overlay options. */ public TileOverlayOptions() { + versionCode = 1; } /** diff --git a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java new file mode 100644 index 00000000..3f2469f9 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java @@ -0,0 +1,55 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.playlog.internal; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.Date; + +public class LogEvent extends AutoSafeParcelable { + + @SafeParceled(1) + public final int versionCode; + + @SafeParceled(2) + public final long eventTime; + + @SafeParceled(3) + public final String tag; + + @SafeParceled(4) + public final byte[] data; + + private LogEvent() { + versionCode = 1; + eventTime = -1; + tag = null; + data = null; + } + + @Override + public String toString() { + return "LogEvent{" + + "eventTime=" + new Date(eventTime) + + ", tag='" + tag + '\'' + + ", data='" + new String(data) + '\'' + + '}'; + } + + public static Creator CREATOR = new AutoCreator<>(LogEvent.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java new file mode 100644 index 00000000..3dcd4f92 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java @@ -0,0 +1,75 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.playlog.internal; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class PlayLoggerContext extends AutoSafeParcelable { + + @SafeParceled(1) + public final int versionCode; + + @SafeParceled(2) + public final String packageName; + + @SafeParceled(4) + public final int logSource; + + @SafeParceled(5) + public final String uploadAccount; + + @SafeParceled(6) + public final int loggingId; + + @SafeParceled(7) + public final boolean logAndroidId; + + @SafeParceled(8) + public final String logSourceName; + + private PlayLoggerContext() { + this.versionCode = 1; + packageName = uploadAccount = logSourceName = null; + logSource = loggingId = -1; + logAndroidId = false; + } + + public PlayLoggerContext(String packageName, int logSource, String uploadAccount, int loggingId, String logSourceName) { + this.versionCode = 1; + this.packageName = packageName; + this.logSource = logSource; + this.uploadAccount = uploadAccount; + this.loggingId = loggingId; + this.logSourceName = logSourceName; + this.logAndroidId = true; + } + + @Override + public String toString() { + return "PlayLoggerContext{" + + "packageName='" + packageName + '\'' + + ", logSource=" + logSource + + ", uploadAccount='" + uploadAccount + '\'' + + ", loggingId=" + loggingId + + ", logAndroidId=" + logAndroidId + + ", logSourceName='" + logSourceName + '\'' + + '}'; + } + + public static Creator CREATOR = new AutoCreator<>(PlayLoggerContext.class); +} diff --git a/play-services-api/src/main/java/org/microg/gms/common/Constants.java b/play-services-api/src/main/java/org/microg/gms/common/Constants.java index 097d36ef..7e53ce71 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Constants.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Constants.java @@ -5,7 +5,7 @@ public class Constants { * This is the highest version that was looked at during development. * Does not necessarily mean anything. */ - public static final int MAX_REFERENCE_VERSION = 6599436; + public static final int MAX_REFERENCE_VERSION = 7099448; public static final String KEY_MOCK_LOCATION = "mockLocation"; public static final String DEFAULT_ACCOUNT = "<>"; public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; diff --git a/play-services-api/src/main/java/org/microg/gms/common/Services.java b/play-services-api/src/main/java/org/microg/gms/common/Services.java index 9d717e7d..f4a73ea6 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Services.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Services.java @@ -16,6 +16,8 @@ package org.microg.gms.common; +import java.lang.reflect.Field; + public final class Services { public static final class GAMES { public static final int SERVICE_ID = 1; @@ -43,9 +45,8 @@ public final class Services { public static final String ACTION = "com.google.android.gms.people.service.START"; } - @Deprecated public static final class LOCATION { - public static final int SERVICE_ID = 5; + public static final int SERVICE_ID = 6; } public static final class APPSTATE { @@ -128,6 +129,10 @@ public final class Services { public static final String ACTION = "com.google.android.location.internal.GoogleLocationManagerService.START"; } + public static final class PLAY_LOG { + public static final int SERVICE_ID = 24; + } + public static final class DROIDGUARD { public static final int SERVICE_ID = 25; public static final String ACTION = "com.google.android.gms.droidguard.service.START"; @@ -143,7 +148,6 @@ public final class Services { public static final String ACTION = "com.google.android.gms.cast_mirroring.service.START"; } - @Deprecated public static final class NETWORK_QUALITY { public static final int SERVICE_ID = 28; public static final String ACTION = "com.google.android.gms.mdm.services.START"; @@ -154,16 +158,32 @@ public final class Services { public static final String ACTION = "com.google.android.gms.feedback.internal.IFeedbackService"; } + public static final class SEARCH_ADMINISTRATION { + public static final int SERVICE_ID = 30; + } + public static final class PHOTO_AUTO_BACKUP { public static final int SERVICE_ID = 31; public static final String ACTION = "com.google.android.gms.photos.autobackup.service.START"; } + public static final class SEARCH_QUERIES { + public static final int SERVICE_ID = 32; + } + + public static final class SEARCH_GLOBAL { + public static final int SERVICE_ID = 33; + } + public static final class UDC { public static final int SERVICE_ID = 35; public static final String ACTION = "com.google.android.gms.udc.service.START"; } + public static final class SEARCH_CORPORA { + public static final int SERVICE_ID = 36; + } + public static final class DEVICE_MANAGER { public static final int SERVICE_ID = 37; public static final String ACTION = "com.google.android.gms.mdm.services.DeviceManagerApiService.START"; @@ -302,9 +322,31 @@ public final class Services { public static final String ACTION = "com.google.android.gms.config.START"; } + public static final class GEODATA { + public static final int SERVICE_ID = 65; + } + + public static final class SEARCH_IME { + public static final int SERVICE_ID = 66; + } + + public static final class PLACE_DETECTION { + public static final int SERVICE_ID = 67; + } + public static final class CREDENTIALS { public static final int SERVICE_ID = 68; public static final String ACTION = "com.google.android.gms.auth.api.credentials.service.START"; } + public static String nameFromServiceId(int serviceId) { + for (Class cls : Services.class.getDeclaredClasses()) { + try { + Field serviceIdField = cls.getDeclaredField("SERVICE_ID"); + if ((Integer) serviceIdField.get(null) == serviceId) return cls.getSimpleName(); + } catch (Exception e) { + } + } + return "UNKNOWN(" + serviceId + ")"; + } } From 562e23177598d94c47318394d0224d6118fcb05f Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 10 Apr 2015 20:57:58 +0200 Subject: [PATCH 044/170] Update API --- .../google/android/gms/checkin/internal/ICheckinService.aidl | 5 +++++ .../com/google/android/gms/playlog/internal/LogEvent.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/checkin/internal/ICheckinService.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/checkin/internal/ICheckinService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/checkin/internal/ICheckinService.aidl new file mode 100644 index 00000000..6ac61289 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/checkin/internal/ICheckinService.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.checkin.internal; + +interface ICheckinService { + String getDeviceDataVersionInfo(); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java index 3f2469f9..94f066b9 100644 --- a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java +++ b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java @@ -47,7 +47,7 @@ public class LogEvent extends AutoSafeParcelable { return "LogEvent{" + "eventTime=" + new Date(eventTime) + ", tag='" + tag + '\'' + - ", data='" + new String(data) + '\'' + + ", data=" + (data == null ? "null" : ('\'' + new String(data) + '\'')) + '}'; } From 8928053170b6a819befa297f264e5ba7e2f9342b Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sat, 11 Apr 2015 13:46:48 +0200 Subject: [PATCH 045/170] Update safe-parcel, add new features to icing --- extern/SafeParcel | 2 +- .../android/gms/appdatasearch/PIMEUpdate.aidl | 3 ++ .../gms/appdatasearch/PIMEUpdateResponse.aidl | 3 ++ .../RequestIndexingSpecification.aidl | 3 ++ .../internal/IAppDataSearch.aidl | 4 ++ .../ISearchAdministrationService.aidl | 5 +++ .../internal/ISearchCorporaService.aidl | 5 +++ .../android/gms/appdatasearch/PIMEUpdate.java | 24 +++++++++++ .../gms/appdatasearch/PIMEUpdateResponse.java | 41 +++++++++++++++++++ .../RequestIndexingSpecification.java | 28 +++++++++++++ .../java/org/microg/gms/common/Services.java | 1 + 11 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/PIMEUpdate.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/PIMEUpdateResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/RequestIndexingSpecification.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/administration/internal/ISearchAdministrationService.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/corpora/internal/ISearchCorporaService.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdate.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/appdatasearch/RequestIndexingSpecification.java diff --git a/extern/SafeParcel b/extern/SafeParcel index b3837016..26d9c429 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit b383701659ca342ee08ff2b2f15b5611daaac2f4 +Subproject commit 26d9c429770c37ad3e087d4469c4d4b3042e4f25 diff --git a/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/PIMEUpdate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/PIMEUpdate.aidl new file mode 100644 index 00000000..c7f5e432 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/PIMEUpdate.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.appdatasearch; + +parcelable PIMEUpdate; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/PIMEUpdateResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/PIMEUpdateResponse.aidl new file mode 100644 index 00000000..0ae6e4bc --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/PIMEUpdateResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.appdatasearch; + +parcelable PIMEUpdateResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/RequestIndexingSpecification.aidl b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/RequestIndexingSpecification.aidl new file mode 100644 index 00000000..a0a785c1 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/RequestIndexingSpecification.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.appdatasearch; + +parcelable RequestIndexingSpecification; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl index 37a6a905..ebc204c7 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl @@ -1,10 +1,14 @@ package com.google.android.gms.appdatasearch.internal; import com.google.android.gms.appdatasearch.CorpusStatus; +import com.google.android.gms.appdatasearch.PIMEUpdateResponse; +import com.google.android.gms.appdatasearch.RequestIndexingSpecification; import com.google.android.gms.appdatasearch.SuggestionResults; import com.google.android.gms.appdatasearch.SuggestSpecification; interface IAppDataSearch { SuggestionResults getSuggestions(String var1, String packageName, in String[] accounts, int maxNum, in SuggestSpecification specs) = 1; + boolean requestIndexing(String packageName, String accountName, long l, in RequestIndexingSpecification specs) = 3; CorpusStatus getStatus(String packageName, String accountName) = 4; + PIMEUpdateResponse requestPIMEUpdate(String s1, String s2, int i, in byte[] bs) = 34; } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/administration/internal/ISearchAdministrationService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/administration/internal/ISearchAdministrationService.aidl new file mode 100644 index 00000000..404544c2 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/administration/internal/ISearchAdministrationService.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.search.administration.internal; + +interface ISearchAdministrationService { + +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/internal/ISearchCorporaService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/internal/ISearchCorporaService.aidl new file mode 100644 index 00000000..8c54aa09 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/internal/ISearchCorporaService.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.search.corpora.internal; + +interface ISearchCorporaService { + +} diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdate.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdate.java new file mode 100644 index 00000000..c78564ba --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdate.java @@ -0,0 +1,24 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.appdatasearch; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class PIMEUpdate extends AutoSafeParcelable { + + public static final Creator CREATOR = new AutoCreator<>(PIMEUpdate.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java new file mode 100644 index 00000000..82fc2507 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java @@ -0,0 +1,41 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.appdatasearch; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class PIMEUpdateResponse extends AutoSafeParcelable { + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + private String b; + + @SafeParceled(2) + public final byte[] bytes; + + @SafeParceled(3) + public final PIMEUpdate[] updates; + + public PIMEUpdateResponse() { + this.bytes = null; + this.updates = new PIMEUpdate[0]; + } + + public static final Creator CREATOR = new AutoCreator<>(PIMEUpdateResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/RequestIndexingSpecification.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/RequestIndexingSpecification.java new file mode 100644 index 00000000..05bf1b83 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/RequestIndexingSpecification.java @@ -0,0 +1,28 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.appdatasearch; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class RequestIndexingSpecification extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode; + + public static final Creator CREATOR = new AutoCreator<>(RequestIndexingSpecification.class); +} diff --git a/play-services-api/src/main/java/org/microg/gms/common/Services.java b/play-services-api/src/main/java/org/microg/gms/common/Services.java index f4a73ea6..01a24ecf 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Services.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Services.java @@ -131,6 +131,7 @@ public final class Services { public static final class PLAY_LOG { public static final int SERVICE_ID = 24; + public static final String ACTION = "com.google.android.gms.playlog.service.START"; } public static final class DROIDGUARD { From deb757edfb0684f41ccc493b7c35a98878571a56 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 13 Apr 2015 23:52:26 +0200 Subject: [PATCH 046/170] Java 6 compat --- extern/SafeParcel | 2 +- play-services-api/build.gradle | 3 +++ .../com/google/android/gms/appdatasearch/CorpusStatus.java | 2 +- .../java/com/google/android/gms/appdatasearch/PIMEUpdate.java | 2 +- .../google/android/gms/appdatasearch/PIMEUpdateResponse.java | 2 +- .../gms/appdatasearch/RequestIndexingSpecification.java | 2 +- .../android/gms/appdatasearch/SuggestSpecification.java | 2 +- .../google/android/gms/appdatasearch/SuggestionResults.java | 2 +- .../java/com/google/android/gms/appdatasearch/UsageInfo.java | 2 +- .../java/com/google/android/gms/auth/AccountChangeEvent.java | 2 +- .../google/android/gms/auth/AccountChangeEventsRequest.java | 2 +- .../google/android/gms/auth/AccountChangeEventsResponse.java | 4 ++-- .../java/com/google/android/gms/common/api/AccountInfo.java | 2 +- .../main/java/com/google/android/gms/common/api/Scope.java | 2 +- .../main/java/com/google/android/gms/common/api/Status.java | 2 +- .../java/com/google/android/gms/common/data/DataHolder.java | 4 ++-- .../google/android/gms/common/internal/GetServiceRequest.java | 2 +- .../android/gms/common/internal/ValidateAccountRequest.java | 2 +- .../android/gms/common/server/FavaDiagnosticsEntity.java | 2 +- .../main/java/com/google/android/gms/location/Geofence.java | 2 +- .../com/google/android/gms/location/GeofencingRequest.java | 3 +-- .../java/com/google/android/gms/location/LocationRequest.java | 2 +- .../java/com/google/android/gms/location/LocationStatus.java | 2 +- .../gms/location/internal/LocationRequestInternal.java | 3 +-- .../android/gms/location/places/AutocompleteFilter.java | 3 +-- .../android/gms/location/places/NearbyAlertRequest.java | 3 +-- .../com/google/android/gms/location/places/PlaceFilter.java | 2 +- .../com/google/android/gms/location/places/PlaceReport.java | 2 +- .../com/google/android/gms/location/places/PlaceRequest.java | 2 +- .../google/android/gms/location/places/UserAddedPlace.java | 2 +- .../com/google/android/gms/location/places/UserDataType.java | 2 +- .../android/gms/location/places/internal/PlacesParams.java | 2 +- .../google/android/gms/location/reporting/ReportingState.java | 2 +- .../java/com/google/android/gms/maps/GoogleMapOptions.java | 2 +- .../com/google/android/gms/maps/model/CameraPosition.java | 2 +- .../java/com/google/android/gms/maps/model/CircleOptions.java | 2 +- .../google/android/gms/maps/model/GroundOverlayOptions.java | 4 ++-- .../main/java/com/google/android/gms/maps/model/LatLng.java | 2 +- .../java/com/google/android/gms/maps/model/LatLngBounds.java | 2 +- .../java/com/google/android/gms/maps/model/MarkerOptions.java | 2 +- .../com/google/android/gms/maps/model/PolygonOptions.java | 2 +- .../com/google/android/gms/maps/model/PolylineOptions.java | 2 +- .../src/main/java/com/google/android/gms/maps/model/Tile.java | 2 +- .../com/google/android/gms/maps/model/TileOverlayOptions.java | 2 +- .../java/com/google/android/gms/maps/model/VisibleRegion.java | 2 +- .../com/google/android/gms/people/model/AccountMetadata.java | 2 +- .../com/google/android/gms/playlog/internal/LogEvent.java | 2 +- .../android/gms/playlog/internal/PlayLoggerContext.java | 2 +- .../src/main/java/com/google/android/gms/wearable/Asset.java | 2 +- .../java/com/google/android/gms/wearable/PutDataRequest.java | 2 +- .../google/android/gms/wearable/internal/NodeParcelable.java | 2 +- 51 files changed, 56 insertions(+), 57 deletions(-) diff --git a/extern/SafeParcel b/extern/SafeParcel index 26d9c429..d7b18b06 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit 26d9c429770c37ad3e087d4469c4d4b3042e4f25 +Subproject commit d7b18b06734e4109bc3131345a26aa261d369605 diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index 1013422a..909d7a67 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -20,4 +20,7 @@ dependencies { android { compileSdkVersion 22 buildToolsVersion "22.0.0" + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_6 + } } diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java index 99a4fd6d..b90a3f59 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java @@ -38,5 +38,5 @@ public class CorpusStatus extends AutoSafeParcelable { @SafeParceled(6) public String g; - public static final Creator CREATOR = new AutoCreator<>(CorpusStatus.class); + public static final Creator CREATOR = new AutoCreator(CorpusStatus.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdate.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdate.java index c78564ba..d42634b5 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdate.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdate.java @@ -20,5 +20,5 @@ import org.microg.safeparcel.AutoSafeParcelable; public class PIMEUpdate extends AutoSafeParcelable { - public static final Creator CREATOR = new AutoCreator<>(PIMEUpdate.class); + public static final Creator CREATOR = new AutoCreator(PIMEUpdate.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java index 82fc2507..4d34120f 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java @@ -37,5 +37,5 @@ public class PIMEUpdateResponse extends AutoSafeParcelable { this.updates = new PIMEUpdate[0]; } - public static final Creator CREATOR = new AutoCreator<>(PIMEUpdateResponse.class); + public static final Creator CREATOR = new AutoCreator(PIMEUpdateResponse.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/RequestIndexingSpecification.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/RequestIndexingSpecification.java index 05bf1b83..ca32c018 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/RequestIndexingSpecification.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/RequestIndexingSpecification.java @@ -24,5 +24,5 @@ public class RequestIndexingSpecification extends AutoSafeParcelable { @SafeParceled(1000) private int versionCode; - public static final Creator CREATOR = new AutoCreator<>(RequestIndexingSpecification.class); + public static final Creator CREATOR = new AutoCreator(RequestIndexingSpecification.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java index e8433284..d45addee 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java @@ -23,5 +23,5 @@ public class SuggestSpecification extends AutoSafeParcelable { @SafeParceled(1000) private int versionCode = 2; - public static final Creator CREATOR = new AutoCreator<>(SuggestSpecification.class); + public static final Creator CREATOR = new AutoCreator(SuggestSpecification.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java index 83818551..e6f9476b 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java @@ -47,5 +47,5 @@ public class SuggestionResults extends AutoSafeParcelable { this.s2 = s2; } - public static final Creator CREATOR = new AutoCreator<>(SuggestionResults.class); + public static final Creator CREATOR = new AutoCreator(SuggestionResults.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java index 47e12395..adb7e2b3 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java @@ -20,5 +20,5 @@ import org.microg.safeparcel.AutoSafeParcelable; public class UsageInfo extends AutoSafeParcelable { - public static Creator CREATOR = new AutoCreator<>(UsageInfo.class); + public static Creator CREATOR = new AutoCreator(UsageInfo.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEvent.java b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEvent.java index cfa84122..b7b5269f 100644 --- a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEvent.java +++ b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEvent.java @@ -3,5 +3,5 @@ package com.google.android.gms.auth; import org.microg.safeparcel.AutoSafeParcelable; public class AccountChangeEvent extends AutoSafeParcelable { - public static Creator CREATOR = new AutoCreator<>(AccountChangeEvent.class); + public static Creator CREATOR = new AutoCreator(AccountChangeEvent.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java index 940301d3..1ce15b38 100644 --- a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java @@ -32,6 +32,6 @@ public class AccountChangeEventsRequest extends AutoSafeParcelable { versionCode = 1; } - public static Creator CREATOR = new AutoCreator<>(AccountChangeEventsRequest.class); + public static Creator CREATOR = new AutoCreator(AccountChangeEventsRequest.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java index a319e621..fa37e5c5 100644 --- a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java @@ -30,8 +30,8 @@ public class AccountChangeEventsResponse extends AutoSafeParcelable { public AccountChangeEventsResponse() { versionCode = 1; - events = new ArrayList<>(); + events = new ArrayList(); } - public static Creator CREATOR = new AutoCreator<>(AccountChangeEventsResponse.class); + public static Creator CREATOR = new AutoCreator(AccountChangeEventsResponse.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java b/play-services-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java index e482b9fd..ad7e899b 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java @@ -3,5 +3,5 @@ package com.google.android.gms.common.api; import org.microg.safeparcel.AutoSafeParcelable; public class AccountInfo extends AutoSafeParcelable { - public static final Creator CREATOR = new AutoCreator<>(AccountInfo.class); + public static final Creator CREATOR = new AutoCreator(AccountInfo.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java b/play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java index 47c05291..2226936b 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java @@ -47,5 +47,5 @@ public class Scope extends AutoSafeParcelable { return scopeUri; } - public static final Creator CREATOR = new AutoCreator<>(Scope.class); + public static final Creator CREATOR = new AutoCreator(Scope.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/Status.java b/play-services-api/src/main/java/com/google/android/gms/common/api/Status.java index 52e2cf7f..49b637a1 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/api/Status.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/api/Status.java @@ -79,5 +79,5 @@ public final class Status extends AutoSafeParcelable implements Result { return this; } - public static final Creator CREATOR = new AutoCreator<>(Status.class); + public static final Creator CREATOR = new AutoCreator(Status.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java b/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java index 91bfbd68..e3bc9c1d 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java @@ -83,7 +83,7 @@ public class DataHolder extends AutoSafeParcelable { } public static DataHolder fromCursor(Cursor cursor, int statusCode, Bundle metadata) { - List windows = new ArrayList<>(); + List windows = new ArrayList(); CursorWindow cursorWindow = null; int row = 0; while (cursor.moveToNext()) { @@ -142,5 +142,5 @@ public class DataHolder extends AutoSafeParcelable { '}'; } - public static final Creator CREATOR = new AutoCreator<>(DataHolder.class); + public static final Creator CREATOR = new AutoCreator(DataHolder.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java b/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java index 29660700..69641a16 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java @@ -78,5 +78,5 @@ public class GetServiceRequest extends AutoSafeParcelable { '}'; } - public static Creator CREATOR = new AutoCreator<>(GetServiceRequest.class); + public static Creator CREATOR = new AutoCreator(GetServiceRequest.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java b/play-services-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java index 0c93abba..88587e7a 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java @@ -19,5 +19,5 @@ package com.google.android.gms.common.internal; import org.microg.safeparcel.AutoSafeParcelable; public class ValidateAccountRequest extends AutoSafeParcelable { - public static Creator CREATOR = new AutoCreator<>(ValidateAccountRequest.class); + public static Creator CREATOR = new AutoCreator(ValidateAccountRequest.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java b/play-services-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java index 6183e2f8..b63d8f79 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java @@ -20,5 +20,5 @@ import org.microg.safeparcel.AutoSafeParcelable; public class FavaDiagnosticsEntity extends AutoSafeParcelable { - public static final Creator CREATOR = new AutoCreator<>(FavaDiagnosticsEntity.class); + public static final Creator CREATOR = new AutoCreator(FavaDiagnosticsEntity.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/Geofence.java b/play-services-api/src/main/java/com/google/android/gms/location/Geofence.java index c47a90d8..5b02f833 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/Geofence.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/Geofence.java @@ -20,5 +20,5 @@ import org.microg.safeparcel.AutoSafeParcelable; public class Geofence extends AutoSafeParcelable { - public static Creator CREATOR = new AutoCreator<>(Geofence.class); + public static Creator CREATOR = new AutoCreator(Geofence.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/GeofencingRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/GeofencingRequest.java index a36d29e6..73f955d8 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/GeofencingRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/GeofencingRequest.java @@ -7,6 +7,5 @@ import org.microg.safeparcel.AutoSafeParcelable; */ public class GeofencingRequest extends AutoSafeParcelable { - public static final Creator CREATOR = new AutoCreator<>( - GeofencingRequest.class); + public static final Creator CREATOR = new AutoCreator(GeofencingRequest.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java index a5369fd0..52253aad 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java @@ -412,5 +412,5 @@ public class LocationRequest extends AutoSafeParcelable { return super.toString(); } - public static final Creator CREATOR = new AutoCreator<>(LocationRequest.class); + public static final Creator CREATOR = new AutoCreator(LocationRequest.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java index e60c531f..ad578503 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java @@ -76,5 +76,5 @@ public class LocationStatus extends AutoSafeParcelable { } } - public static final Creator CREATOR = new AutoCreator<>(LocationStatus.class); + public static final Creator CREATOR = new AutoCreator(LocationStatus.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java b/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java index 3ab5568d..6bd6108e 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java @@ -7,6 +7,5 @@ import org.microg.safeparcel.AutoSafeParcelable; */ public class LocationRequestInternal extends AutoSafeParcelable { - public static final Creator CREATOR = new AutoCreator<>( - LocationRequestInternal.class); + public static final Creator CREATOR = new AutoCreator(LocationRequestInternal.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java b/play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java index 23ffa4d4..8870ca74 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java @@ -15,6 +15,5 @@ public class AutocompleteFilter extends AutoSafeParcelable { this.versionCode = 1; } - public static final Creator CREATOR = new AutoCreator<>( - AutocompleteFilter.class); + public static final Creator CREATOR = new AutoCreator(AutocompleteFilter.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java index 94c415a5..add70cce 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java @@ -7,6 +7,5 @@ import org.microg.safeparcel.AutoSafeParcelable; */ public class NearbyAlertRequest extends AutoSafeParcelable { - public static final Creator CREATOR = new AutoCreator<>( - NearbyAlertRequest.class); + public static final Creator CREATOR = new AutoCreator(NearbyAlertRequest.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceFilter.java b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceFilter.java index 2bbc41f6..57bebb51 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceFilter.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceFilter.java @@ -7,5 +7,5 @@ import org.microg.safeparcel.AutoSafeParcelable; */ public class PlaceFilter extends AutoSafeParcelable { - public static final Creator CREATOR = new AutoCreator<>(PlaceFilter.class); + public static final Creator CREATOR = new AutoCreator(PlaceFilter.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java index 38d39007..eaef07eb 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java @@ -6,5 +6,5 @@ import org.microg.safeparcel.AutoSafeParcelable; * TODO: usage */ public class PlaceReport extends AutoSafeParcelable { - public static final Creator CREATOR = new AutoCreator<>(PlaceReport.class); + public static final Creator CREATOR = new AutoCreator(PlaceReport.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceRequest.java index ad46244e..6817f7d1 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceRequest.java @@ -6,5 +6,5 @@ import org.microg.safeparcel.AutoSafeParcelable; * TODO: usage */ public class PlaceRequest extends AutoSafeParcelable { - public static final Creator CREATOR = new AutoCreator<>(PlaceRequest.class); + public static final Creator CREATOR = new AutoCreator(PlaceRequest.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java b/play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java index 534dac3e..eea28f6e 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java @@ -15,5 +15,5 @@ public class UserAddedPlace extends AutoSafeParcelable { versionCode = 1; } - public static final Creator CREATOR = new AutoCreator<>(UserAddedPlace.class); + public static final Creator CREATOR = new AutoCreator(UserAddedPlace.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/UserDataType.java b/play-services-api/src/main/java/com/google/android/gms/location/places/UserDataType.java index 7ac8579a..cb253f68 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/UserDataType.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/UserDataType.java @@ -7,5 +7,5 @@ import org.microg.safeparcel.AutoSafeParcelable; */ public class UserDataType extends AutoSafeParcelable { - public static final Creator CREATOR = new AutoCreator<>(UserDataType.class); + public static final Creator CREATOR = new AutoCreator(UserDataType.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java b/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java index ad739c40..74642be6 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java @@ -21,5 +21,5 @@ public class PlacesParams extends AutoSafeParcelable { clientPackageName = locale = accountName = gCoreClientName = null; } - public static final Creator CREATOR = new AutoCreator<>(PlacesParams.class); + public static final Creator CREATOR = new AutoCreator(PlacesParams.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java b/play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java index b99bde56..f30b7c10 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java @@ -37,5 +37,5 @@ public class ReportingState extends AutoSafeParcelable { @SafeParceled(8) public Integer deviceTag; - public static final Creator CREATOR = new AutoCreator<>(ReportingState.class); + public static final Creator CREATOR = new AutoCreator(ReportingState.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java index 19e62bba..e7521751 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java @@ -79,5 +79,5 @@ public final class GoogleMapOptions extends AutoSafeParcelable { return rotateGesturesEnabled; } - public static Creator CREATOR = new AutoCreator<>(GoogleMapOptions.class); + public static Creator CREATOR = new AutoCreator(GoogleMapOptions.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/CameraPosition.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/CameraPosition.java index 86c2b255..717a7bdf 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/CameraPosition.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/CameraPosition.java @@ -170,7 +170,7 @@ public final class CameraPosition extends AutoSafeParcelable { '}'; } - public static Creator CREATOR = new AutoCreator<>(CameraPosition.class); + public static Creator CREATOR = new AutoCreator(CameraPosition.class); /** * Builds camera position. diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/CircleOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/CircleOptions.java index 0629d6fa..4f528850 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/CircleOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/CircleOptions.java @@ -217,5 +217,5 @@ public class CircleOptions extends AutoSafeParcelable { return this; } - public static Creator CREATOR = new AutoCreator<>(CircleOptions.class); + public static Creator CREATOR = new AutoCreator(CircleOptions.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java index 191afda1..920c43a7 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java @@ -17,6 +17,7 @@ package com.google.android.gms.maps.model; import android.os.IBinder; + import com.google.android.gms.dynamic.ObjectWrapper; import org.microg.gms.common.PublicApi; @@ -336,6 +337,5 @@ public class GroundOverlayOptions extends AutoSafeParcelable { return this; } - public static Creator CREATOR = new AutoCreator<>( - GroundOverlayOptions.class); + public static Creator CREATOR = new AutoCreator(GroundOverlayOptions.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java index 356e04d6..ac434bca 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java @@ -102,5 +102,5 @@ public final class LatLng extends AutoSafeParcelable { return "lat/lng: (" + latitude + "," + longitude + ")"; } - public static Creator CREATOR = new AutoCreator<>(LatLng.class); + public static Creator CREATOR = new AutoCreator(LatLng.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java index eae9cb2d..371505f4 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java @@ -180,7 +180,7 @@ public final class LatLngBounds extends AutoSafeParcelable { '}'; } - public static Creator CREATOR = new AutoCreator<>(LatLngBounds.class); + public static Creator CREATOR = new AutoCreator(LatLngBounds.class); /** * This is a builder that is able to create a minimum bound based on a set of LatLng points. diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/MarkerOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/MarkerOptions.java index bb289362..79a49d87 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/MarkerOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/MarkerOptions.java @@ -326,5 +326,5 @@ public class MarkerOptions extends AutoSafeParcelable { return this; } - public static Creator CREATOR = new AutoCreator<>(MarkerOptions.class); + public static Creator CREATOR = new AutoCreator(MarkerOptions.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java index 0b5aaa59..252a360f 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java @@ -28,5 +28,5 @@ public class PolygonOptions extends AutoSafeParcelable { public PolygonOptions() { } - public static Creator CREATOR = new AutoCreator<>(PolygonOptions.class); + public static Creator CREATOR = new AutoCreator(PolygonOptions.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java index ce34b343..f6e30a73 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java @@ -41,5 +41,5 @@ public class PolylineOptions extends AutoSafeParcelable { public PolylineOptions() { } - public static Creator CREATOR = new AutoCreator<>(PolylineOptions.class); + public static Creator CREATOR = new AutoCreator(PolylineOptions.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/Tile.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/Tile.java index cf6f437a..aa3b5013 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/Tile.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/Tile.java @@ -51,5 +51,5 @@ public class Tile extends AutoSafeParcelable { this.data = data; } - public static Creator CREATOR = new AutoCreator<>(Tile.class); + public static Creator CREATOR = new AutoCreator(Tile.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java index 7f2df331..68fdaade 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java @@ -137,5 +137,5 @@ public class TileOverlayOptions extends AutoSafeParcelable { return this; } - public static Creator CREATOR = new AutoCreator<>(TileOverlayOptions.class); + public static Creator CREATOR = new AutoCreator(TileOverlayOptions.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/VisibleRegion.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/VisibleRegion.java index ab0e20b7..105c1089 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/VisibleRegion.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/VisibleRegion.java @@ -63,5 +63,5 @@ public class VisibleRegion extends AutoSafeParcelable { bounds); } - public static Creator CREATOR = new AutoCreator<>(VisibleRegion.class); + public static Creator CREATOR = new AutoCreator(VisibleRegion.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java b/play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java index 943aac86..f62e3eb0 100644 --- a/play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java +++ b/play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java @@ -24,5 +24,5 @@ public class AccountMetadata extends AutoSafeParcelable { @SafeParceled(1) private int versionCode = 2; - public static Creator CREATOR = new AutoCreator<>(AccountMetadata.class); + public static Creator CREATOR = new AutoCreator(AccountMetadata.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java index 94f066b9..3dc6b6ee 100644 --- a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java +++ b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java @@ -51,5 +51,5 @@ public class LogEvent extends AutoSafeParcelable { '}'; } - public static Creator CREATOR = new AutoCreator<>(LogEvent.class); + public static Creator CREATOR = new AutoCreator(LogEvent.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java index 3dcd4f92..f35bf750 100644 --- a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java +++ b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java @@ -71,5 +71,5 @@ public class PlayLoggerContext extends AutoSafeParcelable { '}'; } - public static Creator CREATOR = new AutoCreator<>(PlayLoggerContext.class); + public static Creator CREATOR = new AutoCreator(PlayLoggerContext.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java b/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java index 6967fbdd..0fa11be6 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java @@ -85,5 +85,5 @@ public class Asset extends AutoSafeParcelable { return null; } - public static final Creator CREATOR = new AutoCreator<>(Asset.class); + public static final Creator CREATOR = new AutoCreator(Asset.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java b/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java index 8d049eba..8b8503d9 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java @@ -96,5 +96,5 @@ public class PutDataRequest extends AutoSafeParcelable { return "PutDataRequest{data=" + dataItem + "}"; } - public static final Creator CREATOR = new AutoCreator<>(PutDataRequest.class); + public static final Creator CREATOR = new AutoCreator(PutDataRequest.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java index d673c1bb..6bdbce7f 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java @@ -77,5 +77,5 @@ public class NodeParcelable extends AutoSafeParcelable implements Node { return "NodeParcelable{" + id + "," + displayName + "}"; } - public static final Creator CREATOR = new AutoCreator<>(NodeParcelable.class); + public static final Creator CREATOR = new AutoCreator(NodeParcelable.class); } From 6743f1d4b1a3cf0202b9d62f2ebc5dfb385b5576 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Tue, 14 Apr 2015 23:13:02 +0200 Subject: [PATCH 047/170] Update tools to 22.0.1 --- extern/SafeParcel | 2 +- play-services-api/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extern/SafeParcel b/extern/SafeParcel index d7b18b06..2408cfd9 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit d7b18b06734e4109bc3131345a26aa261d369605 +Subproject commit 2408cfd92aae226fa9941579e9da462948f22e60 diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index 909d7a67..7fb57d54 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -19,7 +19,7 @@ dependencies { android { compileSdkVersion 22 - buildToolsVersion "22.0.0" + buildToolsVersion "22.0.1" compileOptions { sourceCompatibility JavaVersion.VERSION_1_6 } From 2edcd4d5b355ae89c7baba25f2c650daa8ca5524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20W=C3=B6rner?= Date: Thu, 30 Apr 2015 22:55:55 +0200 Subject: [PATCH 048/170] added missing import --- .../aidl/com/google/android/gms/http/IGoogleHttpService.aidl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/play-services-api/src/main/aidl/com/google/android/gms/http/IGoogleHttpService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/http/IGoogleHttpService.aidl index 1503e8d1..58ea0ba5 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/http/IGoogleHttpService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/http/IGoogleHttpService.aidl @@ -1,5 +1,7 @@ package com.google.android.gms.http; +import android.os.Bundle; + interface IGoogleHttpService { Bundle checkUrl(String url); } From 07f31a99fe1bf68d0b79cebc7cd9b8297a870ac8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20W=C3=B6rner?= Date: Thu, 30 Apr 2015 22:58:42 +0200 Subject: [PATCH 049/170] added import --- .../com/google/android/gms/people/internal/IPeopleCallbacks.aidl | 1 + 1 file changed, 1 insertion(+) diff --git a/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl index 2a7cf8db..75db9fae 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl @@ -1,6 +1,7 @@ package com.google.android.gms.people.internal; import android.os.Bundle; +import android.os.ParcelFileDescriptor; import com.google.android.gms.common.data.DataHolder; From ceb0f9f2c60285180a0c5520687439f15fa7e504 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 22 Jun 2015 23:24:05 +0200 Subject: [PATCH 050/170] Add empty AdManagerCreator --- .../aidl/com/google/android/gms/ads/AdManagerCreator.aidl | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/ads/AdManagerCreator.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/ads/AdManagerCreator.aidl b/play-services-api/src/main/aidl/com/google/android/gms/ads/AdManagerCreator.aidl new file mode 100644 index 00000000..7e07dd01 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/ads/AdManagerCreator.aidl @@ -0,0 +1,4 @@ +package com.google.android.gms.ads; + +interface AdManagerCreator { +} \ No newline at end of file From 37e3b4dc398cb349e9637471d6df09db9c8910c8 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 22 Jun 2015 23:24:18 +0200 Subject: [PATCH 051/170] Update IAuthManagerService --- .../aidl/com/google/android/auth/IAuthManagerService.aidl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/play-services-api/src/main/aidl/com/google/android/auth/IAuthManagerService.aidl b/play-services-api/src/main/aidl/com/google/android/auth/IAuthManagerService.aidl index ac46a323..75a949b8 100644 --- a/play-services-api/src/main/aidl/com/google/android/auth/IAuthManagerService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/auth/IAuthManagerService.aidl @@ -1,12 +1,14 @@ package com.google.android.auth; import android.os.Bundle; +import android.accounts.Account; import com.google.android.gms.auth.AccountChangeEventsResponse; import com.google.android.gms.auth.AccountChangeEventsRequest; interface IAuthManagerService { - Bundle getToken(String accountName, String scope, in Bundle extras); - Bundle clearToken(String token, in Bundle extras); - AccountChangeEventsResponse getChangeEvents(in AccountChangeEventsRequest request); + Bundle getToken(String accountName, String scope, in Bundle extras) = 0; + Bundle clearToken(String token, in Bundle extras) = 1; + AccountChangeEventsResponse getChangeEvents(in AccountChangeEventsRequest request) = 2; + Bundle getTokenWithAccount(in Account account, String scope, in Bundle extras) = 4; } From d3c11f1e82949e364c3c36cdb9e2e5071cf42ab4 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Tue, 23 Jun 2015 00:19:41 +0200 Subject: [PATCH 052/170] Add PeopleServce.loadAutocompleteList --- .../com/google/android/gms/people/internal/IPeopleService.aidl | 1 + 1 file changed, 1 insertion(+) diff --git a/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl index e6857c0c..62ae1478 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl @@ -40,4 +40,5 @@ interface IPeopleService { void loadOwners(IPeopleCallbacks callbacks, boolean var2, boolean var3, String account, String var5, int sortOrder) = 304; void loadPeopleForAggregation(IPeopleCallbacks callbacks, String account, String var3, String filter, int var5, boolean var6, int var7, int var8, String var9, boolean var10, int var11, int var12) = 401; ICancelToken loadOwnerAvatar(IPeopleCallbacks callbacks, String account, String pageId, int size, int flags) = 504; + ICancelToken loadAutocompleteList(IPeopleCallbacks callbacks, String account, String pageId, boolean directorySearch, String var5, String query, int autocompleteType, int var8, int numberOfResults, boolean var10) = 506; } From ef5e6dc0668a8ca152aa38a78f0e91d65120d3b6 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Tue, 23 Jun 2015 19:21:32 +0200 Subject: [PATCH 053/170] Add some search APIs --- .../gms/playlog/internal/IPlayLogService.aidl | 3 +- .../search/corpora/ClearCorpusRequest.aidl | 3 + .../search/corpora/GetCorpusInfoRequest.aidl | 3 + .../corpora/GetCorpusStatusRequest.aidl | 3 + .../corpora/GetCorpusStatusResponse.aidl | 3 + .../corpora/RequestIndexingRequest.aidl | 3 + .../corpora/RequestIndexingResponse.aidl | 3 + .../internal/ISearchCorporaCallbacks.aidl | 9 +++ .../internal/ISearchCorporaService.aidl | 11 ++- .../internal/IGlobalSearchAdminService.aidl | 5 ++ .../gms/search/queries/QueryRequest.aidl | 3 + .../gms/search/queries/QueryResponse.aidl | 3 + .../internal/ISearchQueriesCallbacks.aidl | 7 ++ .../internal/ISearchQueriesService.aidl | 8 ++ .../gms/appdatasearch/QuerySpecification.java | 73 +++++++++++++++++++ .../gms/appdatasearch/SearchResults.java | 27 +++++++ .../search/corpora/ClearCorpusRequest.java | 23 ++++++ .../search/corpora/GetCorpusInfoRequest.java | 23 ++++++ .../corpora/GetCorpusStatusRequest.java | 49 +++++++++++++ .../corpora/GetCorpusStatusResponse.java | 49 +++++++++++++ .../corpora/RequestIndexingRequest.java | 54 ++++++++++++++ .../corpora/RequestIndexingResponse.java | 48 ++++++++++++ .../gms/search/queries/QueryRequest.java | 57 +++++++++++++++ .../gms/search/queries/QueryResponse.java | 49 +++++++++++++ 24 files changed, 517 insertions(+), 2 deletions(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/corpora/ClearCorpusRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusInfoRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusStatusRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusStatusResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/corpora/RequestIndexingRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/corpora/RequestIndexingResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/corpora/internal/ISearchCorporaCallbacks.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/global/internal/IGlobalSearchAdminService.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/queries/QueryRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/queries/QueryResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/queries/internal/ISearchQueriesCallbacks.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/queries/internal/ISearchQueriesService.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/appdatasearch/QuerySpecification.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/appdatasearch/SearchResults.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/corpora/ClearCorpusRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusInfoRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/queries/QueryRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/queries/QueryResponse.java diff --git a/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/IPlayLogService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/IPlayLogService.aidl index 521df957..86169b99 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/IPlayLogService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/playlog/internal/IPlayLogService.aidl @@ -4,5 +4,6 @@ import com.google.android.gms.playlog.internal.LogEvent; import com.google.android.gms.playlog.internal.PlayLoggerContext; interface IPlayLogService { - void event(String packageName, in PlayLoggerContext context, in LogEvent event) = 1; + void onEvent(String packageName, in PlayLoggerContext context, in LogEvent event) = 1; + void onMultiEvent(String packageName, in PlayLoggerContext context, in List events) = 2; } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/ClearCorpusRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/ClearCorpusRequest.aidl new file mode 100644 index 00000000..9f718934 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/ClearCorpusRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.corpora; + +parcelable ClearCorpusRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusInfoRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusInfoRequest.aidl new file mode 100644 index 00000000..11b0a4dc --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusInfoRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.corpora; + +parcelable GetCorpusInfoRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusStatusRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusStatusRequest.aidl new file mode 100644 index 00000000..b2e549d7 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusStatusRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.corpora; + +parcelable GetCorpusStatusRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusStatusResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusStatusResponse.aidl new file mode 100644 index 00000000..a837a7db --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusStatusResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.corpora; + +parcelable GetCorpusStatusResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/RequestIndexingRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/RequestIndexingRequest.aidl new file mode 100644 index 00000000..ad68ef35 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/RequestIndexingRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.corpora; + +parcelable RequestIndexingRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/RequestIndexingResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/RequestIndexingResponse.aidl new file mode 100644 index 00000000..7aaa548c --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/RequestIndexingResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.corpora; + +parcelable RequestIndexingResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/internal/ISearchCorporaCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/internal/ISearchCorporaCallbacks.aidl new file mode 100644 index 00000000..863b016f --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/internal/ISearchCorporaCallbacks.aidl @@ -0,0 +1,9 @@ +package com.google.android.gms.search.corpora.internal; + +import com.google.android.gms.search.corpora.RequestIndexingResponse; +import com.google.android.gms.search.corpora.GetCorpusStatusResponse; + +interface ISearchCorporaCallbacks { + void onRequestIndexing(in RequestIndexingResponse response) = 1; + void onGetCorpusStatus(in GetCorpusStatusResponse response) = 3; +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/internal/ISearchCorporaService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/internal/ISearchCorporaService.aidl index 8c54aa09..fe2073c0 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/internal/ISearchCorporaService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/corpora/internal/ISearchCorporaService.aidl @@ -1,5 +1,14 @@ package com.google.android.gms.search.corpora.internal; -interface ISearchCorporaService { +import com.google.android.gms.search.corpora.ClearCorpusRequest; +import com.google.android.gms.search.corpora.GetCorpusStatusRequest; +import com.google.android.gms.search.corpora.GetCorpusInfoRequest; +import com.google.android.gms.search.corpora.RequestIndexingRequest; +import com.google.android.gms.search.corpora.internal.ISearchCorporaCallbacks; +interface ISearchCorporaService { + void requestIndexing(in RequestIndexingRequest request, ISearchCorporaCallbacks callbacks) = 1; + void clearCorpus(in ClearCorpusRequest request, ISearchCorporaCallbacks callbacks) = 2; + void getCorpusStatus(in GetCorpusStatusRequest request, ISearchCorporaCallbacks callbacks) = 3; + void getCorpusInfo(in GetCorpusInfoRequest request, ISearchCorporaCallbacks callbacks) = 4; } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/global/internal/IGlobalSearchAdminService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/global/internal/IGlobalSearchAdminService.aidl new file mode 100644 index 00000000..35ed0dbe --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/global/internal/IGlobalSearchAdminService.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.search.global.internal; + +interface IGlobalSearchAdminService { + +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/queries/QueryRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/queries/QueryRequest.aidl new file mode 100644 index 00000000..1986e95d --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/queries/QueryRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.queries; + +parcelable QueryRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/queries/QueryResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/queries/QueryResponse.aidl new file mode 100644 index 00000000..97047253 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/queries/QueryResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.queries; + +parcelable QueryResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/queries/internal/ISearchQueriesCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/queries/internal/ISearchQueriesCallbacks.aidl new file mode 100644 index 00000000..8bcb891e --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/queries/internal/ISearchQueriesCallbacks.aidl @@ -0,0 +1,7 @@ +package com.google.android.gms.search.queries.internal; + +import com.google.android.gms.search.queries.QueryResponse; + +interface ISearchQueriesCallbacks { + void onQuery(in QueryResponse response) = 1; +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/queries/internal/ISearchQueriesService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/queries/internal/ISearchQueriesService.aidl new file mode 100644 index 00000000..091cdae5 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/queries/internal/ISearchQueriesService.aidl @@ -0,0 +1,8 @@ +package com.google.android.gms.search.queries.internal; + +import com.google.android.gms.search.queries.QueryRequest; +import com.google.android.gms.search.queries.internal.ISearchQueriesCallbacks; + +interface ISearchQueriesService { + void query(in QueryRequest request, ISearchQueriesCallbacks callbacks) = 1; +} diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/QuerySpecification.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/QuerySpecification.java new file mode 100644 index 00000000..9a77eb06 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/QuerySpecification.java @@ -0,0 +1,73 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.appdatasearch; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.List; + +public class QuerySpecification extends AutoSafeParcelable { + + @SafeParceled(1000) + public final int versionCode; + @SafeParceled(1) + public final boolean b; + //@SafeParceled(value = 2, subType = "TODO") + public final List c; + //@SafeParceled(value = 3, subType = "TODO") + public final List d; + @SafeParceled(4) + public final boolean e; + @SafeParceled(5) + public final int f; + @SafeParceled(6) + public final int g; + @SafeParceled(7) + public final boolean h; + @SafeParceled(8) + public final int i; + + private QuerySpecification() { + versionCode = 2; + b = false; + c = null; + d = null; + e = false; + f = 0; + g = 0; + h = false; + i = 0; + } + + @Override + public String toString() { + return "QuerySpecification{" + + "versionCode=" + versionCode + + ", b=" + b + + ", c=" + c + + ", d=" + d + + ", e=" + e + + ", f=" + f + + ", g=" + g + + ", h=" + h + + ", i=" + i + + '}'; + } + + public static final Creator CREATOR = new AutoCreator(QuerySpecification.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SearchResults.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SearchResults.java new file mode 100644 index 00000000..59c7244b --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SearchResults.java @@ -0,0 +1,27 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.appdatasearch; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class SearchResults extends AutoSafeParcelable { + @SafeParceled(1000) + public final int versionCode = 2; + + public static Creator CREATOR = new AutoCreator(SearchResults.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/ClearCorpusRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/ClearCorpusRequest.java new file mode 100644 index 00000000..9bd5d83b --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/ClearCorpusRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.corpora; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class ClearCorpusRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(ClearCorpusRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusInfoRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusInfoRequest.java new file mode 100644 index 00000000..bdc842ff --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusInfoRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.corpora; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class GetCorpusInfoRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(GetCorpusInfoRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusRequest.java new file mode 100644 index 00000000..9ccfc30a --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusRequest.java @@ -0,0 +1,49 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.corpora; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class GetCorpusStatusRequest extends AutoSafeParcelable { + + @SafeParceled(1000) + public final int versionCode; + + @SafeParceled(1) + public final String packageName; + + @SafeParceled(2) + public final String corpus; + + private GetCorpusStatusRequest() { + versionCode = 1; + packageName = null; + corpus = null; + } + + @Override + public String toString() { + return "GetCorpusStatusRequest{" + + "versionCode=" + versionCode + + ", packageName='" + packageName + '\'' + + ", corpus='" + corpus + '\'' + + '}'; + } + + public static Creator CREATOR = new AutoCreator(GetCorpusStatusRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusResponse.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusResponse.java new file mode 100644 index 00000000..79f2846a --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusResponse.java @@ -0,0 +1,49 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.corpora; + +import com.google.android.gms.appdatasearch.CorpusStatus; +import com.google.android.gms.common.api.Status; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class GetCorpusStatusResponse extends AutoSafeParcelable { + + @SafeParceled(1000) + public final int versionCode; + + @SafeParceled(1) + public final Status status; + + @SafeParceled(2) + public final CorpusStatus corpusStatus; + + private GetCorpusStatusResponse() { + versionCode = 1; + status = null; + corpusStatus = null; + } + + public GetCorpusStatusResponse(Status status, CorpusStatus corpusStatus) { + this.versionCode = 1; + this.status = status; + this.corpusStatus = corpusStatus; + } + + public static Creator CREATOR = new AutoCreator(GetCorpusStatusResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingRequest.java new file mode 100644 index 00000000..5cec94b3 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingRequest.java @@ -0,0 +1,54 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.corpora; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class RequestIndexingRequest extends AutoSafeParcelable { + + @SafeParceled(1000) + public final int versionCode; + + @SafeParceled(1) + public final String packageName; + + @SafeParceled(2) + public final String corpus; + + @SafeParceled(3) + public final long sequenceNumber; + + private RequestIndexingRequest() { + versionCode = 1; + packageName = null; + corpus = null; + sequenceNumber = 0; + } + + @Override + public String toString() { + return "RequestIndexingRequest{" + + "versionCode=" + versionCode + + ", packageName='" + packageName + '\'' + + ", corpus='" + corpus + '\'' + + ", sequenceNumber=" + sequenceNumber + + '}'; + } + + public static Creator CREATOR = new AutoCreator(RequestIndexingRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingResponse.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingResponse.java new file mode 100644 index 00000000..024db887 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingResponse.java @@ -0,0 +1,48 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.corpora; + +import com.google.android.gms.common.api.Status; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class RequestIndexingResponse extends AutoSafeParcelable { + + @SafeParceled(1000) + public final int versionCode; + + @SafeParceled(1) + public final Status status; + + @SafeParceled(2) + public final boolean scheduledIndexing; + + private RequestIndexingResponse() { + versionCode = 1; + status = null; + scheduledIndexing = false; + } + + public RequestIndexingResponse(Status status, boolean scheduledIndexing) { + this.versionCode = 1; + this.status = status; + this.scheduledIndexing = scheduledIndexing; + } + + public static Creator CREATOR = new AutoCreator(RequestIndexingResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryRequest.java new file mode 100644 index 00000000..4ac607de --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryRequest.java @@ -0,0 +1,57 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.queries; + +import com.google.android.gms.appdatasearch.QuerySpecification; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.Arrays; + +public class QueryRequest extends AutoSafeParcelable { + + @SafeParceled(1000) + public int versionCode = 1; + @SafeParceled(1) + public String searchString; + @SafeParceled(2) + public String packageName; + @SafeParceled(3) + public String[] corpora; + @SafeParceled(4) + public int d; + @SafeParceled(5) + public int e; + @SafeParceled(6) + public QuerySpecification spec; + + @Override + public String toString() { + return "QueryRequest{" + + "versionCode=" + versionCode + + ", searchString='" + searchString + '\'' + + ", packageName='" + packageName + '\'' + + ", corpora=" + Arrays.toString(corpora) + + ", d=" + d + + ", e=" + e + + ", spec=" + spec + + '}'; + } + + public static Creator CREATOR = new AutoCreator(QueryRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryResponse.java b/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryResponse.java new file mode 100644 index 00000000..a58a7be6 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryResponse.java @@ -0,0 +1,49 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.queries; + +import com.google.android.gms.appdatasearch.SearchResults; +import com.google.android.gms.common.api.Status; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class QueryResponse extends AutoSafeParcelable { + + @SafeParceled(1000) + public final int versionCode; + + @SafeParceled(1) + public final Status status; + + @SafeParceled(2) + public final SearchResults results; + + private QueryResponse() { + versionCode = 1; + status = null; + results = null; + } + + public QueryResponse(Status status, SearchResults results) { + this.versionCode = 1; + this.status = status; + this.results = results; + } + + public static Creator CREATOR = new AutoCreator(QueryResponse.class); +} From 3c2fdf86eb899bdcff7b215ad9c5f58a152246fc Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sat, 4 Jul 2015 13:11:15 +0200 Subject: [PATCH 054/170] Update build tools --- play-services-api/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index 7fb57d54..f48d82b3 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -1,9 +1,9 @@ buildscript { repositories { - mavenCentral() + jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:1.0.1' + classpath 'com.android.tools.build:gradle:1.2.3' } } From 2c847ce6e8ac1604356dc45fd672cfdd6ad4d73b Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sat, 4 Jul 2015 13:16:33 +0200 Subject: [PATCH 055/170] Update SafeParcel --- extern/SafeParcel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/SafeParcel b/extern/SafeParcel index 2408cfd9..cfbcc9db 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit 2408cfd92aae226fa9941579e9da462948f22e60 +Subproject commit cfbcc9db09d98a2d32e996f5ff9fe587aa9f21f4 From f77b09dc0c3c750f7c99d901b6e5ced5f17d9465 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 24 Jul 2015 02:52:23 +0200 Subject: [PATCH 056/170] Adding some wearable APIs and various smaller changes --- extern/SafeParcel | 2 +- .../google/android/gms/common/api/Status.aidl | 3 + .../gms/wearable/AddListenerRequest.aidl | 3 + .../gms/wearable/ConnectionConfiguration.aidl | 3 + .../gms/wearable/DeleteDataItemsResponse.aidl | 3 + .../gms/wearable/GetConfigResponse.aidl | 3 + .../gms/wearable/GetConfigsResponse.aidl | 3 + .../wearable/GetConnectedNodesResponse.aidl | 3 + .../gms/wearable/GetDataItemResponse.aidl | 3 + .../gms/wearable/GetFdForAssetResponse.aidl | 3 + .../gms/wearable/GetLocalNodeResponse.aidl | 3 + .../android/gms/wearable/PutDataRequest.aidl | 3 + .../android/gms/wearable/PutDataResponse.aidl | 3 + .../gms/wearable/RemoveListenerRequest.aidl | 3 + .../gms/wearable/SendMessageResponse.aidl | 3 + .../gms/wearable/StorageInfoResponse.aidl | 3 + .../wearable/internal/IWearableCallbacks.aidl | 29 +++++++ .../wearable/internal/IWearableListener.aidl | 5 ++ .../wearable/internal/IWearableService.aidl | 23 ++++++ .../gms/appdatasearch/CorpusStatus.java | 6 +- .../gms/appdatasearch/PIMEUpdateResponse.java | 3 +- .../gms/appdatasearch/QuerySpecification.java | 3 +- .../gms/appdatasearch/SearchResults.java | 2 +- .../appdatasearch/SuggestSpecification.java | 6 +- .../gms/appdatasearch/SuggestionResults.java | 5 +- .../gms/auth/AccountChangeEventsRequest.java | 7 +- .../gms/auth/AccountChangeEventsResponse.java | 3 +- .../google/android/gms/common/api/Scope.java | 4 +- .../google/android/gms/common/api/Status.java | 4 +- .../common/internal/GetServiceRequest.java | 4 +- .../android/gms/location/LocationRequest.java | 3 +- .../android/gms/location/LocationStatus.java | 6 +- .../location/places/AutocompleteFilter.java | 6 +- .../gms/location/places/UserAddedPlace.java | 6 +- .../places/internal/PlacesParams.java | 3 +- .../gms/maps/model/CameraPosition.java | 4 +- .../google/android/gms/maps/model/LatLng.java | 4 +- .../android/gms/maps/model/LatLngBounds.java | 4 +- .../google/android/gms/maps/model/Tile.java | 4 +- .../gms/maps/model/TileOverlayOptions.java | 4 +- .../gms/playlog/internal/LogEvent.java | 3 +- .../playlog/internal/PlayLoggerContext.java | 4 +- .../corpora/GetCorpusStatusRequest.java | 3 +- .../corpora/GetCorpusStatusResponse.java | 4 +- .../corpora/RequestIndexingRequest.java | 3 +- .../corpora/RequestIndexingResponse.java | 4 +- .../gms/search/queries/QueryResponse.java | 4 +- .../gms/wearable/AddListenerRequest.java | 45 +++++++++++ .../gms/wearable/ConnectionConfiguration.java | 51 ++++++++++++- .../gms/wearable/DeleteDataItemsResponse.java | 23 ++++++ .../gms/wearable/GetConfigResponse.java | 41 ++++++++++ .../gms/wearable/GetConfigsResponse.java | 41 ++++++++++ .../wearable/GetConnectedNodesResponse.java | 45 +++++++++++ .../gms/wearable/GetDataItemResponse.java | 43 +++++++++++ .../gms/wearable/GetFdForAssetResponse.java | 23 ++++++ .../gms/wearable/GetLocalNodeResponse.java | 43 +++++++++++ .../android/gms/wearable/PutDataRequest.java | 75 ++++++++++++++----- .../android/gms/wearable/PutDataResponse.java | 43 +++++++++++ .../gms/wearable/RemoveListenerRequest.java | 39 ++++++++++ .../gms/wearable/SendMessageResponse.java | 23 ++++++ .../gms/wearable/StorageInfoResponse.java | 23 ++++++ .../internal/DataItemAssetParcelable.java | 23 ++++++ .../wearable/internal/DataItemParcelable.java | 67 +++++++++++++++++ .../gms/wearable/internal/NodeParcelable.java | 4 +- 64 files changed, 774 insertions(+), 98 deletions(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/common/api/Status.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/AddListenerRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/ConnectionConfiguration.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/DeleteDataItemsResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigsResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConnectedNodesResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/GetDataItemResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/GetFdForAssetResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/GetLocalNodeResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/RemoveListenerRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/SendMessageResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/StorageInfoResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/AddListenerRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/DeleteDataItemsResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/GetConfigResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/GetConfigsResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/GetConnectedNodesResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/GetDataItemResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/GetFdForAssetResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/GetLocalNodeResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/PutDataResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/RemoveListenerRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/SendMessageResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/StorageInfoResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java diff --git a/extern/SafeParcel b/extern/SafeParcel index cfbcc9db..ef1568e2 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit cfbcc9db09d98a2d32e996f5ff9fe587aa9f21f4 +Subproject commit ef1568e2614f29c3f13a6b6536989aba7f1a1b5d diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/api/Status.aidl b/play-services-api/src/main/aidl/com/google/android/gms/common/api/Status.aidl new file mode 100644 index 00000000..701f99a9 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/common/api/Status.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.common.api; + +parcelable Status; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/AddListenerRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/AddListenerRequest.aidl new file mode 100644 index 00000000..bb1726dd --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/AddListenerRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable AddListenerRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/ConnectionConfiguration.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/ConnectionConfiguration.aidl new file mode 100644 index 00000000..973008ad --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/ConnectionConfiguration.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable ConnectionConfiguration; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/DeleteDataItemsResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/DeleteDataItemsResponse.aidl new file mode 100644 index 00000000..87691545 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/DeleteDataItemsResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable DeleteDataItemsResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigResponse.aidl new file mode 100644 index 00000000..611e1443 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable GetConfigResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigsResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigsResponse.aidl new file mode 100644 index 00000000..21f56aab --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigsResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable GetConfigsResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConnectedNodesResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConnectedNodesResponse.aidl new file mode 100644 index 00000000..8068de2a --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConnectedNodesResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable GetConnectedNodesResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetDataItemResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetDataItemResponse.aidl new file mode 100644 index 00000000..1c22d749 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetDataItemResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable GetDataItemResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetFdForAssetResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetFdForAssetResponse.aidl new file mode 100644 index 00000000..d12974ff --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetFdForAssetResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable GetFdForAssetResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetLocalNodeResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetLocalNodeResponse.aidl new file mode 100644 index 00000000..da6b6ae3 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetLocalNodeResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable GetLocalNodeResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataRequest.aidl new file mode 100644 index 00000000..5714b4cf --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable PutDataRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataResponse.aidl new file mode 100644 index 00000000..4f0723f5 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable PutDataResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/RemoveListenerRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/RemoveListenerRequest.aidl new file mode 100644 index 00000000..4e5f7d98 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/RemoveListenerRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable RemoveListenerRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/SendMessageResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/SendMessageResponse.aidl new file mode 100644 index 00000000..296f5439 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/SendMessageResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable SendMessageResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/StorageInfoResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/StorageInfoResponse.aidl new file mode 100644 index 00000000..66ce05ac --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/StorageInfoResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable StorageInfoResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl new file mode 100644 index 00000000..410fd09a --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl @@ -0,0 +1,29 @@ +package com.google.android.gms.wearable.internal; + +import com.google.android.gms.common.api.Status; +import com.google.android.gms.common.data.DataHolder; +import com.google.android.gms.wearable.DeleteDataItemsResponse; +import com.google.android.gms.wearable.GetConfigResponse; +import com.google.android.gms.wearable.GetConfigsResponse; +import com.google.android.gms.wearable.GetConnectedNodesResponse; +import com.google.android.gms.wearable.GetDataItemResponse; +import com.google.android.gms.wearable.GetFdForAssetResponse; +import com.google.android.gms.wearable.GetLocalNodeResponse; +import com.google.android.gms.wearable.PutDataResponse; +import com.google.android.gms.wearable.SendMessageResponse; +import com.google.android.gms.wearable.StorageInfoResponse; + +interface IWearableCallbacks { + void onGetConfigResponse(in GetConfigResponse response) = 1; + void onPutDataResponse(in PutDataResponse response) = 2; + void onGetDataItemResponse(in GetDataItemResponse response) = 3; + void onDataHolder(in DataHolder dataHolder) = 4; + void onDeleteDataItemsResponse(in DeleteDataItemsResponse response) = 5; + void onSendMessageResponse(in SendMessageResponse response) = 6; + void onGetFdForAssetResponse(in GetFdForAssetResponse response) = 7; + void onGetLocalNodeResponse(in GetLocalNodeResponse response) = 8; + void onGetConnectedNodesResponse(in GetConnectedNodesResponse response) = 9; + void onStatus(in Status status) = 10; + void onStorageInfoResponse(in StorageInfoResponse response) = 11; + void onGetConfigsResponse(in GetConfigsResponse response) = 12; +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl new file mode 100644 index 00000000..1c2eb92b --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.wearable.internal; + +interface IWearableListener { + +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl new file mode 100644 index 00000000..3bf532c0 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl @@ -0,0 +1,23 @@ +package com.google.android.gms.wearable.internal; + +import com.google.android.gms.wearable.AddListenerRequest; +import com.google.android.gms.wearable.ConnectionConfiguration; +import com.google.android.gms.wearable.PutDataRequest; +import com.google.android.gms.wearable.RemoveListenerRequest; +import com.google.android.gms.wearable.internal.IWearableCallbacks; +import com.google.android.gms.wearable.internal.IWearableService; + +interface IWearableService { + void getConfig(IWearableCallbacks callbacks) = 2; + void putData(IWearableCallbacks callbacks, in PutDataRequest request) = 5; + void getDataItem(IWearableCallbacks callbacks, in Uri uri) = 6; + void getDataItems(IWearableCallbacks callbacks) = 7; + void getLocalNode(IWearableCallbacks callbacks) = 13; + void getConnectedNodes(IWearableCallbacks callbacks) = 14; + void addListener(IWearableCallbacks callbacks, in AddListenerRequest request) = 15; + void removeListener(IWearableCallbacks callbacks, in RemoveListenerRequest request) = 16; + void putConfig(IWearableCallbacks callbacks, in ConnectionConfiguration config) = 19; + void getConfigs(IWearableCallbacks callbacks) = 21; + void getDataItemsByUri(IWearableCallbacks callbacks, in Uri uri, int i) = 39; + void deleteDataItems(IWearableCallbacks callbacks, in Uri uri) = 40; +} diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java index b90a3f59..59208421 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java @@ -24,7 +24,7 @@ import org.microg.safeparcel.SafeParceled; public class CorpusStatus extends AutoSafeParcelable { @SafeParceled(1000) - private int versionCode = 2; + private int versionCode; @SafeParceled(1) public boolean found; @SafeParceled(2) @@ -38,5 +38,9 @@ public class CorpusStatus extends AutoSafeParcelable { @SafeParceled(6) public String g; + public CorpusStatus() { + versionCode = 2; + } + public static final Creator CREATOR = new AutoCreator(CorpusStatus.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java index 4d34120f..f82c8656 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java @@ -21,7 +21,7 @@ import org.microg.safeparcel.SafeParceled; public class PIMEUpdateResponse extends AutoSafeParcelable { @SafeParceled(1000) - private int versionCode = 1; + private int versionCode; @SafeParceled(1) private String b; @@ -33,6 +33,7 @@ public class PIMEUpdateResponse extends AutoSafeParcelable { public final PIMEUpdate[] updates; public PIMEUpdateResponse() { + versionCode = 1; this.bytes = null; this.updates = new PIMEUpdate[0]; } diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/QuerySpecification.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/QuerySpecification.java index 9a77eb06..b45e8744 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/QuerySpecification.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/QuerySpecification.java @@ -24,7 +24,7 @@ import java.util.List; public class QuerySpecification extends AutoSafeParcelable { @SafeParceled(1000) - public final int versionCode; + private int versionCode = 2; @SafeParceled(1) public final boolean b; //@SafeParceled(value = 2, subType = "TODO") @@ -43,7 +43,6 @@ public class QuerySpecification extends AutoSafeParcelable { public final int i; private QuerySpecification() { - versionCode = 2; b = false; c = null; d = null; diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SearchResults.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SearchResults.java index 59c7244b..6f3619a9 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SearchResults.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SearchResults.java @@ -21,7 +21,7 @@ import org.microg.safeparcel.SafeParceled; public class SearchResults extends AutoSafeParcelable { @SafeParceled(1000) - public final int versionCode = 2; + private int versionCode = 2; public static Creator CREATOR = new AutoCreator(SearchResults.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java index d45addee..0c224091 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java @@ -21,7 +21,11 @@ import org.microg.safeparcel.SafeParceled; public class SuggestSpecification extends AutoSafeParcelable { @SafeParceled(1000) - private int versionCode = 2; + private int versionCode; + + public SuggestSpecification() { + versionCode = 2; + } public static final Creator CREATOR = new AutoCreator(SuggestSpecification.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java index e6f9476b..8b51c8aa 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java @@ -21,7 +21,7 @@ import org.microg.safeparcel.SafeParceled; public class SuggestionResults extends AutoSafeParcelable { @SafeParceled(1000) - private int versionCode = 2; + private int versionCode; @SafeParceled(1) public final String errorMessage; @@ -31,17 +31,20 @@ public class SuggestionResults extends AutoSafeParcelable { public final String[] s2; private SuggestionResults() { + versionCode = 2; errorMessage = null; s1 = s2 = null; } public SuggestionResults(String errorMessage) { + versionCode = 2; this.errorMessage = errorMessage; this.s1 = null; this.s2 = null; } public SuggestionResults(String[] s1, String[] s2) { + versionCode = 2; this.errorMessage = null; this.s1 = s1; this.s2 = s2; diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java index 1ce15b38..323bd223 100644 --- a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java @@ -21,17 +21,12 @@ import org.microg.safeparcel.SafeParceled; public class AccountChangeEventsRequest extends AutoSafeParcelable { @SafeParceled(1) - private final int versionCode; + private int versionCode = 1; @SafeParceled(2) private int i; @SafeParceled(3) private String s; - - private AccountChangeEventsRequest() { - versionCode = 1; - } - public static Creator CREATOR = new AutoCreator(AccountChangeEventsRequest.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java index fa37e5c5..bc68a42c 100644 --- a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java @@ -24,12 +24,11 @@ import java.util.List; public class AccountChangeEventsResponse extends AutoSafeParcelable { @SafeParceled(1) - private final int versionCode; + private int versionCode = 1; @SafeParceled(value = 2, subType = "com.google.android.gms.auth.AccountChangeEvent") private List events; public AccountChangeEventsResponse() { - versionCode = 1; events = new ArrayList(); } diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java b/play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java index 2226936b..5334f1e5 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java @@ -11,12 +11,11 @@ import org.microg.safeparcel.SafeParceled; @PublicApi public class Scope extends AutoSafeParcelable { @SafeParceled(1) - private final int versionCode; + private int versionCode = 1; @SafeParceled(2) private final String scopeUri; private Scope() { - versionCode = -1; scopeUri = null; } @@ -24,7 +23,6 @@ public class Scope extends AutoSafeParcelable { * Creates a new scope with the given URI. */ public Scope(String scopeUri) { - versionCode = 1; this.scopeUri = scopeUri; } diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/Status.java b/play-services-api/src/main/java/com/google/android/gms/common/api/Status.java index 49b637a1..cb918f5b 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/api/Status.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/api/Status.java @@ -19,13 +19,12 @@ public final class Status extends AutoSafeParcelable implements Result { public static final Status CANCELED = new Status(STATUS_CODE_CANCELED); public static final Status SUCCESS = new Status(0); - private final int versionCode; + private int versionCode = 1; private final int statusCode; private final String statusMessage; private final PendingIntent resolution; private Status() { - versionCode = 1; statusCode = 0; statusMessage = null; resolution = null; @@ -40,7 +39,6 @@ public final class Status extends AutoSafeParcelable implements Result { } public Status(int statusCode, String statusMessage, PendingIntent resolution) { - this.versionCode = 1; this.statusCode = statusCode; this.statusMessage = statusMessage; this.resolution = resolution; diff --git a/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java b/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java index 69641a16..80bbc234 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java @@ -31,7 +31,7 @@ import java.util.Arrays; public class GetServiceRequest extends AutoSafeParcelable { @SafeParceled(1) - private final int versionCode; + private int versionCode = 2; @SafeParceled(2) public final int serviceId; @@ -55,13 +55,11 @@ public class GetServiceRequest extends AutoSafeParcelable { public Account account; private GetServiceRequest() { - versionCode = 2; serviceId = -1; gmsVersion = Constants.MAX_REFERENCE_VERSION; } public GetServiceRequest(int serviceId) { - this.versionCode = 2; this.serviceId = serviceId; this.gmsVersion = Constants.MAX_REFERENCE_VERSION; } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java index 52253aad..b5249b3e 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java @@ -86,7 +86,7 @@ public class LocationRequest extends AutoSafeParcelable { public static final int PRIORITY_NO_POWER = 105; @SafeParceled(1000) - private final int versionCode; + private int versionCode = 1; @SafeParceled(1) private int priority; @SafeParceled(2) @@ -105,7 +105,6 @@ public class LocationRequest extends AutoSafeParcelable { private long maxWaitTime; public LocationRequest() { - this.versionCode = 1; this.priority = PRIORITY_BALANCED_POWER_ACCURACY; this.interval = 3600000; this.fastestInterval = 600000; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java index ad578503..7fcd9079 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java @@ -16,7 +16,7 @@ public class LocationStatus extends AutoSafeParcelable { public static final int STATUS_LOCATION_DISABLED_IN_SETTINGS = 7; public static final int STATUS_IN_PROGRESS = 8; @SafeParceled(1000) - private final int versionCode; + private int versionCode = 1; @SafeParceled(1) int cellStatus; @SafeParceled(2) @@ -24,10 +24,6 @@ public class LocationStatus extends AutoSafeParcelable { @SafeParceled(3) long elapsedRealtimeNanos; - private LocationStatus() { - versionCode = 1; - } - @Override public boolean equals(Object o) { if (this == o) diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java b/play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java index 8870ca74..a0d85e33 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java @@ -9,11 +9,7 @@ import org.microg.safeparcel.SafeParceled; public class AutocompleteFilter extends AutoSafeParcelable { @SafeParceled(1000) - private final int versionCode; - - private AutocompleteFilter() { - this.versionCode = 1; - } + private int versionCode = 1; public static final Creator CREATOR = new AutoCreator(AutocompleteFilter.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java b/play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java index eea28f6e..2b46a618 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java @@ -9,11 +9,7 @@ import org.microg.safeparcel.SafeParceled; public class UserAddedPlace extends AutoSafeParcelable { @SafeParceled(1000) - private final int versionCode; - - private UserAddedPlace() { - versionCode = 1; - } + private int versionCode = 1; public static final Creator CREATOR = new AutoCreator(UserAddedPlace.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java b/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java index 74642be6..fce36072 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java @@ -6,7 +6,7 @@ import org.microg.safeparcel.SafeParceled; public class PlacesParams extends AutoSafeParcelable { @SafeParceled(1000) - private final int versionCode; + private int versionCode = 1; @SafeParceled(1) public final String clientPackageName; @SafeParceled(2) @@ -17,7 +17,6 @@ public class PlacesParams extends AutoSafeParcelable { public final String gCoreClientName; private PlacesParams() { - versionCode = 1; clientPackageName = locale = accountName = gCoreClientName = null; } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/CameraPosition.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/CameraPosition.java index 717a7bdf..d2efd7e1 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/CameraPosition.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/CameraPosition.java @@ -31,7 +31,7 @@ import java.util.Arrays; @PublicApi public final class CameraPosition extends AutoSafeParcelable { @SafeParceled(1) - private final int versionCode; + private int versionCode = 1; /** * The location that the camera is pointing at. */ @@ -61,7 +61,6 @@ public final class CameraPosition extends AutoSafeParcelable { */ private CameraPosition() { target = null; - versionCode = 1; zoom = tilt = bearing = 0; } @@ -81,7 +80,6 @@ public final class CameraPosition extends AutoSafeParcelable { */ public CameraPosition(LatLng target, float zoom, float tilt, float bearing) throws NullPointerException, IllegalArgumentException { - versionCode = 1; if (target == null) { throw new NullPointerException("null camera target"); } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java index ac434bca..8bd58e9d 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java @@ -26,7 +26,7 @@ import org.microg.safeparcel.SafeParceled; @PublicApi public final class LatLng extends AutoSafeParcelable { @SafeParceled(1) - private final int versionCode; + private int versionCode = 1; /** * Latitude, in degrees. This value is in the range [-90, 90]. */ @@ -43,7 +43,6 @@ public final class LatLng extends AutoSafeParcelable { * In fact, those are replaced by their real values later using SafeParcelUtil. */ private LatLng() { - versionCode = 1; latitude = longitude = 0; } @@ -56,7 +55,6 @@ public final class LatLng extends AutoSafeParcelable { * inclusive and +180 degrees exclusive. */ public LatLng(double latitude, double longitude) { - this.versionCode = 1; this.latitude = Math.max(-90, Math.min(90, latitude)); if ((-180 <= longitude) && (longitude < 180)) { this.longitude = longitude; diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java index 371505f4..648ccf7b 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java @@ -28,7 +28,7 @@ import java.util.Arrays; @PublicApi public final class LatLngBounds extends AutoSafeParcelable { @SafeParceled(1) - private final int versionCode; + private int versionCode = 1; /** * Southwest corner of the bound. */ @@ -45,7 +45,6 @@ public final class LatLngBounds extends AutoSafeParcelable { * In fact, those are replaced by their real values later using SafeParcelUtil. */ private LatLngBounds() { - this.versionCode = 1; southwest = northeast = null; } @@ -70,7 +69,6 @@ public final class LatLngBounds extends AutoSafeParcelable { if (northeast.latitude < southwest.latitude) throw new IllegalArgumentException("latitude of northeast corner must not be" + " lower than latitude of southwest corner"); - this.versionCode = 1; this.southwest = southwest; this.northeast = northeast; } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/Tile.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/Tile.java index aa3b5013..5063bcdf 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/Tile.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/Tile.java @@ -11,7 +11,7 @@ import org.microg.safeparcel.SafeParceled; @PublicApi public class Tile extends AutoSafeParcelable { @SafeParceled(1) - private final int versionCode; + private int versionCode = 1; /** * The width of the image encoded by {@link #data} in pixels. */ @@ -30,7 +30,6 @@ public class Tile extends AutoSafeParcelable { public final byte[] data; private Tile() { - versionCode = 1; width = height = 0; data = null; } @@ -45,7 +44,6 @@ public class Tile extends AutoSafeParcelable { * {@link android.graphics.BitmapFactory#decodeByteArray(byte[], int, int)}. */ public Tile(int width, int height, byte[] data) { - this.versionCode = 1; this.width = width; this.height = height; this.data = data; diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java index 68fdaade..70c967ec 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java @@ -18,6 +18,7 @@ package com.google.android.gms.maps.model; import android.os.IBinder; import android.os.RemoteException; + import com.google.android.gms.maps.model.internal.ITileProviderDelegate; import org.microg.gms.common.PublicApi; @@ -31,7 +32,7 @@ import org.microg.safeparcel.SafeParceled; public class TileOverlayOptions extends AutoSafeParcelable { @SafeParceled(1) - private final int versionCode; + private int versionCode = 1; /** * This is a IBinder to the {@link #tileProvider}, built using {@link ITileProviderDelegate}. */ @@ -49,7 +50,6 @@ public class TileOverlayOptions extends AutoSafeParcelable { * Creates a new set of tile overlay options. */ public TileOverlayOptions() { - versionCode = 1; } /** diff --git a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java index 3dc6b6ee..96758caf 100644 --- a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java +++ b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java @@ -24,7 +24,7 @@ import java.util.Date; public class LogEvent extends AutoSafeParcelable { @SafeParceled(1) - public final int versionCode; + private int versionCode = 1; @SafeParceled(2) public final long eventTime; @@ -36,7 +36,6 @@ public class LogEvent extends AutoSafeParcelable { public final byte[] data; private LogEvent() { - versionCode = 1; eventTime = -1; tag = null; data = null; diff --git a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java index f35bf750..f524b62c 100644 --- a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java +++ b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java @@ -22,7 +22,7 @@ import org.microg.safeparcel.SafeParceled; public class PlayLoggerContext extends AutoSafeParcelable { @SafeParceled(1) - public final int versionCode; + private int versionCode = 1; @SafeParceled(2) public final String packageName; @@ -43,14 +43,12 @@ public class PlayLoggerContext extends AutoSafeParcelable { public final String logSourceName; private PlayLoggerContext() { - this.versionCode = 1; packageName = uploadAccount = logSourceName = null; logSource = loggingId = -1; logAndroidId = false; } public PlayLoggerContext(String packageName, int logSource, String uploadAccount, int loggingId, String logSourceName) { - this.versionCode = 1; this.packageName = packageName; this.logSource = logSource; this.uploadAccount = uploadAccount; diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusRequest.java index 9ccfc30a..d1a93896 100644 --- a/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusRequest.java @@ -22,7 +22,7 @@ import org.microg.safeparcel.SafeParceled; public class GetCorpusStatusRequest extends AutoSafeParcelable { @SafeParceled(1000) - public final int versionCode; + private int versionCode = 1; @SafeParceled(1) public final String packageName; @@ -31,7 +31,6 @@ public class GetCorpusStatusRequest extends AutoSafeParcelable { public final String corpus; private GetCorpusStatusRequest() { - versionCode = 1; packageName = null; corpus = null; } diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusResponse.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusResponse.java index 79f2846a..bbccbec9 100644 --- a/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusResponse.java @@ -25,7 +25,7 @@ import org.microg.safeparcel.SafeParceled; public class GetCorpusStatusResponse extends AutoSafeParcelable { @SafeParceled(1000) - public final int versionCode; + private int versionCode; @SafeParceled(1) public final Status status; @@ -34,13 +34,11 @@ public class GetCorpusStatusResponse extends AutoSafeParcelable { public final CorpusStatus corpusStatus; private GetCorpusStatusResponse() { - versionCode = 1; status = null; corpusStatus = null; } public GetCorpusStatusResponse(Status status, CorpusStatus corpusStatus) { - this.versionCode = 1; this.status = status; this.corpusStatus = corpusStatus; } diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingRequest.java index 5cec94b3..b0f2b460 100644 --- a/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingRequest.java @@ -22,7 +22,7 @@ import org.microg.safeparcel.SafeParceled; public class RequestIndexingRequest extends AutoSafeParcelable { @SafeParceled(1000) - public final int versionCode; + private int versionCode = 1; @SafeParceled(1) public final String packageName; @@ -34,7 +34,6 @@ public class RequestIndexingRequest extends AutoSafeParcelable { public final long sequenceNumber; private RequestIndexingRequest() { - versionCode = 1; packageName = null; corpus = null; sequenceNumber = 0; diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingResponse.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingResponse.java index 024db887..7490f988 100644 --- a/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingResponse.java @@ -24,7 +24,7 @@ import org.microg.safeparcel.SafeParceled; public class RequestIndexingResponse extends AutoSafeParcelable { @SafeParceled(1000) - public final int versionCode; + private int versionCode; @SafeParceled(1) public final Status status; @@ -33,13 +33,11 @@ public class RequestIndexingResponse extends AutoSafeParcelable { public final boolean scheduledIndexing; private RequestIndexingResponse() { - versionCode = 1; status = null; scheduledIndexing = false; } public RequestIndexingResponse(Status status, boolean scheduledIndexing) { - this.versionCode = 1; this.status = status; this.scheduledIndexing = scheduledIndexing; } diff --git a/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryResponse.java b/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryResponse.java index a58a7be6..e97779f1 100644 --- a/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryResponse.java @@ -25,7 +25,7 @@ import org.microg.safeparcel.SafeParceled; public class QueryResponse extends AutoSafeParcelable { @SafeParceled(1000) - public final int versionCode; + private int versionCode = 1; @SafeParceled(1) public final Status status; @@ -34,13 +34,11 @@ public class QueryResponse extends AutoSafeParcelable { public final SearchResults results; private QueryResponse() { - versionCode = 1; status = null; results = null; } public QueryResponse(Status status, SearchResults results) { - this.versionCode = 1; this.status = status; this.results = results; } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/AddListenerRequest.java b/play-services-api/src/main/java/com/google/android/gms/wearable/AddListenerRequest.java new file mode 100644 index 00000000..3de65208 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/AddListenerRequest.java @@ -0,0 +1,45 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import android.content.IntentFilter; + +import com.google.android.gms.wearable.internal.IWearableListener; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class AddListenerRequest extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public final IWearableListener listener; + @SafeParceled(3) + public final IntentFilter[] intentFilters; + + private AddListenerRequest() { + listener = null; + intentFilters = null; + } + + public AddListenerRequest(IWearableListener listener, IntentFilter[] intentFilters) { + this.listener = listener; + this.intentFilters = intentFilters; + } + + public static final Creator CREATOR = new AutoCreator(AddListenerRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java b/play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java index 1539f85d..aebd7d49 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java @@ -1,4 +1,53 @@ package com.google.android.gms.wearable; -public class ConnectionConfiguration { +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class ConnectionConfiguration extends AutoSafeParcelable { + + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public final String name; + @SafeParceled(3) + public final String address; + @SafeParceled(4) + public final int type; + @SafeParceled(5) + public final int role; + @SafeParceled(6) + public final boolean enabled; + @SafeParceled(7) + public boolean connected = false; + @SafeParceled(8) + public String peerNodeId; + @SafeParceled(9) + public boolean btlePriority = true; + @SafeParceled(10) + public String nodeId; + + private ConnectionConfiguration() { + name = address = null; + type = role = 0; + enabled = false; + } + + public ConnectionConfiguration(String name, String address, int type, int role, boolean enabled) { + this.name = name; + this.address = address; + this.type = type; + this.role = role; + this.enabled = enabled; + } + + public ConnectionConfiguration(String name, String address, int type, int role, boolean enabled, String nodeId) { + this.name = name; + this.address = address; + this.type = type; + this.role = role; + this.enabled = enabled; + this.nodeId = nodeId; + } + + public static final Creator CREATOR = new AutoCreator(ConnectionConfiguration.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/DeleteDataItemsResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/DeleteDataItemsResponse.java new file mode 100644 index 00000000..de727a00 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/DeleteDataItemsResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class DeleteDataItemsResponse extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(DeleteDataItemsResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/GetConfigResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/GetConfigResponse.java new file mode 100644 index 00000000..a1435257 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/GetConfigResponse.java @@ -0,0 +1,41 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class GetConfigResponse extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public final int statusCode; + @SafeParceled(3) + public final ConnectionConfiguration connectionConfiguration; + + private GetConfigResponse() { + statusCode = 0; + connectionConfiguration = null; + } + + public GetConfigResponse(int statusCode, ConnectionConfiguration connectionConfiguration) { + this.statusCode = statusCode; + this.connectionConfiguration = connectionConfiguration; + } + + public static final Creator CREATOR = new AutoCreator(GetConfigResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/GetConfigsResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/GetConfigsResponse.java new file mode 100644 index 00000000..256aebdd --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/GetConfigsResponse.java @@ -0,0 +1,41 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class GetConfigsResponse extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public final int statusCode; + @SafeParceled(3) + public final ConnectionConfiguration[] configurations; + + private GetConfigsResponse() { + statusCode = 0; + configurations = null; + } + + public GetConfigsResponse(int statusCode, ConnectionConfiguration[] configurations) { + this.statusCode = statusCode; + this.configurations = configurations; + } + + public static final Creator CREATOR = new AutoCreator(GetConfigsResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/GetConnectedNodesResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/GetConnectedNodesResponse.java new file mode 100644 index 00000000..625b25ad --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/GetConnectedNodesResponse.java @@ -0,0 +1,45 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import com.google.android.gms.wearable.internal.NodeParcelable; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.List; + +public class GetConnectedNodesResponse extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public final int statusCode; + @SafeParceled(3) + public final List nodes; + + private GetConnectedNodesResponse() { + statusCode = 0; + nodes = null; + } + + public GetConnectedNodesResponse(int statusCode, List nodes) { + this.statusCode = statusCode; + this.nodes = nodes; + } + + public static final Creator CREATOR = new AutoCreator(GetConnectedNodesResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/GetDataItemResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/GetDataItemResponse.java new file mode 100644 index 00000000..a1ae10d6 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/GetDataItemResponse.java @@ -0,0 +1,43 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import com.google.android.gms.wearable.internal.DataItemParcelable; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class GetDataItemResponse extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public final int statusCode; + @SafeParceled(3) + public final DataItemParcelable dataItem; + + private GetDataItemResponse() { + statusCode = 0; + dataItem = null; + } + + public GetDataItemResponse(int statusCode, DataItemParcelable dataItem) { + this.statusCode = statusCode; + this.dataItem = dataItem; + } + + public static final Creator CREATOR = new AutoCreator(GetDataItemResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/GetFdForAssetResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/GetFdForAssetResponse.java new file mode 100644 index 00000000..4f83e64c --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/GetFdForAssetResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class GetFdForAssetResponse extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(GetFdForAssetResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/GetLocalNodeResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/GetLocalNodeResponse.java new file mode 100644 index 00000000..b99bb6b7 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/GetLocalNodeResponse.java @@ -0,0 +1,43 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import com.google.android.gms.wearable.internal.NodeParcelable; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class GetLocalNodeResponse extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public final int statusCode; + @SafeParceled(3) + public final NodeParcelable node; + + private GetLocalNodeResponse() { + statusCode = 0; + node = null; + } + + public GetLocalNodeResponse(int statusCode, NodeParcelable node) { + this.statusCode = statusCode; + this.node = node; + } + + public static final Creator CREATOR = new AutoCreator(GetLocalNodeResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java b/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java index 8b8503d9..1df9edf0 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java @@ -17,11 +17,17 @@ package com.google.android.gms.wearable; import android.net.Uri; +import android.os.Bundle; +import android.text.TextUtils; +import android.util.Base64; + +import com.google.android.gms.wearable.internal.DataItemAssetParcelable; import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; -import java.util.Collections; +import java.util.HashMap; import java.util.Map; /** @@ -31,19 +37,46 @@ import java.util.Map; public class PutDataRequest extends AutoSafeParcelable { public static final String WEAR_URI_SCHEME = "wear"; - private DataItem dataItem; + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + final Uri uri; + @SafeParceled(4) + private final Bundle assets; + @SafeParceled(5) + byte[] data; - private PutDataRequest(DataItem dataItem) { - this.dataItem = dataItem; + private PutDataRequest() { + uri = null; + assets = new Bundle(); + } + + private PutDataRequest(Uri uri) { + this.uri = uri; + assets = new Bundle(); + } + + public static PutDataRequest create(Uri uri) { + return new PutDataRequest(uri); } public static PutDataRequest create(String path) { - // TODO - return new PutDataRequest(null); + if (TextUtils.isEmpty(path)) { + throw new IllegalArgumentException("An empty path was supplied."); + } else if (!path.startsWith("/")) { + throw new IllegalArgumentException("A path must start with a single / ."); + } else if (path.startsWith("//")) { + throw new IllegalArgumentException("A path must start with a single / ."); + } else { + return create((new Uri.Builder()).scheme(WEAR_URI_SCHEME).path(path).build()); + } } public static PutDataRequest createFromDataItem(DataItem source) { - return new PutDataRequest(source); + PutDataRequest dataRequest = new PutDataRequest(source.getUri()); + dataRequest.data = source.getData(); + // TODO: assets + return dataRequest; } public static PutDataRequest createWithAutoAppendedId(String pathPrefix) { @@ -51,39 +84,42 @@ public class PutDataRequest extends AutoSafeParcelable { } public Asset getAsset(String key) { - // TODO - return null; + return assets.getParcelable(key); } public Map getAssets() { - // TODO - return Collections.emptyMap(); + Map map = new HashMap(); + assets.setClassLoader(DataItemAssetParcelable.class.getClassLoader()); + for (String key : assets.keySet()) { + map.put(key, (Asset) assets.getParcelable(key)); + } + return map; } public byte[] getData() { - return dataItem.getData(); + return data; } public Uri getUri() { - return dataItem.getUri(); + return uri; } public boolean hasAsset(String key) { - return dataItem.getAssets().containsKey(key); + return assets.containsKey(key); } public PutDataRequest putAsset(String key, Asset value) { - // TODO + assets.putParcelable(key, value); return this; } public PutDataRequest removeAsset(String key) { - // TODO + assets.remove(key); return this; } public PutDataRequest setData(byte[] data) { - // TODO + this.data = data; return this; } @@ -93,7 +129,10 @@ public class PutDataRequest extends AutoSafeParcelable { } public String toString(boolean verbose) { - return "PutDataRequest{data=" + dataItem + "}"; + return "PutDataRequest[data=" + (data == null ? "null" : Base64.encodeToString(data, Base64.NO_WRAP)) + + ", numAssets=" + getAssets().size() + + ", uri=" + uri + "]"; + // TODO: Verbose: dump all assets } public static final Creator CREATOR = new AutoCreator(PutDataRequest.class); diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataResponse.java new file mode 100644 index 00000000..f44f4319 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataResponse.java @@ -0,0 +1,43 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import com.google.android.gms.wearable.internal.DataItemParcelable; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class PutDataResponse extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public final int statusCode; + @SafeParceled(3) + public final DataItemParcelable dataItem; + + private PutDataResponse() { + statusCode = 0; + dataItem = null; + } + + public PutDataResponse(int statusCode, DataItemParcelable dataItem) { + this.statusCode = statusCode; + this.dataItem = dataItem; + } + + public static final Creator CREATOR = new AutoCreator(PutDataResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/RemoveListenerRequest.java b/play-services-api/src/main/java/com/google/android/gms/wearable/RemoveListenerRequest.java new file mode 100644 index 00000000..6edc53f0 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/RemoveListenerRequest.java @@ -0,0 +1,39 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import com.google.android.gms.wearable.internal.IWearableListener; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class RemoveListenerRequest extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public final IWearableListener listener; + + private RemoveListenerRequest() { + listener = null; + } + + public RemoveListenerRequest(IWearableListener listener) { + this.listener = listener; + } + + public static final Creator CREATOR = new AutoCreator(RemoveListenerRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/SendMessageResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/SendMessageResponse.java new file mode 100644 index 00000000..570ab0ef --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/SendMessageResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class SendMessageResponse extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(SendMessageResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/StorageInfoResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/StorageInfoResponse.java new file mode 100644 index 00000000..42307d72 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/StorageInfoResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class StorageInfoResponse extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(StorageInfoResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java new file mode 100644 index 00000000..f124a627 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class DataItemAssetParcelable extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(DataItemAssetParcelable.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java new file mode 100644 index 00000000..f7c880e1 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java @@ -0,0 +1,67 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable.internal; + +import android.net.Uri; +import android.os.Bundle; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.HashMap; +import java.util.Map; + +public class DataItemParcelable extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public final Uri uri; + @SafeParceled(4) + private final Bundle assets; + @SafeParceled(5) + public byte[] data; + + private DataItemParcelable() { + uri = null; + assets = new Bundle(); + data = null; + } + + public DataItemParcelable(Uri uri) { + this(uri, new HashMap()); + } + + public DataItemParcelable(Uri uri, Map assets) { + this.uri = uri; + this.assets = new Bundle(); + for (String key : assets.keySet()) { + this.assets.putParcelable(key, assets.get(key)); + } + data = null; + } + + public Map getAssets() { + Map assets = new HashMap(); + this.assets.setClassLoader(DataItemAssetParcelable.class.getClassLoader()); + for (String key : this.assets.keySet()) { + assets.put(key, (DataItemAssetParcelable) this.assets.getParcelable(key)); + } + return assets; + } + + public static final Creator CREATOR = new AutoCreator(DataItemParcelable.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java index 6bdbce7f..6d9e071d 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java @@ -26,19 +26,17 @@ import org.microg.safeparcel.SafeParceled; */ public class NodeParcelable extends AutoSafeParcelable implements Node { @SafeParceled(1) - private final int versionCode; + private int versionCode = 1; @SafeParceled(2) private final String id; @SafeParceled(3) private final String displayName; private NodeParcelable() { - versionCode = 1; id = displayName = null; } public NodeParcelable(String id, String displayName) { - versionCode = 1; this.id = id; this.displayName = displayName; } From 0890bf454651e90274949af9dca09fbcfbf50d36 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Tue, 4 Aug 2015 13:02:08 +0200 Subject: [PATCH 057/170] Extend wearable APIs, update Maps API --- .../gms/maps/internal/IMapViewDelegate.aidl | 2 + .../maps/internal/IOnMapReadyCallback.aidl | 7 ++ .../gms/wearable/AddListenerRequest.aidl | 3 - .../gms/wearable/DeleteDataItemsResponse.aidl | 3 - .../gms/wearable/GetConfigResponse.aidl | 3 - .../gms/wearable/GetConfigsResponse.aidl | 3 - .../wearable/GetConnectedNodesResponse.aidl | 3 - .../gms/wearable/GetDataItemResponse.aidl | 3 - .../gms/wearable/GetFdForAssetResponse.aidl | 3 - .../gms/wearable/GetLocalNodeResponse.aidl | 3 - .../android/gms/wearable/PutDataRequest.aidl | 3 - .../android/gms/wearable/PutDataResponse.aidl | 3 - .../gms/wearable/RemoveListenerRequest.aidl | 3 - .../gms/wearable/SendMessageResponse.aidl | 3 - .../gms/wearable/StorageInfoResponse.aidl | 3 - .../wearable/internal/AddListenerRequest.aidl | 3 + .../internal/CapabilityInfoParcelable.aidl | 3 + .../internal/ChannelEventParcelable.aidl | 3 + .../internal/DeleteDataItemsResponse.aidl | 3 + .../wearable/internal/GetConfigResponse.aidl | 3 + .../wearable/internal/GetConfigsResponse.aidl | 3 + .../internal/GetConnectedNodesResponse.aidl | 3 + .../internal/GetDataItemResponse.aidl | 3 + .../internal/GetFdForAssetResponse.aidl | 3 + .../internal/GetLocalNodeResponse.aidl | 3 + .../wearable/internal/IWearableCallbacks.aidl | 20 ++--- .../wearable/internal/IWearableListener.aidl | 15 +++- .../wearable/internal/IWearableService.aidl | 8 +- .../internal/MessageEventParcelable.aidl | 3 + .../gms/wearable/internal/NodeParcelable.aidl | 3 + .../gms/wearable/internal/PutDataRequest.aidl | 3 + .../wearable/internal/PutDataResponse.aidl | 3 + .../internal/RemoveListenerRequest.aidl | 3 + .../internal/SendMessageResponse.aidl | 3 + .../internal/StorageInfoResponse.aidl | 3 + .../google/android/gms/wearable/Asset.java | 75 +++++++++++++++++-- .../{ => internal}/AddListenerRequest.java | 4 +- .../internal/CapabilityInfoParcelable.java | 23 ++++++ .../ChannelEventParcelable.java} | 6 +- .../internal/DataItemAssetParcelable.java | 41 +++++++++- .../wearable/internal/DataItemParcelable.java | 12 +-- .../internal/DeleteDataItemsResponse.java | 40 ++++++++++ .../{ => internal}/GetConfigResponse.java | 4 +- .../{ => internal}/GetConfigsResponse.java | 4 +- .../GetConnectedNodesResponse.java | 4 +- .../{ => internal}/GetDataItemResponse.java | 4 +- .../{ => internal}/GetFdForAssetResponse.java | 2 +- .../{ => internal}/GetLocalNodeResponse.java | 4 +- .../internal/MessageEventParcelable.java | 23 ++++++ .../{ => internal}/PutDataRequest.java | 11 +-- .../{ => internal}/PutDataResponse.java | 4 +- .../{ => internal}/RemoveListenerRequest.java | 4 +- .../{ => internal}/SendMessageResponse.java | 2 +- .../{ => internal}/StorageInfoResponse.java | 2 +- .../java/org/microg/gms/common/Constants.java | 2 +- 55 files changed, 316 insertions(+), 97 deletions(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMapReadyCallback.aidl delete mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/AddListenerRequest.aidl delete mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/DeleteDataItemsResponse.aidl delete mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigResponse.aidl delete mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigsResponse.aidl delete mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConnectedNodesResponse.aidl delete mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/GetDataItemResponse.aidl delete mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/GetFdForAssetResponse.aidl delete mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/GetLocalNodeResponse.aidl delete mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataRequest.aidl delete mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataResponse.aidl delete mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/RemoveListenerRequest.aidl delete mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/SendMessageResponse.aidl delete mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/StorageInfoResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AddListenerRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/ChannelEventParcelable.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigsResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetDataItemResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetFdForAssetResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetLocalNodeResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/MessageEventParcelable.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/NodeParcelable.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/RemoveListenerRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/SendMessageResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/StorageInfoResponse.aidl rename play-services-api/src/main/java/com/google/android/gms/wearable/{ => internal}/AddListenerRequest.java (92%) create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java rename play-services-api/src/main/java/com/google/android/gms/wearable/{DeleteDataItemsResponse.java => internal/ChannelEventParcelable.java} (72%) create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.java rename play-services-api/src/main/java/com/google/android/gms/wearable/{ => internal}/GetConfigResponse.java (92%) rename play-services-api/src/main/java/com/google/android/gms/wearable/{ => internal}/GetConfigsResponse.java (92%) rename play-services-api/src/main/java/com/google/android/gms/wearable/{ => internal}/GetConnectedNodesResponse.java (92%) rename play-services-api/src/main/java/com/google/android/gms/wearable/{ => internal}/GetDataItemResponse.java (92%) rename play-services-api/src/main/java/com/google/android/gms/wearable/{ => internal}/GetFdForAssetResponse.java (94%) rename play-services-api/src/main/java/com/google/android/gms/wearable/{ => internal}/GetLocalNodeResponse.java (92%) create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java rename play-services-api/src/main/java/com/google/android/gms/wearable/{ => internal}/PutDataRequest.java (91%) rename play-services-api/src/main/java/com/google/android/gms/wearable/{ => internal}/PutDataResponse.java (92%) rename play-services-api/src/main/java/com/google/android/gms/wearable/{ => internal}/RemoveListenerRequest.java (91%) rename play-services-api/src/main/java/com/google/android/gms/wearable/{ => internal}/SendMessageResponse.java (94%) rename play-services-api/src/main/java/com/google/android/gms/wearable/{ => internal}/StorageInfoResponse.java (94%) diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl index 2efb5649..b53e364f 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl @@ -3,6 +3,7 @@ package com.google.android.gms.maps.internal; import android.os.Bundle; import com.google.android.gms.maps.internal.IGoogleMapDelegate; +import com.google.android.gms.maps.internal.IOnMapReadyCallback; import com.google.android.gms.dynamic.IObjectWrapper; interface IMapViewDelegate { @@ -14,4 +15,5 @@ interface IMapViewDelegate { void onLowMemory(); void onSaveInstanceState(inout Bundle outState); IObjectWrapper getView(); + void addOnMapReadyCallback(IOnMapReadyCallback callback); } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMapReadyCallback.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMapReadyCallback.aidl new file mode 100644 index 00000000..1e6760ef --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMapReadyCallback.aidl @@ -0,0 +1,7 @@ +package com.google.android.gms.maps.internal; + +import com.google.android.gms.maps.internal.IGoogleMapDelegate; + +interface IOnMapReadyCallback { + void onMapReady(IGoogleMapDelegate map); +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/AddListenerRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/AddListenerRequest.aidl deleted file mode 100644 index bb1726dd..00000000 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/AddListenerRequest.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.google.android.gms.wearable; - -parcelable AddListenerRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/DeleteDataItemsResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/DeleteDataItemsResponse.aidl deleted file mode 100644 index 87691545..00000000 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/DeleteDataItemsResponse.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.google.android.gms.wearable; - -parcelable DeleteDataItemsResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigResponse.aidl deleted file mode 100644 index 611e1443..00000000 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigResponse.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.google.android.gms.wearable; - -parcelable GetConfigResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigsResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigsResponse.aidl deleted file mode 100644 index 21f56aab..00000000 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConfigsResponse.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.google.android.gms.wearable; - -parcelable GetConfigsResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConnectedNodesResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConnectedNodesResponse.aidl deleted file mode 100644 index 8068de2a..00000000 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetConnectedNodesResponse.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.google.android.gms.wearable; - -parcelable GetConnectedNodesResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetDataItemResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetDataItemResponse.aidl deleted file mode 100644 index 1c22d749..00000000 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetDataItemResponse.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.google.android.gms.wearable; - -parcelable GetDataItemResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetFdForAssetResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetFdForAssetResponse.aidl deleted file mode 100644 index d12974ff..00000000 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetFdForAssetResponse.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.google.android.gms.wearable; - -parcelable GetFdForAssetResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetLocalNodeResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetLocalNodeResponse.aidl deleted file mode 100644 index da6b6ae3..00000000 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/GetLocalNodeResponse.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.google.android.gms.wearable; - -parcelable GetLocalNodeResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataRequest.aidl deleted file mode 100644 index 5714b4cf..00000000 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataRequest.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.google.android.gms.wearable; - -parcelable PutDataRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataResponse.aidl deleted file mode 100644 index 4f0723f5..00000000 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/PutDataResponse.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.google.android.gms.wearable; - -parcelable PutDataResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/RemoveListenerRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/RemoveListenerRequest.aidl deleted file mode 100644 index 4e5f7d98..00000000 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/RemoveListenerRequest.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.google.android.gms.wearable; - -parcelable RemoveListenerRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/SendMessageResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/SendMessageResponse.aidl deleted file mode 100644 index 296f5439..00000000 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/SendMessageResponse.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.google.android.gms.wearable; - -parcelable SendMessageResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/StorageInfoResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/StorageInfoResponse.aidl deleted file mode 100644 index 66ce05ac..00000000 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/StorageInfoResponse.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.google.android.gms.wearable; - -parcelable StorageInfoResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AddListenerRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AddListenerRequest.aidl new file mode 100644 index 00000000..21b8bba6 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AddListenerRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable AddListenerRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.aidl new file mode 100644 index 00000000..15742eed --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable CapabilityInfoParcelable; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/ChannelEventParcelable.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/ChannelEventParcelable.aidl new file mode 100644 index 00000000..1f86443a --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/ChannelEventParcelable.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable ChannelEventParcelable; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.aidl new file mode 100644 index 00000000..d5402cd6 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable DeleteDataItemsResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigResponse.aidl new file mode 100644 index 00000000..14f6b6ee --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable GetConfigResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigsResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigsResponse.aidl new file mode 100644 index 00000000..2cb7207a --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigsResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable GetConfigsResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.aidl new file mode 100644 index 00000000..9c0706e7 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable GetConnectedNodesResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetDataItemResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetDataItemResponse.aidl new file mode 100644 index 00000000..b523f669 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetDataItemResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable GetDataItemResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetFdForAssetResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetFdForAssetResponse.aidl new file mode 100644 index 00000000..662ccfb6 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetFdForAssetResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable GetFdForAssetResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetLocalNodeResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetLocalNodeResponse.aidl new file mode 100644 index 00000000..90178068 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetLocalNodeResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable GetLocalNodeResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl index 410fd09a..6af80335 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl @@ -2,16 +2,16 @@ package com.google.android.gms.wearable.internal; import com.google.android.gms.common.api.Status; import com.google.android.gms.common.data.DataHolder; -import com.google.android.gms.wearable.DeleteDataItemsResponse; -import com.google.android.gms.wearable.GetConfigResponse; -import com.google.android.gms.wearable.GetConfigsResponse; -import com.google.android.gms.wearable.GetConnectedNodesResponse; -import com.google.android.gms.wearable.GetDataItemResponse; -import com.google.android.gms.wearable.GetFdForAssetResponse; -import com.google.android.gms.wearable.GetLocalNodeResponse; -import com.google.android.gms.wearable.PutDataResponse; -import com.google.android.gms.wearable.SendMessageResponse; -import com.google.android.gms.wearable.StorageInfoResponse; +import com.google.android.gms.wearable.internal.DeleteDataItemsResponse; +import com.google.android.gms.wearable.internal.GetConfigResponse; +import com.google.android.gms.wearable.internal.GetConfigsResponse; +import com.google.android.gms.wearable.internal.GetConnectedNodesResponse; +import com.google.android.gms.wearable.internal.GetDataItemResponse; +import com.google.android.gms.wearable.internal.GetFdForAssetResponse; +import com.google.android.gms.wearable.internal.GetLocalNodeResponse; +import com.google.android.gms.wearable.internal.PutDataResponse; +import com.google.android.gms.wearable.internal.SendMessageResponse; +import com.google.android.gms.wearable.internal.StorageInfoResponse; interface IWearableCallbacks { void onGetConfigResponse(in GetConfigResponse response) = 1; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl index 1c2eb92b..491f5d2f 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl @@ -1,5 +1,18 @@ package com.google.android.gms.wearable.internal; -interface IWearableListener { +import com.google.android.gms.common.data.DataHolder; +import com.google.android.gms.wearable.internal.CapabilityInfoParcelable; +import com.google.android.gms.wearable.internal.ChannelEventParcelable; +import com.google.android.gms.wearable.internal.MessageEventParcelable; +import com.google.android.gms.wearable.internal.NodeParcelable; +interface IWearableListener { + void onDataChanged(in DataHolder data) = 0; + void onMessageReceived(in MessageEventParcelable messageEvent) = 1; + void onPeerConnected(in NodeParcelable node) = 2; + void onPeerDisconnected(in NodeParcelable node) = 3; + void onConnectedNodes(in List nodes) = 4; + + void onChannelEvent(in ChannelEventParcelable channelEvent) = 6; + void onConnectedCapabilityChanged(in CapabilityInfoParcelable capabilityInfo) = 7; } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl index 3bf532c0..e341a186 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl @@ -1,9 +1,9 @@ package com.google.android.gms.wearable.internal; -import com.google.android.gms.wearable.AddListenerRequest; +import com.google.android.gms.wearable.internal.AddListenerRequest; import com.google.android.gms.wearable.ConnectionConfiguration; -import com.google.android.gms.wearable.PutDataRequest; -import com.google.android.gms.wearable.RemoveListenerRequest; +import com.google.android.gms.wearable.internal.PutDataRequest; +import com.google.android.gms.wearable.internal.RemoveListenerRequest; import com.google.android.gms.wearable.internal.IWearableCallbacks; import com.google.android.gms.wearable.internal.IWearableService; @@ -18,6 +18,8 @@ interface IWearableService { void removeListener(IWearableCallbacks callbacks, in RemoveListenerRequest request) = 16; void putConfig(IWearableCallbacks callbacks, in ConnectionConfiguration config) = 19; void getConfigs(IWearableCallbacks callbacks) = 21; + void disableConnection(IWearableCallbacks callbacks, String name) = 23; void getDataItemsByUri(IWearableCallbacks callbacks, in Uri uri, int i) = 39; void deleteDataItems(IWearableCallbacks callbacks, in Uri uri) = 40; + void optInCloudSync(IWearableCallbacks callbacks, boolean enable) = 47; } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/MessageEventParcelable.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/MessageEventParcelable.aidl new file mode 100644 index 00000000..a3968f06 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/MessageEventParcelable.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable MessageEventParcelable; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/NodeParcelable.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/NodeParcelable.aidl new file mode 100644 index 00000000..f10069df --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/NodeParcelable.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable NodeParcelable; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataRequest.aidl new file mode 100644 index 00000000..7fe2a19b --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable PutDataRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataResponse.aidl new file mode 100644 index 00000000..6f6f23e0 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable PutDataResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/RemoveListenerRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/RemoveListenerRequest.aidl new file mode 100644 index 00000000..bf28d18f --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/RemoveListenerRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable RemoveListenerRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/SendMessageResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/SendMessageResponse.aidl new file mode 100644 index 00000000..3c83498f --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/SendMessageResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable SendMessageResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/StorageInfoResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/StorageInfoResponse.aidl new file mode 100644 index 00000000..ea1ab215 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/StorageInfoResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable StorageInfoResponse; \ No newline at end of file diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java b/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java index 0fa11be6..03480221 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java @@ -19,8 +19,13 @@ package com.google.android.gms.wearable; import android.net.Uri; import android.os.ParcelFileDescriptor; +import com.google.android.gms.wearable.internal.PutDataRequest; + import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.Arrays; /** * An asset is a binary blob shared between data items that is replicated across the wearable @@ -33,6 +38,28 @@ import org.microg.safeparcel.AutoSafeParcelable; @PublicApi public class Asset extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + @PublicApi(exclude = true) + public byte[] data; + @SafeParceled(3) + private String digest; + @SafeParceled(4) + private ParcelFileDescriptor fd; + @SafeParceled(5) + private Uri uri; + + private Asset() { + } + + private Asset(byte[] data, String digest, ParcelFileDescriptor fd, Uri uri) { + this.data = data; + this.digest = digest; + this.fd = fd; + this.uri = uri; + } + /** * Creates an Asset using a byte array. */ @@ -45,14 +72,20 @@ public class Asset extends AutoSafeParcelable { * sent in a putDataItem request. */ public static Asset createFromFd(ParcelFileDescriptor fd) { - return null; + if (fd == null) { + throw new IllegalArgumentException("Asset fd cannot be null"); + } + return new Asset(null, null, fd, null); } /** * Create an Asset using an existing Asset's digest. */ public static Asset createFromRef(String digest) { - return null; + if (digest == null) { + throw new IllegalArgumentException("Asset digest cannot be null"); + } + return new Asset(null, digest, null, null); } /** @@ -68,21 +101,53 @@ public class Asset extends AutoSafeParcelable { * identify the asset across devices. */ public String getDigest() { - return null; + return digest; } /** * @return the file descriptor referencing the asset. */ public ParcelFileDescriptor getFd() { - return null; + return fd; } /** * @return the uri referencing the asset data. */ public Uri getUri() { - return null; + return uri; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + Asset asset = (Asset) o; + + if (!Arrays.equals(data, asset.data)) return false; + if (digest != null ? !digest.equals(asset.digest) : asset.digest != null) return false; + if (fd != null ? !fd.equals(asset.fd) : asset.fd != null) return false; + return !(uri != null ? !uri.equals(asset.uri) : asset.uri != null); + + } + + @Override + public int hashCode() { + return Arrays.hashCode(new Object[]{data, digest, fd, uri}); + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("Asset[@") + .append(Integer.toHexString(hashCode())) + .append(", ") + .append(digest != null ? digest : "nodigest"); + if (this.data != null) sb.append(", size=").append(data.length); + if (this.fd != null) sb.append(", fd=").append(fd); + if (this.uri != null) sb.append(", uri=").append(uri); + return sb.append("]").toString(); } public static final Creator CREATOR = new AutoCreator(Asset.class); diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/AddListenerRequest.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java similarity index 92% rename from play-services-api/src/main/java/com/google/android/gms/wearable/AddListenerRequest.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java index 3de65208..9e928948 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/AddListenerRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java @@ -14,12 +14,10 @@ * limitations under the License. */ -package com.google.android.gms.wearable; +package com.google.android.gms.wearable.internal; import android.content.IntentFilter; -import com.google.android.gms.wearable.internal.IWearableListener; - import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java new file mode 100644 index 00000000..92fe8ad9 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class CapabilityInfoParcelable extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(CapabilityInfoParcelable.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/DeleteDataItemsResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java similarity index 72% rename from play-services-api/src/main/java/com/google/android/gms/wearable/DeleteDataItemsResponse.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java index de727a00..e7eb9c9a 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/DeleteDataItemsResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package com.google.android.gms.wearable; +package com.google.android.gms.wearable.internal; import org.microg.safeparcel.AutoSafeParcelable; -public class DeleteDataItemsResponse extends AutoSafeParcelable { - public static final Creator CREATOR = new AutoCreator(DeleteDataItemsResponse.class); +public class ChannelEventParcelable extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(ChannelEventParcelable.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java index f124a627..f0ec6160 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java @@ -16,8 +16,47 @@ package com.google.android.gms.wearable.internal; +import com.google.android.gms.wearable.DataItemAsset; + import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class DataItemAssetParcelable extends AutoSafeParcelable implements DataItemAsset { + + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + private String id; + @SafeParceled(3) + private String key; + + private DataItemAssetParcelable() { + } + + public DataItemAssetParcelable(String id, String key) { + this.id = id; + this.key = key; + } + + @Override + public String getDataItemKey() { + return key; + } + + @Override + public String getId() { + return id; + } + + @Override + public DataItemAsset freeze() { + return this; + } + + @Override + public boolean isDataValid() { + return true; + } -public class DataItemAssetParcelable extends AutoSafeParcelable { public static final Creator CREATOR = new AutoCreator(DataItemAssetParcelable.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java index f7c880e1..9fc7b528 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java @@ -29,16 +29,13 @@ public class DataItemParcelable extends AutoSafeParcelable { @SafeParceled(1) private int versionCode = 1; @SafeParceled(2) - public final Uri uri; + private Uri uri; @SafeParceled(4) - private final Bundle assets; + private Bundle assets = new Bundle(); @SafeParceled(5) public byte[] data; private DataItemParcelable() { - uri = null; - assets = new Bundle(); - data = null; } public DataItemParcelable(Uri uri) { @@ -47,7 +44,6 @@ public class DataItemParcelable extends AutoSafeParcelable { public DataItemParcelable(Uri uri, Map assets) { this.uri = uri; - this.assets = new Bundle(); for (String key : assets.keySet()) { this.assets.putParcelable(key, assets.get(key)); } @@ -63,5 +59,9 @@ public class DataItemParcelable extends AutoSafeParcelable { return assets; } + public Uri getUri() { + return uri; + } + public static final Creator CREATOR = new AutoCreator(DataItemParcelable.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.java new file mode 100644 index 00000000..220fba4d --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.java @@ -0,0 +1,40 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable.internal; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class DeleteDataItemsResponse extends AutoSafeParcelable { + + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + private int status; + @SafeParceled(3) + private int count; + + private DeleteDataItemsResponse() { + } + + public DeleteDataItemsResponse(int status, int count) { + this.status = status; + this.count = count; + } + + public static final Creator CREATOR = new AutoCreator(DeleteDataItemsResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/GetConfigResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigResponse.java similarity index 92% rename from play-services-api/src/main/java/com/google/android/gms/wearable/GetConfigResponse.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigResponse.java index a1435257..b2923e6a 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/GetConfigResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigResponse.java @@ -14,7 +14,9 @@ * limitations under the License. */ -package com.google.android.gms.wearable; +package com.google.android.gms.wearable.internal; + +import com.google.android.gms.wearable.ConnectionConfiguration; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/GetConfigsResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigsResponse.java similarity index 92% rename from play-services-api/src/main/java/com/google/android/gms/wearable/GetConfigsResponse.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigsResponse.java index 256aebdd..37a16066 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/GetConfigsResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigsResponse.java @@ -14,7 +14,9 @@ * limitations under the License. */ -package com.google.android.gms.wearable; +package com.google.android.gms.wearable.internal; + +import com.google.android.gms.wearable.ConnectionConfiguration; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/GetConnectedNodesResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java similarity index 92% rename from play-services-api/src/main/java/com/google/android/gms/wearable/GetConnectedNodesResponse.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java index 625b25ad..cf6e1781 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/GetConnectedNodesResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java @@ -14,9 +14,7 @@ * limitations under the License. */ -package com.google.android.gms.wearable; - -import com.google.android.gms.wearable.internal.NodeParcelable; +package com.google.android.gms.wearable.internal; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/GetDataItemResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetDataItemResponse.java similarity index 92% rename from play-services-api/src/main/java/com/google/android/gms/wearable/GetDataItemResponse.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetDataItemResponse.java index a1ae10d6..3b1d89c5 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/GetDataItemResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetDataItemResponse.java @@ -14,9 +14,7 @@ * limitations under the License. */ -package com.google.android.gms.wearable; - -import com.google.android.gms.wearable.internal.DataItemParcelable; +package com.google.android.gms.wearable.internal; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/GetFdForAssetResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java similarity index 94% rename from play-services-api/src/main/java/com/google/android/gms/wearable/GetFdForAssetResponse.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java index 4f83e64c..19294116 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/GetFdForAssetResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.android.gms.wearable; +package com.google.android.gms.wearable.internal; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/GetLocalNodeResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetLocalNodeResponse.java similarity index 92% rename from play-services-api/src/main/java/com/google/android/gms/wearable/GetLocalNodeResponse.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetLocalNodeResponse.java index b99bb6b7..601d23db 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/GetLocalNodeResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetLocalNodeResponse.java @@ -14,9 +14,7 @@ * limitations under the License. */ -package com.google.android.gms.wearable; - -import com.google.android.gms.wearable.internal.NodeParcelable; +package com.google.android.gms.wearable.internal; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java new file mode 100644 index 00000000..4dd4ef7f --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class MessageEventParcelable extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(MessageEventParcelable.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java similarity index 91% rename from play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java index 1df9edf0..56e0abb5 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java @@ -14,14 +14,15 @@ * limitations under the License. */ -package com.google.android.gms.wearable; +package com.google.android.gms.wearable.internal; import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; import android.util.Base64; -import com.google.android.gms.wearable.internal.DataItemAssetParcelable; +import com.google.android.gms.wearable.Asset; +import com.google.android.gms.wearable.DataItem; import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; @@ -129,9 +130,9 @@ public class PutDataRequest extends AutoSafeParcelable { } public String toString(boolean verbose) { - return "PutDataRequest[data=" + (data == null ? "null" : Base64.encodeToString(data, Base64.NO_WRAP)) + - ", numAssets=" + getAssets().size() + - ", uri=" + uri + "]"; + return "PutDataRequest[uri=" + uri + + ", data=" + (data == null ? "null" : Base64.encodeToString(data, Base64.NO_WRAP)) + + ", numAssets=" + getAssets().size() + "]"; // TODO: Verbose: dump all assets } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataResponse.java similarity index 92% rename from play-services-api/src/main/java/com/google/android/gms/wearable/PutDataResponse.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataResponse.java index f44f4319..ef04746e 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/PutDataResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataResponse.java @@ -14,9 +14,7 @@ * limitations under the License. */ -package com.google.android.gms.wearable; - -import com.google.android.gms.wearable.internal.DataItemParcelable; +package com.google.android.gms.wearable.internal; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/RemoveListenerRequest.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/RemoveListenerRequest.java similarity index 91% rename from play-services-api/src/main/java/com/google/android/gms/wearable/RemoveListenerRequest.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/internal/RemoveListenerRequest.java index 6edc53f0..ed19d18b 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/RemoveListenerRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/RemoveListenerRequest.java @@ -14,9 +14,7 @@ * limitations under the License. */ -package com.google.android.gms.wearable; - -import com.google.android.gms.wearable.internal.IWearableListener; +package com.google.android.gms.wearable.internal; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/SendMessageResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java similarity index 94% rename from play-services-api/src/main/java/com/google/android/gms/wearable/SendMessageResponse.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java index 570ab0ef..03f46d5f 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/SendMessageResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.android.gms.wearable; +package com.google.android.gms.wearable.internal; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/StorageInfoResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/StorageInfoResponse.java similarity index 94% rename from play-services-api/src/main/java/com/google/android/gms/wearable/StorageInfoResponse.java rename to play-services-api/src/main/java/com/google/android/gms/wearable/internal/StorageInfoResponse.java index 42307d72..d96fd391 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/StorageInfoResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/StorageInfoResponse.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.android.gms.wearable; +package com.google.android.gms.wearable.internal; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/org/microg/gms/common/Constants.java b/play-services-api/src/main/java/org/microg/gms/common/Constants.java index 7e53ce71..d2ac6ddf 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Constants.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Constants.java @@ -5,7 +5,7 @@ public class Constants { * This is the highest version that was looked at during development. * Does not necessarily mean anything. */ - public static final int MAX_REFERENCE_VERSION = 7099448; + public static final int MAX_REFERENCE_VERSION = 7887000; public static final String KEY_MOCK_LOCATION = "mockLocation"; public static final String DEFAULT_ACCOUNT = "<>"; public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; From 28ff7f36f2b75a29cead8efc25fc0418065db601 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Thu, 6 Aug 2015 16:58:39 +0200 Subject: [PATCH 058/170] Update SafeParcel, Add PolylineOptions --- extern/SafeParcel | 2 +- .../gms/auth/AccountChangeEventsResponse.java | 2 +- .../gms/maps/model/PolylineOptions.java | 92 +++++++++++++++++-- 3 files changed, 86 insertions(+), 10 deletions(-) diff --git a/extern/SafeParcel b/extern/SafeParcel index ef1568e2..e0556cbf 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit ef1568e2614f29c3f13a6b6536989aba7f1a1b5d +Subproject commit e0556cbfac91c0d42bbca4119aa712638a925d6b diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java index bc68a42c..1aebe5bf 100644 --- a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java @@ -25,7 +25,7 @@ import java.util.List; public class AccountChangeEventsResponse extends AutoSafeParcelable { @SafeParceled(1) private int versionCode = 1; - @SafeParceled(value = 2, subType = "com.google.android.gms.auth.AccountChangeEvent") + @SafeParceled(value = 2, subClass = AccountChangeEvent.class) private List events; public AccountChangeEventsResponse() { diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java index f6e30a73..a42fac5f 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java @@ -16,10 +16,13 @@ package com.google.android.gms.maps.model; +import android.graphics.Color; + import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; +import java.util.ArrayList; import java.util.List; /** @@ -29,17 +32,90 @@ import java.util.List; @PublicApi public class PolylineOptions extends AutoSafeParcelable { @SafeParceled(1) - private int versionCode; - // TODO - private List points; - private float width; - private int color; - private float zIndex; - private boolean visible; - private boolean geodesic; + private int versionCode = 1; + @SafeParceled(value = 2, subClass = LatLng.class) + private List points = new ArrayList(); + @SafeParceled(3) + private float width = 10; + @SafeParceled(4) + private int color = Color.BLACK; + @SafeParceled(5) + private float zIndex = 0; + @SafeParceled(6) + private boolean visible = true; + @SafeParceled(7) + private boolean geodesic = false; public PolylineOptions() { } + public PolylineOptions add(LatLng point) { + points.add(point); + return this; + } + + public PolylineOptions add(LatLng... points) { + for (LatLng point : points) { + this.points.add(point); + } + return this; + } + + public PolylineOptions addAll(Iterable points) { + for (LatLng point : points) { + this.points.add(point); + } + return this; + } + + public PolylineOptions color(int color) { + this.color = color; + return this; + } + + public PolylineOptions geodesic(boolean geodesic) { + this.geodesic = geodesic; + return this; + } + + public int getColor() { + return color; + } + + public List getPoints() { + return points; + } + + public float getWidth() { + return width; + } + + public float getZIndex() { + return zIndex; + } + + public boolean isGeodesic() { + return geodesic; + } + + public boolean isVisible() { + return visible; + } + + public PolylineOptions visible(boolean visible) { + this.visible = visible; + return this; + } + + public PolylineOptions width(float width) { + this.width = width; + return this; + } + + public PolylineOptions zIndex(float zIndex) { + this.zIndex = zIndex; + return this; + } + public static Creator CREATOR = new AutoCreator(PolylineOptions.class); } From 4f1840dbb92223b28282b3388cbccb2f769d0ffe Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 28 Sep 2015 18:26:29 +0200 Subject: [PATCH 059/170] Update SafeParcel submodule --- extern/SafeParcel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/SafeParcel b/extern/SafeParcel index e0556cbf..02b94fdd 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit e0556cbfac91c0d42bbca4119aa712638a925d6b +Subproject commit 02b94fdd0af1c127fa14500b2c3d4bec0701e1d6 From 266795a39f11d58697a2e94e78ac13d79d6a9119 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 28 Sep 2015 18:27:29 +0200 Subject: [PATCH 060/170] Add and update APIs --- play-services-api/build.gradle | 33 +++-- play-services-api/gradle.properties | 6 +- .../android/gms/cast/ApplicationMetadata.java | 68 ++++++++++ .../google/android/gms/cast/CastDevice.java | 124 ++++++++++++++++++ .../android/gms/cast/LaunchOptions.java | 47 +++++++ .../android/gms/common/images/WebImage.java | 23 ++++ .../gms/maps/model/PolygonOptions.java | 120 ++++++++++++++++- 7 files changed, 407 insertions(+), 14 deletions(-) create mode 100644 play-services-api/src/main/java/com/google/android/gms/cast/ApplicationMetadata.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/cast/CastDevice.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/cast/LaunchOptions.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/common/images/WebImage.java diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index f48d82b3..c5c36494 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -1,26 +1,43 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + buildscript { repositories { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:1.2.3' + classpath 'com.android.tools.build:gradle:1.3.0' + classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' } } apply plugin: 'com.android.library' -apply from: 'gradle-mvn-push.gradle' +apply plugin: 'com.github.dcendents.android-maven' group = 'org.microg' version = '1.0-SNAPSHOT' -dependencies { - compile project(':safe-parcel') -} - android { - compileSdkVersion 22 - buildToolsVersion "22.0.1" + compileSdkVersion 23 + buildToolsVersion "23.0.1" compileOptions { sourceCompatibility JavaVersion.VERSION_1_6 } } + +dependencies { + compile project(':safe-parcel') +} diff --git a/play-services-api/gradle.properties b/play-services-api/gradle.properties index 0859459b..263c3740 100644 --- a/play-services-api/gradle.properties +++ b/play-services-api/gradle.properties @@ -1,8 +1,4 @@ -GROUP=org.microg -POM_ARTIFACT_ID=play-services-api -VERSION_NAME=1.0-SNAPSHOT - -POM_NAME=µg GmsApi +POM_NAME=GmsApi POM_DESCRIPTION=Interfaces and objects for IPC between Play Services Library and Play Services Core POM_PACKAGING=aar diff --git a/play-services-api/src/main/java/com/google/android/gms/cast/ApplicationMetadata.java b/play-services-api/src/main/java/com/google/android/gms/cast/ApplicationMetadata.java new file mode 100644 index 00000000..46cf7751 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/cast/ApplicationMetadata.java @@ -0,0 +1,68 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.cast; + +import android.net.Uri; + +import com.google.android.gms.common.images.WebImage; + +import org.microg.gms.common.PublicApi; +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.List; + +@PublicApi +public class ApplicationMetadata extends AutoSafeParcelable { + + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + private String applicationId; + @SafeParceled(3) + private String name; + @SafeParceled(value = 4, subClass = WebImage.class) + private List images; + @SafeParceled(value = 5, subClass = String.class) + private List namespaces; + @SafeParceled(6) + private String senderAppIdentifier; + @SafeParceled(7) + private Uri senderAppLaunchUri; + + public String getApplicationId() { + return applicationId; + } + + public List getImages() { + return images; + } + + public String getName() { + return name; + } + + public String getSenderAppIdentifier() { + return senderAppIdentifier; + } + + public boolean isNamespaceSupported(String namespace) { + return namespaces.contains(namespace); + } + + public static final Creator CREATOR = new AutoCreator(ApplicationMetadata.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/cast/CastDevice.java b/play-services-api/src/main/java/com/google/android/gms/cast/CastDevice.java new file mode 100644 index 00000000..22ab65c8 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/cast/CastDevice.java @@ -0,0 +1,124 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.cast; + +import android.os.Bundle; +import android.text.TextUtils; + +import com.google.android.gms.common.images.WebImage; + +import org.microg.gms.common.PublicApi; +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.net.Inet4Address; +import java.util.ArrayList; +import java.util.List; + +@PublicApi +public class CastDevice extends AutoSafeParcelable { + private static final String EXTRA_CAST_DEVICE = "com.google.android.gms.cast.EXTRA_CAST_DEVICE"; + + public static final int CAPABILITY_VIDEO_OUT = 1; + public static final int CAPABILITY_VIDEO_IN = 2; + public static final int CAPABILITY_AUDIO_OUT = 4; + public static final int CAPABILITY_AUDIO_IN = 8; + + @SafeParceled(1) + private int versionCode; + + @SafeParceled(3) + private String addrString; + private Inet4Address addr; + + private String deviceId; + + private String deviceVersion; + + private String friendlyName; + + private int servicePort; + + @SafeParceled(value = 8, subClass = WebImage.class) + private ArrayList icons; + + public String getDeviceId() { + return deviceId; + } + + public String getDeviceVersion() { + return deviceVersion; + } + + public String getFriendlyName() { + return friendlyName; + } + + public static CastDevice getFromBundle(Bundle extras) { + if (extras == null) { + return null; + } + extras.setClassLoader(CastDevice.class.getClassLoader()); + return extras.getParcelable(EXTRA_CAST_DEVICE); + } + + public WebImage getIcon(int preferredWidth, int preferredHeight) { + return null; + } + + public List getIcons() { + return icons; + } + + public Inet4Address getIpAddress() { + return addr; + } + + public String getModelName() { + return null; + } + + public int getServicePort() { + return servicePort; + } + + public boolean hasCapabilities(int[] capabilities) { + return false; + } + + public boolean hasCapability(int capability) { + return false; + } + + public boolean hasIcons() { + return !icons.isEmpty(); + } + + public boolean isOnLocalNetwork() { + return false; + } + + public boolean isSameDevice(CastDevice castDevice) { + return TextUtils.equals(castDevice.deviceId, deviceId); + } + + public void putInBundle(Bundle bundle) { + bundle.putParcelable(EXTRA_CAST_DEVICE, this); + } + + public static Creator CREATOR = new AutoCreator(CastDevice.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/cast/LaunchOptions.java b/play-services-api/src/main/java/com/google/android/gms/cast/LaunchOptions.java new file mode 100644 index 00000000..3a550360 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/cast/LaunchOptions.java @@ -0,0 +1,47 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.cast; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class LaunchOptions extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + private boolean relaunchIfRunning; + @SafeParceled(3) + private String language; + + public String getLanguage() { + return language; + } + + public boolean getRelaunchIfRunning() { + return relaunchIfRunning; + } + + public void setLanguage(String language) { + this.language = language; + } + + public void setRelaunchIfRunning(boolean relaunchIfRunning) { + this.relaunchIfRunning = relaunchIfRunning; + } + + public static Creator CREATOR = new AutoCreator(LaunchOptions.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/common/images/WebImage.java b/play-services-api/src/main/java/com/google/android/gms/common/images/WebImage.java new file mode 100644 index 00000000..58e29863 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/common/images/WebImage.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 µg Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.common.images; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class WebImage extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(WebImage.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java index 252a360f..a65e782d 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java @@ -16,17 +16,135 @@ package com.google.android.gms.maps.model; +import android.graphics.Color; + import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.ArrayList; +import java.util.List; /** * Defines options for a polygon. - * TODO + * TODO: Docs */ @PublicApi public class PolygonOptions extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(value = 2, subClass = LatLng.class) + private List points = new ArrayList(); + @SafeParceled(value = 3, subClass = LatLng.class, useClassLoader = true) + private List> holes = new ArrayList>(); + @SafeParceled(4) + private float strokeWidth = 10; + @SafeParceled(5) + private int strokeColor = Color.BLACK; + @SafeParceled(6) + private int fillColor = Color.TRANSPARENT; + @SafeParceled(7) + private float zIndex = 0; + @SafeParceled(8) + private boolean visible = true; + @SafeParceled(9) + private boolean geodesic = false; + + /** + * Creates polygon options. + */ public PolygonOptions() { } + public PolygonOptions add(LatLng point) { + points.add(point); + return this; + } + + public PolygonOptions add(LatLng... points) { + for (LatLng point : points) { + this.points.add(point); + } + return this; + } + + public PolygonOptions add(Iterable points) { + for (LatLng point : points) { + this.points.add(point); + } + return this; + } + + public PolygonOptions addHole(Iterable points) { + ArrayList hole = new ArrayList(); + for (LatLng point : points) { + hole.add(point); + } + holes.add(hole); + return this; + } + + public PolygonOptions fillColor(int color) { + this.fillColor = color; + return this; + } + + public PolygonOptions geodesic(boolean geodesic) { + this.geodesic = geodesic; + return this; + } + + public int getFillColor() { + return fillColor; + } + + public List> getHoles() { + return holes; + } + + public List getPoints() { + return points; + } + + public int getStrokeColor() { + return strokeColor; + } + + public float getStrokeWidth() { + return strokeWidth; + } + + public float getZIndex() { + return zIndex; + } + + public boolean isGeodesic() { + return geodesic; + } + + public boolean isVisible() { + return visible; + } + + public PolygonOptions strokeColor(int color) { + this.strokeColor = color; + return this; + } + + public PolygonOptions strokeWidth(float width) { + this.strokeWidth = width; + return this; + } + + public PolygonOptions visible(boolean visible) { + this.visible = visible; + return this; + } + + public PolygonOptions zIndex(float zIndex) { + this.zIndex = zIndex; + return this; + } + public static Creator CREATOR = new AutoCreator(PolygonOptions.class); } From 9f3ff53e69ad7d31557689176d4dbab55ff4873f Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 28 Sep 2015 18:30:12 +0200 Subject: [PATCH 061/170] Update copyright --- play-services-api/build.gradle | 2 +- play-services-api/gradle-mvn-push.gradle | 114 ------------------ play-services-api/gradle.properties | 16 +++ .../src/main/AndroidManifest.xml | 16 +++ .../gms/appdatasearch/CorpusStatus.java | 2 +- .../android/gms/appdatasearch/PIMEUpdate.java | 2 +- .../gms/appdatasearch/PIMEUpdateResponse.java | 2 +- .../gms/appdatasearch/QuerySpecification.java | 2 +- .../RequestIndexingSpecification.java | 2 +- .../gms/appdatasearch/SearchResults.java | 2 +- .../appdatasearch/SuggestSpecification.java | 2 +- .../gms/appdatasearch/SuggestionResults.java | 2 +- .../android/gms/appdatasearch/UsageInfo.java | 2 +- .../android/gms/auth/AccountChangeEvent.java | 16 +++ .../gms/auth/AccountChangeEventsRequest.java | 2 +- .../gms/auth/AccountChangeEventsResponse.java | 2 +- .../firstparty/dataservice/TokenRequest.java | 16 +++ .../firstparty/dataservice/TokenResponse.java | 16 +++ .../firstparty/proximity/data/Permit.java | 16 +++ .../android/gms/cast/ApplicationMetadata.java | 2 +- .../google/android/gms/cast/CastDevice.java | 2 +- .../android/gms/cast/LaunchOptions.java | 2 +- .../com/google/android/gms/common/Scopes.java | 16 +++ .../android/gms/common/api/AccountInfo.java | 16 +++ .../gms/common/api/CommonStatusCodes.java | 2 +- .../google/android/gms/common/api/Result.java | 16 +++ .../google/android/gms/common/api/Scope.java | 16 +++ .../google/android/gms/common/api/Status.java | 16 +++ .../android/gms/common/data/DataHolder.java | 16 +++ .../android/gms/common/data/Freezable.java | 2 +- .../android/gms/common/images/WebImage.java | 2 +- .../common/internal/GetServiceRequest.java | 2 +- .../internal/ValidateAccountRequest.java | 2 +- .../common/server/FavaDiagnosticsEntity.java | 2 +- .../metadata/internal/MetadataBundle.java | 16 +++ .../android/gms/dynamic/ObjectWrapper.java | 4 +- .../android/gms/fitness/data/DataPoint.java | 16 +++ .../android/gms/fitness/data/Device.java | 16 +++ .../android/gms/fitness/data/Field.java | 16 +++ .../android/gms/fitness/data/Value.java | 16 +++ .../identity/accounts/api/AccountData.java | 16 +++ .../intents/model/CountrySpecification.java | 16 +++ .../identity/intents/model/UserAddress.java | 16 +++ .../google/android/gms/location/Geofence.java | 4 +- .../gms/location/GeofencingRequest.java | 16 +++ .../android/gms/location/LocationRequest.java | 16 +++ .../android/gms/location/LocationStatus.java | 16 +++ .../gms/location/internal/ClientIdentity.java | 16 +++ .../internal/LocationRequestInternal.java | 16 +++ .../location/places/AutocompleteFilter.java | 16 +++ .../location/places/NearbyAlertRequest.java | 16 +++ .../gms/location/places/PlaceFilter.java | 16 +++ .../gms/location/places/PlaceReport.java | 16 +++ .../gms/location/places/PlaceRequest.java | 16 +++ .../gms/location/places/UserAddedPlace.java | 16 +++ .../gms/location/places/UserDataType.java | 16 +++ .../places/internal/PlacesParams.java | 16 +++ .../location/reporting/ReportingState.java | 2 +- .../android/gms/maps/GoogleMapOptions.java | 4 +- .../gms/maps/StreetViewPanoramaOptions.java | 16 +++ .../android/gms/maps/internal/Point.java | 16 +++ .../gms/maps/model/BitmapDescriptor.java | 4 +- .../gms/maps/model/CameraPosition.java | 4 +- .../android/gms/maps/model/CircleOptions.java | 4 +- .../gms/maps/model/GroundOverlayOptions.java | 4 +- .../google/android/gms/maps/model/LatLng.java | 4 +- .../android/gms/maps/model/LatLngBounds.java | 4 +- .../android/gms/maps/model/MarkerOptions.java | 4 +- .../gms/maps/model/PolygonOptions.java | 4 +- .../gms/maps/model/PolylineOptions.java | 4 +- .../maps/model/StreetViewPanoramaCamera.java | 16 +++ .../maps/model/StreetViewPanoramaLink.java | 16 +++ .../model/StreetViewPanoramaLocation.java | 16 +++ .../model/StreetViewPanoramaOrientation.java | 16 +++ .../google/android/gms/maps/model/Tile.java | 16 +++ .../gms/maps/model/TileOverlayOptions.java | 4 +- .../android/gms/maps/model/TileProvider.java | 16 +++ .../android/gms/maps/model/VisibleRegion.java | 4 +- .../android/gms/maps/model/package-info.java | 16 +++ .../gms/people/model/AccountMetadata.java | 2 +- .../gms/playlog/internal/LogEvent.java | 2 +- .../playlog/internal/PlayLoggerContext.java | 2 +- .../gms/plus/internal/PlusCommonExtras.java | 16 +++ .../gms/plus/internal/PlusSession.java | 16 +++ .../model/smart_profile/CardsRequest.java | 16 +++ .../model/smart_profile/CardsResponse.java | 16 +++ .../PeopleForProfilesRequest.java | 16 +++ .../PeopleForProfilesResponse.java | 16 +++ .../android/gms/plus/model/posts/Comment.java | 16 +++ .../android/gms/plus/model/posts/Post.java | 16 +++ .../gms/plus/model/posts/Settings.java | 16 +++ .../search/corpora/ClearCorpusRequest.java | 2 +- .../search/corpora/GetCorpusInfoRequest.java | 2 +- .../corpora/GetCorpusStatusRequest.java | 2 +- .../corpora/GetCorpusStatusResponse.java | 2 +- .../corpora/RequestIndexingRequest.java | 2 +- .../corpora/RequestIndexingResponse.java | 2 +- .../gms/search/queries/QueryRequest.java | 2 +- .../gms/search/queries/QueryResponse.java | 2 +- .../google/android/gms/wearable/Asset.java | 2 +- .../gms/wearable/ConnectionConfiguration.java | 16 +++ .../google/android/gms/wearable/DataItem.java | 2 +- .../android/gms/wearable/DataItemAsset.java | 2 +- .../com/google/android/gms/wearable/Node.java | 2 +- .../gms/wearable/WearableStatusCodes.java | 2 +- .../wearable/internal/AddListenerRequest.java | 2 +- .../internal/CapabilityInfoParcelable.java | 2 +- .../internal/ChannelEventParcelable.java | 2 +- .../internal/DataItemAssetParcelable.java | 2 +- .../wearable/internal/DataItemParcelable.java | 2 +- .../internal/DeleteDataItemsResponse.java | 2 +- .../wearable/internal/GetConfigResponse.java | 2 +- .../wearable/internal/GetConfigsResponse.java | 2 +- .../internal/GetConnectedNodesResponse.java | 2 +- .../internal/GetDataItemResponse.java | 2 +- .../internal/GetFdForAssetResponse.java | 2 +- .../internal/GetLocalNodeResponse.java | 2 +- .../internal/MessageEventParcelable.java | 2 +- .../gms/wearable/internal/NodeParcelable.java | 2 +- .../gms/wearable/internal/PutDataRequest.java | 2 +- .../wearable/internal/PutDataResponse.java | 2 +- .../internal/RemoveListenerRequest.java | 2 +- .../internal/SendMessageResponse.java | 2 +- .../internal/StorageInfoResponse.java | 2 +- .../java/org/microg/gms/common/Constants.java | 16 +++ .../java/org/microg/gms/common/PublicApi.java | 2 +- .../java/org/microg/gms/common/Services.java | 2 +- 127 files changed, 935 insertions(+), 201 deletions(-) delete mode 100644 play-services-api/gradle-mvn-push.gradle diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index c5c36494..b5fa30b8 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/gradle-mvn-push.gradle b/play-services-api/gradle-mvn-push.gradle deleted file mode 100644 index f5f4129c..00000000 --- a/play-services-api/gradle-mvn-push.gradle +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2013 Chris Banes - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -apply plugin: 'maven' -apply plugin: 'signing' - -def isReleaseBuild() { - return VERSION_NAME.contains("SNAPSHOT") == false -} - -def getReleaseRepositoryUrl() { - return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL - : "https://oss.sonatype.org/service/local/staging/deploy/maven2/" -} - -def getSnapshotRepositoryUrl() { - return hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL - : "https://oss.sonatype.org/content/repositories/snapshots/" -} - -def getRepositoryUsername() { - return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : "" -} - -def getRepositoryPassword() { - return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : "" -} - -afterEvaluate { project -> - uploadArchives { - repositories { - mavenDeployer { - beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } - - pom.groupId = GROUP - pom.artifactId = POM_ARTIFACT_ID - pom.version = VERSION_NAME - - repository(url: getReleaseRepositoryUrl()) { - authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) - } - snapshotRepository(url: getSnapshotRepositoryUrl()) { - authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) - } - - pom.project { - name POM_NAME - packaging POM_PACKAGING - description POM_DESCRIPTION - url POM_URL - - scm { - url POM_SCM_URL - connection POM_SCM_CONNECTION - developerConnection POM_SCM_DEV_CONNECTION - } - - licenses { - license { - name POM_LICENCE_NAME - url POM_LICENCE_URL - distribution POM_LICENCE_DIST - } - } - - developers { - developer { - id POM_DEVELOPER_ID - name POM_DEVELOPER_NAME - } - } - } - } - } - } - - signing { - required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } - sign configurations.archives - } - - task androidJavadocs(type: Javadoc) { - source = android.sourceSets.main.java.srcDirs - classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) - } - - task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) { - classifier = 'javadoc' - from androidJavadocs.destinationDir - } - - task androidSourcesJar(type: Jar) { - classifier = 'sources' - from android.sourceSets.main.java.sourceFiles - } - - artifacts { - archives androidSourcesJar - archives androidJavadocsJar - } -} diff --git a/play-services-api/gradle.properties b/play-services-api/gradle.properties index 263c3740..f547fef2 100644 --- a/play-services-api/gradle.properties +++ b/play-services-api/gradle.properties @@ -1,3 +1,19 @@ +# +# Copyright 2013-2015 microG Project Team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + POM_NAME=GmsApi POM_DESCRIPTION=Interfaces and objects for IPC between Play Services Library and Play Services Core diff --git a/play-services-api/src/main/AndroidManifest.xml b/play-services-api/src/main/AndroidManifest.xml index 52b6af60..6e6ebf08 100644 --- a/play-services-api/src/main/AndroidManifest.xml +++ b/play-services-api/src/main/AndroidManifest.xml @@ -1,4 +1,20 @@ + + diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java index 59208421..39cfeb98 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdate.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdate.java index d42634b5..fc3aa09a 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdate.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdate.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java index f82c8656..8e765504 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/QuerySpecification.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/QuerySpecification.java index b45e8744..ea2e88f8 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/QuerySpecification.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/QuerySpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/RequestIndexingSpecification.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/RequestIndexingSpecification.java index ca32c018..55cceb01 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/RequestIndexingSpecification.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/RequestIndexingSpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SearchResults.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SearchResults.java index 6f3619a9..567914d7 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SearchResults.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SearchResults.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java index 0c224091..66984162 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java index 8b51c8aa..159c3d3d 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java index adb7e2b3..6ed3ab34 100644 --- a/play-services-api/src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java +++ b/play-services-api/src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEvent.java b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEvent.java index b7b5269f..e745c838 100644 --- a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEvent.java +++ b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEvent.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.auth; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java index 323bd223..abca68a4 100644 --- a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java index 1aebe5bf..f424e473 100644 --- a/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEventsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java index 1388bbdc..f9325a0d 100644 --- a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.auth.firstparty.dataservice; public class TokenRequest { diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java index 3b1b22ac..d0285d6e 100644 --- a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.auth.firstparty.dataservice; public class TokenResponse { diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/proximity/data/Permit.java b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/proximity/data/Permit.java index fcd07ddd..88153f4d 100644 --- a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/proximity/data/Permit.java +++ b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/proximity/data/Permit.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.auth.firstparty.proximity.data; public class Permit { diff --git a/play-services-api/src/main/java/com/google/android/gms/cast/ApplicationMetadata.java b/play-services-api/src/main/java/com/google/android/gms/cast/ApplicationMetadata.java index 46cf7751..67ddc104 100644 --- a/play-services-api/src/main/java/com/google/android/gms/cast/ApplicationMetadata.java +++ b/play-services-api/src/main/java/com/google/android/gms/cast/ApplicationMetadata.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/cast/CastDevice.java b/play-services-api/src/main/java/com/google/android/gms/cast/CastDevice.java index 22ab65c8..6645c95e 100644 --- a/play-services-api/src/main/java/com/google/android/gms/cast/CastDevice.java +++ b/play-services-api/src/main/java/com/google/android/gms/cast/CastDevice.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/cast/LaunchOptions.java b/play-services-api/src/main/java/com/google/android/gms/cast/LaunchOptions.java index 3a550360..08e9268e 100644 --- a/play-services-api/src/main/java/com/google/android/gms/cast/LaunchOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/cast/LaunchOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/common/Scopes.java b/play-services-api/src/main/java/com/google/android/gms/common/Scopes.java index bbc0f55f..68c09de3 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/Scopes.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/Scopes.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.common; public class Scopes { diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java b/play-services-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java index ad7e899b..109be301 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.common.api; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java b/play-services-api/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java index 402d501e..aee720c4 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/Result.java b/play-services-api/src/main/java/com/google/android/gms/common/api/Result.java index 394234d0..2b24dd63 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/api/Result.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/api/Result.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.common.api; import org.microg.gms.common.PublicApi; diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java b/play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java index 5334f1e5..cc2cf6a9 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.common.api; import org.microg.gms.common.PublicApi; diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/Status.java b/play-services-api/src/main/java/com/google/android/gms/common/api/Status.java index cb918f5b..480ea072 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/api/Status.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/api/Status.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.common.api; import android.app.PendingIntent; diff --git a/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java b/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java index e3bc9c1d..bd1efdcb 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.common.data; import android.annotation.SuppressLint; diff --git a/play-services-api/src/main/java/com/google/android/gms/common/data/Freezable.java b/play-services-api/src/main/java/com/google/android/gms/common/data/Freezable.java index a6d69d46..78b66ff5 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/data/Freezable.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/data/Freezable.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/common/images/WebImage.java b/play-services-api/src/main/java/com/google/android/gms/common/images/WebImage.java index 58e29863..57d775dd 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/images/WebImage.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/images/WebImage.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java b/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java index 80bbc234..9633516d 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java b/play-services-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java index 88587e7a..a294b8b2 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java b/play-services-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java index b63d8f79..1efefe58 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/metadata/internal/MetadataBundle.java b/play-services-api/src/main/java/com/google/android/gms/drive/metadata/internal/MetadataBundle.java index 538defa0..a3cdf3bf 100644 --- a/play-services-api/src/main/java/com/google/android/gms/drive/metadata/internal/MetadataBundle.java +++ b/play-services-api/src/main/java/com/google/android/gms/drive/metadata/internal/MetadataBundle.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.drive.metadata.internal; public class MetadataBundle { diff --git a/play-services-api/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java b/play-services-api/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java index 04a5e582..9e53e1da 100644 --- a/play-services-api/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java +++ b/play-services-api/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2014 μg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/play-services-api/src/main/java/com/google/android/gms/fitness/data/DataPoint.java b/play-services-api/src/main/java/com/google/android/gms/fitness/data/DataPoint.java index e81a0172..638d69b0 100644 --- a/play-services-api/src/main/java/com/google/android/gms/fitness/data/DataPoint.java +++ b/play-services-api/src/main/java/com/google/android/gms/fitness/data/DataPoint.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.fitness.data; public class DataPoint { diff --git a/play-services-api/src/main/java/com/google/android/gms/fitness/data/Device.java b/play-services-api/src/main/java/com/google/android/gms/fitness/data/Device.java index 173f134f..e4ecc867 100644 --- a/play-services-api/src/main/java/com/google/android/gms/fitness/data/Device.java +++ b/play-services-api/src/main/java/com/google/android/gms/fitness/data/Device.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.fitness.data; public class Device { diff --git a/play-services-api/src/main/java/com/google/android/gms/fitness/data/Field.java b/play-services-api/src/main/java/com/google/android/gms/fitness/data/Field.java index ee2211d4..1fe541c9 100644 --- a/play-services-api/src/main/java/com/google/android/gms/fitness/data/Field.java +++ b/play-services-api/src/main/java/com/google/android/gms/fitness/data/Field.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.fitness.data; public class Field { diff --git a/play-services-api/src/main/java/com/google/android/gms/fitness/data/Value.java b/play-services-api/src/main/java/com/google/android/gms/fitness/data/Value.java index 91cd4b78..70135548 100644 --- a/play-services-api/src/main/java/com/google/android/gms/fitness/data/Value.java +++ b/play-services-api/src/main/java/com/google/android/gms/fitness/data/Value.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.fitness.data; public class Value { diff --git a/play-services-api/src/main/java/com/google/android/gms/identity/accounts/api/AccountData.java b/play-services-api/src/main/java/com/google/android/gms/identity/accounts/api/AccountData.java index 993f6417..8c50d6a2 100644 --- a/play-services-api/src/main/java/com/google/android/gms/identity/accounts/api/AccountData.java +++ b/play-services-api/src/main/java/com/google/android/gms/identity/accounts/api/AccountData.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.identity.accounts.api; public class AccountData { diff --git a/play-services-api/src/main/java/com/google/android/gms/identity/intents/model/CountrySpecification.java b/play-services-api/src/main/java/com/google/android/gms/identity/intents/model/CountrySpecification.java index 1c9fe39b..1c02f8c2 100644 --- a/play-services-api/src/main/java/com/google/android/gms/identity/intents/model/CountrySpecification.java +++ b/play-services-api/src/main/java/com/google/android/gms/identity/intents/model/CountrySpecification.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.identity.intents.model; public class CountrySpecification { diff --git a/play-services-api/src/main/java/com/google/android/gms/identity/intents/model/UserAddress.java b/play-services-api/src/main/java/com/google/android/gms/identity/intents/model/UserAddress.java index 3595f666..5b574221 100644 --- a/play-services-api/src/main/java/com/google/android/gms/identity/intents/model/UserAddress.java +++ b/play-services-api/src/main/java/com/google/android/gms/identity/intents/model/UserAddress.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.identity.intents.model; public class UserAddress { diff --git a/play-services-api/src/main/java/com/google/android/gms/location/Geofence.java b/play-services-api/src/main/java/com/google/android/gms/location/Geofence.java index 5b02f833..c48aef56 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/Geofence.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/Geofence.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2014 μg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/play-services-api/src/main/java/com/google/android/gms/location/GeofencingRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/GeofencingRequest.java index 73f955d8..2c9fb176 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/GeofencingRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/GeofencingRequest.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.location; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java index b5249b3e..41660fac 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.location; import android.os.SystemClock; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java index 7fcd9079..9e3e77a8 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.location; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java b/play-services-api/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java index afb034ba..7c707529 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.location.internal; public class ClientIdentity { diff --git a/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java b/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java index 6bd6108e..c7eb2e15 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.location.internal; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java b/play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java index a0d85e33..c0816ac1 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.location.places; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java index add70cce..35c05ddc 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.location.places; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceFilter.java b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceFilter.java index 57bebb51..e0c27975 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceFilter.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceFilter.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.location.places; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java index eaef07eb..77c230e7 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.location.places; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceRequest.java index 6817f7d1..9b1f7d64 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceRequest.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.location.places; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java b/play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java index 2b46a618..ba26477a 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.location.places; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/UserDataType.java b/play-services-api/src/main/java/com/google/android/gms/location/places/UserDataType.java index cb253f68..67da13e8 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/UserDataType.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/UserDataType.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.location.places; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java b/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java index fce36072..f131094e 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.location.places.internal; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java b/play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java index f30b7c10..bca2b791 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java index e7521751..7e24955c 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2014 μg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/StreetViewPanoramaOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/StreetViewPanoramaOptions.java index 3d1810c4..19ecb9a9 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/StreetViewPanoramaOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/StreetViewPanoramaOptions.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.maps; public class StreetViewPanoramaOptions { diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/internal/Point.java b/play-services-api/src/main/java/com/google/android/gms/maps/internal/Point.java index 43ada12e..b3454104 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/internal/Point.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/internal/Point.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.maps.internal; public class Point { diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/BitmapDescriptor.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/BitmapDescriptor.java index 9b45597b..4815cbb0 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/BitmapDescriptor.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/BitmapDescriptor.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2014 μg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/CameraPosition.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/CameraPosition.java index d2efd7e1..3ceb21f5 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/CameraPosition.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/CameraPosition.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2014 μg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/CircleOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/CircleOptions.java index 4f528850..29a17b1e 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/CircleOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/CircleOptions.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2014 μg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java index 920c43a7..086916b5 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/GroundOverlayOptions.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2014 μg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java index 8bd58e9d..8339202b 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2014 μg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java index 648ccf7b..0c44d95f 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2014 μg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/MarkerOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/MarkerOptions.java index 79a49d87..59bb805a 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/MarkerOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/MarkerOptions.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2014 μg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java index a65e782d..92c42a1a 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/PolygonOptions.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2014 μg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java index a42fac5f..dc3db1f0 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/PolylineOptions.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2014 μg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java index 585fc072..285018aa 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaCamera.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.maps.model; import org.microg.gms.common.PublicApi; diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLink.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLink.java index 88cf0542..b3bb524f 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLink.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLink.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.maps.model; import org.microg.gms.common.PublicApi; diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java index 75422e12..0c1ffb25 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaLocation.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.maps.model; import org.microg.gms.common.PublicApi; diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java index 9b77f9b4..e0d2df12 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/StreetViewPanoramaOrientation.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.maps.model; import org.microg.gms.common.PublicApi; diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/Tile.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/Tile.java index 5063bcdf..b5ac4730 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/Tile.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/Tile.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.maps.model; import org.microg.gms.common.PublicApi; diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java index 70c967ec..88d9334a 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/TileOverlayOptions.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2014 μg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/TileProvider.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/TileProvider.java index 21eaaadc..d20bf2d2 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/TileProvider.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/TileProvider.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.maps.model; /** diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/VisibleRegion.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/VisibleRegion.java index 105c1089..0e418ecf 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/VisibleRegion.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/VisibleRegion.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2014 μg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/package-info.java b/play-services-api/src/main/java/com/google/android/gms/maps/model/package-info.java index de5998b2..fa64f30b 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/model/package-info.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/model/package-info.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Contains the Google Maps Android API model classes. */ diff --git a/play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java b/play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java index f62e3eb0..f14fcc56 100644 --- a/play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java +++ b/play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java index 96758caf..dbc38c20 100644 --- a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java +++ b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/LogEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java index f524b62c..ce6818db 100644 --- a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java +++ b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/plus/internal/PlusCommonExtras.java b/play-services-api/src/main/java/com/google/android/gms/plus/internal/PlusCommonExtras.java index b8735781..2f4893ac 100644 --- a/play-services-api/src/main/java/com/google/android/gms/plus/internal/PlusCommonExtras.java +++ b/play-services-api/src/main/java/com/google/android/gms/plus/internal/PlusCommonExtras.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.plus.internal; public class PlusCommonExtras { diff --git a/play-services-api/src/main/java/com/google/android/gms/plus/internal/PlusSession.java b/play-services-api/src/main/java/com/google/android/gms/plus/internal/PlusSession.java index d8b6c9a1..efed1606 100644 --- a/play-services-api/src/main/java/com/google/android/gms/plus/internal/PlusSession.java +++ b/play-services-api/src/main/java/com/google/android/gms/plus/internal/PlusSession.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.plus.internal; public class PlusSession { diff --git a/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java b/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java index 2237e011..dab078f0 100644 --- a/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.plus.internal.model.smart_profile; public class CardsRequest { diff --git a/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java b/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java index c6f3f23a..219f0030 100644 --- a/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.plus.internal.model.smart_profile; public class CardsResponse { diff --git a/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java b/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java index 7f4374c3..bd4e9fcf 100644 --- a/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.plus.internal.model.smart_profile; public class PeopleForProfilesRequest { diff --git a/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java b/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java index 28bc9b79..eea61723 100644 --- a/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.plus.internal.model.smart_profile; public class PeopleForProfilesResponse { diff --git a/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Comment.java b/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Comment.java index 34b179a5..6901aed0 100644 --- a/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Comment.java +++ b/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Comment.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.plus.model.posts; public class Comment { diff --git a/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Post.java b/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Post.java index 68d73f26..3bcd6450 100644 --- a/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Post.java +++ b/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Post.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.plus.model.posts; public class Post { diff --git a/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Settings.java b/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Settings.java index 943d0ced..877aacea 100644 --- a/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Settings.java +++ b/play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Settings.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.plus.model.posts; public class Settings { diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/ClearCorpusRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/ClearCorpusRequest.java index 9bd5d83b..1c4843be 100644 --- a/play-services-api/src/main/java/com/google/android/gms/search/corpora/ClearCorpusRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/ClearCorpusRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusInfoRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusInfoRequest.java index bdc842ff..8f27b0a1 100644 --- a/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusInfoRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusInfoRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusRequest.java index d1a93896..8e35527b 100644 --- a/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusResponse.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusResponse.java index bbccbec9..7a96d775 100644 --- a/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/GetCorpusStatusResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingRequest.java index b0f2b460..5920b5cc 100644 --- a/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingResponse.java b/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingResponse.java index 7490f988..fc428b55 100644 --- a/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/search/corpora/RequestIndexingResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryRequest.java index 4ac607de..24affd75 100644 --- a/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryResponse.java b/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryResponse.java index e97779f1..3f567097 100644 --- a/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/search/queries/QueryResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java b/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java index 03480221..92e51be3 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java b/play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java index aebd7d49..eb707a9a 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.android.gms.wearable; import org.microg.safeparcel.AutoSafeParcelable; diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/DataItem.java b/play-services-api/src/main/java/com/google/android/gms/wearable/DataItem.java index 9acb48f8..da1a28e0 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/DataItem.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/DataItem.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/DataItemAsset.java b/play-services-api/src/main/java/com/google/android/gms/wearable/DataItemAsset.java index 70057975..0dde17d8 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/DataItemAsset.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/DataItemAsset.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/Node.java b/play-services-api/src/main/java/com/google/android/gms/wearable/Node.java index f52fe4df..00ed1a47 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/Node.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/Node.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java b/play-services-api/src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java index 13cc75d2..6f5549d4 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java index 9e928948..173c2be7 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java index 92fe8ad9..cdc5d6c4 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java index e7eb9c9a..b562032b 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java index f0ec6160..c6fc8768 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java index 9fc7b528..1d6bef63 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.java index 220fba4d..d6dc0b0b 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigResponse.java index b2923e6a..e0ed7e6e 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigsResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigsResponse.java index 37a16066..8d853489 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigsResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java index cf6e1781..ae25d65d 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetDataItemResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetDataItemResponse.java index 3b1d89c5..cd2d5b02 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetDataItemResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetDataItemResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java index 19294116..4b75d203 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetLocalNodeResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetLocalNodeResponse.java index 601d23db..ffe8af17 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetLocalNodeResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetLocalNodeResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java index 4dd4ef7f..ef4ffc48 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java index 6d9e071d..d1728692 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java index 56e0abb5..97559a8a 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataResponse.java index ef04746e..f722d5c5 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/RemoveListenerRequest.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/RemoveListenerRequest.java index ed19d18b..487bbe58 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/RemoveListenerRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/RemoveListenerRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java index 03f46d5f..f54fd04f 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/StorageInfoResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/StorageInfoResponse.java index d96fd391..755810e5 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/StorageInfoResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/StorageInfoResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/org/microg/gms/common/Constants.java b/play-services-api/src/main/java/org/microg/gms/common/Constants.java index d2ac6ddf..7e652d6a 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Constants.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Constants.java @@ -1,3 +1,19 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.microg.gms.common; public class Constants { diff --git a/play-services-api/src/main/java/org/microg/gms/common/PublicApi.java b/play-services-api/src/main/java/org/microg/gms/common/PublicApi.java index 94f84583..abbb8f1b 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/PublicApi.java +++ b/play-services-api/src/main/java/org/microg/gms/common/PublicApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-api/src/main/java/org/microg/gms/common/Services.java b/play-services-api/src/main/java/org/microg/gms/common/Services.java index 01a24ecf..7173d02c 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Services.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Services.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From 500032ab2a470cbe0214d8d8ca082add3402545c Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Mon, 28 Sep 2015 18:31:31 +0200 Subject: [PATCH 062/170] Add Gradle wrapper --- .gitignore | 2 - gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 49896 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 164 +++++++++++++++++++++++ 4 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100755 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew diff --git a/.gitignore b/.gitignore index bf3b44e9..7e94e073 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,4 @@ out/ build/ *.iml local.properties -gradle/ -gradlew .gradle/ diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8c0fb64a8698b08ecc4158d828ca593c4928e9dd GIT binary patch literal 49896 zcmWIWW@h1HVBp|j;I(dXVqjokU;+^g3=EtM3=F=mA&$D9es22A45$h(?|2~S$H2gl z!N9;Ef~?Tj(a+P(H8@1i*X^_KnbSVrx_TFRy>+$DojJcb$l!|cgQuU)=$`OA>w8w) zQ-_i3Ra?rmCrhF`nSK-Z^|pBjqFp<|@cUTj*8SmV- z&*YWH?A5vwYAvm$UE1ngx|Oe8V!e;o*RSqja4Irz+tn*}&)eU_TI%{Cjk;YSM)@3{ z?I)B-3fR^xmv6bC#N*^9!6x6{dziOWSGE={l)3htYY<~%U?^Z=U~nPe$KcB1lGNOQ zqWpr?qLR$i;(((3ib}`Ql8n^6lFa19lKdh_AS?~8&lhqOsO6q=_;JR^kPX+oa|V@>`2QDwX15&I!`i5TNLkAuI`?azx4kNH(~n*`BN6$A)J$v9{t^DY@L7a z%7j5;N1JLASj zKIcR~rRJUT-%^72eECvglpf&ey>Y@prK>ZPyAwAq4%vR?s(YO@XXb->twJ%on(Yrr zhAUgMof3QZxbfYG3kQ_j?*5n7bAGq|lxD)$JDdh7?Jo1#bIY%^E3SQ?c_sJ2hNoB5 zgQk3GDqH%ayyM}?o+I^3(v~NyIJIu&n;xoZ+38_%^stn3om=DDx?~XzC)V)Ai1O z=FYV^+BA1dZ}5_R4-Rpj@eh6~CH(Z$;v$x`g4~#Qnm2DmaL-<=YVIYGeeoXGI{wVn zhyO_L@VTa@->al|@JQ&U6U*ut1K`CFDCa(Z6H&a1fq~&R0|SE+_H^e7%UqCD<=T6Y z>yQCY+y65!pNRE@sDoFLB$A%)G2$mDtT@mp{-hWIa`q;`E5^E z*BWkI@x8@y%b&=zubmG?%$~BeO+9GCsSk?;+DxSmeMr{d>2>qllmYA{KKx*SqxXjW0Rx57aZG`t-Jks}?I81495e1A{SkpSo5g=ad#_mZiF7=A=3% zC#Mz{`zGckrl&$P)YLHV0+CP=Tm6}5^ktbCnV1>d8jLtwI+d6vceG7(NDw;F?!dq~ z*Hb<7(o4DODxpXJ+v`8>-gwH^d#RU@f!IVXZ|~EsdYa~WYl;>=Z7NEh`l#~m zv#-CuTW`_!&!F%&i<>| zo%}kjey)S(C8N!KSyppbO}xzF)MvLO(sH?_w!$oyX(>8~GmK=<%7yW2e!2d7*}FHQ z8eOKQp`~0uCWYzqdI#@Xx%Ej~mC0`Bw}vK?=e<_DEzf%WX^!}>IgE4T9%-I_*Z=)? z*7}7<-E&MQUwrf9-{(x_=~vsgy4}4XbtzMKc5ayO*7(hwSJv-hYHXV^y*=;f(zv>i6=TrLyb4tT`KnTwk{D%IJNEa1B2tvM^YkQIyQ3oUtaR~ zOGDPISrbc@4SF4KaV(0rJS=%JOVWM2Po!(ET1i;0naj*=vr;>F|1*avXl$(Tn|5o} z&1~Mv)(XVyK}PV(?I|BnbSQlSqE&dDa&^=4*q+yro82=tZZp@rhL}*-@aE* z-ZaTv_uk`-{-=A@S(Be{?^=CelVa%>cWirg3 zRx)dQ;QLBfS?ycLKXA_4`_Qq@xM91Ab!@4r!9b>q+LpJG4t zPF;TyG0!96a#PK`ryiFIGd6^8->mmz^5#uh@@K7X3EZ5!eBYaZ&3O{LmY*>cNs~Ic zQhiUM*5utbk4no!6JlkmO`i5```TS~nt!{bgEgCn$hB1(*%?u7EPb+*W`-V_^)75> zP*eVklTmKxF7~ZD$B_QiY3sW=PJ3@CB-rq&CFf}`SN}fi=;ee%+tMXZp#+2U#4S_Re}8HgDI8 z;1l_oUoBj|-qO}sv2I7xq0{R=nq5D0yj1zRSIdhk&bikEgub5HAX|9g?n#3~cTYO7 z-nstC->s1+xL{g6lZZoz&w=Y(OL<&{Ka}?>AIL4>S-8nyx}iwFbLPs2Zza6?x?B8J zy4EF~)Z6dDqI@v_;tA)S`+pUS#01#?V%e=0a4R%;TZznRp?w|sJgJ?FIDDt?zO}u+ z=R$?+k>jmut>WvFo-VyDe98YT%c;WdHr>-X|8Bl+-2vS-&;L#P{WNmQiR!>tb=-I5VpHM|%nIN1>1s|M@Aas4);H(g zy|eU2yKsfT-5ZT|UhE$YjBXqa+&?>cmz?+q4rOzLGNJgQu=@_m`;IZzv^V$M@0x$X zjm7iNq22M7-=*LGdvI4*=1{yvPyGa;)(pi(VH=xvO_E=Ja@yP-=T=zHxSr?pKyhC4 zmH4wSc55h0FS~L0Zr+=TZyxG3T5Vb;R4;r}E-j+jzB6B6GNSwbM-4e=!HrEdvo76t z|GVV$jpLpb|E@hbS=)7=Y5JY}3zqznTEsN{fp_e(8}3Ji#I7h;TE;RR*L=I^k4e7Y zq!;OTTu!ar+;X3pGnpk0flkq# zvrl>Uyw#>~C{8c6=puT^WZ-g3jJivG6@s0OC z@3CK(WD`5;pmTQP;=e1+bzYhNlifN&U+d*%(;MZ`S__ zoIzV8-88LcRO)^_dSv>H^UMoRWQcz#>8Wh`H|ryFN1$J?Lhck}(w@evg%bn`;ujhTXem?K!{{KHe>oc@} z+}u{yv!cS;S=P;D&ao9;=B7VXKliYSCVw)}D;L&M3-wu9;eA-GhovxVouTJB&!V{I zzLyGm85PpTm);~P-#fU}E#}znNqf}wt@W3_&o(g7_KZ0!(-JZ---XFjbXk`+7ZdZc z)LqS7uMW#z=Bjc2HYZ?1>X|J^T=Z6)|5&^m9)GT!4;o-18`u6A}!(>uf4 zo-RUthSP;6vK~K?(jwfcn;JWDUQv!*OmK?7wAfL@q^+@cg z*Js2<-e?pWyy7}ukej*Na`U`(J+pc~^@y5?nNFLrLB~mzDQX$ZhPkSbcokCBBo9Ab z8@ASG8P}o}Ci>bhf}Rxy{yw!{b_Lt&S;ijiyoSb!l6mJA_CH)M{&{9?mZA0YBd(0= z?)qn}jLTe=Y|rs`TW__W^i7rbL4~32TsgC3w|)q^@TnzilANxrnUU2x&-=Htzf5Vm z)_dUmGo9-`-9m}psbT8HX<2?|H~%Fb-#B+$>yiz(g0>mDN8WZTz5Pt`G^Z@zrb#=j zigxHRM+Iy!-OYD+>Aiyd^!6@SS??bX$9Zd3JW`gGf4r>AzodpM?W3gK^+J~T6+eQG z>z@3{6~Fq2+wtu`{EmPB;dnGx*8Y(?>)iAICP;du{@1?Xz41wbVfWl~4~r%qUHOK~ zvLNLXS6Oa{SN!HHAC3o?g;`C07;)t-XSlhyyXfkUk}XdAe+126CSUTFsascgUDy)0 z^j;1xi|3R2_A1Cv7Oy`od{03>>yBT#P0hSXL1&LkKalC>40noJ;no zeC^DtlQ~(do*C_1GI6dzcge%edzQ-deO*|-#pKt*B@d4r**a&#qeX6f(u=onP5*eD z`G$G^DXZVYeRChn2%Q}4FpLd=7lh|yY$;l{P<>um8+?>s9b0V(7w=9kZv21C=u6%FJ1sT+ z(=M8AWUEc%oxNi3&P;E)=$A>+a=x~!Z~R-4d7RnAzvTJG&x%nZUw%97YrnDdfu7&V z*bbd~{}c1wv*pfzWp`?{DZ78PG2p=TYMCSLL3x80-Lb$3f|K{@-{ zo~H)(d-DWeD1Q-Ju->lfRWj!!3+MRb9M+D<3-=r{?YRHK{FGAb2W_^3rlUL0ykG0M z$E$w5D0jq#s=2!-$4zYCVg2-N+kdo9qqbizrxZH_Lm?jngBtcSGa#`f!?CzHH8%-f zQcex~SuGtdYMbmWm1^TDb2RdemE*?AZqssBX9{ch$!^e94cnM=J^B^PtG>0JHY-gY zpPO_eKqHnZb$Kc;i^gw0y)8iT}zF{ynqrcdPI1e13Ok{r~6p ztQpQdh!^Txw1Yi;qn6|0(oVPY1;LM&={P-4ZC1}#nm1Kp;R$WE{xupo?_@cZ@;-d> z&AaBB<6+U^@BM?v-n#qwq91EI&U;qK&F_E2%BlZIb>5yci=&nH9r!D*Dsx=>PL1c0 z>8>@ZUF*GG9KF8ihm~}F^X&Xh=ff+%M2Xyg^zU|Hje6I6uOD*z&RgWUe{9yMJ7JyQ zy+irIftHPnrWnmioqcOla(0`Z!?~BcvihcqoDR}ubk{rElcKiC`}5|TGnal`SyPr- zmZxT3>FJR3XjhT5=X8<1Gv=wXSAE>mus69a?`Bt?zJ{v1=!X2Nv{xVB+=$7&zHiY= z5wBN!md<+YHdEKeeAdK$E2f4N30C@CHvQeyaLwg@Q^SQBfeM@d3eQ^SXZ1Ao>YU(d z-de}gKX7-g{CFpx=jLjuh3{q>oJqRHJ#}BER(AHPne)QlTotqmovGu?Rid!b*u?#I ze8}6mH9D$IHL>5StlpZgeKCXU_PqDi=U1rTceN`aLgp3Ad4|1_lid(pK`EkWz!yEnBB#cU~YC1)<}NLtG^q2qAP!#U=a1_}WW z{_Rb@x@pRySr@xjrE*(5lZ<@Tm7Mj>&FcP-8E+1smNw(w^7PdThQ_|i6$i7+YF%SL zYj#ECahzJaa$2u+R@vRK($lF{OLntxx^zrXzV+ux^_H(cPLy8tJAeL3nWd?*RsOUr zt9#qjo@Y;~?C%Zqnl!s%-rbuk;u{2>Pcb_u)wgreC#BBX_8zv%_MXI;359a~oj)e_ z=+x;v4zBPzrZjKDM^2whv3Xx~9;;Wx9y1Di5oW$vqI64;qiO1&DY1@7~l`ps`mW;X!R|L4177#+>A9`zP%6 zWwkhPv8lXqMOvlA-_G_#l?^8Ebv`=^N^$SI<8hYHGjDNEjIocd*I?hrj4aFH0}Eo+a^A>#^vOfJOb@Nk<~JHOzK$tFP<(v7SS z0{eDdNta!kV*2y8+K*G`Y;q&EMSb&_W5zqFVedxn39NG#_^(_1rSf{0Ukyut(}+R&CyC;w?3ntZY`M0Dc93t~rH>qOQjoflhjRO?oTTKER@ZT+*(37Cq$S-+@O zV^3~%LVIpb`&#Q)>+`#E9zICgWPC?*<)Y-xWpnggR`^~F{Izkugl&_fm5bEtiW9cC zcCha%+Y-IQC3}geO}os~MXhCb4?H%>TDsS2?h^CR&mD}o9&0l}{n9S=-|Siz+gcxYD<1l^Q0vj#k6eB^ z&$eIKEn)3xX;pgvYYmg_m+X|>j$5BI7GK^vxuVLWey>RC5m%{Y>33%w)Onksoc7GX zKcXsgPs8bVnQYlF*gr1m-q*UHt7eJ+L{sjy%A(a9nl2x{TQ1<2yDVzAw#Svq&YjCo z2J~%u@>8kM_T91m>gsGktAeAw3X_h8)?AuuUfcF#qtB)^``9Dy@%!daE&g@Lkn6_& zoAo+hN?1=;9XVWL6p(j#O6bf_H~n;ubClX@$8KE_8*%8eh;ol}K+M_`CAAiI>8<+; z|NK~g!7fc@a+hG!zuO&Z_gzk>X_-AZcPsMU#)G>(!arV6TYmI<%^RMR)<>i2E25wG z-^q8f^7o2euwuFQq9vb*rwMb z);``$Lm zy`-G^dQ0J@$JdvApKJEze_B|zN4KGy{l53J-&Z{UzxR9X@2m2AYo>OXeLmhKvebU! zv*=4T(X;GzT|cKA{raqM^`bOa?Q!QnXRkMjEZ9F`>;5Uvb~{#0-Y34~{pEPpmyW-( zGyl0Q+|L`t`gd;5-|E)70Jr}R|5seFXMHhW^w)F+(@Xo=GFAW1KJ&l2;h*!b{~<5- zH*J}Ak0Z$R?{<^_%4hjg-`2Z!{pY^WpYm+hp(O_FJ5&zH`D`%vn0-UN*Zu?-yVuSs z&0N!2S5Cgiv7u|;^pnSmBz5^eajgs35%f^&W}NJj*cjm@bN2*2yru9~kh82Pw!!(w zgV0Ml;XkG+eEpEsdYxrue>i(ZZo_p}3mKO6UzhG_%x?{gk$=GU(wu9%?P9+cox>dK^#5Z`ppb@$H4#!-Ivvwakm#`S`xb*qIb0{J7%rec@l9sm9#~ z+?qCV#+|cU)?D{llB1g_e=#Z3_P};y)G`wrIBr)(! zdSCWNM5S>0VEcKTS7fT2a+%UNr`OKQ%3xouIBTxs===Hf|p$CGO6Ko_BZu9m=?{DFd&{7JXpO~6@a^)(kO)|!lKJf}OF;@lk zEfv|_}CK72O+nxG78fj&MYODNmCA zxiva1hf0bV`5wAfe-|mb-MzVS#%d#tc5%c}wLn2MT>U+&GAcYulC zV5)?~ls>7+oM-)_e+4D$sKvYN*fk~ZyZ_6_nbBV)FRtA&(W~<;W7E+qeH`98S5lu> zUlJDHwbY&eRn!&Uvr}YEFMsg%m3v*gO!Rur?VAsJ6;C;+TefYP@O+Kn=_v~DJ*5q& z3#mW+v{X99_57rE4rcaE7B}aXwihQUFis1z%6xtCkFKNm=HF*6Ug#9tSDmeh@mBc1 z(jqa+IiV$n`LWc>#coV51*58^X7@Qd8k?>;dGgW4}H|0~GpT`bG7ur6}qj3(nr znbJBXx_Sn23PlR}aS_%!djn%XO;sx4<@|KZ=G5QLl9=<)#Gd|fnsZI>>Ac2Qp9+mF zZ6};~e1G0$&HTFZ!j&<5RJrEN)eyMlIII2)qvAKY_XlHq-bi1OxqZF7tjvg4Y`xIT znA*!P7pJTWo^|$8&dH6pbk=;^qq=(0PV4$c0tnO?rO;~kUl**DqKbG2%l>{eb9f5AGnZsxq;m&#uPr}9`W zzSRD*$xH1%XPJ5F<_XSswT@~oyi_X^yudg6_-qfrWkqfGvG0*kWX~nk*R*BMuwzHSac(?cTLfLccLmv9_uJnDlV&(Ef zoR|3?$0cODDXmdmw(;zxdQoPFXo!MH)E%b`imKbv9Ow(Pf_3Ei-%7?ZPXD6G=|A)36 z5?Z-Q_4c)WrBhR~-kDzBxPp1h72c4ef6G*sWot4VJqsTU|5l{7RdnE3!{nZvVEbX5RhPpP2tF zIQ3pwS}D`!{!*t7V#%Tp!KxvwL_ zZp2*VON#%NYWSg#J8B{Ckrj2i#iw8ERmB!Nw3k@U+g9*#vvt)$$3qzllb%0~_lS&( zI4a2Kw#t6q7D4WRoa&e69)B{)`qamzM`m@!8f16PDUCaz`FPK}1FY-0_-JBdtKjM_tQ9VblT$Be>?A7UX*llNs8jx4HMJ3U!N>Fb?x!b@XLY*Cu4p8 zHfdG{Y!Nm7Icepc&F)U?t94S3UE22UmBfa#t*=5uTO?V0PKEOXM)e(L{r>jW9uJK@ z*4IV%cXm%)RpdRheC`>x4RW$2a{1MHTut8d8icxUiib(sC1kNISWxr$_NHs^Si^Tr zRLXRmH>KTuvwh`LT@I1l;tMwIJ5E z-q~^M-i-Y2L+v5H7g-q|ZkZ-!q`TLC+3|^%3`aJ#*rlf1i96d%&*ysc(k|fd$KQA6 z8#`In>s7{=K9OGh;BAHNgAnn>s^Y6>XkJ^ZRm9aM^ua^b>Yj4h=ee7CHg-4Vuk_tA zZ&8T5OB~lkKj9-Lo$H0He5V#IKfWVq-4nn5-KW9a+pHOvEF>7ILC$r1;riWFlmQ`)YU9fe_#Go0xyO*3; zW-`%ONbrVar+})&{H4V&TEC`iIMjW)9hH`OGvG7#lB58;J7(UeckjsvFZpQ@Dfa1X zur3ZPO_%n)Xp-_F@vqHZ zagkGsKbgPOorvXqY45=Aygu~DZv{8Isw0Lvm)kc8=P&L#xzB?ut+Q=*^s^JzcfJW- zHHclbt1?P*<(jYioJs}#U%%)UnYB1{ebQI4ijS9PKE2vK-B$nNETK~wPYO+@ zyw#Xf%3)^b^tNP5mFA<2t8a?VXPLe^arWGcK!*h^>fbLXf3bLB>-cHOqcdkF&(NIs zJ?HMWO z?J4?cwuksJNCy&;bB z%{S^K_O;ga)X6-5ogo~%WPU@{c88b!$tvsKp3}NDH_(J3Yf+qMm~Htp&oh6PF!#(q zRKKSvw*BMw14~6d=QBP2I{id-<-AqOx>I?Jw-k1?KhF$4@}JAp&1S0aV!`~>&lyLq zTY2j)F1~W>DQ{)^%C)D(Kb;Nw9lYgX<*OOX{cdCxKb;nNtE=|*g|nBwMcy)W{{1X7 zJ!M{*Ys&B3;wz@^yLbQjyoH@T?|smbs%quf#_KE1mW14U=%gqjF?XqT|GAjoaUL_5 zzI!Mc^|I*g(G6#0zwvM1>o@yT#rxJ245p3ek&e%@wj8^eAg*9%`av+_SksyUwUp(H}9Ui ze!}t71;;{nJigsA^}UkQk&T{Ohkur_91b@4>3o7`{-XJ8$GNw()v=x6X}JA&!LQ66 zJGhH#+Uof9>cpz&FPne-4)?hilI-{M)9(ILtG!lOEm}Lbj#2sIhwKTNha8RNw$I#Q z)3#oybN;En`j-xT{<1Ez>U)Cs(+4`dQ*E5>-WSh%zA19?rH3Ci4t$m{I`O#S-sCsxwmb*a-j`QfL|5|M;=IfYFNW$%8Nkp6zwwblNYf2FZUug%`Z5L5i* z=EJog?Og577x!1F1Z?=~;Mc)xz`^*N>%w}bpI04fm<#Unh-`mU&3$Hi(WPnppSk{W z{na|6=blr;XKib-d7_>FblHjJX=k?z>s8$l{K;*wLij}uzlA4D%$(&DIW}FptGABN z>yy;fC#eYq9TVI6c1PG3b!NFv4*O}r6`S@_F5!#xXA#B&{jOZsp1t@Xvv>LF`!b(S zUFn=q-{;45!~g6BBk^y`oldPbzHX=I^M2~d24gPPxV=2Rehgem{M=R^@+>8K3-&WS zk2w*QEpOB&(yOpw6O$hYBhS}@dToXR>pLatZ;F|wSu%Ie*wEPekMYI>#a&GSFk-R;$|lsP4_gthFZF7p(bJ%zE{`K+NRu3!=Z)@;JBdo3*jiX}|7LHkJDJI&dmJqnYvU9%ued-2A`4F~>7S)#J>4_nAT42+hGE>hc=~# zs5V3jO?H^Wa5Qb>YguefOC&b1l=K-JAIT&-3lm8SWkEH)7hM{#a_6${zj1C^zY} zlru?w$85xYY|uE|yrV}|=kvpT^87oVER@$45)xudF-Z(PG^?jH$K%I=ewFgi9sILv zD&8D#H?li)T*&UD^V8G1lHn63O%Qu9`vT9|c_I%u-LJ8B1gFj7%;?Hyi$0gWea6;R zc`sEskDQ&dYW?bI$G*ER%y^$+$vAOGW@?h8x9@A6Z&!l8f14q?JAGE!xn*Z3t&-%7 z-kOuv%l+Zmk06Kq3gdmN->o)`H8tAUlAGz4c4ulvT8`W0n>(7_w;G8o+}gL1;U=$T zdK%~Hqo)otNyWZx$`brFCG*Cc1M@CjjnT_nmFae9LG_`8vYcGixMh#pH@DmprMrm78gbruUZ@xrf+#;&BfPe6j}}R7dS3%on!Dhtm~}B z@}{p`;!ov7S_)zhTJO+(aLIC|@PaAXB00*+iSCVUv7G)QFHUF~{19l;O!Pmve1pgn zhw??U*9Bf#8x^8&)OXIRy3f^7?sv<)-M2VtK5N8D>21?em$M2R z*rq=FT5`hR?F7Hn?U5($B`QvLTJgkqOF_Bn5=qsMq^GZ;m9M zOS^fhJ@ivR?V-x4XX+M2omo)j?q$0`ib{*{R=hMH6E+ z+2<#J3z_@;zGR*24!612j()!{zAo3!l%@NMm+nKqxyG|i)0Ng|$xJ_gIq>qep4!ix zcOTw+40e=4_p3IX2Evm3z(7dU#IpLXpHzp)AaNUwAjkE1j^jIbyJO z$9X}Q&fOlx{CSu53+eyNI;OkFGfdg_(zL z*lzV-2t2TK>B8xg=LK$zee+B5dfTm|(Q~pGr!ya9vZ`;=fARP0PK`gG-p8x&n8XvK zD`@9-U2xZbi?t5yt*jF{1?MK7`so|hFQn*KI_Xdw$2*CMA0H`QO_mWZS=X9#Pjzkk zKZd&ps<#MP?zucg$Ex!I>;A__cK${iJWPwe{n3$&fnlo{1A_+k!9(cE8`p}|uy$Ll`JzW=%B`1iMu z{cV33G!##95ZKOAn9Z@Cb1~O;){nOgvI-1%Sl3UUd%L-!mLs3zQE%d%M(e{Xj>abH z966|PPvlsV%o^3Fvr{X&dGe<|%so`Qo##8p$=l8q?KSr`t=~_&xlrJq?)~p4KHL+y zr+)wY=?{$pb{hBjPZn5oR6GCJ@ZwL$hkN2~?0p@f#zwQJ-u$a*qabE4ab(T~8x8gH zlW!I~+K3#hw2(M-_*1P)OMmN!j{&Kr4RUcRbKOHsL*P`E@8PEB6^^Yit_~YhIKbAF#-rd_d@!`F57bo63*f@9b z;acnVHumt=Yi~t_ zFWGg+6Z+wQ*`6rTwTK>D|P1f%{{RKPj~E6oqg3=|R$Y2$rqj1?b*{5v-5)!KCcPfFy~q&Q~Rlc zs0}AiNPJ6UogT7ftIW&C6&qq3of3QZJ)T$VY5RJi@P_3)Zuw_VTJAE*ei?c8((YcF z-~uImCpTT^gPOXpV^}5czLSuBH#OnunLSf=j_s}x(vz6L{V2L;|I%zt_a&BDOK0|} zzRsKLHF?(B<;P6e)=g{h&EB>)nsvF1ir)PD%bIS51V+T(x)S8P&n4GR(}Z>Vgo%ku zU*0Nl6t1i?J`-48oh)!a?TUKo?SA%y5BxmEv@&ul)ikBA$e!rD8>$;F8~uH%%2zLW zkLB9)N@p$e{kMC@9;VZ9B zo%H)t6_-A${$ba>`o)I=yJYFhRSTs=w^W+Bb{|^2JHuy7W$rr5Sw=h0%qR=Ff4n9? zeUW%7ub+oE_ak<#x(@lyL-L!i_!&J7eRCjG%gta_lJ&6=8|lYdIZr|*ZmfNz{zG%> z(i+!mE1#B#+8-9yifapB@nh!-?S>-e`*M7wC#VwXkaLL|=ilyQzPt%KX{&drAN)TSciEqObNiwYhoyeLgQOZFgPwSiV@e>dK|%XKh1f7@zg2 zF40(P{N`fKIb+`{Y5keswo0D7uHO7(_k!>IqUPNHPXB3rk^MvHT>Yva;{Rli)Q9{D z*UGjpWB)j%>%XBu*CMS@udPkG%xPC%N|_v=*A=(;efiaAo2r7&_+D)2nrYlG+x+Yux{T)y({goZnYNa-m26Q|+BgAN@Xkasn4Si^fbd)g0~q|3!%slU26O zJ-%l0WA)z-)@nXe-|h6$m%TN0^IV2?D}SuhE|yRKu>P^rzk}&qDa-`9L&)N5W}?KqKoy3*xc^z+l&*MELedsZ%3YR7(F_4wxAgsH^Q#{)<+ME4+3I+;m3u(JI_73$lWD>&7xgaA;me%C-Cj6?DNmPQ|z0z zF6xBwiO|(+)ZKZ@-*ui{)VD}H_=~3d29;}NEE6MM3tl2a|Dz^_{4m$RiiaShwc4 zcIEmUw~N1Xts?A-LGOCUSz$iKq7Tdu7jIth+bf-4phS7%51w27Nhf8jX3Y5*ImfoU znD6qc;?u!Ty;jMjsr6ZDg@(5*zqDQ>I^c^+ag+tWMs2Z0e`QgfP7$N&nFohXxXL6= z{Ce+IQu@|~DO)c_=RPuM_SQ%;c8$4pUu@@^W4=XBQziIa9(79QNIqV*FqdsE|AN(A z$?Y39+%H^S?PHTIx;!IZROboz%L1|2oIJjw+S}W$|9;UqI%~7U4IAxT{_yL@N5ZX3 zB_I5ZTGrzF%T|YpbKilw1BVxI>ARkLDe7u+=#$v@3p*MkJbr|oU6?+HA^zTduj=&= z@?R^qus@MbKNog!g_X&q4HFAVD9A zB)l+9UnzI0@$QLNu0G*5G)gY1m1F3%|F2iUms8>;%yBGA)NE>zINuK~ornO5Bd6yE zgj@bSDykyk-LQ0_Ys7)K%pVu8=# z-T#P>C!cSAe8Mj$J+eh*+S4OSYbIQ5*dY5zGWoclZ^q^Bl8vmB{O0&c#$Ir|U9!F8 z(zJJ%?lP=h^T_E%(=@$Z-|v;Y_x=5^e3Q;;@eh}uPyF}u@BQy}pZ~u<=>Be>_<^#E z%aYjrR=+s%IrTHs%{>7}yFVmZR&{or{upFg70G)&ZrvlXJx&L;MfaTQ4?q3&`icu5 zqFA?|I{7-p6pST#E`q|8~c6U>` z#*VxF<*PUz#cJK_{eI$Nb?Rrkn|to}^ZzJxJ1V;)_?+e!JyH21?IBML7cXkyU%f+m zGnd_>2Xdmf3)gpT-f_Oa|CF)(=f{t^>=fJQPnrGw^jUV5#lQdln3D1((_Sv*gXGFj znKx^$_0LZEZ)tD0{t-L)8^f)z4-B9v->)!-fukL$$(XR0G}z zshl~n&*jpCyxL<%J2TaL*2D+~=v>}XEwm)}#Jp3t+_ILqIIz6?IA^Yh+q3H@(_8~R z-g_!f+w42<-jk(w7Pf{6#lAl|W8y|(6Pv%2FRoo<7^YY@KXuunzNXnWya8>Q9_J^d z`=0TUe;(Ovpr_d`=&hzS_0I0IAzuE+mp+1Q#bzn>Tq$5lh&>*4Zq~^Fu8N( zmb~XWw>H&tR(#i47O`j3^d9N26?=qi3fsi0LfQ_uo!aWPe7(-E#d89kGX!TY;Cg-c z=$1tHWA49?`7O=;n{qOB$wzg``$aKbYn4{^tX(vN^YAGv5#M4XF}IAnh0_oC$~bN8 zSu=BUlADRQl(RqQ8m+|F-swf#cAr^%>tc+Oq`Ya8n^N-h6EfePYP^nJ-h0{g_gRsv zpWZM0e}^UPxJ+c;m-TT|>S8A?Zu5*;tk@SU<@cziO><7bhgjbGhrgRHnQ-j`^Pd1` zzT>8UIPAkd2=m$>J!}*uD+YQdMbJMA34k<{#X9xCV^?` zNf|#x>()Lr|FO31{=@H5{~GKsedIQ3yr;wO(6;jQ#_WAAo^$^#d2n9pU(^1qAG1Tg zzQ1Jg|3L4Wlh-drUQ=tlwMm)l-^z#aKg?Gj4_dXh>3>EA%m2_0H;#=yf}yiMbUy7` zajiw^Psy#tDlC6((07gKSt-7xm<2mGDa2|To?5U@bK`|0RvYKJDqnhP zbo~fh<|U)WyE6}U%rkoPY1J*ER~FZ&MxM12n;NPhuxiJ_6yEhl#buQ@r4_gQ+_e4U z#`j^T(w@ky()p5?_BH&DKx(S7*RPV8eZdv^Ixo5M`E{RiP4+5n-(&IZ?9@GX<92he zntj;SQ08XH;|-_lTYv!wx zgm5CiMOVxL4Gj1x1 zc2iq<+WPLPN#8atWnFRoa>~&^QQOy?SZ5S+c-ht$cjPYD&dQ&2`m>JnWv?5{m8P1c zY2+%_-wlUcNj zW_+RU(`(iixii)8JTllg!E^rW`5SL+QQRApduPJs$y=_ky6{Njb;8p1X{BB-znt^q ze=qaR;_=gYp>pYSg&w+e*}mPCU2?H_)8W^5Ea%Oz`)+zo=+m9)m$IIB|I@6yI(PPW zrw_eye_nJ(T$;NtDk+_eaktYf1F*--k`PR zl=P&pX(yC`@3w~?*`{@JE5m~;ITXR;=J*qJ8Kv*&7 z2N#*d_-1uS^{F<01pX{x;S<}Cvte_?Dn+w>51FRD|FrejA=Z%R3v;v&?EmU_MP$Ld zsC&C?Y`SlqjLewaxQppk`i3Mi-pQ^={6XHRs?eo3QiAH=Sl~`nquLVu4qJ zZpv5V+H+kb9NF~_Na&Sqcvt%Ifkx7sT8W3@4UT_IL;gs(pRTBq-_On?wMH<|N7-=| zU(s&9>%qsD6njl@n<~%cYFoTyUDAEK?zBVMl5-7bD~&x^ZuZanLK*xmpI*#x+%f6yKclj< zs%3w=v^VYM<$BpzXJyYHRU0iATj|1<=PqlzsdiH_oA|t?J>5*=&kIkk&6wET=w16g z;dn}D#hQlGX&XN02%cFd`NrtfGdWzI-qS$kYV*W}m@sd9mJ zYPrJ7uTEBUJzf`Ep*8Q>jtTK~u50*>yOz9G?=an<-hZ68Mc!dhCPe=ChndaSG8?^ zp>(Qtb@+VlOn-x$*&VC;w9lS-WR~_p?OB1kv;Lt6w>`bzFMIxbCO7jL=9S4agsfJ+ z^u1Ck>F@rL$7b^D+?ZOimn@punT_ezcDr^yQJ!q5mb=ULLb$_!haYtreS4Q~WM*dN z@#CAKfAZj5iJ}-oah~isB4#(!PW)oqb#M{)CLM;IK@B0o$Ikj~{ruQ+X;j%nVYvgh zB6%+FVrNo5GU52u#z3>mp1ZAzGkF*3JUf^CJI4LX=YQ;|jZOc%W-MZC3=9`}aPQWK zESOY*9)vMB>}9!dsL21lX_uC~R9KiJ7P%_KlR3Ac$%~s~i$ZIFSGYsSvXjcPGtRY~ zT(We>`yG$-3gZQ@HwkdfdHhjk-_O?mf1>}mU+tZ_#9Qjo!8wz+-zk6p{_nd__h#Gw z+xJVl!E{GNqg6@q<-@-E=CzD18}GL>GfsKDfS;fB!ST9zGLJ4EuCqDxcd?G;ncic* z_U0QItOUP1e|qACk~8i8u65xKnHwKHIr(Nq-l=b2 z683M|y|wP!TCG#-zGZDY_jyi0;wmPAfZIO7w{+X4d3jFK(LK1LjCW!M2%l$jk;9p$;Dkj}xSu6OPgCBIu&Z79=Y=hL&g58qFYo_F>ee*~^(DnPno-XkZi@cuauk8w55q|N2FU#sslSisfGj=t0 z1>aEFP%tS~Ty)*c8`G}!?${E#rzbpQPuFz~Z{BN$qU%5J5zJpvA-p_v&(X8Db*kCl zb5%%Bn)P-?1^@Eeiuj}KKPH%+S>9EUEs=Aj-B`=+&~YuhgUjt|mOU!2S@_7iX6d8s zn#YH?Yn^*!Eq`w1k9p-k7z3>$*It^y*Br1nKt;E@)6JO zhv|PF9iGwkdB=iB;choitkcsA-5g@s`co(($SCnh_NA0X4lH7KYvdnEZ(jQBMA$0h zMqXF{viY~SM?4d>ow%&oVZ~YFa}(8%Jg*FMvXYg$T-1HU{c~AvfY`JZv!nNgO59$u zIaq$yPMgb0;k+p?%5}n3HrRx`nKhHm<%-tVkZil?$Xz87r@u})U2OL8&aL^IdbTKA zo1`}|Ek2rLn z4LcRQb|%MYc@=jb2nd^GW4yxbnRs{A`z7DAZ~X36-Me0U*9`m2v*s&5pY*;gKVL$R z+qYhE+40`WpDVYln6pc_(ULXtdCjxT^?&nku^uyC|MK=S?~Hug?>rao%C6G>XA^RE zO3)7WEg`#Y90j^&zWrn(Ju~g^+6!|YJ+?B-`*%Oz&^>sr)LYLdU$^^o`|qosxaD-B z*uplu_(NX;*0%`pe0s|taDT$fi^NrOD(!hC zbn4L8=?^%=wWlv=(LY>0FYI)I{??}{%uc)eqfD*iT7F;T`RB60dfFC_jXCBIr%ujz zB6W(tMSqbF^L^7F{4s8=*4!xpkxPRnA6#?#ORGzeKig*ajVY;Y2Lp8!8WR@oHb|EV zOOkaT{7|D+dcO!Rz-%@ zvv%98C~tiC;a4$|{pNdfdR^(FZYCxckJWrP@9#&gRiru^{%m4oU!Q_o)xeLzi2G=N_u~>s2GX@zi7Isi)@Fy>`fK3XfTJ z?w0!@FWc*DcPw=^p8By|_g3!8$NGzQ+<9H{q;!(kS&R3RPlasszOkBDUS34@%(e3z z@9OSNY3bZ`>Pg{utBJot3?>L%``qSnz9mfUy?AW$6obra_MG_DOQKiUD6_ans(r1~ zikRiTtvxEb+T~C_cl4$o`%|t5uUu z>=K7F7~~h*g>gim|9&EG&D4;TwLglBRHa!Lh8VA2!(Rzm-p2guF|$U?03FPI8-!aX3I>eo~%crDq1ls zjii$ePs-<{Y>|T>Pc8TpT@RerTz>aQ+3FSbAG(1W}M{vILAboUT^PRVZ@m>g8lQ9-v*OmEnE-(pKFGX;WqjdYfNT^_{)U`___3ugUL9 z^p_|Ezfr0E)yV%>|1Wp$ed}qeH(xBAHsAXDyyEjl@2lU<{JsAFoxcJH>i#$%XK-P0 zj+kB|EZ=dq_y-KR==`xm(rsTo2u|@R7RKy$}Xgw^N&1j3W(V!*_7~x)dJcFXC@q z=4lZZw_{H1zM>^>bh%HTPWL@uCgS3MeqL2tnbur8^U9jMXG@q=mnPg^lDl(WX65I! zg*s6wtGJ@npY_Sko@G1TZ|=-REB41a&W_X)U9x;n?%5fx3l+?2@9oLx6ZOf?)Ol-J znVmW3P+RWjLxn#B1nP|PpYA=(^-K8s?K}FCGr|StY$@)!Xf}8I5ucqq6y`iX)7m6| z_1vu1%F8EDmxfAwnfBQw@%omxI=#AT+hs#&a+Bru#=2&0eJujZ(Ltj6I zT`e!!yq2l)hG$sondqap+3p?m7nP}VaDDspf4iUC?q!eC+3p>!)~d^UApT=%WBkMG zY<`bcblsQup}TIgiTQ&$A9jlDbc^zEPyTAMDy8B6$%o&y{v|x<|1r7I*utCRNp;T; zmK8rXH||fkb0EIZ`KT}R`^Wig^A78V9a+(Jn@uYsu<-bS`-RsJXoc~t@r>sIdT(@C+5ZoOOabn~L(ZJs&5_I!C$di>k2y`6jC?f7qh!QiRjit8stFK*uD}8*! zz1BlVxp(e){A=&~Gi}XT{J{dBa^(K89j+37<#Fde&*RQ#zDwstU7h#5S0U=_x+5;YnfLwPozbOcf}2^b>VEU6p7Y~bA{Bi% zQ|Q)_9gaS$C&gS`6WGC%+ zy{$Qm=ex_~g7oFvIA2yy3$LnHw%X@Y&U8gO!tNDYiOZdXHDWVzW0xOSq z|FZk;=xo22=SN{r>Fz8U*2xy9?p}H>Q-1ny?qSgvqFe0jEll<>C9mF{xJ&wB%@)PC z+oEpe&PXcivae=4o;mZ8jmJsObN+cO!T&rpwgqlpc1Gjmg#gyulOBe;7_ZJaZIJbw z%PQ^BL$0Kg3WjfdR((uZqrEO{gRR_}1=fK8{(bKzdT~HZ_2Gqxc>G3y~(@!LpNBc#mUz6N|w`yH2e7tye&2)ivkEHHDmfBx*JlX`TFQ1z7 zZNd?|pqU9*-=yD_QR4F#KFry-yz^eVNB*?c+)IwAc7=D|JMHp5RO!3avX5-@Qd=JX zNn7?~t#zaHl)H;^re2%WDYSUYr#?I1$Qgn2j`Jk1urpr1!+r5H!s#o^Qks$Mt0kIx3r%R*G_x3f91s|of3Omr@f4j zfBpI9jm0wQN!1o=%^UZA66|_AxxZjdyxo*hnOxiv3ncXt8Lr+v(Hoxu+ zjkjny|4IG)j4eOs)E~3rxboaGdtoita|`ZEr&;zLi0s&REVH)bL*IlOtn&95JSSH^ zF?eR)&QR*?u-omffF0l8demw+l+z<1kb!~0A9}nc{VZu8am@;T{w)%V=VCt6x(wNIY$-HLML=U1y1rw)}0ky8u|46=+23=#|s z3`wP#IVrkDsmZCC1tmz%$o1cyci4dE&R6Y5*2toi>I;)}9VRSwz1}oQ!rf6tvP$Cb zA1%+#Q|G)pv0J&cwEXu=n`caQp>w`A@vi+o=Y6|uwyV#Vds7#OYWzH*BJ2~x!gI@~ zYFnAuoqrcTQh z;fY>r{-x=f0k`$mZON-=ZN8ml7P|V}|Q% z61y71?Q9im8Rmc0$$4wfA-SC&)*SVj|1tJ$#B~|2Ng=lto^>u@$U4=TwY_w9V&Q}U z`H9RAo$ooWSZa5BVe;&0iaSoN-LGkM#ZGLdMW#qG-ySNa`a_UNdX1x z*KAuHB~@xRk?#oK^4RC!m%iHezxrnWt|W%Gx3`Ws~31(#a9QxbKTl3cep<;1-Q?+kqS!j5k+ajC4EVYgoP_6w8J(=T}~c`ahk z^)FLotGQ_&^zZhO`wKSgsO5?Nzw?~4&->Ym%gR@9P8EBxcZ#F1>-+2(Dzd_BA8)y> zcydSRPKMuZUL3+(+*%5`CT}?w%YJ8>ZNc+Ns*aN`p7aft@h^8Xaw&So?q(OG@FnbI zsiNl29Px*GO3!T@3Lj2$=xI8xF^75SodEuhY-5k0UlOi&4(t47E%=Z*X;t+cJjn8RtLAbN2qO)`1x^O z3ybmg;*)Xylj8hi{vUs0f1=EF(vP*u-MhnIJkN@J(sBlQF*_*N7{#adFJoX}c)@_N zeiM|*oDsPtAhD=8wFow%+1ld>I@;Iuf5z4*?y{%5I+_f_{obbKv75gsxta_&G?Na6U zlML>^aFPsv{p!Hot5X!yT9$5{x?+uvXt&eVN6#y#3OaO@M{PbkwWLp0@#RD(&)Ck# zOCK&$Uh?0=^OYrYP5KMg`%FDGY!cP;fA#+1{i-{&2I+KPkYBl)cCT8<#K7>Kje)@i zvxLC(t8Zp;ab{k+e*vg>?O2o^T#{Il3SBlZHQWDkg2?gz=goGleVwvEA#Ns1s(1>I zpuh!}=c>m#)r@C6Se?G+TGsa|TjqZJG_^*tv+sy_9fSRpk2bk8n{_31d~X%coA=rJ z`j+~C|9WmgU#p7H(Mk`ncK zv)5&FDLdRN@7b_w>%qt`UzY?K`TpCvZt}B=gVtS>R_}W*UwQJ;A&sjx?RU&RS@Q(G zlQ7ypZ#qwAw2b4MFOFXt`L6$+qPs1pP(rITWgq{qr*;-+E;2|)m&~*g;$3As{eItL zGiHfd`+NIVTD$N&ry7r7gwU9X5*0k+&V*hT`6i?lBJk9Z&^I;96Pumtb9+l)> zJ>$}bHft%phnw0;eU3Y>nfmZsN8&#d-Lwd+T4u>Kw(ZS{?^q6VO3gL6dssH;Z{z#O zT|Ap-SbsgVqE0)?H@1T3rsKI2m)LbUcX~Z8l2Xy^IKg@Gq(r8_NB0He&;<4lkuH0| zyXvM+&lEmuRKAi(%wK54oc=P$$l$o;qzB$Yr(an0uN2rN=QP!6WABaaeEy9wulQqS zmL3i)U=*+A%k?}_>Gn~Rc?q|@KyLC9i~DV#{z~MXKc32bm`_jk(UK*TL==B=Epz^G z*Wln1mf*gRk1vFU_nqW3xp~sCJ6kd9>UC$4r$2tx{|#?Xsh{&IS4qxr>}d;b6Ps+m(MV09J~1^$ zwYF{E36+0HdsaY6U#^*J`eY^shGtd<23um1J|xWtmlS2@r90>6795?q}1te@;d8T{qEV^=oa@d zF`W0;)9s@9?X6sESAM)unSby1v%UHID=+Imm$zfocr>w*@r;DQl|{*6?gtr;&x!Jp z{jBA?ZAG%9d*{OZt3_)PdKIV5zM1wwv^?C1CsfznE?ee}$NSbB8#Rq$O0y5$6Pvg6 zTi^ut>S^aE+_T})xqg$&=Jd+&JI&4yI}d!75R&dw-rJ>H6EBpv^i@^q=69X3(X&i% z8*x@E%!$4FX6J{Rm#MqMwTxeEEpYc;UVOE-P{k+OqI7esPPto}*^3_OFm0`GvJGWb zjV>R)$LK4_RDaFhT(I)uvvd2_us%K4k+o#+y!|(nPp#z9+N6phvOi*Ir0-2SunN!D_K?2uD8ilpOw?KWOnyUhC5*_FxX?|0x zdo1$nSn5xn6F4utYyHiJ-~>SI1N2 z_~A6qQ@zgKnyqS!4{4`t_3*nEd#;50f}X_krpQyr3+#{hCt7W>j8V3B`^fmj(C1$4 zCXcU|d7ph`NVZ2y?bBzUIPJ#Bz~IeRUmMrZO zJE)Ua1g6}8L-ZF7aVZWtxrcD?J`e8BQ~({kIUUkmH~66Vwi1!drO!?`xH+%daq@YR;@l4{4~|UN`r_nzT<~*KNA+~0 zzLgTvCtA5S&*=Q}$})jpbNV9h2gh_gGcs20j}h21z2f&W9yKq!nLn=;7%qrhNp@;o@VP%+&}9F!`>9G#4WnZgweI=Hy17Upt*LL_ zxhkvkFYjiSFH_L}R_A(rQfPT;s_^PxS7wA})}9TLnX+-6WLxOW&3RvX_T0N$_PnC& zj{l8$dAGK2XpX$e^z2;Xvyh{0TX$sc&Yq9joX?3e-PXd+!0=m$$Rfx)FTXqwQVv1d z9!S;i-H7NKk#NcX^HU~AsxkYDGx26vZ);SUeY%ZdEr*-4mujxZ1&5@r{o5wreVLYE zy!qT2p%vS&ct>yjo^*T5jjDyNx>{G#oINx%Otbdd|9G?7UcTn#?q9XWn`ir$9agLT z^7Kskxu1E@cfa5Feg5h93^)4rpWM>3cHz+p7dw-M`c88w9#wz5XU3k0JxeNo+C083 zG{+!@Q&MvK!xkP^VV=1>k3)Fn4v9;=>^9ohqW}4uwvgPkjhyk^k6#;=J(4z(JGi*! z^NgPSN6|e$-Wtd~pRAtsL1o^fr^LI{<=bULDWF>n&T0h#<$3J*_)L_|< z-;;W#7q%7d*M9uC!u8Nrie{RNEXQqX6+K$(DH3t4Ne!O^BZG^P%Mb9PYyRug*o;9nGmub5Z#U%aSa4qNM z>sb@c%cqAgFwwjjw(U%w^-Rg@zTpY+!5eqa3YXSO)IF~sbjB}1_IBLnyLEq;crRkL zniZy-92->5pK-3~*;L=N->do+PnCG3uMVkH)DB2A;mFbGI2{+h-SqmS6G4~e8M8Op z=y0u9if1=ee7J^z<=@x;0u!EY++OV%UAU=v`rADvpEfm5pS$PHqcic0(nS{+Ox^hS zS1cR*w_{3k%E~4;?f#(2TApO@yq z&mOI?4n5K;AunOO?6~LV;va&mzbCWWACzXQ-t8MI@4tKbr<7MM&sJpKwn|j_((-FT z>gtcFF5A5=)<0POV`h^gkJpc#P23iX9w_yBR0Kcxwkga$!-9`>n!L@IR|_((Otneh zTJIS1doBN>)lJ(CbQM=8uuT^^^N5#oy6BmQxvb$g5HLovVIa^$Qh4b#U@H78q zW2P4P9@M|dw*S!X?lbSxCp5)xep=sL$-4jOdloa@qc^4-265h9cBrbtCtUQ8-20E8 z*c)dTJ>qfqeUTa6KiO9(OIq=-;AbJwdb=}!^w0cRFCnnwG4r&z#&e?AT3ubtr&(l2 zhc*gk#QK&l5R0{2&nk6V{Lq4~fThc}&iZ4sF7V;K*hNoe-bT*~y3*=ZGHF-P+pd|* zON?LkRc@+U8L1=Z`69wwWm>@VBLTvJr$rN9WnZb=6|9-9biZ+ht#{kz`IG>Ki*7XSMVV5O8 zrYuVGDXzGr*y{U!^TL%oE#BQo?L2bGBG`S`9my;5m+B%m`|6j93qP-&{QbM$x9{&n zc~lvt4|mBb$-Ucf_Wk3)Xz%5vlQ%71`$S`hkLumcEcG{+#2(<^9kxzxt^PtTNxieX zMJn@jC6f(|rAk<<)~0@oc64p^vX`)a$)0JdWWy#P^3e0Z?@I;`YBS|N>@(56aAsTo z1FkPuu6=5F7#Q|pkE1zz#&;X7mn<2*+k6%)X{7~7&UMa6VGF&yqHmj@bJsRsWtp}7 zzRA8@=J`GCmOCC7mEY!){4jXJQQ;NB{>hsw*tU11Zw$3*7b}!17e40~VpxBtxw(OT z<2_NiBeTM*1YXO1Qn574sq@$55MnE3;Zm!?Tn*j=NjJFgS#f4dJ#Q=P5)t= z&17iuE5*f9(nJ&k|CJCKel*jc|CtpmOb=ih8zS(X!c9_RT=v2wt z$Inq+bA3Tq@jQ#8=^`D%HaA(FtZWx5xo}~7RITUgwGaQQ=6qY4_ww^eJD104V)EY_*qzdg_4ivoZ;bY;PMCJDvw7|2 z9~|9ll^=vPX757ruuYR&JoOi zTw2IlFCPApzmWI8*!!wwy_0_W1()zm{;&PfVB3Su5+4^m{(Im~?2Kc3Ew}=?Pi^|m zbo}NMh0a*v+|1n7{8z)zZeZ)4`+bJ`!-oFp{idwngRgP%S1Fv3W{sL)&gIs;Cs5$~ zr?!PGCHkl3zo@9ZJSt;#bxP;t8?65>rwhd@{(GG%RNL~=^4B7>9^Ws2wSL@R>se#3 z@}D2IdjCJ6M&L3N1H)}L1_pEDdl=|_3(z3kNbHm~|z@x0>q zm6`kh{`(~Az<66IXvWkFr{isB2pj4<9%yQD)#~k zn*K?v{ggu3Us=|wsk_@0K7=e5{3%p;YhO&ljE=I5L*g&il{Q!NPT}90>}zPcdRd6g z@eNs73CbR3*OTttwZF1@-mP^Hmv_|8*zY5HYsXTBrc;db^^CGvr-tW#Qgdi~*A=+g zWc@+osDIZ3rRODT)t}xVH+L!TqG?)XhgZJ3&6eNo6aB-|Pgl9OPV)Q)&7|(cr)|1| zDLc3BG@8ph$6ou<&K{+>fbck7k;7>zCl)<>rF#0R?)48n$$M?TMX)#>?X)j<;)>vxD~>L{-Q*R1d9MNoZ&tnD{Yz}3bGJV+E$57oXp4S4TWzl9 zg6_)+0k?{u`h7dcyZo7T@6n|fxt_0!ovfcYZ(sgi6PwyEr6K~4b=`L}-qPH1DMrz- zwC#qvP?E%wa`Es@?yRx*wvgg!N>m9G>r$~PHcr=f{P(Jy| z?4{kklU0^%e^J7J=<;4Q?vF~QrnQapB&+-s=a=kxRKbwL=AGDdVy3?DBoXiC{y>jC zUfDWlBwx?j?8A^Dq}E~J{>|c(T^-lue^$-WTl@m#fWrM*j`%VjaAqwo~g-QL!c?#qo+tU~`a{Xg2OVk0D;=i9TsRoXo7OS#1Pxqe=) zleX#InN$3J=kwq1cHXy~TleGdH`xZ8JnfFe7)N$BtBk3_X+bmgSj-4A=$)yt&aJT5 zQLp;W<;63SJM16jMV4Q8X>hDfxV>w4&c~uiePf?B7V9P&$HZ;<5_8a~__W{3BX1vd zWxfu*;~`r!Pw_}>v*ONAJ^LS6cHef(J6r5~d%@z0hXSV!YNp(Lu6gaFu*#-{Tg$ee zSg^d`*i1cR{f{$N&J{N`g9`5|rEU$nb>;5yn#-4tcF$qjer;!VSFHd~wZE@W=7Y|^ zcgo^!@o%@eyz&2}&8>3xpo6*zs+}^M;OT_(cXEQs0?ziu>ZR)Kjxs6rNm>l-d zPN=#$E4YyRmu>JC`%;~Br#*qL`oCIchF|P$>5@|k)p!wP*mF=rEac9SB$4eB&;C_f zNi3U{B;8OYb!5}q4j=nF&zuZcy)>WoVUxxj>&UNzuLC>WvaJYPkzsS!!XHgTl<7*cby}o?>Fyp zW)})d37(L7%-$(&{(=qXU!=ufIKJ|L(N-9U30A=#-c2%cD;l zvYSOzY6UMJ+w_<{!P4b7PzXjy6~g={7<-^Sxow z;lkk(cbN@^Cov|49PkzmF;Gd$Sv#HUs#e#cm^BLnmWH)IG3k*tdYSTQ>2&!=-T7a`#*ZId0CHCfA=^mpr=6^6tU9uGF1>XLeN=e!1dbtC#-$ z>6^wmFF$3gwmI>*N{SfPC_1Z(uGZpVT@_l$vpOd9g7xQs`X$e^`VyagIwTo>VXC=T z>fMz$oeoZXcDM7_r7NeG#@yT3Ta@{S$vK&ga>&`bHgfW^xV1*9<=Ht( z%KmCyi=sC0PVZ?75r}i#6BVr)k)2(&^F+_06*m?wIQ>WUuAXtLq}$Gb=tLjADZ9BA z3A^1a(9?L~|65?WY~pL}WfJnSAp$eEbUCduKb5p@+cu>)tUJ{$BUtaoT*-A_w>RO+ zCy6o%cj>4*i*_vNOP!o?B+@kE!eQfSv8Sfy?9J$kIcQQex%AVgWtHN~mdfzPas8U5 zpKfZ)lxTI!MEUo%otyYRPAYh|ea{ACTd9J>1=(xPZtV=+TXk}CW7A@ruVSeeYT7I6 z%}+k5y?bwOY58X5N!e9PcP0EZKEI^7GykYVuEUoPpS0`D-Esrh&J@{f-cY+UZHBAj z?0e3vzRQDJcBag_mb`z%xi1>IJJ)YC^^RGb#1-#VbNXge%(opePIKmM&nk2Dk-Q{a z%V?{v;?KLd;zV4Y`P*G_v8j(uWDZzs?YokY>ifvTX7$^|OCvSTrq`l6&0QCTLmRwf^ZRX(rwL*RnFwPj>HJ{!rr5 zmm{CP6{o$4{vgZ$FJ67N$NBX(BCN;P{(2;qTAqB-DB{kELvy3UZ?1Tt9VlSD=lhvY zW|H^6p9?;yQR^aqrc-^7X;4{v+WTvo9}CJaM=QDS)%ZP^@0r(em#smFzjp7{ zUA#EC2drO}m zzGv~M_l?r=yk~t%hfAlep8mq6sCEf?$cbreHb4zRMpkKs)(jyDcIEB52 z@6vWu3vtd-*yz_K>D2d{&$HQn?|a5~Zy5Y0zWO~UTjuq|%e)KIEv&nX=k>^h8>P1| z`8s)a!JW0!c=&ctzvft0A%4ZtF5!*MN=>~Jk!~q|;c4QJMCRXQ>)QRsZKdvG=GUJN zi1@TLWh5%7b4=o9{W*a(h^c5-^wT+96Blo=lCNynH;Rs1lD6sf3%)z`)7sDN6sY~W z#qDHhOp^1Hv(u%0{(U)cB>T$+slCQ2Q)-xXwU6_@iFq`ms=1_$dG|c!dA@vk3EzXv zwz|JNxnzp9=hw=ef6p6Sm}UK7Sx&-xv#X!~__KtW9$WNf(iw)UvPydegQO3O?s}wE zzRY5G-|QL3a_>B_-ymsoV2=N+4@-^~@J~K7_0qbw>za})F6Um;yuZxPeUFvz!&&TQ z_p+-eNiD9izVF<-$6?9m|e$WN(Wo|`)@rcR=#p^WthA4!oGbk)6V`ux_JiF^7wV_g55Gk z28Lyr3rx{UPsnha3ZxK)aFE8{rUu1=7MR*@j@(@4>$_#vqw*e2H_beecon4#2azVO zi8epXJlo!$NDE6-SM~qvU#s=yp!@~-&^?7yPcn(zki?3(Ej6* za#lkdtSXBXTT{57v!>6DJyW4-=cG2Yek z>am}F)p)qK`@0=`)%V)v#k7ZQbx+q#71|~EQANd>06l-SZP%VzK?k>0;ld zt+zDR>!a-R1Aa3O^K6pS;&H#czG>lySC?|12bN@>SburPk$`zNT+W$7Cv`6hmnH7k zk+Bxu`Rbysf=ajH=KtL1{JCV#EK_;?o4;m(g}Ks!RRJf$az{*EO%eR zOzq^4!cOTr=ly>!a43%~RU8 zeqm!^5EH;!bAsbI1!-IyQgcoX&n_3fE_!$I^%IW|9y`SGgk`ZnbE;y2+!obs$w?en z8ghet3VD1l9h7>qaFd&4FNfdk^!sNwd;U_Wec~9sJ+{VU6VsGUx1L0A{v`cLH~y2h z*SEdKlT@>1<~-f{Y+m)dozLg(eQ){v)ck+{@Be2lF#oqwv9qbGl2=jWmH~tJQA^&y z{7=lHuDpf$n=bSTy(ydWamNn}EiJ7W-nkkXFC4bYK2Ka-u}D^YgT(R4T6HT5Z}*$z z90=B$cWr``Vqf}^A2~ATJ3m$?eoWr@S^ez~%^btOGYdWxi|+4uJYDM7ht*|!8pK=A zdTYgnUC5jsds;8_o4()fzEG_IYb6yKkcYtmb0Z><@~ESI+p!{OwRv;3@wI)z33*3M;0}vp&@qY3RLf z`6?56yWCwSJ2yuP7c3}Ai7SvzKBE~T{-Uq%nt9Ib4O)kS?{i(%T9>38cCyG_H0P9w zgiM+5af@J+c6L9l4w(&~mvKzXShk8g-RF5rMDT1#<(LV6OvhP z9%u~>c*kXDEb)A$=$b1F*6fYh#kH)uz*X4uO3>1cy>BuC*D)o`op|26U%fZ!YD{bP zv$QXJw%>F6E%mUU?Z!Q;>-*Vaa&N7(Dt@NuJtcM1(Y);zvB%~1IHgUy*e5-;vaD7% z@=Z=;Lix3g(#>3EI{H19eH%4AF8y@4xA;-0?EYifT5;Duvehkqy#2@ArY~zJO#Hf4 z@$$#&n2?WZ@(ok}to+g3XaC5bYum5C*&2KIPVzS2FXME5%g-A#i+yZl-3vmF&;KZP zzctirR~04fIP<0{aE)uh zheLB-Cf|FL==D8+{g>t5+h(7eo!)7(KRTvoVUp+Z`-Psz?F}xUO5}FrIwUzUuk+fy zga0yq`twa*sJUNy-XfRP(|mh+le$E_-mf|2;psPP_L}1hPgsdX?)5D(m3^}J+v`~( zzQxaE`6tGf<}bTixmwMj=|<%3NP`!T_cd@?|Gnxr&3a#;-t47+iu$wOS+3sx=f|Ab zB3|zW_azz}1#ZY*`NFYB;l&NXEt(u@?#1no>deFiE9~sUbRO~jGxGUlo-M%{cq(AR zW1W`RIh&haf8K48e)HP%?~8gL%hfc0GG|;mT`nYR-nqEuNqZYFyfJNAui#|pWmv|l zb=2bMHth>#aqhdDPTnbf!KL>|qqUUF&h7XW-jYjce*;pkhnB>;I~@!#5&io1lGCI% z>9(Ys{DPiGgC@Ry!Izx&@>#mKxqU^v(oeDdyDy&0=Mv0$qW@B*Y6Iu(pLg4DNAzt! zd`QfuG0vuQZ3S26o26eZ1S9^Otd(yQIBfFEut)G;n!NhE--cfCzgOIBXRmPMyFYQY zVxwg84StW8400;&?3%A-Y|k#V%D%tsNZJ8?%VgzF&)FqO$zSX}&b4hmvLx>CvX?hI z1WXnGanHU#xtdk${62rT*FXJ#r?87!y$B^ z1WVriq_!pI(YDn)YSpISP-+j^k|-t@yX&XtJFTkw(FgO}{vY9SNPdn^YGZ2m2IZUv9d%iI<07ms?& zEwW}+H+($#mzBHVD~7puFHYEPyYc#&LKa+kj+c&5GM9ghXqt{YpHB+Mf*0;D=92TmW@kyuIMz`6gnopYP(~p-4 zhMk8v0_#}%fBEowJ!@Fu@o?(S-x1F5+-lq9x{m+&YsVvhwE3Uzt3#ZDU)l{m|LfwO zlg#%_S}$Nd`-;asJOMYJ)b^|XXR4lEF;nR0#L0Wr4l9@G9>1;VC~k4?bY0+X-KrJy zFKbt~Dyd!+ciIxCugMvl?G>NCp9Qtv>~=KGsbOSb;AUoEu)-Xz2`I|XN=+_7Tmp_% zg`%x4oIAv>idmm2$k!;9V=V386oeXJbVqrFH);=8l;G{f9>9%jz}Ug2tb ze;EI1JQi7Hc*Etf&bya$Ebo6QTbBP`e?7yujnNKb(v>;SHcoZdY=0|L#&J_vkgL|s zBRspj#V2^zoDFw`6!*)q#jeYXyl#Fj%G>J9{$wwg&o|Dzm?t677Zp^wZTXDX#kW7U z-VOWIXno6LzP9d<1)9wbt$ACrgWHsoi%NYWzWzwhsJVRIsja0qYwgzqZfCwlzPKs7 z*5$>_7w7t4s9yK^aYuEE@HMtRp^ts7eKK0@@trH4?zR7Vt;0$~sokdWR!dU7*VW!{ zoZ_K`LyoY|r95nFex(^(V4<4;`%M>n*To zo?Ffyweh}1h(Y>0dnw6)FNw>}&7PS%rRUsR+va&^oVi$oHwzcbaxW8G&bYW+xQ6qz zVNCzSFHx@w*>r22FUP;|VwyG2^>pWpET&mAU9~w^{47^r`4w%X+K^}E>HsDN1{PKZ z1~<$&MT$ajv#3bLIk7m^Gp{%`uQ;M&-L&$|KidD;<7!rR@*hjD?+tvs_~W@v2e%{`7`E&z ze>bQ4-JRm}{eOP_;B?^a55DkGp;dIN%7(?$7WGZynqC@GYI9}d=?OU=?rgqo5gSX6 z2;}c%KDgo9#J&nkxvwqdC#ua{H_2{4|5o{(=hptFj}LmkNWR;$L;qHvzDzvZr;rk6 zf2*+5vU3ai+1DLU*dps*p*#Ecz6CAMWv_4cIsKS9dPZ&ZtQOhA^aZQ-J)5V$=aA4T ztLA(B%5F698zVjULkpdU32D6kJJQNX)8HHo4@xB=O@oM zJF;Qp3gx!9PqPfyxc5K1kQ?3inlp5MV(~%dAm-S)3nf3De&H!J*UtRZB7Ort-` zB0vAkj7?kz_bHy-r+l>TK!UyVwNEC-Nul@DiV~OVtedp_qAX9$;nE{U=T|)IUGa=D z=?n9vr>D|YR(-K|F52|r(NE2SFs0tvJ4B~>BzN2BG6yNi3)(BLcJUG+ls!;f@;C_B%$Jg|y%2 zMpY+-T%Gy9_T-s6GiP(RI81PC)L5vZsMsK+*y7HyLW48Qh3COzwPIm5HRHl}EFE8O zt_t09)ouyv?O$!%R`0&*mDF>7UFi1g>vylNz56at{`I$wtG8uu-+g!6?oIoP-=9g5 z6Bqv8Kd1Pe<^7*=&wtlFw`RWo_rc5O3_6n+E4qC2zWQf%)<0j<_Zb!DE#E(A%hvsg zdVXgA>l(_aE6`{Zya%V{Y4jy~FQ6vddon=q~&8hdl59)r*DX zr#x&~;N#*I61=L@|9I~selLgPG8auaU(HZoxZuUB-9Dymi)JiJp6|nZ%EUBy-K>{c z%ak;XS1dilZIZNllk|_6Xohuuo?84N#m$*%il6`%0y8MMDev^+{nQ3*It-QX(@%YZH!cG&m zR83oj(^pP?Qb_WeY#drVO;3A?XYaXdDXEfr(?T6Hucd62+NNlYJd6-ES7G>&vtB?=@q8T61dY@~2F(+dOuw$ue>D zoc*|CYEJjeZMip_BBR-ZF1qY7p4xNl_bs8n%xRZ=R42{K5j~S{oSR*IXWOGP6Vbcr zqC%Xf?%v(`TTkT7J+b@J{%`tscZ<*RyzN!C?97y#BF}OU_QhnBz;JM9rudKe`<9;Hc`RZ(sDAv!ja!y+< zDBVAE%cm!Crw*K%eZ#MD=RF}G?;VTGc~aB2y)pbgv$uI=#+r?HWg>JrO5J`xO3O0v ztTlhSe%p@uhQ{}3`Y%=E5MZ}hqsSF=wR?~?3R{kGkm zKVssRk4!feXFNRfymG#_s9?52=GPg0>6)#4i`-*wUUXS(ywz6nsY&Gd6=97NOSa|p z+)67yv*mh|3g#rAvm+9#@A6Bcb#sXB9GX`0cheU~Ti zyYf!ss>NgHoZ`Q0j$BXq>a}{wld0l7>rMwfMs2yoKc9D)8*dSs znGrJYdqDgm7meu|lHb)XZSwX#x=HUvTtV3?nbA>Hhou5SKPfh zJ(;o0-@zpVMQLQ3j{%e3p66)ID`X6jB}Hup;AIr;Mrk36j=y}9Q*rgCTp5i`eW*Vg@TdyR=RWh14FFNvdmG_K|?@n%5>L^U54~%a(Uc zmo4w`+a^oNd(rH{%*~p=ZW;ZK6`WNfSrJ$!@uTNWN^^BcvAF)ELgw?vZ||B+GT+eN zH|vejlcJr64v2pgb-e0wBId|U&lM-9w#BF}3tALyYTLAoGhg9+Q{daQs~M7)v}&mkE_>um~G-ZyiDV5 zr}*TMg&#OmPNb{ce{e13l1z|zk6O9(r^u)0C;if5zJEAg@{{G$ZRbym^Xzngcj?K5 z#_%WIZ8a+!+`m0Ce6pcS_r6ngqK*EMma9Y=U}hVS!Hd)lb)%c}9b-Y>lO?aM+_x-QJLcTw)#F{F0Pu^RlE*yI=Kk4A7{(oLGcy`Tw zV!Jn~h$HmNo_RUnMC>-PewBZ!X&}jQwtj)Wo#kHlp65fmVa1htA7x?)?B}jbvueu z->bZ8?~Hd5wtqRz@{(59)(5_#zWZ%B!z!OW-Q%I%mEKvh+jsY2s|iJQ(-U?+?Y5RT z&d%DKb@NkQ@rr0$r^zdM-h^MP2dmHkE;gxdkH4|Ls+BgFJ6%2T$mH*ytK>q} zmkZr2FYjIcD){#rk=MP2UrV>gbVhP*W2*7_vb4-P(TjbG>Lc0Cif0U`Wl!};&Yn`& zt#JO=b?q1L4TIM zTQAPYclU8weUwDK!gINsECzFae?FWUH`78+=HI;=3w+n6RsEb|en%x)_peRd*NG)( z`JMbtk`-R~)u!h6Yd!asRxkV~*zi+g%doKene{ch7KIq<+PcI~o7kJr^E5Vj#=X$*Dqik^iV_EV z1kdEiJEw-n?(InkJN_te&LOQ^;@^6cwmsOeXPH~#LGBrs-{f=rZZCY5SgG@7y+y7> zG5_Kkp3l3kT>B||{E7CQbyCM(wi~ujNwn`gFLA8tnS+HvPnJ-OcT+3h!ATqT*PJ!5 zyCzbgsqMMZ<6>5#?iv02q37;N{oxkiObi z!7059=doY?V6%O~3d;p&_}JYxE@^o;YiR}RB_Y|jAJS%(Z+;e#m3eBm)UgX5Zr<9{ zc$0T3#o6^3hwfisDZ$70c+KGz9PGx=f<$FPE^Ax;@m+XoLQ&-9<_OQ#KbF3Uy0Yf^ z<|~(VzUrJ7l{IgFa-(y4U!rWO=E+d=y>&d?>X*C)U!I#d_io{v=B2!cBO=#7T6v{& zxq86)Z$@X_#KjWWn@iNsrLTx@I-U54>&?-r5{E)}G{%=Nntk#@v%A2-$s0Z>Reikv z;;?;^dEJ?szp~#RuzWiua^#7~m(wvvmU3~fJbJarY|J9#E8{*d;X0+^3 zwCu`$5?CjH{Oc#4yeZQQC-3Qtej;2;ef5gg9$^YE-o1uLA3Y~zB_Geh6lgw&F zzi-^j{<+Xz?!gN|wb`>SubBC8U6A;6zr|aOKPbpG>6rz8PJG7^xH>Q0)MMwuFDt~> zPrB@U=c8X${)B0N+1xF~9ah`)Cd>TX7;*2w^$(>}U#af%kt-^ZxS#Ou?6mTa>J?KW zcRAE`9sjWW%g_0#3da`yN{idJi{rb+asLO=nHM4tN>2S4HTS(mP3dEY2am4VhCB-3 z%gcM~Va7|Fab)O9pz51*9{$a-rK`;E$DxHA?7I4bT=#F;a&mn_;p$D1nc@K(9%Y#O_g=b{Ikj$T zudn~ZLu&sw3fl)o>uKFHnsB#heF%Q7t@qKkJ2#e3=3~%XnPX*ATUOa6 zpHDSeI!W_h=*GjQr{=rgd+J?WVm@!j<~j*$`SVQ&OlKVbme}@RnZx)*w&cCjk~hSS zw)nOc%}Lxdzp--H> zz8h<}e>A!L;rWVV5-+d(XP()eK1Wu(=&8oM)Cp#XeLd_`rTtcA8}W0`-N{h8qiNUv z13SAzx1BR$koq$`cdj~Y`Fc&rTM?-Z&)s8QO~oxV#f6Czpv@lu{L&n z(=A=RL+QKJu|r=>@4T5`&9boSUO{-?`tS>NQ>CV^vn_k1J8z98-+S+nTR~+Lf=a#S zbX_-;t@plA&+PqCEqn6&&1RL{(jS;}4&Aq2zH!>EE1P#z%oTW*ZgVAFp-=qq{Q~_t z7p1@GddI)35w3UVzEbb~(~f(COh@sH`$_MaZu3VxmRZWf9<-!&USODf1RJ(4{9`nuj!gthd?hk*S zoSgAG$n^?G+4k$!2M%p{opItxrn8xEZJ$qkt=jJT7<;}c>%{LL^ZCQAKVg2NYMtZm z`jgq8bLV}s-t+BVYTz%qi$B8GJgj?LQ7EolqL%z?MRDMi55L=6ZVC16{=nZeFX-31 zpsH_-Ro~2f3X`t3i!6?=+ zr{*=jF!&}gzxMb8?Z0BL1xlc~af8RxCc__O0-YW7A)T-(ugw zH~VkeE_qS&Tl1Zr{eSD`_c6a|x3KU3Yx>6i+`p)G;hXmN{r&nT|HD*)gNt@_ewm-} z-}6#z&;7?g9bWuL+m$&X;rr30ObiT~>$ltr`G#lc91x} z|9Wp}Ni(m=k^9_D4%|}~F6uB0{3CdVVe-pGDzjvw=U#o6wQJE2p&I>vik)7II`t2T zr`D`ny?E2aCPUw<^Ple&&wpO|ZeDi%zhB>&9R$6lLVU73l2=Vvi9NcdO(o5A#*E;= z5X18mR_^L$6W=;XSEudbq}Nx^?mC{`ml`H}yXM5+WuejcK1U{b+}+Un_I`@Q{GRgp zs|-}8-<3L8d}+hBt2egnaj&_ocsk+a+M?x$Y@=T-G<>;#%WR&T(fT!~qw62vUN_-Y zm%y~`Z$6}5R=Rpe-crceDsi-)f**jW1H zgxQ@Uce&#Y4wE9>&KL5uUSO44I(^cQ8)-`w^b;))1>E9k)lp|U#^KlA6B^}sapLd3 zC&AADds@zHcz)UL!DNPrjGfyWcM51MHCEA7nSb=BK&|zf$jKp(wS#`ig-$kpBYEjf zrAp{p-)m7%_UP1@Jh`hVFKNG2dUt~LZ=)K4lLl9xEh$jEVW!!eXmjF4(uSfYKduWe z=Y&W|D6F4sGSBOj{DQ_}6R`{zJKz5f%*Ge$m{BJd0*@v2OlM+Xn8QkBs)rnH3eVtbi?n~rwu>FFA?nnG{srfNP??>HtUtjs9P!}g!|ZPc`!^4WKfzF7Q& z<=<2ng^NenKNS9W=$_P5zD(QcHp`FV=l86O-`PGtcV@f&{QXQCj}!IJEnG0kFyzZ( zjYBI%ytI}jYRw2-xIn`va>h-OypGMqTzQ&1&I&xQo2$5a%hCGo`mk)e5^M5 zNT88m-Yv%FZA#MHP6hn9QmVWE(FcVM8P{Vz{n-`yz4GkFGpmwki>|-;AkTM8#ks!+ zJ{7xvR9Ub;ueJZ}f|no4Pw#Q8W&7Nk=M=o~`X|vli42D~2fwtL=^uGc>06oGj7n(#+v^h#c|>~LjROo6(-rotKB2g7c>(Wr>lqVwltr>1 zpV52zlA({+?Bgr;Op>_!&Nrr^OM8ox|6jC2JpS%arF&B^bl=|N=@oITt0i>J$A{H>zVGXp(h{bka_1ns(6x;h+xR!$Y}>u#`0U?~ zH7W<&*DBcMIrGbXXgoAK_nnHa(&43AN$xJw7N&+>Hm&YEC@&eCF7T|k=hTIXS4v8k zZrHzeR{4~-GMP@E%4?ro6AgZx9Ikm|_pGA^b4||V=wxfnoFnD^d`m>l?M=R_x$9@T z#hK>%ZhhAKx7PK1!S>H>bq-!v=On&3wd%NA`|8SQccsZ5SJn>w0>nWZOQr;;>s+V*1x+I^VyziFL99zx%6$VUE$kKHUX{N>QKu<|lqQ z`Yk1QN3`wvT|GT(ZkK!wblRTd>My)#-Qx=GZPU7SwJSGe_-01NZj?Q8`RnJ+aaDU} zS$g% F#>hI#1eA}4;+Q?vY~ z7xjeg^a^++di%kW&eTh5*w$2DH1zm+D)SNh7P;8+w~V%Dr+JT37ha^q$Qxl3%R(uAM9(p33uZ5r^+FiEl18QzjnX*OO?s`0#@2 zpFHm;CA}3&6Rgbp+sP5!#v1M7c#Ki5Q{$Ayk>y5q&U5lk@Jh~q%*}Sy?*3fp5!`n>Gt~Fz{H{O#0=C~f61Pd-pI16n)@|12CG3rH7Rw(A z@h_akuDCMtkKVTHSrSdNqBB>TT+>;x>VV?7mJ0L zOC0J=^84_8p+nhqrF%gaQ+8%<<@)nwl6{}$#Ec)Z0(~ZzxW!*Ae#Y}-y=c$<>a6n@ zHQXlUDKRDcAE;Z_$N%@rHj7hvbJ+JU?PFvsU=(19laaA}aw<{pWE#u*oqnHF-l|&~ z$^DSs=lef`^WT+a4o)6Z1tR*UUDzbEbYX;3!Q-3j6gjSZyO@5{GVAxr&z0;49d1TT zHeT*dnDXtFBm33ag;Ba6E;&wmUpH07UFHw(+S&dJe?!EtCWMAKUVq+_eE8&oEa%;Y z_Vs}xx+>d`S^g8cT1m`1R37_6)M>72i7)G+M)?b(OA}vk ztpBm`qw={+C*=926zmG;U~gepZMnO$zOJ*Vq>eq--bH;|;-kVQrJA`(J;5cjMQ+w! zD!5YIlF?KWo@wSVE&oFOq($!!<@zMvdYHNT&}Ff84}I0o>Bb!AakYr&RQQmpzBf1; zeB#2k?YeK3md1!UYKSk?J=Gi z)P8f9JpV>-sfcII%(<4o=f1DGZ)v>$f6af!1VL@hlz@OhAH^mo{$B?37d>t3n(e8x zWJ1HdW4bzOh0%5ISM1Q<|NY6PC6D%Xv2zJkpUEi(9;!vJ$%wylP6hWYChx%Dg-)T&Df4_erT=6R#G?Zst<+ zTfJ_!n)!^#uQQHczjtlNdDo5xlkn|3XK&8Y-+uU8MPKA^%l}3?C!B({gm^4v`;_R*Y>VM`yT7w z=;c$}wB0w}v;3tnwZuI$A-0+8|H*x;55;Di?5*{=1R5<`)Ob?wQh9@)Adiw?b(ZDY z>6$@qQ_38cRd6h==s9ssaZ$YB?>CFrU(mX*sG;m;sl4Sflg+xME6?Q*Z=JAOvPf5S zzhYg(y=0Ybn_ekSvhR);uy*2?td(yIR)6?H@RH!4rf(}_3ul-#WvvWZJpae>l}>WP zvR9|yx_Vqw?&Ip$C6oR?n)G#w&O`R)){`D57G0Pib5zYxG^)Z)Ff)9z%4hc%y$?#u zwVzE;vsB&}ATRyt-T8X?iG}d1@P{4M3?5?+E8$}m3bR=my zopxWyHj!UcCCNj|WMyVk{`R*~;@fvWdv~pW{v-VlN7;Q{dR6{0)K4kQi_G%O7VFfX zJ9nn>bD#HT?*9Gx`Zqs=_l+LKK2KgNqfeP$i|0#AEi+uK*gdB!l2_|ls7^*lV&Kt9 zT};ks zsXDyH_r2cX!!r{qHq>l8vmnRXG|Nnpx%#ZzQ33yoql->BTwGbS`b?{4t^JA(X2&TZ)SX| z2#S5dx^jVXtFf#}mo`+n$$e_NBj`S#MX zx^*Q6elr)CFY$YSPJr!c7xT#_F;!hH3opp=UP#fO7_Q_LgS=nPlAWxu%~INL6nREa$<54vkNHU@ z$-lg)XtH{28Kvx1_n*ck{@aD2HKjj-bu0EhYdv9{L{AY`f0lVW7Ltbi?4dc zUrU?_5aHs|y_cTLBbloeY4s;J?g#Uqz@%wTntILOmYuBpyw9Ic-F|=keTD+=<7P59 z3OWw-72ByhDHY5~=z4y`+i>~4%_>a(L63HCeRMj-E9s^33)`AwPnRIc&oz5r6SZrSM`m8&iv$8xD4}1%_tFnw~Cq`zmp6T90Y>Ie~q@mo2mFVLSa` zV&SXAxQ-b%n?jz>zw+qVQ(>h?RS%sCcFl^Bb-nPv-=SdVtqT2&iGq5or(bt$Sisu7 zK36e<+57FStn`&t>^WPr4(ux)o zU1Io>nSr5(o5-WToKn;Bi&EV(i;7EvOOv2c1gVUVhP^Jj>?ZQ>TG%GXumgpKUbot2 zJ(%!A?5Luuc|s$`%}(UTO99U94!^6dqj z^9yRU)U;(*Gku%MBRSo29nV9ptgadQ1MF)gjaT@&`qozHFIi zZ(Wo0<2dZLIqurq+fh5+rg_|3m9f?Ltl5!0sZ&^D+g_}yJHP3xcH7;8uCqm_)tig% znv_fS&^aLeYrEP#%x!8=)d>0c_BwuS*XYLr~UipK7Hh=lK(*W!j=vBtG-F^ zcw4c=d6kp)vBaBC5{qP9*$iwdv{ybkZ}oav^n;IUGBz!mncVSxbHAfrl<#h*Or@fN zE!@V+Pr?eglDXVI>K)H*J2NpwWcGWF8%L(g#A|9Kb}K$pU)Z$!$E?JY=9gqYH)h%z zRjWK+**r~T&cT+1ud>ds9x!N^ZH>I{`~1`6u6w_}q(|u`uibLu3WxaTB0V$Hn=@u5 za=d?Xj*LgDy(<{&=JlyY6%Co#!p$t6xf(eqHu0K;(Qa zn^sEb-9(G)o|jKg39q*Ht>&4=(tNT`BByY|yoI%|{$25&x;>!ED!XL=thV@cC($`U zo7YX$@wTnFXB)G!Y-``Q8`_WlerHR)@%;LO|NKApAMuqxs-5&@LDwbgp4P*Q_FUHJ zXjt*>%lE4OwCfpiOX572)j2E7^m?!GgZnIV#r#{3lX`uV8&n07JZl`b1x6{`96M=# zM=&&cli{4BJEvW*H*8^i^)=RGX~?X%2?@$SwVC`4XZ(}3Y1nVDMW@%ZUitOR{=YpZ z^qvHDEnBGaaH{%l2|d?7@A^kBnlm)*Tr1d>&zB2ocFN8)d@1^Au6pjS^uQXM&aj z|6yWau*59IgDZm5@kVV5JV;uFNggY*Ml z*3FW;JW)kh?XuH7uka>r`2+1j>X`y79gjrLG5&o1|JgY^_tfv%$9RA-XSxD^uTqZ4 z!pN4hOgW+pTovk1*{Gf8Ou6-Ig2T4c$2}I@N|(Fmb62pd+Nx+u(EH+UD`%|;6Tc&C z=4@y<5ICRv_7+xI>x?KqWA;Rai+hFdxGPGs#lG8hMcTc)Y^Qm!QkO83sdQ=*SAOlu z9qtP*Ui;l&;^y04was!uQ{}cz+v*~!H8hJ0d=ku4^)|40hw1SC2#KgTxv1;w{wZlL ztRV{+T$z@*FOWGBa6DY3@iC)U?z)V+O>2+In^-!&&8k?t_2LHJwU>(zXM8)un|@{H zqC5eMKgUg1-i}?M=hi54WzzoQ4eXX*9|WFe>O8mT(I%;xTEbI{f9pHU3r*+r(t4J> zkuOzLySVw3w&6amt1RzS3YP8rvZcXn|H7I2CAzFicBoL7Sc`7%kAL!3Xm$I|$T1zESvUi3#Tx2SU)oEqv z_x5bx{O|Ac=lTrn1+o!0$|f8w;|pa!zcG1n-eSiS`}k4>_A92m>J@If+1VzSxK`TZ z{fD9}->+og1^@JPy$p6`L}Sr5~Iz;lIX}8^L=cj_ir}p|Eth)k2AW+j}{s z%1?Li6FPjMm_6}9*`kXcCl4!Cbx!oJ=q$d%-G^OQ}>FJp^hq6?bU&whQb+uX;Wxt+e&Z{qaR-xb3AzIFloe#6O^FEw#( znD{vI&GuPl-?(nLpLFZqu)W75?A!Z-zF*JpDX8s<`FDjgy1Vsm#x%dCgnkzri_6ou zZ{j$(=EMA{t#vsPQFi@nsuOz*I*{67iYlC zT&_#cw49yIPtSaBu>W3Dq-TQJr70q6AKyKa>tMY8QGv0p!}mq^#}~6=jXQttJ-f!_ zXiw0IMQt@knl(qS%{VbjbK9~X5!Y*UY+O|}tEWB5f5>;+H>F~ETj=G7T~hBh*PanO zdIznS-)}a@+=iKf;S?v<@lMPn1)j~q(aw19C+sNjKR4Q9hg^V`!aw&lEVmAARbUdk z5Tv8fniL@Pr!4n;RlvIwUj^b1vVX8OxVT`F#QvE-H0)XmzpZoFI7Q6q(e$}DXWqPj z?#$UUZ`a%3-^bkXXlF;*iL+Z=T(&rhd78aB$|1)gA^KrL_AytE83G?X4lLo&U*_6T zq4S`#!NPg*S2t}oC7!*ShtHg@3_d9uVi|qmNz2BqOJD4qvTU_>S7gXpiAevfU1`3? zXTDxH`+xnA*z;3wl9;o3=Cw==mb|qip)y^2@htr*K8-5>rc4aw%I;eEvDWj&!*@m{ zN8+Pb&Af7E(bip)H64vSxOc6a)!7uJvns_j?DFvgnHD0;&8u@Ny|T2F6Eh6IgnApU z{jzPT48^@ic* ztf0rDmqQbck6czh*sm>AlOg^g#7U@_>6xm|14(E9wK)bpS4y5N-M3PD_b*M=3$ebc z583jHj!#=rmL0btf_2~OSxFnt%__=j+qJUh^xddu-m?MG0oV^mh?aj&VWTeqOOqT)=m3wU~4K z&j}vsW>?mfR&0w=NoaMu+IivLe6u*cg|erg`|LftJL39^)#7izv$CDPDOxwJGV|5n z^;cTYH+RYXI=%g3b;Hk^ngxQ-+q%!2&$=$VW%lyDvsZ}l)V66$aJ@hLcj7m_l1sNv zmF5WX=5WQC_3BM3o!IxLQ1m+E?8PTtjM}10W;g$0^!*^v%Wi-0E9<-u;U+siF!!Er zwtr~fut84AH+aI^#g*?F9$9U-ZYZ}EQJZK|u_EWDb~hPod#=!EXz%`jbaZT95g2m7RHG@yxAm#?ey;T9peJnOTnK z=w-N{-6?RWEQ~$3M=?g(%2_gFsd%`#XP)rh$ATB#MfRy#2_BXB5v<)M@p7-r@&odj zfoCdWB2;F5>ZoT#E$6?r^c`|%U|?`%U|^7EU|@ir?Vg;IN%pz!+l&muu$=4uR15hu zcSa@=W-bN>4h{xh>lP;lr1Q)gJs`}|C5`PYSZ(x#`2o_uL^toYhpQGV8v{cCH)N_9VO}9CR`Xmd zl5=iHY60{T zZRh;Fw9NFLm9ckzSm8v3937#QX%Ffb^<3c}A$28OAe=s|0uh1E2t{QMHoMFj<*8_I)A5)s!EpeKv8=-VG1xfmF>ia}0p zhq-l0qoY1nqoJ|pT9KMuT9S_=EudedjxhCvC00{$T&s@mTJ$?J5$2k@U^N#Sthll@ z`fX_l^SZsTnuikgxb99vcQyK5TnJkx`(U*Ne@+fXyJG}l99IauR)Q96SZgL^_koV| zK))gcVc?t)+!uzRn*!3s1R@w17(f?oK$xKVVNNKDFG0tIple3Ib_1drRCt`m)C`;M zM`{M64SAv)kA6P^!g$6=47VW}8-Q|K0lKN^Hvu3_eM^j~cc<)F75?O?q&65e6sRABifJ8TR!7RF?(N`lPEU27D zgar_@A*B>{AD}M-Ls*bF6T<>nEkVp+D!Nb5S6Lt|%ASW|5k_)_cm%r_&}Xg@CKoQm zFc~v3L5#*ekB#mL^a(?RRjEtxSw)~OMV|yi82e%=K4ZbbRHTAuN(|it=wsywo3vM9 z*o5BXM+!Rv9zq|#MOgE1HHI}v#zH*=q41P_=!1C(^8?orVLmwDVIA5-4=?lq3WP<^ eHo_Z*xP~hNyg|J~1_pfweTEDH28OInAngFr(P@+b literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100755 index 00000000..03cfe798 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Jan 14 11:55:04 CET 2015 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-2.6-all.zip diff --git a/gradlew b/gradlew new file mode 100755 index 00000000..91a7e269 --- /dev/null +++ b/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" From ba032d748206656ba6f3a4eee3c5ea77db9d6c5b Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Thu, 1 Oct 2015 21:26:10 +0200 Subject: [PATCH 063/170] Update location reporting API --- .../gms/location/reporting/UploadRequest.aidl | 3 ++ .../reporting/UploadRequestResult.aidl | 3 ++ .../reporting/internal/IReportingService.aidl | 9 +++- .../gms/location/places/PlaceReport.java | 23 +++++++++-- .../location/reporting/ReportingState.java | 4 +- .../gms/location/reporting/UploadRequest.java | 41 +++++++++++++++++++ .../reporting/UploadRequestResult.java | 34 +++++++++++++++ 7 files changed, 112 insertions(+), 5 deletions(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequestResult.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/location/reporting/UploadRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/location/reporting/UploadRequestResult.java diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequest.aidl new file mode 100644 index 00000000..69547d7e --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.reporting; + +parcelable UploadRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequestResult.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequestResult.aidl new file mode 100644 index 00000000..cf3ec3be --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequestResult.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.reporting; + +parcelable UploadRequestResult; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl index c9eb0aae..715b6779 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl @@ -1,8 +1,15 @@ package com.google.android.gms.location.reporting.internal; import android.accounts.Account; +import com.google.android.gms.location.places.PlaceReport; import com.google.android.gms.location.reporting.ReportingState; +import com.google.android.gms.location.reporting.UploadRequest; +import com.google.android.gms.location.reporting.UploadRequestResult; interface IReportingService { - ReportingState unknown3(in Account account); + ReportingState getReportingState(in Account account) = 0; + int tryOptIn(in Account account) = 1; + UploadRequestResult requestUpload(in UploadRequest request) = 2; + int cancelUploadRequest(long l) = 3; + int reportDeviceAtPlace(in Account account, in PlaceReport report) = 4; } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java index 77c230e7..ecfd52c5 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java @@ -16,11 +16,28 @@ package com.google.android.gms.location.places; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; -/** - * TODO: usage - */ +@PublicApi public class PlaceReport extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode; + @SafeParceled(2) + private String placeId; + @SafeParceled(3) + private String tag; + @SafeParceled(4) + private String source; + + public String getPlaceId() { + return placeId; + } + + public String getTag() { + return tag; + } + public static final Creator CREATOR = new AutoCreator(PlaceReport.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java b/play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java index bca2b791..f09022a0 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java @@ -21,7 +21,7 @@ import org.microg.safeparcel.SafeParceled; public class ReportingState extends AutoSafeParcelable { @SafeParceled(1) - public int versionCode; + public int versionCode = 2; @SafeParceled(2) public int reportingEnabled; @SafeParceled(3) @@ -36,6 +36,8 @@ public class ReportingState extends AutoSafeParcelable { public int expectedOptInResult; @SafeParceled(8) public Integer deviceTag; + @SafeParceled(9) + public int expectedOptInResultAssumingLocationEnabled; public static final Creator CREATOR = new AutoCreator(ReportingState.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/reporting/UploadRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/reporting/UploadRequest.java new file mode 100644 index 00000000..8a1f8e69 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/location/reporting/UploadRequest.java @@ -0,0 +1,41 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location.reporting; + +import android.accounts.Account; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class UploadRequest extends AutoSafeParcelable { + @SafeParceled(1) + public int versionCode = 1; + @SafeParceled(2) + public Account account; + @SafeParceled(3) + public String reason; + @SafeParceled(4) + public long durationMillis; + @SafeParceled(5) + public long movingLatencyMillis; + @SafeParceled(6) + public long stationaryLatencyMillis; + @SafeParceled(7) + public String appSpecificKey; + + public static final Creator CREATOR = new AutoCreator(UploadRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/location/reporting/UploadRequestResult.java b/play-services-api/src/main/java/com/google/android/gms/location/reporting/UploadRequestResult.java new file mode 100644 index 00000000..37740e72 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/location/reporting/UploadRequestResult.java @@ -0,0 +1,34 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location.reporting; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class UploadRequestResult extends AutoSafeParcelable { + @SafeParceled(1) + public int versionCode = 1; + @SafeParceled(2) + public int resultCode; + @SafeParceled(3) + public long requestId; + + public UploadRequestResult() { + } + + public static final Creator CREATOR = new AutoCreator(UploadRequestResult.class); +} From 607fb4ae5f7950223a957cd3b7d8406c8d019340 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Thu, 1 Oct 2015 21:27:54 +0200 Subject: [PATCH 064/170] Increase reference version number --- .../src/main/java/org/microg/gms/common/Constants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-services-api/src/main/java/org/microg/gms/common/Constants.java b/play-services-api/src/main/java/org/microg/gms/common/Constants.java index 7e652d6a..6e1bd63e 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Constants.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Constants.java @@ -21,7 +21,7 @@ public class Constants { * This is the highest version that was looked at during development. * Does not necessarily mean anything. */ - public static final int MAX_REFERENCE_VERSION = 7887000; + public static final int MAX_REFERENCE_VERSION = 8115000; public static final String KEY_MOCK_LOCATION = "mockLocation"; public static final String DEFAULT_ACCOUNT = "<>"; public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; From bb4037017c447d8129abf7c5cbaa73e527da5631 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 2 Oct 2015 03:22:02 +0200 Subject: [PATCH 065/170] Update Cast API --- .../google/android/gms/cast/CastDevice.java | 42 +++++- .../gms/cast/CastMediaControlIntent.java | 133 ++++++++++++++++++ .../android/gms/cast/CastStatusCodes.java | 38 +++++ 3 files changed, 206 insertions(+), 7 deletions(-) create mode 100644 play-services-api/src/main/java/com/google/android/gms/cast/CastMediaControlIntent.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/cast/CastStatusCodes.java diff --git a/play-services-api/src/main/java/com/google/android/gms/cast/CastDevice.java b/play-services-api/src/main/java/com/google/android/gms/cast/CastDevice.java index 6645c95e..a36292b1 100644 --- a/play-services-api/src/main/java/com/google/android/gms/cast/CastDevice.java +++ b/play-services-api/src/main/java/com/google/android/gms/cast/CastDevice.java @@ -33,29 +33,57 @@ import java.util.List; public class CastDevice extends AutoSafeParcelable { private static final String EXTRA_CAST_DEVICE = "com.google.android.gms.cast.EXTRA_CAST_DEVICE"; + /** + * Video-output device capability. + */ public static final int CAPABILITY_VIDEO_OUT = 1; + + /** + * Video-input device capability. + */ public static final int CAPABILITY_VIDEO_IN = 2; + + /** + * Audio-output device capability. + */ public static final int CAPABILITY_AUDIO_OUT = 4; + + /** + * Audio-input device capability. + */ public static final int CAPABILITY_AUDIO_IN = 8; @SafeParceled(1) - private int versionCode; + private int versionCode = 3; + + @SafeParceled(2) + private String deviceId; @SafeParceled(3) private String addrString; private Inet4Address addr; - private String deviceId; - - private String deviceVersion; - + @SafeParceled(4) private String friendlyName; + @SafeParceled(5) + private String modelName; + + @SafeParceled(6) + private String deviceVersion; + + @SafeParceled(7) private int servicePort; @SafeParceled(value = 8, subClass = WebImage.class) private ArrayList icons; + @SafeParceled(8) + private int capabilities; + + @SafeParceled(9) + private int status; + public String getDeviceId() { return deviceId; } @@ -89,7 +117,7 @@ public class CastDevice extends AutoSafeParcelable { } public String getModelName() { - return null; + return modelName; } public int getServicePort() { @@ -101,7 +129,7 @@ public class CastDevice extends AutoSafeParcelable { } public boolean hasCapability(int capability) { - return false; + return (capability & capabilities) == capability; } public boolean hasIcons() { diff --git a/play-services-api/src/main/java/com/google/android/gms/cast/CastMediaControlIntent.java b/play-services-api/src/main/java/com/google/android/gms/cast/CastMediaControlIntent.java new file mode 100644 index 00000000..88e335d5 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/cast/CastMediaControlIntent.java @@ -0,0 +1,133 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.cast; + +import android.text.TextUtils; + +import java.util.Collection; +import java.util.Locale; + +/** + * Intent constants for use with the Cast MediaRouteProvider. This class also contains utility methods for creating + * a control category for discovering Cast media routes that support a specific app and/or set of namespaces, to be + * used with MediaRouteSelector. + */ +public final class CastMediaControlIntent { + @Deprecated + public static final String CATEGORY_CAST = "com.google.android.gms.cast.CATEGORY_CAST"; + public static final String ACTION_SYNC_STATUS = "com.google.android.gms.cast.ACTION_SYNC_STATUS"; + + /** + * The application ID for the Cast Default Media Receiver. + */ + public static final String DEFAULT_MEDIA_RECEIVER_APPLICATION_ID = "CC1AD845"; + + /** + * An error code indicating that a Cast request has failed. + */ + public static final int ERROR_CODE_REQUEST_FAILED = 1; + + /** + * An error code indicating that the request could not be processed because the session could not be started. + */ + public static final int ERROR_CODE_SESSION_START_FAILED = 2; + + /** + * An error code indicating that the connection to the Cast device has been lost, but the system is actively + * trying to re-establish the connection. + */ + public static final int ERROR_CODE_TEMPORARILY_DISCONNECTED = 3; + + /** + * The extra that contains the ID of the application to launch for an + * {@link android.support.v7.media.MediaContolIntent#ACTION_START_SESSION} request. + * The value is expected to be a String. + */ + public static final String EXTRA_CAST_APPLICATION_ID = "com.google.android.gms.cast.EXTRA_CAST_APPLICATION_ID"; + public static final String EXTRA_CAST_RELAUNCH_APPLICATION = "com.google.android.gms.cast.EXTRA_CAST_RELAUNCH_APPLICATION"; + public static final String EXTRA_CAST_LANGUAGE_CODE = "com.google.android.gms.cast.EXTRA_CAST_LANGUAGE_CODE"; + public static final String EXTRA_CAST_STOP_APPLICATION_WHEN_SESSION_ENDS = "com.google.android.gms.cast.EXTRA_CAST_STOP_APPLICATION_WHEN_SESSION_ENDS"; + public static final String EXTRA_CUSTOM_DATA = "com.google.android.gms.cast.EXTRA_CUSTOM_DATA"; + + /** + * The extra that indicates whether debug logging should be enabled for the Cast session. The value is expected to be a boolean. + */ + public static final String EXTRA_DEBUG_LOGGING_ENABLED = "com.google.android.gms.cast.EXTRA_DEBUG_LOGGING_ENABLED"; + + /** + * n error bundle extra for the error code. The value is an integer, and will be one of the {@code ERROR_CODE_*} + * constants declared in this class. + */ + public static final String EXTRA_ERROR_CODE = "com.google.android.gms.cast.EXTRA_ERROR_CODE"; + + private static final String CATEGORY_CAST_REMOTE_PLAYBACK = "com.google.android.gms.cast.CATEGORY_CAST_REMOTE_PLAYBACK"; + + private CastMediaControlIntent() { + } + + /** + * Returns a custom control category for discovering Cast devices that support running the specified app, independent of whether the app is running or not. + * + * @param applicationId The application ID of the receiver application. + */ + public static String categoryForCast(String applicationId) { + return CATEGORY_CAST + "/" + applicationId; + } + + /** + * Returns a custom control category for discovering Cast devices meeting both application ID and namespace + * restrictions. See {@link #categoryForCast(Collection)} and {@link #categoryForCast(String)} for more details. + */ + public static String categoryForCast(String applicationId, Collection namespaces) { + return CATEGORY_CAST + "" + applicationId + "/" + TextUtils.join(",", namespaces); + } + + /** + * Returns a custom control category for discovering Cast devices currently running an application which supports the specified namespaces. Apps supporting additional namespaces beyond those specified here are still considered supported. + */ + public static String categoryForCast(Collection namespaces) { + return CATEGORY_CAST + "//" + TextUtils.join(",", namespaces); + } + + /** + * Returns a custom control category for discovering Cast devices which support the default Android remote + * playback actions using the specified Cast player. If the Default Media Receiver is desired, use + * {@link #DEFAULT_MEDIA_RECEIVER_APPLICATION_ID} as the applicationId. + * + * @param applicationId The application ID of the receiver application. + */ + public static String categoryForRemotePlayback(String applicationId) { + return CATEGORY_CAST_REMOTE_PLAYBACK + "/" + applicationId; + } + + /** + * Returns a custom control category for discovering Cast devices which support the Default Media Receiver. + */ + public static String categoryForRemotePlayback() { + return CATEGORY_CAST_REMOTE_PLAYBACK; + } + + /** + * Returns an RFC-5646 language tag string fo the given locale. + */ + public static String languageTagForLocale(Locale locale) { + StringBuilder sb = new StringBuilder(locale.getLanguage()); + if (!TextUtils.isEmpty(locale.getCountry())) sb.append('-').append(locale.getCountry()); + if (!TextUtils.isEmpty(locale.getVariant())) sb.append('-').append(locale.getVariant()); + return sb.toString(); + } +} diff --git a/play-services-api/src/main/java/com/google/android/gms/cast/CastStatusCodes.java b/play-services-api/src/main/java/com/google/android/gms/cast/CastStatusCodes.java new file mode 100644 index 00000000..7b2c262e --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/cast/CastStatusCodes.java @@ -0,0 +1,38 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.cast; + +public final class CastStatusCodes { + public static final int APPLICATION_NOT_FOUND = 2004; + public static final int APPLICATION_NOT_RUNNING = 2005; + public static final int AUTHENTICATION_FAILED = 2000; + public static final int CANCELED = 2002; + public static final int ERROR_SERVICE_CREATION_FAILED = 2200; + public static final int ERROR_SERVICE_DISCONNECTED = 2201; + public static final int FAILED = 2100; + public static final int INTERNAL_ERROR = 8; + public static final int INTERRUPTED = 14; + public static final int INVALID_REQUEST = 2001; + public static final int MESSAGE_SEND_BUFFER_TOO_FULL = 2007; + public static final int MESSAGE_TOO_LARGE = 2006; + public static final int NETWORK_ERROR = 7; + public static final int NOT_ALLOWED = 2003; + public static final int REPLACED = 2103; + public static final int SUCCESS = 0; + public static final int TIMEOUT = 15; + public static final int UNKNOWN_ERROR = 13; +} From 35e8503273f3b98c36c43dca2bf6174a4183c85b Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 2 Oct 2015 03:28:33 +0200 Subject: [PATCH 066/170] Add Travis CI --- .travis.yml | 17 +++++++++++++++++ extern/SafeParcel | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..1b3be818 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,17 @@ +language: android +git: + submodules: false +before_install: + - git submodule update --init --recursive +script: + - export JAVA_OPTS="-XX:MaxPermSize=1024m -XX:+CMSClassUnloadingEnabled -XX:+HeapDumpOnOutOfMemoryError -Xmx2048m" + - export TERM=dumb + - echo sdk.dir $ANDROID_HOME > local.properties + - ./gradlew assembleDebug -x lint +android: + components: + - extra-android-m2repository + - build-tools-23.0.1 + - android-23 + + diff --git a/extern/SafeParcel b/extern/SafeParcel index 02b94fdd..cbe7b4b9 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit 02b94fdd0af1c127fa14500b2c3d4bec0701e1d6 +Subproject commit cbe7b4b90452670c422f8303ec2a19aac7179d32 From cb0458f17e55e713b10fe5611890887d0c8b910e Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sat, 3 Oct 2015 22:19:38 +0200 Subject: [PATCH 067/170] Update Location APIs --- extern/SafeParcel | 2 +- .../location/ActivityRecognitionResult.aidl | 3 + .../android/gms/location/GestureRequest.aidl | 3 + .../gms/location/ILocationCallback.aidl | 11 ++++ .../gms/location/LocationAvailability.aidl | 3 + .../android/gms/location/LocationResult.aidl | 3 + .../gms/location/LocationSettingsRequest.aidl | 3 + .../IGoogleLocationManagerService.aidl | 39 +++++++++--- .../location/internal/ISettingsCallback.aidl | 5 ++ .../internal/LocationRequestUpdateData.aidl | 3 + .../location/ActivityRecognitionResult.java | 23 +++++++ .../android/gms/location/GestureRequest.java | 23 +++++++ .../gms/location/LocationAvailability.java | 24 +++++++ .../android/gms/location/LocationRequest.java | 12 +++- .../android/gms/location/LocationResult.java | 45 ++++++++++++++ .../gms/location/LocationSettingsRequest.java | 23 +++++++ .../gms/location/internal/ClientIdentity.java | 5 +- .../internal/LocationRequestInternal.java | 45 +++++++++++++- .../internal/LocationRequestUpdateData.java | 62 +++++++++++++++++++ 19 files changed, 321 insertions(+), 16 deletions(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/ActivityRecognitionResult.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/GestureRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/ILocationCallback.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/LocationAvailability.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/LocationResult.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/LocationSettingsRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallback.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/internal/LocationRequestUpdateData.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/location/ActivityRecognitionResult.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/location/GestureRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/location/LocationAvailability.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/location/LocationResult.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestUpdateData.java diff --git a/extern/SafeParcel b/extern/SafeParcel index cbe7b4b9..89dd3272 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit cbe7b4b90452670c422f8303ec2a19aac7179d32 +Subproject commit 89dd3272d40271120913e0ba71b0fd348387f1d6 diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/ActivityRecognitionResult.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/ActivityRecognitionResult.aidl new file mode 100644 index 00000000..52b4c775 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/ActivityRecognitionResult.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location; + +parcelable ActivityRecognitionResult; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/GestureRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/GestureRequest.aidl new file mode 100644 index 00000000..9fffa77a --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/GestureRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location; + +parcelable GestureRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/ILocationCallback.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/ILocationCallback.aidl new file mode 100644 index 00000000..bbccd355 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/ILocationCallback.aidl @@ -0,0 +1,11 @@ +package com.google.android.gms.location; + +import android.location.Location; + +import com.google.android.gms.location.LocationAvailability; +import com.google.android.gms.location.LocationResult; + +interface ILocationCallback { + void onLocationResult(in LocationResult result) = 0; + void onLocationAvailability(in LocationAvailability availability) = 1; +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/LocationAvailability.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/LocationAvailability.aidl new file mode 100644 index 00000000..8037232b --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/LocationAvailability.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location; + +parcelable LocationAvailability; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/LocationResult.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/LocationResult.aidl new file mode 100644 index 00000000..d79917b7 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/LocationResult.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location; + +parcelable LocationResult; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/LocationSettingsRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/LocationSettingsRequest.aidl new file mode 100644 index 00000000..2552ed66 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/LocationSettingsRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location; + +parcelable LocationSettingsRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl index e2fb3acc..be26aeac 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl @@ -4,9 +4,12 @@ import android.app.PendingIntent; import android.location.Location; import android.os.Bundle; +import com.google.android.gms.common.api.Status; import com.google.android.gms.location.places.AutocompleteFilter; import com.google.android.gms.location.places.internal.IPlacesCallbacks; +import com.google.android.gms.location.internal.ISettingsCallback; import com.google.android.gms.location.internal.LocationRequestInternal; +import com.google.android.gms.location.internal.LocationRequestUpdateData; import com.google.android.gms.location.places.NearbyAlertRequest; import com.google.android.gms.location.places.PlaceFilter; import com.google.android.gms.location.places.PlaceRequest; @@ -14,9 +17,13 @@ import com.google.android.gms.location.places.PlaceReport; import com.google.android.gms.location.places.internal.PlacesParams; import com.google.android.gms.location.places.UserAddedPlace; import com.google.android.gms.location.places.UserDataType; +import com.google.android.gms.location.ActivityRecognitionResult; import com.google.android.gms.location.Geofence; import com.google.android.gms.location.GeofencingRequest; +import com.google.android.gms.location.GestureRequest; +import com.google.android.gms.location.LocationAvailability; import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationSettingsRequest; import com.google.android.gms.location.LocationStatus; import com.google.android.gms.location.internal.IGeofencerCallbacks; import com.google.android.gms.location.ILocationListener; @@ -25,40 +32,54 @@ import com.google.android.gms.maps.model.LatLngBounds; interface IGoogleLocationManagerService { void addGeofencesList(in List geofences, in PendingIntent pendingIntent, IGeofencerCallbacks callbacks, String packageName) = 0; + void addGeofences(in GeofencingRequest geofencingRequest, in PendingIntent pendingIntent, IGeofencerCallbacks callbacks) = 56; void removeGeofencesByIntent(in PendingIntent pendingIntent, IGeofencerCallbacks callbacks, String packageName) = 1; void removeGeofencesById(in String[] geofenceRequestIds, IGeofencerCallbacks callbacks, String packageName) = 2; - void iglms4(IGeofencerCallbacks callbacks, String packageName) = 3; + void removeAllGeofences(IGeofencerCallbacks callbacks, String packageName) = 3; + void requestActivityUpdates(long detectionIntervalMillis, boolean alwaysTrue, in PendingIntent callbackIntent) = 4; void removeActivityUpdates(in PendingIntent callbackIntent) = 5; + ActivityRecognitionResult getLastActivity(String packageName) = 63; + Status iglms65(in PendingIntent pendingIntent) = 64; + Status iglms66(in PendingIntent pendingIntent) = 65; + + Status requestGestureUpdates(in GestureRequest request, in PendingIntent pendingIntent) = 59; + Status iglms61(in PendingIntent pendingIntent) = 60; + Location getLastLocation() = 6; void requestLocationUpdatesWithListener(in LocationRequest request, ILocationListener listener) = 7; + void requestLocationUpdatesWithPackage(in LocationRequest request, ILocationListener listener, String packageName) = 19; void requestLocationUpdatesWithIntent(in LocationRequest request, in PendingIntent callbackIntent) = 8; + void requestLocationUpdatesInternalWithListener(in LocationRequestInternal request, ILocationListener listener) = 51; + void requestLocationUpdatesInternalWithIntent(in LocationRequestInternal request, in PendingIntent callbackIntent) = 52; void removeLocationUpdatesWithListener(ILocationListener listener) = 9; void removeLocationUpdatesWithIntent(in PendingIntent callbackIntent) = 10; + void updateLocationRequest(in LocationRequestUpdateData locationRequestUpdateData) = 58; + void setMockMode(boolean mockMode) = 11; void setMockLocation(in Location mockLocation) = 12; + + Location getLastLocationWithPackage(String packageName) = 20; + void iglms26(in Location var1, int var2) = 25; + LocationAvailability iglms34(String var1) = 33; + + IBinder iglms51() = 50; + void iglms63(in LocationSettingsRequest settingsRequest, ISettingsCallback callback, String packageName) = 62; + void iglms14(in LatLngBounds var1, int var2, in PlaceFilter var3, in PlacesParams var4, IPlacesCallbacks var5) = 13; void iglms15(String var1, in PlacesParams var2, IPlacesCallbacks var3) = 14; void iglms16(in LatLng var1, in PlaceFilter var2, in PlacesParams var3, IPlacesCallbacks var4) = 15; void iglms17(in PlaceFilter var1, in PlacesParams var2, IPlacesCallbacks var3) = 16; void iglms18(in PlaceRequest var1, in PlacesParams var2, in PendingIntent var3) = 17; void iglms19(in PlacesParams var1, in PendingIntent var2) = 18; - void requestLocationUpdatesWithPackage(in LocationRequest request, ILocationListener listener, String packageName) = 19; - Location getLastLocationWithPackage(String packageName) = 20; void iglms25(in PlaceReport var1, in PlacesParams var2) = 24; - void iglms26(in Location var1, int var2) = 25; - LocationStatus iglms34(String var1) = 33; void iglms42(String var1, in PlacesParams var2, IPlacesCallbacks var3) = 41; void iglms46(in UserAddedPlace var1, in PlacesParams var2, IPlacesCallbacks var3) = 45; void iglms47(in LatLngBounds var1, int var2, String var3, in PlaceFilter var4, in PlacesParams var5, IPlacesCallbacks var6) = 46; void iglms48(in NearbyAlertRequest var1, in PlacesParams var2, in PendingIntent var3) = 47; void iglms49(in PlacesParams var1, in PendingIntent var2) = 48; void iglms50(in UserDataType var1, in LatLngBounds var2, in List var3, in PlacesParams var4, IPlacesCallbacks var5) = 49; - IBinder iglms51() = 50; - void requestLocationUpdatesInternalWithListener(in LocationRequestInternal request, ILocationListener listener) = 51; - void requestLocationUpdatesInternalWithIntent(in LocationRequestInternal request, in PendingIntent callbackIntent) = 52; IBinder iglms54() = 53; void iglms55(String var1, in LatLngBounds var2, in AutocompleteFilter var3, in PlacesParams var4, IPlacesCallbacks var5) = 54; - void addGeofences(in GeofencingRequest geofencingRequest, in PendingIntent pendingIntent, IGeofencerCallbacks callbacks) = 56; void iglms58(in List var1, in PlacesParams var2, IPlacesCallbacks var3) = 57; } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallback.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallback.aidl new file mode 100644 index 00000000..f1ec017e --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallback.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.location.internal; + +interface ISettingsCallback { + // TODO +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/LocationRequestUpdateData.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/LocationRequestUpdateData.aidl new file mode 100644 index 00000000..812f2ca5 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/LocationRequestUpdateData.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.internal; + +parcelable LocationRequestUpdateData; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/ActivityRecognitionResult.java b/play-services-api/src/main/java/com/google/android/gms/location/ActivityRecognitionResult.java new file mode 100644 index 00000000..497cfdb8 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/location/ActivityRecognitionResult.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class ActivityRecognitionResult extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(ActivityRecognitionResult.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/location/GestureRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/GestureRequest.java new file mode 100644 index 00000000..78bc5004 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/location/GestureRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class GestureRequest extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(GestureRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationAvailability.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationAvailability.java new file mode 100644 index 00000000..2cba0cf6 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationAvailability.java @@ -0,0 +1,24 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class LocationAvailability extends AutoSafeParcelable { + + public static final Creator CREATOR = new AutoCreator(LocationAvailability.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java index 41660fac..27907f2f 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java @@ -423,8 +423,16 @@ public class LocationRequest extends AutoSafeParcelable { @Override public String toString() { - // TODO - return super.toString(); + return "LocationRequest{" + + "priority=" + priority + + ", interval=" + interval + + ", fastestInterval=" + fastestInterval + + ", explicitFastestInterval=" + explicitFastestInterval + + ", expirationTime=" + expirationTime + + ", numUpdates=" + numUpdates + + ", smallestDesplacement=" + smallestDesplacement + + ", maxWaitTime=" + maxWaitTime + + '}'; } public static final Creator CREATOR = new AutoCreator(LocationRequest.class); diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationResult.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationResult.java new file mode 100644 index 00000000..9bfcf71c --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationResult.java @@ -0,0 +1,45 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location; + +import android.location.Location; + +import org.microg.gms.common.PublicApi; +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.List; + +@PublicApi +public class LocationResult extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 2; + + @SafeParceled(value = 1, subClass = Location.class) + public final List locations; + + private LocationResult(List locations) { + this.locations = locations; + } + + public static LocationResult create(List locations) { + return new LocationResult(locations); + } + + public static final Creator CREATOR = new AutoCreator(LocationResult.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java new file mode 100644 index 00000000..cd52b8fa --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class LocationSettingsRequest extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(LocationSettingsRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java b/play-services-api/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java index 7c707529..8b9758a8 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java @@ -16,5 +16,8 @@ package com.google.android.gms.location.internal; -public class ClientIdentity { +import org.microg.safeparcel.AutoSafeParcelable; + +public class ClientIdentity extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(ClientIdentity.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java b/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java index c7eb2e15..1c9fe3d6 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java @@ -16,12 +16,51 @@ package com.google.android.gms.location.internal; +import com.google.android.gms.location.LocationRequest; + import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.List; -/** - * TODO: usage - */ public class LocationRequestInternal extends AutoSafeParcelable { + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + public LocationRequest request; + + @SafeParceled(2) + public boolean requestNlpDebugInfo; + + @SafeParceled(3) + public boolean restorePendingIntentListeners; + + @SafeParceled(4) + public boolean triggerUpdate; + + @SafeParceled(value = 5, subClass = ClientIdentity.class) + public List clients; + + @SafeParceled(6) + public String tag; + + @SafeParceled(7) + public boolean hideFromAppOps; + + @Override + public String toString() { + return "LocationRequestInternal{" + + "request=" + request + + ", requestNlpDebugInfo=" + requestNlpDebugInfo + + ", restorePendingIntentListeners=" + restorePendingIntentListeners + + ", triggerUpdate=" + triggerUpdate + + ", clients=" + clients + + ", tag='" + tag + '\'' + + ", hideFromAppOps=" + hideFromAppOps + + '}'; + } + public static final Creator CREATOR = new AutoCreator(LocationRequestInternal.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestUpdateData.java b/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestUpdateData.java new file mode 100644 index 00000000..748f2f13 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestUpdateData.java @@ -0,0 +1,62 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location.internal; + +import android.app.PendingIntent; + +import com.google.android.gms.location.ILocationCallback; +import com.google.android.gms.location.ILocationListener; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class LocationRequestUpdateData extends AutoSafeParcelable { + + public static final int REQUEST_UPDATES = 1; + public static final int REMOVE_UPDATES = 2; + + @SafeParceled(1000) + private int versionCode; + + @SafeParceled(1) + public int opCode; + + @SafeParceled(2) + public LocationRequestInternal request; + + @SafeParceled(3) + public ILocationListener listener; + + @SafeParceled(4) + public PendingIntent pendingIntent; + + @SafeParceled(5) + public ILocationCallback callback; + + @Override + public String toString() { + return "LocationRequestUpdateData{" + + "opCode=" + opCode + + ", request=" + request + + ", listener=" + listener + + ", pendingIntent=" + pendingIntent + + ", callback=" + callback + + '}'; + } + + public static final Creator CREATOR = new AutoCreator(LocationRequestUpdateData.class); +} From 6f5bf2335138fda80460d906d1f2ec3d6ddfaec5 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sun, 4 Oct 2015 04:40:58 +0200 Subject: [PATCH 068/170] Enhance Location API --- .../gms/location/LocationSettingsResult.aidl | 3 + .../IGoogleLocationManagerService.aidl | 4 +- .../location/internal/ISettingsCallback.aidl | 5 - .../location/internal/ISettingsCallbacks.aidl | 7 ++ .../gms/location/LocationSettingsRequest.java | 19 ++++ .../gms/location/LocationSettingsResult.java | 60 ++++++++++++ .../gms/location/LocationSettingsStates.java | 92 +++++++++++++++++++ 7 files changed, 183 insertions(+), 7 deletions(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/LocationSettingsResult.aidl delete mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallback.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallbacks.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsResult.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/LocationSettingsResult.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/LocationSettingsResult.aidl new file mode 100644 index 00000000..54dad656 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/LocationSettingsResult.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location; + +parcelable LocationSettingsResult; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl index be26aeac..40937c80 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl @@ -7,7 +7,7 @@ import android.os.Bundle; import com.google.android.gms.common.api.Status; import com.google.android.gms.location.places.AutocompleteFilter; import com.google.android.gms.location.places.internal.IPlacesCallbacks; -import com.google.android.gms.location.internal.ISettingsCallback; +import com.google.android.gms.location.internal.ISettingsCallbacks; import com.google.android.gms.location.internal.LocationRequestInternal; import com.google.android.gms.location.internal.LocationRequestUpdateData; import com.google.android.gms.location.places.NearbyAlertRequest; @@ -64,7 +64,7 @@ interface IGoogleLocationManagerService { LocationAvailability iglms34(String var1) = 33; IBinder iglms51() = 50; - void iglms63(in LocationSettingsRequest settingsRequest, ISettingsCallback callback, String packageName) = 62; + void requestLocationSettingsDialog(in LocationSettingsRequest settingsRequest, ISettingsCallbacks callback, String packageName) = 62; void iglms14(in LatLngBounds var1, int var2, in PlaceFilter var3, in PlacesParams var4, IPlacesCallbacks var5) = 13; void iglms15(String var1, in PlacesParams var2, IPlacesCallbacks var3) = 14; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallback.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallback.aidl deleted file mode 100644 index f1ec017e..00000000 --- a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallback.aidl +++ /dev/null @@ -1,5 +0,0 @@ -package com.google.android.gms.location.internal; - -interface ISettingsCallback { - // TODO -} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallbacks.aidl new file mode 100644 index 00000000..f710d11f --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallbacks.aidl @@ -0,0 +1,7 @@ +package com.google.android.gms.location.internal; + +import com.google.android.gms.location.LocationSettingsResult; + +interface ISettingsCallbacks { + void onLocationSettingsResult(in LocationSettingsResult result); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java index cd52b8fa..3d5aa5a9 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java @@ -16,8 +16,27 @@ package com.google.android.gms.location; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; +import java.util.List; + +@PublicApi public class LocationSettingsRequest extends AutoSafeParcelable { + @SafeParceled(1000) + private int versionCode = 2; + + @SafeParceled(value = 1, subClass = LocationRequest.class) + @PublicApi(exclude = true) + public List requests; + + @SafeParceled(2) + @PublicApi(exclude = true) + public boolean alwaysShow; + + @PublicApi(exclude = true) + public boolean needBle; + public static final Creator CREATOR = new AutoCreator(LocationSettingsRequest.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsResult.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsResult.java new file mode 100644 index 00000000..1ca160ea --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsResult.java @@ -0,0 +1,60 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location; + +import com.google.android.gms.common.api.Result; +import com.google.android.gms.common.api.Status; + +import org.microg.gms.common.PublicApi; +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +@PublicApi +public class LocationSettingsResult extends AutoSafeParcelable implements Result { + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + private Status status; + + @SafeParceled(2) + private LocationSettingsStates settings; + + + public LocationSettingsStates getLocationSettingsStates() { + return settings; + } + + @Override + public Status getStatus() { + return status; + } + + @PublicApi(exclude = true) + public LocationSettingsResult(LocationSettingsStates settings, Status status) { + this.settings = settings; + this.status = status; + } + + @PublicApi(exclude = true) + public LocationSettingsResult(Status status) { + this.status = status; + } + + public static final Creator CREATOR = new AutoCreator(LocationSettingsResult.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java new file mode 100644 index 00000000..c11d815b --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java @@ -0,0 +1,92 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location; + +import org.microg.gms.common.PublicApi; +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +@PublicApi +public class LocationSettingsStates extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 2; + + @SafeParceled(1) + private boolean gpsUsable; + + @SafeParceled(2) + private boolean networkLocationUsable; + + @SafeParceled(3) + private boolean bleUsable; + + @SafeParceled(4) + private boolean gpsPresent; + + @SafeParceled(5) + private boolean networkLocationPresent; + + @SafeParceled(6) + private boolean blePresent; + + public boolean isBlePresent() { + return blePresent; + } + + public boolean isBleUsable() { + return bleUsable; + } + + public boolean isGpsPresent() { + return gpsPresent; + } + + public boolean isGpsUsable() { + return gpsUsable; + } + + public boolean isLocationPresent() { + return isGpsPresent() || isNetworkLocationPresent(); + } + + public boolean isLocationUsable() { + return isGpsUsable() || isNetworkLocationUsable(); + } + + public boolean isNetworkLocationPresent() { + return networkLocationPresent; + } + + public boolean isNetworkLocationUsable() { + return networkLocationUsable; + } + + public LocationSettingsStates(boolean gpsUsable, boolean networkLocationUsable, boolean bleUsable, boolean gpsPresent, boolean networkLocationPresent, boolean blePresent) { + this.gpsUsable = gpsUsable; + this.networkLocationUsable = networkLocationUsable; + this.bleUsable = bleUsable; + this.gpsPresent = gpsPresent; + this.networkLocationPresent = networkLocationPresent; + this.blePresent = blePresent; + } + + @PublicApi(exclude = true) + + + public static final Creator CREATOR = new AutoCreator(LocationSettingsStates.class); +} From c43a964cb196f7a30888216dedcd812386c867be Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Tue, 6 Oct 2015 18:05:20 +0200 Subject: [PATCH 069/170] Add IAdvertisingIdService --- .../internal/IAdvertisingIdService.aidl | 8 + .../java/org/microg/gms/common/Services.java | 386 +++++++++--------- 2 files changed, 206 insertions(+), 188 deletions(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/ads/identifier/internal/IAdvertisingIdService.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/ads/identifier/internal/IAdvertisingIdService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/ads/identifier/internal/IAdvertisingIdService.aidl new file mode 100644 index 00000000..5f4f5c1f --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/ads/identifier/internal/IAdvertisingIdService.aidl @@ -0,0 +1,8 @@ +package com.google.android.gms.ads.identifier.internal; + +interface IAdvertisingIdService { + String getAdvertisingId() = 0; + boolean isAdTrackingLimited(boolean defaultHint) = 1; + String generateAdvertisingId(String packageName) = 2; + void setAdTrackingLimited(String packageName, boolean limited) = 3; +} diff --git a/play-services-api/src/main/java/org/microg/gms/common/Services.java b/play-services-api/src/main/java/org/microg/gms/common/Services.java index 7173d02c..56a5c93e 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Services.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Services.java @@ -19,325 +19,335 @@ package org.microg.gms.common; import java.lang.reflect.Field; public final class Services { - public static final class GAMES { - public static final int SERVICE_ID = 1; - public static final String ACTION = "com.google.android.gms.games.service.START"; + + private Services() { } - public static final class PLUS { - public static final int SERVICE_ID = 2; - public static final String ACTION = "com.google.android.gms.plus.service.START"; - public static final String ACTION_INTERNAL = "com.google.android.gms.plus.service.internal.START"; + public interface GAMES { + int SERVICE_ID = 1; + String ACTION = "com.google.android.gms.games.service.START"; } - public static final class PANORAMA { - public static final int SERVICE_ID = 3; - public static final String ACTION = "com.google.android.gms.panorama.service.START"; + public interface PLUS { + int SERVICE_ID = 2; + String ACTION = "com.google.android.gms.plus.service.START"; + String ACTION_INTERNAL = "com.google.android.gms.plus.service.internal.START"; } - public static final class WALLET { - public static final int SERVICE_ID = 4; - public static final String ACTION = "com.google.android.gms.wallet.service.BIND"; + public interface PANORAMA { + int SERVICE_ID = 3; + String ACTION = "com.google.android.gms.panorama.service.START"; } - public static final class PEOPLE { - public static final int SERVICE_ID = 5; - public static final String ACTION = "com.google.android.gms.people.service.START"; + public interface WALLET { + int SERVICE_ID = 4; + String ACTION = "com.google.android.gms.wallet.service.BIND"; } - public static final class LOCATION { - public static final int SERVICE_ID = 6; + public interface PEOPLE { + int SERVICE_ID = 5; + String ACTION = "com.google.android.gms.people.service.START"; } - public static final class APPSTATE { - public static final int SERVICE_ID = 7; - public static final String ACTION = "com.google.android.gms.appstate.service.START"; + public interface LOCATION { + int SERVICE_ID = 6; } - public static final class ADREQUEST { - public static final int SERVICE_ID = 8; - public static final String ACTION = "com.google.android.gms.ads.service.START"; + public interface APPSTATE { + int SERVICE_ID = 7; + String ACTION = "com.google.android.gms.appstate.service.START"; } - public static final class ACCOUNT { - public static final int SERVICE_ID = 9; - public static final String ACTION = "com.google.android.gms.accounts.ACCOUNT_SERVICE"; + public interface ADREQUEST { + int SERVICE_ID = 8; + String ACTION = "com.google.android.gms.ads.service.START"; } - public static final class CAST { - public static final int SERVICE_ID = 10; - public static final String ACTION = "com.google.android.gms.cast.service.BIND_CAST_DEVICE_CONTROLLER_SERVICE"; + public interface ACCOUNT { + int SERVICE_ID = 9; + String ACTION = "com.google.android.gms.accounts.ACCOUNT_SERVICE"; } - public static final class DRIVE { - public static final int SERVICE_ID = 11; - public static final String ACTION = "com.google.android.gms.drive.ApiService.START"; + public interface CAST { + int SERVICE_ID = 10; + String ACTION = "com.google.android.gms.cast.service.BIND_CAST_DEVICE_CONTROLLER_SERVICE"; } - public static final class ADDRESS { - public static final int SERVICE_ID = 12; - public static final String ACTION = "com.google.android.gms.identity.service.BIND"; + public interface DRIVE { + int SERVICE_ID = 11; + String ACTION = "com.google.android.gms.drive.ApiService.START"; } - public static final class CAR { - public static final int SERVICE_ID = 13; - public static final String ACTION = "com.google.android.gms.car.service.START"; + public interface ADDRESS { + int SERVICE_ID = 12; + String ACTION = "com.google.android.gms.identity.service.BIND"; } - public static final class WEARABLE { - public static final int SERVICE_ID = 14; - public static final String ACTION = "com.google.android.gms.wearable.BIND"; + public interface CAR { + int SERVICE_ID = 13; + String ACTION = "com.google.android.gms.car.service.START"; } - public static final class AUTH { - public static final int SERVICE_ID = 16; - public static final String ACTION = "com.google.android.gms.auth.service.START"; + public interface WEARABLE { + int SERVICE_ID = 14; + String ACTION = "com.google.android.gms.wearable.BIND"; } - public static final class FITNESS { - public static final int SERVICE_ID = 17; - public static final String ACTION = "com.google.android.gms.fitness.GoogleFitnessService.START"; + public interface AUTH { + int SERVICE_ID = 16; + String ACTION = "com.google.android.gms.auth.service.START"; } - public static final class REMINDERS { - public static final int SERVICE_ID = 18; - public static final String ACTION = "com.google.android.gms.reminders.service.START"; + public interface FITNESS { + int SERVICE_ID = 17; + String ACTION = "com.google.android.gms.fitness.GoogleFitnessService.START"; } - public static final class LIGHTWEIGHT_INDEX { - public static final int SERVICE_ID = 19; - public static final String ACTION = "com.google.android.gms.icing.LIGHTWEIGHT_INDEX_SERVICE"; + public interface REMINDERS { + int SERVICE_ID = 18; + String ACTION = "com.google.android.gms.reminders.service.START"; } - public static final class DEVICE_CONNECTION { - public static final int SERVICE_ID = 20; - public static final String ACTION = "com.google.android.gms.deviceconnection.service.START"; + public interface LIGHTWEIGHT_INDEX { + int SERVICE_ID = 19; + String ACTION = "com.google.android.gms.icing.LIGHTWEIGHT_INDEX_SERVICE"; } - public static final class INDEX { - public static final int SERVICE_ID = 21; - public static final String ACTION = "com.google.android.gms.icing.INDEX_SERVICE"; + public interface DEVICE_CONNECTION { + int SERVICE_ID = 20; + String ACTION = "com.google.android.gms.deviceconnection.service.START"; } - public static final class LOCATION_REPORTING { - public static final int SERVICE_ID = 22; - public static final String ACTION = "com.google.android.gms.location.reporting.service.START"; + public interface INDEX { + int SERVICE_ID = 21; + String ACTION = "com.google.android.gms.icing.INDEX_SERVICE"; } - public static final class LOCATION_MANAGER { - public static final int SERVICE_ID = 23; - public static final String ACTION = "com.google.android.location.internal.GoogleLocationManagerService.START"; + public interface LOCATION_REPORTING { + int SERVICE_ID = 22; + String ACTION = "com.google.android.gms.location.reporting.service.START"; + String ACTION_LEGACY = "com.google.android.location.reporting.service.START"; } - public static final class PLAY_LOG { - public static final int SERVICE_ID = 24; - public static final String ACTION = "com.google.android.gms.playlog.service.START"; + public interface LOCATION_MANAGER { + int SERVICE_ID = 23; + String ACTION_LEGACY = "com.google.android.location.internal.GoogleLocationManagerService.START"; } - public static final class DROIDGUARD { - public static final int SERVICE_ID = 25; - public static final String ACTION = "com.google.android.gms.droidguard.service.START"; + public interface PLAY_LOG { + int SERVICE_ID = 24; + String ACTION = "com.google.android.gms.playlog.service.START"; } - public static final class LOCKBOX { - public static final int SERVICE_ID = 26; - public static final String ACTION = "com.google.android.gms.lockbox.service.START"; + public interface DROIDGUARD { + int SERVICE_ID = 25; + String ACTION = "com.google.android.gms.droidguard.service.START"; } - public static final class CAST_MIRRORING { - public static final int SERVICE_ID = 27; - public static final String ACTION = "com.google.android.gms.cast_mirroring.service.START"; + public interface LOCKBOX { + int SERVICE_ID = 26; + String ACTION = "com.google.android.gms.lockbox.service.START"; } - public static final class NETWORK_QUALITY { - public static final int SERVICE_ID = 28; - public static final String ACTION = "com.google.android.gms.mdm.services.START"; + public interface CAST_MIRRORING { + int SERVICE_ID = 27; + String ACTION = "com.google.android.gms.cast_mirroring.service.START"; } - public static final class FEEDBACK { - public static final int SERVICE_ID = 29; - public static final String ACTION = "com.google.android.gms.feedback.internal.IFeedbackService"; + public interface NETWORK_QUALITY { + int SERVICE_ID = 28; + String ACTION = "com.google.android.gms.mdm.services.START"; } - public static final class SEARCH_ADMINISTRATION { - public static final int SERVICE_ID = 30; + public interface FEEDBACK { + int SERVICE_ID = 29; + String ACTION = "com.google.android.gms.feedback.internal.IFeedbackService"; } - public static final class PHOTO_AUTO_BACKUP { - public static final int SERVICE_ID = 31; - public static final String ACTION = "com.google.android.gms.photos.autobackup.service.START"; + public interface SEARCH_ADMINISTRATION { + int SERVICE_ID = 30; } - public static final class SEARCH_QUERIES { - public static final int SERVICE_ID = 32; + public interface PHOTO_AUTO_BACKUP { + int SERVICE_ID = 31; + String ACTION = "com.google.android.gms.photos.autobackup.service.START"; } - public static final class SEARCH_GLOBAL { - public static final int SERVICE_ID = 33; + public interface SEARCH_QUERIES { + int SERVICE_ID = 32; } - public static final class UDC { - public static final int SERVICE_ID = 35; - public static final String ACTION = "com.google.android.gms.udc.service.START"; + public interface SEARCH_GLOBAL { + int SERVICE_ID = 33; } - public static final class SEARCH_CORPORA { - public static final int SERVICE_ID = 36; + public interface UDC { + int SERVICE_ID = 35; + String ACTION = "com.google.android.gms.udc.service.START"; } - public static final class DEVICE_MANAGER { - public static final int SERVICE_ID = 37; - public static final String ACTION = "com.google.android.gms.mdm.services.DeviceManagerApiService.START"; + public interface SEARCH_CORPORA { + int SERVICE_ID = 36; } - public static final class PSEUDONYMOUS_ID { - public static final int SERVICE_ID = 38; - public static final String ACTION = "com.google.android.gms.pseudonymous.service.START"; + public interface DEVICE_MANAGER { + int SERVICE_ID = 37; + String ACTION = "com.google.android.gms.mdm.services.DeviceManagerApiService.START"; } - public static final class COMMON { - public static final int SERVICE_ID = 39; - public static final String ACTION = "com.google.android.gms.common.service.START"; + public interface PSEUDONYMOUS_ID { + int SERVICE_ID = 38; + String ACTION = "com.google.android.gms.pseudonymous.service.START"; } - public static final class CLEARCUT_LOGGER { - public static final int SERVICE_ID = 40; - public static final String ACTION = "com.google.android.gms.clearcut.service.START"; + public interface COMMON { + int SERVICE_ID = 39; + String ACTION = "com.google.android.gms.common.service.START"; } - public static final class USAGE_REPORTING { - public static final int SERVICE_ID = 41; - public static final String ACTION = "com.google.android.gms.usagereporting.service.START"; + public interface CLEARCUT_LOGGER { + int SERVICE_ID = 40; + String ACTION = "com.google.android.gms.clearcut.service.START"; } - public static final class KIDS { - public static final int SERVICE_ID = 42; - public static final String ACTION = "com.google.android.gms.kids.service.START"; + public interface USAGE_REPORTING { + int SERVICE_ID = 41; + String ACTION = "com.google.android.gms.usagereporting.service.START"; } - public static final class DOWNLOAD { - public static final int SERVICE_ID = 43; - public static final String ACTION = "com.google.android.gms.common.download.START"; + public interface KIDS { + int SERVICE_ID = 42; + String ACTION = "com.google.android.gms.kids.service.START"; } - public static final class SIGN_IN { - public static final int SERVICE_ID = 44; - public static final String ACTION = "com.google.android.gms.signin.service.START"; + public interface DOWNLOAD { + int SERVICE_ID = 43; + String ACTION = "com.google.android.gms.common.download.START"; } - public static final class SAFETY_NET_CLIENT { - public static final int SERVICE_ID = 45; - public static final String ACTION = "com.google.android.gms.safetynet.service.START"; + public interface SIGN_IN { + int SERVICE_ID = 44; + String ACTION = "com.google.android.gms.signin.service.START"; } - public static final class GSERVICES { - public static final int SERVICE_ID = 46; - public static final String ACTION = "com.google.android.gms.ads.gservice.START"; + public interface SAFETY_NET_CLIENT { + int SERVICE_ID = 45; + String ACTION = "com.google.android.gms.safetynet.service.START"; } - public static final class CONTEXT_MANAGER { - public static final int SERVICE_ID = 47; - public static final String ACTION = "com.google.android.contextmanager.service.ContextManagerService.START"; + public interface GSERVICES { + int SERVICE_ID = 46; + String ACTION = "com.google.android.gms.ads.gservice.START"; } - public static final class AUDIO_MODEM { - public static final int SERVICE_ID = 48; - public static final String ACTION = "com.google.android.gms.audiomodem.service.AudioModemService.START"; + public interface CONTEXT_MANAGER { + int SERVICE_ID = 47; + String ACTION = "com.google.android.contextmanager.service.ContextManagerService.START"; } - public static final class NEARBY_SHARING { - public static final int SERVICE_ID = 49; - public static final String ACTION = "com.google.android.gms.nearby.sharing.service.NearbySharingService.START"; + public interface AUDIO_MODEM { + int SERVICE_ID = 48; + String ACTION = "com.google.android.gms.audiomodem.service.AudioModemService.START"; } - public static final class LIGHTWEIGHT_NETWORK_QUALITY { - public static final int SERVICE_ID = 51; - public static final String ACTION = "com.google.android.gms.herrevad.services.LightweightNetworkQualityAndroidService.START"; + public interface NEARBY_SHARING { + int SERVICE_ID = 49; + String ACTION = "com.google.android.gms.nearby.sharing.service.NearbySharingService.START"; } - public static final class PHENOTYPE { - public static final int SERVICE_ID = 51; - public static final String ACTION = "com.google.android.gms.phenotype.service.START"; + public interface LIGHTWEIGHT_NETWORK_QUALITY { + int SERVICE_ID = 51; + String ACTION = "com.google.android.gms.herrevad.services.LightweightNetworkQualityAndroidService.START"; } - public static final class VOICE_UNLOCK { - public static final int SERVICE_ID = 52; - public static final String ACTION = "com.google.android.gms.speech.service.START"; + public interface PHENOTYPE { + int SERVICE_ID = 51; + String ACTION = "com.google.android.gms.phenotype.service.START"; } - public static final class NEARBY_CONNECTIONS { - public static final int SERVICE_ID = 54; - public static final String ACTION = "com.google.android.gms.nearby.connection.service.START"; + public interface VOICE_UNLOCK { + int SERVICE_ID = 52; + String ACTION = "com.google.android.gms.speech.service.START"; } - public static final class FITNESS_SENSORS { - public static final int SERVICE_ID = 55; - public static final String ACTION = "com.google.android.gms.fitness.SensorsApi"; + public interface NEARBY_CONNECTIONS { + int SERVICE_ID = 54; + String ACTION = "com.google.android.gms.nearby.connection.service.START"; } - public static final class FITNESS_RECORDING { - public static final int SERVICE_ID = 56; - public static final String ACTION = "com.google.android.gms.fitness.RecordingApi"; + public interface FITNESS_SENSORS { + int SERVICE_ID = 55; + String ACTION = "com.google.android.gms.fitness.SensorsApi"; } - public static final class FITNESS_HISTORY { - public static final int SERVICE_ID = 57; - public static final String ACTION = "com.google.android.gms.fitness.HistoryApi"; + public interface FITNESS_RECORDING { + int SERVICE_ID = 56; + String ACTION = "com.google.android.gms.fitness.RecordingApi"; } - public static final class FITNESS_SESSIONS { - public static final int SERVICE_ID = 58; - public static final String ACTION = "com.google.android.gms.fitness.SessionsApi"; + public interface FITNESS_HISTORY { + int SERVICE_ID = 57; + String ACTION = "com.google.android.gms.fitness.HistoryApi"; + } + + public interface FITNESS_SESSIONS { + int SERVICE_ID = 58; + String ACTION = "com.google.android.gms.fitness.SessionsApi"; } /** * BLE = Bluetooth Low Energy */ - public static final class FITNESS_BLE { - public static final int SERVICE_ID = 59; - public static final String ACTION = "com.google.android.gms.fitness.BleApi"; + public interface FITNESS_BLE { + int SERVICE_ID = 59; + String ACTION = "com.google.android.gms.fitness.BleApi"; } - public static final class FITNESS_CONFIG { - public static final int SERVICE_ID = 60; - public static final String ACTION = "com.google.android.gms.fitness.ConfigApi"; + public interface FITNESS_CONFIG { + int SERVICE_ID = 60; + String ACTION = "com.google.android.gms.fitness.ConfigApi"; } - public static final class FITNESS_INTERNAL { - public static final int SERVICE_ID = 61; - public static final String ACTION = "com.google.android.gms.fitness.InternalApi"; + public interface FITNESS_INTERNAL { + int SERVICE_ID = 61; + String ACTION = "com.google.android.gms.fitness.InternalApi"; } - public static final class NEARBY_MESSAGES { - public static final int SERVICE_ID = 62; - public static final String ACTION = "com.google.android.gms.nearby.messages.service.NearbyMessagesService.START"; + public interface NEARBY_MESSAGES { + int SERVICE_ID = 62; + String ACTION = "com.google.android.gms.nearby.messages.service.NearbyMessagesService.START"; } - public static final class HELP { - public static final int SERVICE_ID = 63; - public static final String ACTION = "com.google.android.gms.googlehelp.service.GoogleHelpService.START"; + public interface HELP { + int SERVICE_ID = 63; + String ACTION = "com.google.android.gms.googlehelp.service.GoogleHelpService.START"; } - public static final class CONFIG { - public static final int SERVICE_ID = 64; - public static final String ACTION = "com.google.android.gms.config.START"; + public interface CONFIG { + int SERVICE_ID = 64; + String ACTION = "com.google.android.gms.config.START"; } - public static final class GEODATA { - public static final int SERVICE_ID = 65; + public interface GEODATA { + int SERVICE_ID = 65; } - public static final class SEARCH_IME { - public static final int SERVICE_ID = 66; + public interface SEARCH_IME { + int SERVICE_ID = 66; } - public static final class PLACE_DETECTION { - public static final int SERVICE_ID = 67; + public interface PLACE_DETECTION { + int SERVICE_ID = 67; } - public static final class CREDENTIALS { - public static final int SERVICE_ID = 68; - public static final String ACTION = "com.google.android.gms.auth.api.credentials.service.START"; + public interface CREDENTIALS { + int SERVICE_ID = 68; + String ACTION = "com.google.android.gms.auth.api.credentials.service.START"; + } + + public interface ADVERTISING_ID { + // Has no service id + String ACTION = "com.google.android.gms.ads.identifier.service.START"; } public static String nameFromServiceId(int serviceId) { From 594fb004b7ceac5cf5d9f69bdc0809f3ca106fd7 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Thu, 8 Oct 2015 01:41:19 +0200 Subject: [PATCH 070/170] Small typo --- .../google/android/gms/location/LocationSettingsStates.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java index c11d815b..5d9305d3 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java @@ -85,8 +85,5 @@ public class LocationSettingsStates extends AutoSafeParcelable { this.blePresent = blePresent; } - @PublicApi(exclude = true) - - public static final Creator CREATOR = new AutoCreator(LocationSettingsStates.class); } From 90426cf2e1bfe199267377e826c1d2f060866bc6 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 9 Oct 2015 20:50:49 +0200 Subject: [PATCH 071/170] Add BinderWrapper --- .../gms/common/internal/BinderWrapper.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 play-services-api/src/main/java/com/google/android/gms/common/internal/BinderWrapper.java diff --git a/play-services-api/src/main/java/com/google/android/gms/common/internal/BinderWrapper.java b/play-services-api/src/main/java/com/google/android/gms/common/internal/BinderWrapper.java new file mode 100644 index 00000000..ed595f68 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/common/internal/BinderWrapper.java @@ -0,0 +1,51 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.common.internal; + +import android.os.IBinder; +import android.os.Parcel; +import android.os.Parcelable; + +public class BinderWrapper implements Parcelable { + public IBinder binder; + + public BinderWrapper(IBinder binder) { + this.binder = binder; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeStrongBinder(binder); + } + + public static final Creator CREATOR = new Creator() { + @Override + public BinderWrapper createFromParcel(Parcel source) { + return new BinderWrapper(source.readStrongBinder()); + } + + @Override + public BinderWrapper[] newArray(int size) { + return new BinderWrapper[size]; + } + }; +} From d3e37f725226526438f1436119fecb61d3e2d339 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Thu, 15 Oct 2015 03:18:33 +0200 Subject: [PATCH 072/170] Add empty ClearcutLogger API --- .../gms/clearcut/LogEventParcelable.aidl | 3 +++ .../internal/IClearcutLoggerCallbacks.aidl | 7 ++++++ .../internal/IClearcutLoggerService.aidl | 8 ++++++ .../gms/clearcut/LogEventParcelable.java | 25 +++++++++++++++++++ 4 files changed, 43 insertions(+) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/clearcut/LogEventParcelable.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/clearcut/internal/IClearcutLoggerCallbacks.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/clearcut/internal/IClearcutLoggerService.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/clearcut/LogEventParcelable.java diff --git a/play-services-api/src/main/aidl/com/google/android/gms/clearcut/LogEventParcelable.aidl b/play-services-api/src/main/aidl/com/google/android/gms/clearcut/LogEventParcelable.aidl new file mode 100644 index 00000000..25041d4d --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/clearcut/LogEventParcelable.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.clearcut; + +parcelable LogEventParcelable; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/clearcut/internal/IClearcutLoggerCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/clearcut/internal/IClearcutLoggerCallbacks.aidl new file mode 100644 index 00000000..58e796ef --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/clearcut/internal/IClearcutLoggerCallbacks.aidl @@ -0,0 +1,7 @@ +package com.google.android.gms.clearcut.internal; + +import com.google.android.gms.common.api.Status; + +interface IClearcutLoggerCallbacks { + void onStatus(in Status status) = 0; +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/clearcut/internal/IClearcutLoggerService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/clearcut/internal/IClearcutLoggerService.aidl new file mode 100644 index 00000000..b2f1b2fd --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/clearcut/internal/IClearcutLoggerService.aidl @@ -0,0 +1,8 @@ +package com.google.android.gms.clearcut.internal; + +import com.google.android.gms.clearcut.internal.IClearcutLoggerCallbacks; +import com.google.android.gms.clearcut.LogEventParcelable; + +interface IClearcutLoggerService { + void log(IClearcutLoggerCallbacks callbacks, in LogEventParcelable event) = 0; +} diff --git a/play-services-api/src/main/java/com/google/android/gms/clearcut/LogEventParcelable.java b/play-services-api/src/main/java/com/google/android/gms/clearcut/LogEventParcelable.java new file mode 100644 index 00000000..4b041a6f --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/clearcut/LogEventParcelable.java @@ -0,0 +1,25 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.clearcut; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class LogEventParcelable extends AutoSafeParcelable { + // TODO + + public static final Creator CREATOR = new AutoCreator(LogEventParcelable.class); +} From d2b942d87f5b5d0547e7e5f279bcc734d69cdef4 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 16 Oct 2015 22:43:45 +0200 Subject: [PATCH 073/170] Add Drive API interfaces (does not include parcelable class implementations) --- .../internal/AddEventListenerRequest.aidl | 3 + .../drive/internal/AddPermissionRequest.aidl | 3 + .../internal/AuthorizeAccessRequest.aidl | 3 + .../internal/CancelPendingActionsRequest.aidl | 3 + .../ChangeResourceParentsRequest.aidl | 3 + .../drive/internal/ChangeSequenceNumber.aidl | 3 + .../gms/drive/internal/ChangesResponse.aidl | 3 + .../CheckResourceIdsExistRequest.aidl | 3 + ...CloseContentsAndUpdateMetadataRequest.aidl | 3 + .../drive/internal/CloseContentsRequest.aidl | 3 + .../gms/drive/internal/ContentsResponse.aidl | 3 + .../internal/ControlProgressRequest.aidl | 3 + .../drive/internal/CreateContentsRequest.aidl | 3 + .../CreateFileIntentSenderRequest.aidl | 3 + .../gms/drive/internal/CreateFileRequest.aidl | 3 + .../drive/internal/CreateFolderRequest.aidl | 3 + .../drive/internal/DeleteResourceRequest.aidl | 3 + .../DeviceUsagePreferenceResponse.aidl | 3 + .../gms/drive/internal/DisconnectRequest.aidl | 3 + .../internal/DownloadProgressResponse.aidl | 3 + .../gms/drive/internal/DriveIdResponse.aidl | 3 + .../internal/DrivePreferencesResponse.aidl | 3 + .../drive/internal/DriveServiceResponse.aidl | 3 + .../gms/drive/internal/EventResponse.aidl | 3 + .../drive/internal/FetchThumbnailRequest.aidl | 3 + .../internal/FetchThumbnailResponse.aidl | 3 + .../gms/drive/internal/GetChangesRequest.aidl | 3 + .../GetDriveIdFromUniqueIdRequest.aidl | 3 + .../drive/internal/GetMetadataRequest.aidl | 3 + .../drive/internal/GetPermissionsRequest.aidl | 3 + .../internal/GetPermissionsResponse.aidl | 3 + .../gms/drive/internal/IDriveService.aidl | 95 +++++++++++++++++++ .../internal/IDriveServiceCallbacks.aidl | 48 ++++++++++ .../gms/drive/internal/IEventCallback.aidl | 7 ++ .../gms/drive/internal/IRealtimeService.aidl | 5 + .../drive/internal/ListEntriesResponse.aidl | 3 + .../drive/internal/ListParentsRequest.aidl | 3 + .../drive/internal/ListParentsResponse.aidl | 3 + .../drive/internal/LoadRealtimeRequest.aidl | 3 + .../drive/internal/LoadRealtimeResponse.aidl | 3 + .../gms/drive/internal/MetadataResponse.aidl | 3 + .../drive/internal/OpenContentsRequest.aidl | 3 + .../internal/OpenFileIntentSenderRequest.aidl | 3 + .../internal/RealtimeDocumentSyncRequest.aidl | 3 + .../internal/RemoveEventListenerRequest.aidl | 3 + .../internal/RemovePermissionRequest.aidl | 3 + .../drive/internal/ResourceIdSetResponse.aidl | 3 + .../internal/SetDrivePreferencesRequest.aidl | 3 + .../SetFileUploadPreferencesRequest.aidl | 3 + .../internal/SetResourceParentsRequest.aidl | 3 + .../drive/internal/StartStreamSession.aidl | 3 + .../drive/internal/StreamContentsRequest.aidl | 3 + .../drive/internal/StringListResponse.aidl | 3 + .../gms/drive/internal/SyncMoreResponse.aidl | 3 + .../drive/internal/TrashResourceRequest.aidl | 3 + .../internal/UnsubscribeResourceRequest.aidl | 3 + .../internal/UntrashResourceRequest.aidl | 3 + .../drive/internal/UpdateMetadataRequest.aidl | 3 + .../internal/UpdatePermissionRequest.aidl | 3 + .../internal/AddEventListenerRequest.java | 23 +++++ .../drive/internal/AddPermissionRequest.java | 23 +++++ .../internal/AuthorizeAccessRequest.java | 23 +++++ .../internal/CancelPendingActionsRequest.java | 23 +++++ .../ChangeResourceParentsRequest.java | 23 +++++ .../drive/internal/ChangeSequenceNumber.java | 23 +++++ .../gms/drive/internal/ChangesResponse.java | 23 +++++ .../CheckResourceIdsExistRequest.java | 23 +++++ ...CloseContentsAndUpdateMetadataRequest.java | 23 +++++ .../drive/internal/CloseContentsRequest.java | 23 +++++ .../gms/drive/internal/ContentsResponse.java | 23 +++++ .../internal/ControlProgressRequest.java | 23 +++++ .../drive/internal/CreateContentsRequest.java | 23 +++++ .../CreateFileIntentSenderRequest.java | 23 +++++ .../gms/drive/internal/CreateFileRequest.java | 23 +++++ .../drive/internal/CreateFolderRequest.java | 23 +++++ .../drive/internal/DeleteResourceRequest.java | 23 +++++ .../DeviceUsagePreferenceResponse.java | 23 +++++ .../gms/drive/internal/DisconnectRequest.java | 23 +++++ .../internal/DownloadProgressResponse.java | 23 +++++ .../gms/drive/internal/DriveIdResponse.java | 23 +++++ .../internal/DrivePreferencesResponse.java | 23 +++++ .../drive/internal/DriveServiceResponse.java | 23 +++++ .../gms/drive/internal/EventResponse.java | 23 +++++ .../drive/internal/FetchThumbnailRequest.java | 23 +++++ .../internal/FetchThumbnailResponse.java | 23 +++++ .../gms/drive/internal/GetChangesRequest.java | 23 +++++ .../GetDriveIdFromUniqueIdRequest.java | 23 +++++ .../drive/internal/GetMetadataRequest.java | 23 +++++ .../drive/internal/GetPermissionsRequest.java | 23 +++++ .../internal/GetPermissionsResponse.java | 23 +++++ .../drive/internal/ListEntriesResponse.java | 23 +++++ .../drive/internal/ListParentsRequest.java | 23 +++++ .../drive/internal/ListParentsResponse.java | 23 +++++ .../drive/internal/LoadRealtimeRequest.java | 23 +++++ .../drive/internal/LoadRealtimeResponse.java | 23 +++++ .../gms/drive/internal/MetadataResponse.java | 23 +++++ .../drive/internal/OpenContentsRequest.java | 23 +++++ .../internal/OpenFileIntentSenderRequest.java | 23 +++++ .../internal/RealtimeDocumentSyncRequest.java | 23 +++++ .../internal/RemoveEventListenerRequest.java | 23 +++++ .../internal/RemovePermissionRequest.java | 23 +++++ .../drive/internal/ResourceIdSetResponse.java | 23 +++++ .../internal/SetDrivePreferencesRequest.java | 23 +++++ .../SetFileUploadPreferencesRequest.java | 23 +++++ .../internal/SetResourceParentsRequest.java | 23 +++++ .../drive/internal/StartStreamSession.java | 23 +++++ .../drive/internal/StreamContentsRequest.java | 23 +++++ .../drive/internal/StringListResponse.java | 23 +++++ .../gms/drive/internal/SyncMoreResponse.java | 23 +++++ .../drive/internal/TrashResourceRequest.java | 23 +++++ .../internal/UnsubscribeResourceRequest.java | 23 +++++ .../internal/UntrashResourceRequest.java | 23 +++++ .../drive/internal/UpdateMetadataRequest.java | 23 +++++ .../internal/UpdatePermissionRequest.java | 23 +++++ 114 files changed, 1585 insertions(+) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/AddEventListenerRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/AddPermissionRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/AuthorizeAccessRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CancelPendingActionsRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ChangeResourceParentsRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ChangeSequenceNumber.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ChangesResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CheckResourceIdsExistRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CloseContentsAndUpdateMetadataRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CloseContentsRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ContentsResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ControlProgressRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateContentsRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateFileIntentSenderRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateFileRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateFolderRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DeleteResourceRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DeviceUsagePreferenceResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DisconnectRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DownloadProgressResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DriveIdResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DrivePreferencesResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DriveServiceResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/EventResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/FetchThumbnailRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/FetchThumbnailResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetChangesRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetDriveIdFromUniqueIdRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetMetadataRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetPermissionsRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetPermissionsResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IDriveService.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IDriveServiceCallbacks.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IEventCallback.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IRealtimeService.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ListEntriesResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ListParentsRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ListParentsResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/LoadRealtimeRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/LoadRealtimeResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/MetadataResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/OpenContentsRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/OpenFileIntentSenderRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/RealtimeDocumentSyncRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/RemoveEventListenerRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/RemovePermissionRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ResourceIdSetResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SetDrivePreferencesRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SetFileUploadPreferencesRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SetResourceParentsRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/StartStreamSession.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/StreamContentsRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/StringListResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SyncMoreResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/TrashResourceRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UnsubscribeResourceRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UntrashResourceRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UpdateMetadataRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UpdatePermissionRequest.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/AddEventListenerRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/AddPermissionRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/AuthorizeAccessRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/CancelPendingActionsRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/ChangeResourceParentsRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/ChangeSequenceNumber.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/ChangesResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/CheckResourceIdsExistRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/CloseContentsAndUpdateMetadataRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/CloseContentsRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/ContentsResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/ControlProgressRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateContentsRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateFileIntentSenderRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateFileRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateFolderRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/DeleteResourceRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/DeviceUsagePreferenceResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/DisconnectRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/DownloadProgressResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/DriveIdResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/DrivePreferencesResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/DriveServiceResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/EventResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/FetchThumbnailRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/FetchThumbnailResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/GetChangesRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/GetDriveIdFromUniqueIdRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/GetMetadataRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/GetPermissionsRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/GetPermissionsResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/ListEntriesResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/ListParentsRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/ListParentsResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/LoadRealtimeRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/LoadRealtimeResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/MetadataResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/OpenContentsRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/OpenFileIntentSenderRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/RealtimeDocumentSyncRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/RemoveEventListenerRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/RemovePermissionRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/ResourceIdSetResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/SetDrivePreferencesRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/SetFileUploadPreferencesRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/SetResourceParentsRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/StartStreamSession.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/StreamContentsRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/StringListResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/SyncMoreResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/TrashResourceRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/UnsubscribeResourceRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/UntrashResourceRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/UpdateMetadataRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/drive/internal/UpdatePermissionRequest.java diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/AddEventListenerRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/AddEventListenerRequest.aidl new file mode 100644 index 00000000..843b1e0a --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/AddEventListenerRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable AddEventListenerRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/AddPermissionRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/AddPermissionRequest.aidl new file mode 100644 index 00000000..ba0f503d --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/AddPermissionRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable AddPermissionRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/AuthorizeAccessRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/AuthorizeAccessRequest.aidl new file mode 100644 index 00000000..70c19305 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/AuthorizeAccessRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable AuthorizeAccessRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CancelPendingActionsRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CancelPendingActionsRequest.aidl new file mode 100644 index 00000000..30696de0 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CancelPendingActionsRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable CancelPendingActionsRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ChangeResourceParentsRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ChangeResourceParentsRequest.aidl new file mode 100644 index 00000000..dfd43f74 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ChangeResourceParentsRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable ChangeResourceParentsRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ChangeSequenceNumber.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ChangeSequenceNumber.aidl new file mode 100644 index 00000000..05f32cb3 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ChangeSequenceNumber.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable ChangeSequenceNumber; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ChangesResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ChangesResponse.aidl new file mode 100644 index 00000000..b4107a0e --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ChangesResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable ChangesResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CheckResourceIdsExistRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CheckResourceIdsExistRequest.aidl new file mode 100644 index 00000000..eb7001c0 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CheckResourceIdsExistRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable CheckResourceIdsExistRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CloseContentsAndUpdateMetadataRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CloseContentsAndUpdateMetadataRequest.aidl new file mode 100644 index 00000000..b513f449 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CloseContentsAndUpdateMetadataRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable CloseContentsAndUpdateMetadataRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CloseContentsRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CloseContentsRequest.aidl new file mode 100644 index 00000000..43536051 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CloseContentsRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable CloseContentsRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ContentsResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ContentsResponse.aidl new file mode 100644 index 00000000..bf226dc0 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ContentsResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable ContentsResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ControlProgressRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ControlProgressRequest.aidl new file mode 100644 index 00000000..7e330658 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ControlProgressRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable ControlProgressRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateContentsRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateContentsRequest.aidl new file mode 100644 index 00000000..7c7452f7 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateContentsRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable CreateContentsRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateFileIntentSenderRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateFileIntentSenderRequest.aidl new file mode 100644 index 00000000..300d82c6 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateFileIntentSenderRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable CreateFileIntentSenderRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateFileRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateFileRequest.aidl new file mode 100644 index 00000000..be852bc5 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateFileRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable CreateFileRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateFolderRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateFolderRequest.aidl new file mode 100644 index 00000000..a1b7c8f2 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/CreateFolderRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable CreateFolderRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DeleteResourceRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DeleteResourceRequest.aidl new file mode 100644 index 00000000..c8bbef83 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DeleteResourceRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable DeleteResourceRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DeviceUsagePreferenceResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DeviceUsagePreferenceResponse.aidl new file mode 100644 index 00000000..1b85028b --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DeviceUsagePreferenceResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable DeviceUsagePreferenceResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DisconnectRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DisconnectRequest.aidl new file mode 100644 index 00000000..22cf3ad1 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DisconnectRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable DisconnectRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DownloadProgressResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DownloadProgressResponse.aidl new file mode 100644 index 00000000..d3ead69d --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DownloadProgressResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable DownloadProgressResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DriveIdResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DriveIdResponse.aidl new file mode 100644 index 00000000..4655cb3f --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DriveIdResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable DriveIdResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DrivePreferencesResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DrivePreferencesResponse.aidl new file mode 100644 index 00000000..e14152f2 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DrivePreferencesResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable DrivePreferencesResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DriveServiceResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DriveServiceResponse.aidl new file mode 100644 index 00000000..424c2cac --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/DriveServiceResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable DriveServiceResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/EventResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/EventResponse.aidl new file mode 100644 index 00000000..0f748bb9 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/EventResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable EventResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/FetchThumbnailRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/FetchThumbnailRequest.aidl new file mode 100644 index 00000000..06b38bd8 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/FetchThumbnailRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable FetchThumbnailRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/FetchThumbnailResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/FetchThumbnailResponse.aidl new file mode 100644 index 00000000..022ffda3 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/FetchThumbnailResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable FetchThumbnailResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetChangesRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetChangesRequest.aidl new file mode 100644 index 00000000..8992b053 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetChangesRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable GetChangesRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetDriveIdFromUniqueIdRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetDriveIdFromUniqueIdRequest.aidl new file mode 100644 index 00000000..821aefb5 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetDriveIdFromUniqueIdRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable GetDriveIdFromUniqueIdRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetMetadataRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetMetadataRequest.aidl new file mode 100644 index 00000000..9d1a31b9 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetMetadataRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable GetMetadataRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetPermissionsRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetPermissionsRequest.aidl new file mode 100644 index 00000000..ae706840 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetPermissionsRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable GetPermissionsRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetPermissionsResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetPermissionsResponse.aidl new file mode 100644 index 00000000..845d8325 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/GetPermissionsResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable GetPermissionsResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IDriveService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IDriveService.aidl new file mode 100644 index 00000000..a1e2e085 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IDriveService.aidl @@ -0,0 +1,95 @@ +package com.google.android.gms.drive.internal; + +import com.google.android.gms.drive.internal.DriveServiceResponse; +import com.google.android.gms.drive.internal.IDriveServiceCallbacks; +import com.google.android.gms.drive.internal.IEventCallback; + +import com.google.android.gms.drive.internal.AddEventListenerRequest; +import com.google.android.gms.drive.internal.AddPermissionRequest; +import com.google.android.gms.drive.internal.AuthorizeAccessRequest; +import com.google.android.gms.drive.internal.CancelPendingActionsRequest; +import com.google.android.gms.drive.internal.ChangeResourceParentsRequest; +import com.google.android.gms.drive.internal.CheckResourceIdsExistRequest; +import com.google.android.gms.drive.internal.CloseContentsAndUpdateMetadataRequest; +import com.google.android.gms.drive.internal.CloseContentsRequest; +import com.google.android.gms.drive.internal.ControlProgressRequest; +import com.google.android.gms.drive.internal.CreateContentsRequest; +import com.google.android.gms.drive.internal.CreateFileRequest; +import com.google.android.gms.drive.internal.CreateFileIntentSenderRequest; +import com.google.android.gms.drive.internal.CreateFolderRequest; +import com.google.android.gms.drive.internal.DeleteResourceRequest; +import com.google.android.gms.drive.internal.DisconnectRequest; +import com.google.android.gms.drive.internal.FetchThumbnailRequest; +import com.google.android.gms.drive.internal.GetChangesRequest; +import com.google.android.gms.drive.internal.GetDriveIdFromUniqueIdRequest; +import com.google.android.gms.drive.internal.GetMetadataRequest; +import com.google.android.gms.drive.internal.GetPermissionsRequest; +import com.google.android.gms.drive.internal.ListParentsRequest; +import com.google.android.gms.drive.internal.LoadRealtimeRequest; +import com.google.android.gms.drive.internal.OpenContentsRequest; +import com.google.android.gms.drive.internal.OpenFileIntentSenderRequest; +import com.google.android.gms.drive.internal.RealtimeDocumentSyncRequest; +import com.google.android.gms.drive.internal.RemoveEventListenerRequest; +import com.google.android.gms.drive.internal.RemovePermissionRequest; +import com.google.android.gms.drive.internal.SetDrivePreferencesRequest; +import com.google.android.gms.drive.internal.SetFileUploadPreferencesRequest; +import com.google.android.gms.drive.internal.SetResourceParentsRequest; +import com.google.android.gms.drive.internal.StreamContentsRequest; +import com.google.android.gms.drive.internal.TrashResourceRequest; +import com.google.android.gms.drive.internal.UnsubscribeResourceRequest; +import com.google.android.gms.drive.internal.UntrashResourceRequest; +import com.google.android.gms.drive.internal.UpdateMetadataRequest; +import com.google.android.gms.drive.internal.UpdatePermissionRequest; + +interface IDriveService { + void getMetadata(in GetMetadataRequest request, IDriveServiceCallbacks callbacks) = 0; + + void updateMetadata(in UpdateMetadataRequest request, IDriveServiceCallbacks callbacks) = 2; + void createContents(in CreateContentsRequest request, IDriveServiceCallbacks callbacks) = 3; + void createFile(in CreateFileRequest request, IDriveServiceCallbacks callbacks) = 4; + void createFolder(in CreateFolderRequest request, IDriveServiceCallbacks callbacks) = 5; + DriveServiceResponse openContents(in OpenContentsRequest request, IDriveServiceCallbacks callbacks) = 6; + void closeContents(in CloseContentsRequest request, IDriveServiceCallbacks callbacks) = 7; + void requestSync(IDriveServiceCallbacks callbacks) = 8; + IntentSender openFileIntentSender(in OpenFileIntentSenderRequest request) = 9; + IntentSender createFileIntentSender(in CreateFileIntentSenderRequest request) = 10; + void authorizeAccess(in AuthorizeAccessRequest request, IDriveServiceCallbacks callbacks) = 11; + void listParents(in ListParentsRequest request, IDriveServiceCallbacks callbacks) = 12; + void addEventListener(in AddEventListenerRequest request, IEventCallback callback, String unused, IDriveServiceCallbacks callbacks) = 13; + void removeEventListener(in RemoveEventListenerRequest request, IEventCallback callback, String unused, IDriveServiceCallbacks callbacks) = 14; + void disconnect(in DisconnectRequest request) = 15; + void trashResource(in TrashResourceRequest request, IDriveServiceCallbacks callbacks) = 16; + void closeContentsAndUpdateMetadata(in CloseContentsAndUpdateMetadataRequest request, IDriveServiceCallbacks callbacks) = 17; + + void deleteResource(in DeleteResourceRequest request, IDriveServiceCallbacks callbacks) = 23; + + void loadRealtime(in LoadRealtimeRequest request, IDriveServiceCallbacks callbacks) = 26; + void setResourceParents(in SetResourceParentsRequest request, IDriveServiceCallbacks callbacks) = 27; + void getDriveIdFromUniqueId(in GetDriveIdFromUniqueIdRequest request, IDriveServiceCallbacks callbacks) = 28; + void checkResourceIdsExist(in CheckResourceIdsExistRequest request, IDriveServiceCallbacks callbacks) = 29; + void completePendingAction(IDriveServiceCallbacks callbacks) = 30; + void getDrivePreferences(IDriveServiceCallbacks callbacks) = 31; + void setDrivePreferences(in SetDrivePreferencesRequest request, IDriveServiceCallbacks callbacks) = 32; + void realtimeDocumentSync(in RealtimeDocumentSyncRequest request, IDriveServiceCallbacks callbacks) = 33; + void getDeviceUsagePreferences(IDriveServiceCallbacks callbacks) = 34; + void setFileUploadPreferences(in SetFileUploadPreferencesRequest request, IDriveServiceCallbacks callbacks) = 35; + void cancelPendingActions(in CancelPendingActionsRequest request, IDriveServiceCallbacks callbacks) = 36; + void untrashResource(in UntrashResourceRequest request, IDriveServiceCallbacks callbacks) = 37; + + void isAutoBackupEnabled(IDriveServiceCallbacks callbacks) = 40; + void fetchThumbnail(in FetchThumbnailRequest request, IDriveServiceCallbacks callbacks) = 41; + + void getChanges(in GetChangesRequest request, IDriveServiceCallbacks callbacks) = 43; + + void unsubscribeResource(in UnsubscribeResourceRequest request, IDriveServiceCallbacks callbacks) = 45; + void getPermissions(in GetPermissionsRequest request, IDriveServiceCallbacks callbacks) = 46; + void addPermission(in AddPermissionRequest request, IDriveServiceCallbacks callbacks) = 47; + void updatePermission(in UpdatePermissionRequest request, IDriveServiceCallbacks callbacks) = 48; + void removePermission(in RemovePermissionRequest request, IDriveServiceCallbacks callbacks) = 49; + + void removeQueryResultListener(IEventCallback callback, IDriveServiceCallbacks callbacks) = 51; + void controlProgress(in ControlProgressRequest request, IDriveServiceCallbacks callbacks) = 52; + + void changeResourceParents(in ChangeResourceParentsRequest request, IDriveServiceCallbacks callbacks) = 54; + DriveServiceResponse streamContents(in StreamContentsRequest request, IDriveServiceCallbacks callbacks) = 55; +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IDriveServiceCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IDriveServiceCallbacks.aidl new file mode 100644 index 00000000..6fa1b204 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IDriveServiceCallbacks.aidl @@ -0,0 +1,48 @@ +package com.google.android.gms.drive.internal; + +import com.google.android.gms.drive.internal.IRealtimeService; + +import com.google.android.gms.drive.internal.DownloadProgressResponse; +import com.google.android.gms.drive.internal.ListEntriesResponse; +import com.google.android.gms.drive.internal.DriveIdResponse; +import com.google.android.gms.drive.internal.MetadataResponse; +import com.google.android.gms.drive.internal.ContentsResponse; +import com.google.android.gms.drive.internal.ListParentsResponse; +import com.google.android.gms.drive.internal.SyncMoreResponse; +import com.google.android.gms.drive.internal.LoadRealtimeResponse; +import com.google.android.gms.drive.internal.ResourceIdSetResponse; +import com.google.android.gms.drive.internal.DrivePreferencesResponse; +import com.google.android.gms.drive.internal.DeviceUsagePreferenceResponse; +import com.google.android.gms.drive.internal.FetchThumbnailResponse; +import com.google.android.gms.drive.internal.ChangeSequenceNumber; +import com.google.android.gms.drive.internal.ChangesResponse; +import com.google.android.gms.drive.internal.GetPermissionsResponse; +import com.google.android.gms.drive.internal.StringListResponse; +import com.google.android.gms.drive.internal.StartStreamSession; + +import com.google.android.gms.common.api.Status; + +interface IDriveServiceCallbacks { + void onDownloadProgress(in DownloadProgressResponse response) = 0; + void onListEntries(in ListEntriesResponse response) = 1; + void onDriveId(in DriveIdResponse response) = 2; + void onMetadata(in MetadataResponse response) = 3; + void onContents(in ContentsResponse response) = 4; + void onStatus(in Status status) = 5; + void onSuccess() = 6; + void onListParents(in ListParentsResponse response) = 7; + void onSyncMore(in SyncMoreResponse response) = 8; + + void onLoadRealtime(in LoadRealtimeResponse response, IRealtimeService realtimeService) = 10; + void onResourceIdSet(in ResourceIdSetResponse response) = 11; + void onDrivePreferences(in DrivePreferencesResponse response) = 12; + void onDeviceUsagePreference(in DeviceUsagePreferenceResponse response) = 13; + void onBooleanAnswer(boolean bool) = 14; + void onFetchThumbnail(in FetchThumbnailResponse response) = 15; + void onChangeSequenceNumber(in ChangeSequenceNumber csn) = 16; + void onChanges(in ChangesResponse response) = 17; + + void onGetPermissions(in GetPermissionsResponse response) = 19; + void onStringList(in StringListResponse response) = 20; + void onStartStreamSession(in StartStreamSession response) = 21; +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IEventCallback.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IEventCallback.aidl new file mode 100644 index 00000000..e50999f1 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IEventCallback.aidl @@ -0,0 +1,7 @@ +package com.google.android.gms.drive.internal; + +import com.google.android.gms.drive.internal.EventResponse; + +interface IEventCallback { + void onEventResponse(in EventResponse response) = 0; +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IRealtimeService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IRealtimeService.aidl new file mode 100644 index 00000000..14d7cf86 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/IRealtimeService.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.drive.internal; + +interface IRealtimeService { + // TODO +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ListEntriesResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ListEntriesResponse.aidl new file mode 100644 index 00000000..9a3c5ac9 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ListEntriesResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable ListEntriesResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ListParentsRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ListParentsRequest.aidl new file mode 100644 index 00000000..b2271a98 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ListParentsRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable ListParentsRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ListParentsResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ListParentsResponse.aidl new file mode 100644 index 00000000..04ebc591 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ListParentsResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable ListParentsResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/LoadRealtimeRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/LoadRealtimeRequest.aidl new file mode 100644 index 00000000..b3b80b5d --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/LoadRealtimeRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable LoadRealtimeRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/LoadRealtimeResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/LoadRealtimeResponse.aidl new file mode 100644 index 00000000..3ebc2672 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/LoadRealtimeResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable LoadRealtimeResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/MetadataResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/MetadataResponse.aidl new file mode 100644 index 00000000..4bfd6f88 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/MetadataResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable MetadataResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/OpenContentsRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/OpenContentsRequest.aidl new file mode 100644 index 00000000..4fc8534f --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/OpenContentsRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable OpenContentsRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/OpenFileIntentSenderRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/OpenFileIntentSenderRequest.aidl new file mode 100644 index 00000000..836ba532 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/OpenFileIntentSenderRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable OpenFileIntentSenderRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/RealtimeDocumentSyncRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/RealtimeDocumentSyncRequest.aidl new file mode 100644 index 00000000..c922b2da --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/RealtimeDocumentSyncRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable RealtimeDocumentSyncRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/RemoveEventListenerRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/RemoveEventListenerRequest.aidl new file mode 100644 index 00000000..e613b2e2 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/RemoveEventListenerRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable RemoveEventListenerRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/RemovePermissionRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/RemovePermissionRequest.aidl new file mode 100644 index 00000000..5d2838c7 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/RemovePermissionRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable RemovePermissionRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ResourceIdSetResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ResourceIdSetResponse.aidl new file mode 100644 index 00000000..64cd51fe --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/ResourceIdSetResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable ResourceIdSetResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SetDrivePreferencesRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SetDrivePreferencesRequest.aidl new file mode 100644 index 00000000..76702969 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SetDrivePreferencesRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable SetDrivePreferencesRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SetFileUploadPreferencesRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SetFileUploadPreferencesRequest.aidl new file mode 100644 index 00000000..0ceffc62 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SetFileUploadPreferencesRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable SetFileUploadPreferencesRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SetResourceParentsRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SetResourceParentsRequest.aidl new file mode 100644 index 00000000..43b9c116 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SetResourceParentsRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable SetResourceParentsRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/StartStreamSession.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/StartStreamSession.aidl new file mode 100644 index 00000000..538c61e4 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/StartStreamSession.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable StartStreamSession; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/StreamContentsRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/StreamContentsRequest.aidl new file mode 100644 index 00000000..2f20b495 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/StreamContentsRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable StreamContentsRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/StringListResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/StringListResponse.aidl new file mode 100644 index 00000000..9099c4b6 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/StringListResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable StringListResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SyncMoreResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SyncMoreResponse.aidl new file mode 100644 index 00000000..ed495944 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/SyncMoreResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable SyncMoreResponse; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/TrashResourceRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/TrashResourceRequest.aidl new file mode 100644 index 00000000..42480778 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/TrashResourceRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable TrashResourceRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UnsubscribeResourceRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UnsubscribeResourceRequest.aidl new file mode 100644 index 00000000..a7fe04bc --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UnsubscribeResourceRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable UnsubscribeResourceRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UntrashResourceRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UntrashResourceRequest.aidl new file mode 100644 index 00000000..74fe7d32 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UntrashResourceRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable UntrashResourceRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UpdateMetadataRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UpdateMetadataRequest.aidl new file mode 100644 index 00000000..98f7d547 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UpdateMetadataRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable UpdateMetadataRequest; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UpdatePermissionRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UpdatePermissionRequest.aidl new file mode 100644 index 00000000..a866defd --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/drive/internal/UpdatePermissionRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.drive.internal; + +parcelable UpdatePermissionRequest; diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/AddEventListenerRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/AddEventListenerRequest.java new file mode 100644 index 00000000..62bed341 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/AddEventListenerRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class AddEventListenerRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(AddEventListenerRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/AddPermissionRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/AddPermissionRequest.java new file mode 100644 index 00000000..91f4dc3e --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/AddPermissionRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class AddPermissionRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(AddPermissionRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/AuthorizeAccessRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/AuthorizeAccessRequest.java new file mode 100644 index 00000000..3a6dfef0 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/AuthorizeAccessRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class AuthorizeAccessRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(AuthorizeAccessRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/CancelPendingActionsRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CancelPendingActionsRequest.java new file mode 100644 index 00000000..a60d434c --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CancelPendingActionsRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class CancelPendingActionsRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(CancelPendingActionsRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/ChangeResourceParentsRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ChangeResourceParentsRequest.java new file mode 100644 index 00000000..99de29f5 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ChangeResourceParentsRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class ChangeResourceParentsRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(ChangeResourceParentsRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/ChangeSequenceNumber.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ChangeSequenceNumber.java new file mode 100644 index 00000000..e4ec5399 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ChangeSequenceNumber.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class ChangeSequenceNumber extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(ChangeSequenceNumber.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/ChangesResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ChangesResponse.java new file mode 100644 index 00000000..43fb6a56 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ChangesResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class ChangesResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(ChangesResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/CheckResourceIdsExistRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CheckResourceIdsExistRequest.java new file mode 100644 index 00000000..bb8ca1ad --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CheckResourceIdsExistRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class CheckResourceIdsExistRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(CheckResourceIdsExistRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/CloseContentsAndUpdateMetadataRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CloseContentsAndUpdateMetadataRequest.java new file mode 100644 index 00000000..20828d03 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CloseContentsAndUpdateMetadataRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class CloseContentsAndUpdateMetadataRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(CloseContentsAndUpdateMetadataRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/CloseContentsRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CloseContentsRequest.java new file mode 100644 index 00000000..1bca0dd2 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CloseContentsRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class CloseContentsRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(CloseContentsRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/ContentsResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ContentsResponse.java new file mode 100644 index 00000000..105d262b --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ContentsResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class ContentsResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(ContentsResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/ControlProgressRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ControlProgressRequest.java new file mode 100644 index 00000000..e9eabf09 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ControlProgressRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class ControlProgressRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(ControlProgressRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateContentsRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateContentsRequest.java new file mode 100644 index 00000000..026610c5 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateContentsRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class CreateContentsRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(CreateContentsRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateFileIntentSenderRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateFileIntentSenderRequest.java new file mode 100644 index 00000000..4520ce6b --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateFileIntentSenderRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class CreateFileIntentSenderRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(CreateFileIntentSenderRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateFileRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateFileRequest.java new file mode 100644 index 00000000..c557df08 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateFileRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class CreateFileRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(CreateFileRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateFolderRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateFolderRequest.java new file mode 100644 index 00000000..7f35ff4e --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/CreateFolderRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class CreateFolderRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(CreateFolderRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/DeleteResourceRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/DeleteResourceRequest.java new file mode 100644 index 00000000..c8e55638 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/DeleteResourceRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class DeleteResourceRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(DeleteResourceRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/DeviceUsagePreferenceResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/DeviceUsagePreferenceResponse.java new file mode 100644 index 00000000..49fd3c50 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/DeviceUsagePreferenceResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class DeviceUsagePreferenceResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(DeviceUsagePreferenceResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/DisconnectRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/DisconnectRequest.java new file mode 100644 index 00000000..6cd1d560 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/DisconnectRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class DisconnectRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(DisconnectRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/DownloadProgressResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/DownloadProgressResponse.java new file mode 100644 index 00000000..1d1c6e24 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/DownloadProgressResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class DownloadProgressResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(DownloadProgressResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/DriveIdResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/DriveIdResponse.java new file mode 100644 index 00000000..abd3a7bd --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/DriveIdResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class DriveIdResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(DriveIdResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/DrivePreferencesResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/DrivePreferencesResponse.java new file mode 100644 index 00000000..1710ba33 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/DrivePreferencesResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class DrivePreferencesResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(DrivePreferencesResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/DriveServiceResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/DriveServiceResponse.java new file mode 100644 index 00000000..d00412f0 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/DriveServiceResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class DriveServiceResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(DriveServiceResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/EventResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/EventResponse.java new file mode 100644 index 00000000..5c68df89 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/EventResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class EventResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(EventResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/FetchThumbnailRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/FetchThumbnailRequest.java new file mode 100644 index 00000000..81b8f181 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/FetchThumbnailRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class FetchThumbnailRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(FetchThumbnailRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/FetchThumbnailResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/FetchThumbnailResponse.java new file mode 100644 index 00000000..9a4d00a6 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/FetchThumbnailResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class FetchThumbnailResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(FetchThumbnailResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetChangesRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetChangesRequest.java new file mode 100644 index 00000000..4f692149 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetChangesRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class GetChangesRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(GetChangesRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetDriveIdFromUniqueIdRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetDriveIdFromUniqueIdRequest.java new file mode 100644 index 00000000..c2ddb451 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetDriveIdFromUniqueIdRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class GetDriveIdFromUniqueIdRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(GetDriveIdFromUniqueIdRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetMetadataRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetMetadataRequest.java new file mode 100644 index 00000000..e3e7f52a --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetMetadataRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class GetMetadataRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(GetMetadataRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetPermissionsRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetPermissionsRequest.java new file mode 100644 index 00000000..cda94d3b --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetPermissionsRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class GetPermissionsRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(GetPermissionsRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetPermissionsResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetPermissionsResponse.java new file mode 100644 index 00000000..b2b97863 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/GetPermissionsResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class GetPermissionsResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(GetPermissionsResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/ListEntriesResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ListEntriesResponse.java new file mode 100644 index 00000000..2d8c2c5b --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ListEntriesResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class ListEntriesResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(ListEntriesResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/ListParentsRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ListParentsRequest.java new file mode 100644 index 00000000..30b54929 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ListParentsRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class ListParentsRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(ListParentsRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/ListParentsResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ListParentsResponse.java new file mode 100644 index 00000000..dfec2b1d --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ListParentsResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class ListParentsResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(ListParentsResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/LoadRealtimeRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/LoadRealtimeRequest.java new file mode 100644 index 00000000..3c56ebb6 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/LoadRealtimeRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class LoadRealtimeRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(LoadRealtimeRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/LoadRealtimeResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/LoadRealtimeResponse.java new file mode 100644 index 00000000..ff138d00 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/LoadRealtimeResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class LoadRealtimeResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(LoadRealtimeResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/MetadataResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/MetadataResponse.java new file mode 100644 index 00000000..613fd377 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/MetadataResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class MetadataResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(MetadataResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/OpenContentsRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/OpenContentsRequest.java new file mode 100644 index 00000000..6466a18b --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/OpenContentsRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class OpenContentsRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(OpenContentsRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/OpenFileIntentSenderRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/OpenFileIntentSenderRequest.java new file mode 100644 index 00000000..ae3afff0 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/OpenFileIntentSenderRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class OpenFileIntentSenderRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(OpenFileIntentSenderRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/RealtimeDocumentSyncRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/RealtimeDocumentSyncRequest.java new file mode 100644 index 00000000..17dcf724 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/RealtimeDocumentSyncRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class RealtimeDocumentSyncRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(RealtimeDocumentSyncRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/RemoveEventListenerRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/RemoveEventListenerRequest.java new file mode 100644 index 00000000..bee30f46 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/RemoveEventListenerRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class RemoveEventListenerRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(RemoveEventListenerRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/RemovePermissionRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/RemovePermissionRequest.java new file mode 100644 index 00000000..51aa124d --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/RemovePermissionRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class RemovePermissionRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(RemovePermissionRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/ResourceIdSetResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ResourceIdSetResponse.java new file mode 100644 index 00000000..e6b91a23 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/ResourceIdSetResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class ResourceIdSetResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(ResourceIdSetResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/SetDrivePreferencesRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/SetDrivePreferencesRequest.java new file mode 100644 index 00000000..fe429ccc --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/SetDrivePreferencesRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class SetDrivePreferencesRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(SetDrivePreferencesRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/SetFileUploadPreferencesRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/SetFileUploadPreferencesRequest.java new file mode 100644 index 00000000..2e9944d8 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/SetFileUploadPreferencesRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class SetFileUploadPreferencesRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(SetFileUploadPreferencesRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/SetResourceParentsRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/SetResourceParentsRequest.java new file mode 100644 index 00000000..c4b1d609 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/SetResourceParentsRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class SetResourceParentsRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(SetResourceParentsRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/StartStreamSession.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/StartStreamSession.java new file mode 100644 index 00000000..7ef2cbeb --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/StartStreamSession.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class StartStreamSession extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(StartStreamSession.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/StreamContentsRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/StreamContentsRequest.java new file mode 100644 index 00000000..63de9d8c --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/StreamContentsRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class StreamContentsRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(StreamContentsRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/StringListResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/StringListResponse.java new file mode 100644 index 00000000..cfedbb4f --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/StringListResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class StringListResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(StringListResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/SyncMoreResponse.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/SyncMoreResponse.java new file mode 100644 index 00000000..060c1fbd --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/SyncMoreResponse.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class SyncMoreResponse extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(SyncMoreResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/TrashResourceRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/TrashResourceRequest.java new file mode 100644 index 00000000..359ee5f7 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/TrashResourceRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class TrashResourceRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(TrashResourceRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/UnsubscribeResourceRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/UnsubscribeResourceRequest.java new file mode 100644 index 00000000..c1001796 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/UnsubscribeResourceRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class UnsubscribeResourceRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(UnsubscribeResourceRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/UntrashResourceRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/UntrashResourceRequest.java new file mode 100644 index 00000000..6fb7588b --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/UntrashResourceRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class UntrashResourceRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(UntrashResourceRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/UpdateMetadataRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/UpdateMetadataRequest.java new file mode 100644 index 00000000..b48cfafd --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/UpdateMetadataRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class UpdateMetadataRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(UpdateMetadataRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/drive/internal/UpdatePermissionRequest.java b/play-services-api/src/main/java/com/google/android/gms/drive/internal/UpdatePermissionRequest.java new file mode 100644 index 00000000..72ff12df --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/drive/internal/UpdatePermissionRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.drive.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class UpdatePermissionRequest extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(UpdatePermissionRequest.class); +} From 4f6a84de9d95fef255579c5ce06a89363dc05aa8 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 23 Oct 2015 01:38:46 +0200 Subject: [PATCH 074/170] Update sublib --- extern/SafeParcel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/SafeParcel b/extern/SafeParcel index 89dd3272..273f2e1f 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit 89dd3272d40271120913e0ba71b0fd348387f1d6 +Subproject commit 273f2e1f2bf972688831e6d6837bb6b607767966 From d6fc8e737e016906442185170d7264ac61310079 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20W=C3=B6rner?= Date: Fri, 13 Nov 2015 10:54:27 +0100 Subject: [PATCH 075/170] updated buildtools --- play-services-api/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index b5fa30b8..d7c9bc7b 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -32,7 +32,7 @@ version = '1.0-SNAPSHOT' android { compileSdkVersion 23 - buildToolsVersion "23.0.1" + buildToolsVersion "23.0.2" compileOptions { sourceCompatibility JavaVersion.VERSION_1_6 } From f0ec7e606f3e6e3a219eb87266c4dae1828b5083 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Tue, 17 Nov 2015 17:16:22 +0100 Subject: [PATCH 076/170] Extend Wearable APIs --- .../ICameraUpdateFactoryDelegate.aidl | 4 +- .../internal/AmsEntityUpdateParcelable.aidl | 3 ++ .../internal/AncsNotificationParcelable.aidl | 3 ++ .../wearable/internal/IWearableListener.aidl | 5 +- .../wearable/internal/IWearableService.aidl | 1 + .../android/gms/wearable/MessageEvent.java | 42 +++++++++++++++++ .../wearable/internal/AddListenerRequest.java | 6 ++- .../internal/AmsEntityUpdateParcelable.java | 23 +++++++++ .../internal/AncsNotificationParcelable.java | 23 +++++++++ .../internal/GetConnectedNodesResponse.java | 2 +- .../internal/MessageEventParcelable.java | 47 ++++++++++++++++++- .../gms/wearable/internal/NodeParcelable.java | 5 ++ 12 files changed, 158 insertions(+), 6 deletions(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AncsNotificationParcelable.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/MessageEvent.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl index fc1665b7..c7b28d86 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ICameraUpdateFactoryDelegate.aidl @@ -15,6 +15,6 @@ interface ICameraUpdateFactoryDelegate { IObjectWrapper newCameraPosition(in CameraPosition cameraPosition); IObjectWrapper newLatLng(in LatLng latLng); IObjectWrapper newLatLngZoom(in LatLng latLng, float zoom); - IObjectWrapper newLatLngBounds(in LatLngBounds bounds, int i); - IObjectWrapper newLatLngBoundsWithSize(in LatLngBounds bounds, int i1, int i2, int i3); + IObjectWrapper newLatLngBounds(in LatLngBounds bounds, int padding); + IObjectWrapper newLatLngBoundsWithSize(in LatLngBounds bounds, int width, int height, int size); } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.aidl new file mode 100644 index 00000000..79d95d43 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable AmsEntityUpdateParcelable; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AncsNotificationParcelable.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AncsNotificationParcelable.aidl new file mode 100644 index 00000000..8bdf1f78 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AncsNotificationParcelable.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable AncsNotificationParcelable; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl index 491f5d2f..521f1166 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl @@ -1,6 +1,8 @@ package com.google.android.gms.wearable.internal; import com.google.android.gms.common.data.DataHolder; +import com.google.android.gms.wearable.internal.AmsEntityUpdateParcelable; +import com.google.android.gms.wearable.internal.AncsNotificationParcelable; import com.google.android.gms.wearable.internal.CapabilityInfoParcelable; import com.google.android.gms.wearable.internal.ChannelEventParcelable; import com.google.android.gms.wearable.internal.MessageEventParcelable; @@ -12,7 +14,8 @@ interface IWearableListener { void onPeerConnected(in NodeParcelable node) = 2; void onPeerDisconnected(in NodeParcelable node) = 3; void onConnectedNodes(in List nodes) = 4; - + void onNotificationReceived(in AncsNotificationParcelable notification) = 5; void onChannelEvent(in ChannelEventParcelable channelEvent) = 6; void onConnectedCapabilityChanged(in CapabilityInfoParcelable capabilityInfo) = 7; + void onEntityUpdate(in AmsEntityUpdateParcelable update) = 8; } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl index e341a186..99f3514a 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl @@ -18,6 +18,7 @@ interface IWearableService { void removeListener(IWearableCallbacks callbacks, in RemoveListenerRequest request) = 16; void putConfig(IWearableCallbacks callbacks, in ConnectionConfiguration config) = 19; void getConfigs(IWearableCallbacks callbacks) = 21; + void enableConnection(IWearableCallbacks callbacks, String name) = 22; void disableConnection(IWearableCallbacks callbacks, String name) = 23; void getDataItemsByUri(IWearableCallbacks callbacks, in Uri uri, int i) = 39; void deleteDataItems(IWearableCallbacks callbacks, in Uri uri) = 40; diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/MessageEvent.java b/play-services-api/src/main/java/com/google/android/gms/wearable/MessageEvent.java new file mode 100644 index 00000000..5c772334 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/MessageEvent.java @@ -0,0 +1,42 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import org.microg.gms.common.PublicApi; + +@PublicApi +public interface MessageEvent { + /** + * @return the data passed by the message. + */ + byte[] getData(); + + /** + * @return the path the message is being delivered to + */ + String getPath(); + + /** + * @return the request id of the message, generated by the sender + */ + int getRequestId(); + + /** + * @return the node ID of the sender. + */ + String getSourceNodeId(); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java index 173c2be7..c4190fe8 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java @@ -28,15 +28,19 @@ public class AddListenerRequest extends AutoSafeParcelable { public final IWearableListener listener; @SafeParceled(3) public final IntentFilter[] intentFilters; + @SafeParceled(4) + public final String channelTokenString; private AddListenerRequest() { listener = null; intentFilters = null; + channelTokenString = null; } - public AddListenerRequest(IWearableListener listener, IntentFilter[] intentFilters) { + public AddListenerRequest(IWearableListener listener, IntentFilter[] intentFilters, String channelTokenString) { this.listener = listener; this.intentFilters = intentFilters; + this.channelTokenString = channelTokenString; } public static final Creator CREATOR = new AutoCreator(AddListenerRequest.class); diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java new file mode 100644 index 00000000..e43a38bf --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class AmsEntityUpdateParcelable extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(AmsEntityUpdateParcelable.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java new file mode 100644 index 00000000..05f7c7f7 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class AncsNotificationParcelable extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(AncsNotificationParcelable.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java index ae25d65d..80e3d323 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java @@ -26,7 +26,7 @@ public class GetConnectedNodesResponse extends AutoSafeParcelable { private int versionCode = 1; @SafeParceled(2) public final int statusCode; - @SafeParceled(3) + @SafeParceled(value = 3, subClass = NodeParcelable.class) public final List nodes; private GetConnectedNodesResponse() { diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java index ef4ffc48..7fc9b69a 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java @@ -16,8 +16,53 @@ package com.google.android.gms.wearable.internal; +import com.google.android.gms.wearable.MessageEvent; + import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class MessageEventParcelable extends AutoSafeParcelable implements MessageEvent { + + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public int requestId; + @SafeParceled(3) + public String path; + @SafeParceled(4) + public byte[] data; + @SafeParceled(5) + public String sourceNodeId; + + @Override + public byte[] getData() { + return data; + } + + @Override + public String getPath() { + return path; + } + + @Override + public int getRequestId() { + return requestId; + } + + @Override + public String getSourceNodeId() { + return sourceNodeId; + } + + @Override + public String toString() { + return "MessageEventParcelable{" + + "requestId=" + requestId + + ", path='" + path + '\'' + + ", dataSize=" + (data != null ? data.length : -1) + + ", sourceNodeId='" + sourceNodeId + '\'' + + '}'; + } -public class MessageEventParcelable extends AutoSafeParcelable { public static final Creator CREATOR = new AutoCreator(MessageEventParcelable.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java index d1728692..ebaa5cdb 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java @@ -41,6 +41,11 @@ public class NodeParcelable extends AutoSafeParcelable implements Node { this.displayName = displayName; } + public NodeParcelable(Node node) { + this.id = node.getId(); + this.displayName = node.getDisplayName(); + } + @Override public boolean equals(Object o) { if (this == o) return true; From a55281ec5d48681e071b85290fc020ea56af482c Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Wed, 2 Dec 2015 23:49:32 -0800 Subject: [PATCH 077/170] Update Auth API --- .../google/android/gms/auth/TokenData.java | 64 +++++++++++++++++++ .../java/org/microg/gms/common/Constants.java | 3 +- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/TokenData.java diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/TokenData.java b/play-services-api/src/main/java/com/google/android/gms/auth/TokenData.java new file mode 100644 index 00000000..e805db34 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/TokenData.java @@ -0,0 +1,64 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth; + +import com.google.android.gms.common.api.Scope; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.List; + +public class TokenData extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + + @SafeParceled(2) + public final String token; + + @SafeParceled(3) + public final Long expiry; + + @SafeParceled(5) + public final boolean isOAuth; + + @SafeParceled(value = 6, subClass = Scope.class) + public final List scopes; + + public TokenData() { + token = null; + expiry = null; + isOAuth = false; + scopes = null; + } + + public TokenData(String token, Long expiry, boolean isOAuth, List scopes) { + this.token = token; + this.expiry = expiry; + this.isOAuth = isOAuth; + this.scopes = scopes; + } + + public TokenData(String token, Long expiry) { + this.token = token; + this.expiry = expiry; + this.isOAuth = false; + this.scopes = null; + } + + public static final Creator CREATOR = new AutoCreator(TokenData.class); +} diff --git a/play-services-api/src/main/java/org/microg/gms/common/Constants.java b/play-services-api/src/main/java/org/microg/gms/common/Constants.java index 6e1bd63e..6f0589bc 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Constants.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Constants.java @@ -21,11 +21,12 @@ public class Constants { * This is the highest version that was looked at during development. * Does not necessarily mean anything. */ - public static final int MAX_REFERENCE_VERSION = 8115000; + public static final int MAX_REFERENCE_VERSION = 8489000; public static final String KEY_MOCK_LOCATION = "mockLocation"; public static final String DEFAULT_ACCOUNT = "<>"; public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; public static final String GMS_PACKAGE_SIGNATURE_SHA1 = "38918a453d07199354f8b19af05ec6562ced5788"; + public static final String SCOPE_GET_ACCOUNT_ID = "^^_account_id_^^"; /** * No base map tiles. From 609e53a7d363183de4494600d4141b7c7cf5a692 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Thu, 3 Dec 2015 18:36:36 -0800 Subject: [PATCH 078/170] Add another set of Maps API --- .../gms/maps/internal/IOnCameraChangeListener.aidl | 3 +++ .../android/gms/maps/internal/IOnMarkerDragListener.aidl | 5 +++++ .../com/google/android/gms/maps/GoogleMapOptions.java | 8 ++++---- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl index 41010aa0..8abd2929 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraChangeListener.aidl @@ -1,4 +1,7 @@ package com.google.android.gms.maps.internal; +import com.google.android.gms.maps.model.CameraPosition; + interface IOnCameraChangeListener { + void onCameraChange(in CameraPosition update); } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl index 42cec6ca..b4601a7a 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMarkerDragListener.aidl @@ -1,4 +1,9 @@ package com.google.android.gms.maps.internal; +import com.google.android.gms.maps.model.internal.IMarkerDelegate; + interface IOnMarkerDragListener { + void onMarkerDragStart(IMarkerDelegate marker) = 0; + void onMarkerDrag(IMarkerDelegate marker) = 1; + void onMarkerDragEnd(IMarkerDelegate marker) = 2; } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java index 7e24955c..a5534cb2 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java @@ -36,13 +36,13 @@ public final class GoogleMapOptions extends AutoSafeParcelable { @SafeParceled(7) private boolean compassEnabled; @SafeParceled(8) - private boolean scrollGesturesEnabled; + private boolean scrollGesturesEnabled = true; @SafeParceled(9) - private boolean zoomGesturesEnabled; + private boolean zoomGesturesEnabled = true; @SafeParceled(10) - private boolean tiltGesturesEnabled; + private boolean tiltGesturesEnabled = true; @SafeParceled(11) - private boolean rotateGesturesEnabled; + private boolean rotateGesturesEnabled = true; public GoogleMapOptions() { } From fbe903fbcbcc27af3579c9b7b35c40b105224a01 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Thu, 3 Dec 2015 19:17:35 -0800 Subject: [PATCH 079/170] Add IOnMyLocationChangeListener API --- .../android/gms/maps/internal/IOnMyLocationChangeListener.aidl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl index db71cd63..35a6b6c2 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMyLocationChangeListener.aidl @@ -1,4 +1,7 @@ package com.google.android.gms.maps.internal; +import com.google.android.gms.dynamic.IObjectWrapper; + interface IOnMyLocationChangeListener { + void onMyLocationChanged(IObjectWrapper location); } From 8d39059ce60908519a4642562c848d9da063e710 Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Fri, 25 Dec 2015 03:46:36 +0100 Subject: [PATCH 080/170] Extend People API model --- .../internal/ParcelableLoadImageOptions.java | 36 +++++++++++++++++++ .../gms/people/model/AccountMetadata.java | 12 +++++++ .../gms/people/model/AvatarReference.java | 34 ++++++++++++++++++ 3 files changed, 82 insertions(+) create mode 100644 play-services-api/src/main/java/com/google/android/gms/people/internal/ParcelableLoadImageOptions.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/people/model/AvatarReference.java diff --git a/play-services-api/src/main/java/com/google/android/gms/people/internal/ParcelableLoadImageOptions.java b/play-services-api/src/main/java/com/google/android/gms/people/internal/ParcelableLoadImageOptions.java new file mode 100644 index 00000000..cf7365f8 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/people/internal/ParcelableLoadImageOptions.java @@ -0,0 +1,36 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.people.internal; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class ParcelableLoadImageOptions extends AutoSafeParcelable { + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + public int imageSize; + + @SafeParceled(2) + public int avatarOptions; + + @SafeParceled(3) + public boolean useLargePictureForCp2Images; + + public static final Creator CREATOR = new AutoCreator(ParcelableLoadImageOptions.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java b/play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java index f14fcc56..0525d300 100644 --- a/play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java +++ b/play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java @@ -24,5 +24,17 @@ public class AccountMetadata extends AutoSafeParcelable { @SafeParceled(1) private int versionCode = 2; + @SafeParceled(2) + public boolean hasGooglePlus = true; + + @SafeParceled(3) + public boolean hasFeature2 = true; + + @SafeParceled(4) + public boolean hasFeature3 = true; + + @SafeParceled(5) + public boolean hasFeature4 = true; + public static Creator CREATOR = new AutoCreator(AccountMetadata.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/people/model/AvatarReference.java b/play-services-api/src/main/java/com/google/android/gms/people/model/AvatarReference.java new file mode 100644 index 00000000..03599139 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/people/model/AvatarReference.java @@ -0,0 +1,34 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.people.model; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class AvatarReference extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode; + + @SafeParceled(1) + public int source; + + @SafeParceled(2) + public String location; + + public static final Creator CREATOR = new AutoCreator(AvatarReference.class); +} From a223d9591290172fc58266173f9ce1c8b98cef12 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Fri, 22 Jan 2016 03:44:27 +0100 Subject: [PATCH 081/170] Split constant-pool, add some components for gcm --- extern/SafeParcel | 2 +- play-services-api/build.gradle | 18 ++- .../android/gms/iid/IMessengerCompat.aidl | 7 ++ .../android/gms/gcm/PendingCallback.java | 59 ++++++++++ .../android/gms/iid/MessengerCompat.java | 106 ++++++++++++++++++ .../org/microg/gms/auth/AuthConstants.java | 22 ++++ .../java/org/microg/gms/common/Constants.java | 28 +---- .../java/org/microg/gms/gcm/GcmConstants.java | 71 ++++++++++++ .../gms/location/LocationConstants.java | 21 ++++ .../org/microg/gms/maps/MapsConstants.java | 40 +++++++ 10 files changed, 344 insertions(+), 30 deletions(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/iid/IMessengerCompat.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/gcm/PendingCallback.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/iid/MessengerCompat.java create mode 100644 play-services-api/src/main/java/org/microg/gms/auth/AuthConstants.java create mode 100644 play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java create mode 100644 play-services-api/src/main/java/org/microg/gms/location/LocationConstants.java create mode 100644 play-services-api/src/main/java/org/microg/gms/maps/MapsConstants.java diff --git a/extern/SafeParcel b/extern/SafeParcel index 4579b940..e7051668 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit 4579b940f2aab6bc4be8607b20e0bbb70ab4002d +Subproject commit e70516688482e667a22b8d485d1131e5af11c188 diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index d7c9bc7b..28a98c26 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -19,7 +19,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:1.3.0' + classpath 'com.android.tools.build:gradle:1.5.0' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' } } @@ -27,12 +27,26 @@ buildscript { apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' +String getMyVersionName() { + def stdout = new ByteArrayOutputStream() + exec { + commandLine 'git', 'describe', '--tags', '--always', '--dirty' + standardOutput = stdout + } + return stdout.toString().trim() +} + group = 'org.microg' -version = '1.0-SNAPSHOT' +version = getMyVersionName().substring(1) android { compileSdkVersion 23 buildToolsVersion "23.0.2" + + defaultConfig { + versionName getMyVersionName() + } + compileOptions { sourceCompatibility JavaVersion.VERSION_1_6 } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/iid/IMessengerCompat.aidl b/play-services-api/src/main/aidl/com/google/android/gms/iid/IMessengerCompat.aidl new file mode 100644 index 00000000..3ebf38c1 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/iid/IMessengerCompat.aidl @@ -0,0 +1,7 @@ +package com.google.android.gms.iid; + +import android.os.Message; + +interface IMessengerCompat { + void send(in Message message); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/gcm/PendingCallback.java b/play-services-api/src/main/java/com/google/android/gms/gcm/PendingCallback.java new file mode 100644 index 00000000..6eed3e3d --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/gcm/PendingCallback.java @@ -0,0 +1,59 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.gcm; + +import android.os.IBinder; +import android.os.Parcel; +import android.os.Parcelable; + +public class PendingCallback implements Parcelable { + private final IBinder binder; + + public PendingCallback(IBinder binder) { + this.binder = binder; + } + + private PendingCallback(Parcel in) { + this.binder = in.readStrongBinder(); + } + + public IBinder getBinder() { + return binder; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeStrongBinder(binder); + } + + public static final Creator CREATOR = new Creator() { + @Override + public PendingCallback createFromParcel(Parcel source) { + return new PendingCallback(source); + } + + @Override + public PendingCallback[] newArray(int size) { + return new PendingCallback[size]; + } + }; +} diff --git a/play-services-api/src/main/java/com/google/android/gms/iid/MessengerCompat.java b/play-services-api/src/main/java/com/google/android/gms/iid/MessengerCompat.java new file mode 100644 index 00000000..d06fc263 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/iid/MessengerCompat.java @@ -0,0 +1,106 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.iid; + +import android.os.Binder; +import android.os.Handler; +import android.os.IBinder; +import android.os.Message; +import android.os.Messenger; +import android.os.Parcel; +import android.os.Parcelable; +import android.os.RemoteException; + +import static android.os.Build.VERSION.SDK_INT; +import static android.os.Build.VERSION_CODES.LOLLIPOP; + +public class MessengerCompat implements Parcelable { + private Messenger messenger; + private IMessengerCompat messengerCompat; + + public MessengerCompat(IBinder binder) { + if (SDK_INT >= LOLLIPOP) { + messenger = new Messenger(binder); + } else { + messengerCompat = IMessengerCompat.Stub.asInterface(binder); + } + } + + public MessengerCompat(Handler handler) { + if (SDK_INT >= LOLLIPOP) { + messenger = new Messenger(handler); + } else { + messengerCompat = new IMessengerCompatImpl(handler); + } + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public boolean equals(Object o) { + return o instanceof MessengerCompat && ((MessengerCompat) o).getBinder().equals(getBinder()); + } + + public IBinder getBinder() { + return messenger != null ? messenger.getBinder() : messengerCompat.asBinder(); + } + + @Override + public int hashCode() { + return getBinder().hashCode(); + } + + public void send(Message message) throws RemoteException { + if (messenger != null) messenger.send(message); + else messengerCompat.send(message); + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeStrongBinder(getBinder()); + } + + public static final Creator CREATOR = new Creator() { + @Override + public MessengerCompat createFromParcel(Parcel source) { + IBinder binder = source.readStrongBinder(); + return binder != null ? new MessengerCompat(binder) : null; + } + + @Override + public MessengerCompat[] newArray(int size) { + return new MessengerCompat[size]; + } + }; + + private static class IMessengerCompatImpl extends IMessengerCompat.Stub { + private final Handler handler; + + public IMessengerCompatImpl(Handler handler) { + this.handler = handler; + } + + @Override + public void send(Message message) throws RemoteException { + message.arg2 = Binder.getCallingUid(); + handler.dispatchMessage(message); + } + } +} diff --git a/play-services-api/src/main/java/org/microg/gms/auth/AuthConstants.java b/play-services-api/src/main/java/org/microg/gms/auth/AuthConstants.java new file mode 100644 index 00000000..70ce7126 --- /dev/null +++ b/play-services-api/src/main/java/org/microg/gms/auth/AuthConstants.java @@ -0,0 +1,22 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.microg.gms.auth; + +public class AuthConstants { + public static final String DEFAULT_ACCOUNT = "<>"; + public static final String SCOPE_GET_ACCOUNT_ID = "^^_account_id_^^"; +} diff --git a/play-services-api/src/main/java/org/microg/gms/common/Constants.java b/play-services-api/src/main/java/org/microg/gms/common/Constants.java index 6f0589bc..d838c0b0 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Constants.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Constants.java @@ -22,34 +22,8 @@ public class Constants { * Does not necessarily mean anything. */ public static final int MAX_REFERENCE_VERSION = 8489000; - public static final String KEY_MOCK_LOCATION = "mockLocation"; - public static final String DEFAULT_ACCOUNT = "<>"; public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; + public static final String GSF_PACKAGE_NAME = "com.google.android.gsf"; public static final String GMS_PACKAGE_SIGNATURE_SHA1 = "38918a453d07199354f8b19af05ec6562ced5788"; - public static final String SCOPE_GET_ACCOUNT_ID = "^^_account_id_^^"; - /** - * No base map tiles. - */ - public static final int MAP_TYPE_NONE = 0; - - /** - * Basic maps. - */ - public static final int MAP_TYPE_NORMAL = 1; - - /** - * Satellite maps with no labels. - */ - public static final int MAP_TYPE_SATELLITE = 2; - - /** - * Terrain maps. - */ - public static final int MAP_TYPE_TERRAIN = 3; - - /** - * Satellite maps with a transparent layer of major streets. - */ - public static final int MAP_TYPE_HYBRID = 4; } diff --git a/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java b/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java new file mode 100644 index 00000000..d387b56c --- /dev/null +++ b/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java @@ -0,0 +1,71 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.microg.gms.gcm; + +public final class GcmConstants { + public static final String ACTION_C2DM_RECEIVE = "com.google.android.c2dm.intent.RECEIVE"; + public static final String ACTION_C2DM_REGISTER = "com.google.android.c2dm.intent.REGISTER"; + public static final String ACTION_C2DM_REGISTRATION = "com.google.android.c2dm.intent.REGISTRATION"; + public static final String ACTION_C2DM_UNREGISTER = "com.google.android.c2dm.intent.UNREGISTER"; + public static final String ACTION_GCM_SEND = "com.google.android.gcm.intent.SEND"; + public static final String ACTION_NOTIFICATION_OPEN = "com.google.android.gms.gcm.NOTIFICATION_OPEN"; + public static final String ACTION_NOTIFICATION_DISMISS = "com.google.android.gms.gcm.NOTIFICATION_DISMISS"; + public static final String ACTION_SCHEDULE = "com.google.android.gms.gcm.ACTION_SCHEDULE"; + public static final String ACTION_TASK_READY = "com.google.android.gms.gcm.ACTION_TASK_READY"; + public static final String ACTION_TASK_INITIALZE = "com.google.android.gms.gcm.SERVICE_ACTION_INITIALIZE"; + public static final String ACTION_INSTANCE_ID = "com.google.android.gms.iid.InstanceID"; + + public static final String EXTRA_APP = "app"; + public static final String EXTRA_COMPONENT = "component"; + public static final String EXTRA_DELAY = "google.delay"; + public static final String EXTRA_ERROR = "error"; + public static final String EXTRA_FROM = "from"; + public static final String EXTRA_GSF_INTENT = "GSF"; + public static final String EXTRA_PENDING_INTENT = "com.google.android.gms.gcm.PENDING_INTENT"; + public static final String EXTRA_MESSENGER = "google.messenger"; + public static final String EXTRA_MESSAGE_TYPE = "message_type"; + public static final String EXTRA_MESSAGE_ID = "google.message_id"; + public static final String EXTRA_REGISTRATION_ID = "registration_id"; + public static final String EXTRA_RETRY_AFTER = "Retry-After"; + public static final String EXTRA_SCHEDULER_ACTION = "scheduler_action"; + public static final String EXTRA_SENDER = "sender"; + public static final String EXTRA_SENDER_LEGACY = "legacy.sender"; + public static final String EXTRA_SEND_TO = "google.to"; + public static final String EXTRA_SEND_FROM = "google.from"; + public static final String EXTRA_TAG = "tag"; + public static final String EXTRA_TOPIC = "gcm.topic"; + public static final String EXTRA_TTL = "google.ttl"; + public static final String EXTRA_UNREGISTERED = "unregistered"; + + public static final String MESSAGE_TYPE_GCM = "gcm"; + public static final String MESSAGE_TYPE_DELETED_MESSAGE = "deleted_message"; + public static final String MESSAGE_TYPE_SEND_ERROR = "send_error"; + public static final String MESSAGE_TYPE_SEND_EVENT = "send_event"; + + public static final String SCHEDULER_ACTION_CANCEL = "CANCEL_TASK"; + public static final String SCHEDULER_ACTION_CANCEL_ALL = "CANCEL_ALL"; + public static final String SCHEDULER_ACTION_SCHEDULE = "SCHEDULE_TASK"; + + public static final String PERMISSION_GTALK = "com.google.android.gtalkservice.permission.GTALK_SERVICE"; + public static final String PERMISSION_NETWORK_TASK = "com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"; + public static final String PERMISSION_RECEIVE = "com.google.android.c2dm.permission.RECEIVE"; + public static final String PERMISSION_SEND = "com.google.android.c2dm.permission.SEND"; + + public static final String ERROR_SERVICE_NOT_AVAILABLE = "SERVICE_NOT_AVAILABLE"; + + public static final String INSTANCE_ID_SCOPE_GCM = "GCM"; +} diff --git a/play-services-api/src/main/java/org/microg/gms/location/LocationConstants.java b/play-services-api/src/main/java/org/microg/gms/location/LocationConstants.java new file mode 100644 index 00000000..378c5c73 --- /dev/null +++ b/play-services-api/src/main/java/org/microg/gms/location/LocationConstants.java @@ -0,0 +1,21 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.microg.gms.location; + +public class LocationConstants { + public static final String KEY_MOCK_LOCATION = "mockLocation"; +} diff --git a/play-services-api/src/main/java/org/microg/gms/maps/MapsConstants.java b/play-services-api/src/main/java/org/microg/gms/maps/MapsConstants.java new file mode 100644 index 00000000..b54649e0 --- /dev/null +++ b/play-services-api/src/main/java/org/microg/gms/maps/MapsConstants.java @@ -0,0 +1,40 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.microg.gms.maps; + +public class MapsConstants { + /** + * No base map tiles. + */ + public static final int MAP_TYPE_NONE = 0; + /** + * Basic maps. + */ + public static final int MAP_TYPE_NORMAL = 1; + /** + * Satellite maps with no labels. + */ + public static final int MAP_TYPE_SATELLITE = 2; + /** + * Terrain maps. + */ + public static final int MAP_TYPE_TERRAIN = 3; + /** + * Satellite maps with a transparent layer of major streets. + */ + public static final int MAP_TYPE_HYBRID = 4; +} From 865b41664d6afabecddbd1a5d1b7c702d0bd821f Mon Sep 17 00:00:00 2001 From: Marvin W Date: Mon, 25 Jan 2016 22:48:29 +0100 Subject: [PATCH 082/170] Update API for PlacePicker --- extern/SafeParcel | 2 +- .../android/gms/location/places/Place.java | 384 ++++++++++++++++++ .../location/places/internal/PlaceImpl.java | 145 +++++++ .../org/microg/gms/auth/AuthConstants.java | 4 + .../java/org/microg/gms/common/Constants.java | 1 - .../gms/location/LocationConstants.java | 12 + 6 files changed, 546 insertions(+), 2 deletions(-) create mode 100644 play-services-api/src/main/java/com/google/android/gms/location/places/Place.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlaceImpl.java diff --git a/extern/SafeParcel b/extern/SafeParcel index e7051668..b062691c 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit e70516688482e667a22b8d485d1131e5af11c188 +Subproject commit b062691c8a3271afa2d44531590e262a71107b0b diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/Place.java b/play-services-api/src/main/java/com/google/android/gms/location/places/Place.java new file mode 100644 index 00000000..1c48110f --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/Place.java @@ -0,0 +1,384 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location.places; + +import android.net.Uri; + +import com.google.android.gms.common.data.Freezable; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.LatLngBounds; + +import java.util.List; +import java.util.Locale; + +public interface Place extends Freezable { + int TYPE_ACCOUNTING = 1; + + int TYPE_ADMINISTRATIVE_AREA_LEVEL_1 = 1001; + + int TYPE_ADMINISTRATIVE_AREA_LEVEL_2 = 1002; + + int TYPE_ADMINISTRATIVE_AREA_LEVEL_3 = 1003; + + int TYPE_AIRPORT = 2; + + int TYPE_AMUSEMENT_PARK = 3; + + int TYPE_AQUARIUM = 4; + + int TYPE_ART_GALLERY = 5; + + int TYPE_ATM = 6; + + int TYPE_BAKERY = 7; + + int TYPE_BANK = 8; + + int TYPE_BAR = 9; + + int TYPE_BEAUTY_SALON = 10; + + int TYPE_BICYCLE_STORE = 11; + + int TYPE_BOOK_STORE = 12; + + int TYPE_BOWLING_ALLEY = 13; + + int TYPE_BUS_STATION = 14; + + int TYPE_CAFE = 15; + + int TYPE_CAMPGROUND = 16; + + int TYPE_CAR_DEALER = 17; + + int TYPE_CAR_RENTAL = 18; + + int TYPE_CAR_REPAIR = 19; + + int TYPE_CAR_WASH = 20; + + int TYPE_CASINO = 21; + + int TYPE_CEMETERY = 22; + + int TYPE_CHURCH = 23; + + int TYPE_CITY_HALL = 24; + + int TYPE_CLOTHING_STORE = 25; + + int TYPE_COLLOQUIAL_AREA = 1004; + + int TYPE_CONVENIENCE_STORE = 26; + + int TYPE_COUNTRY = 1005; + + int TYPE_COURTHOUSE = 27; + + int TYPE_DENTIST = 28; + + int TYPE_DEPARTMENT_STORE = 29; + + int TYPE_DOCTOR = 30; + + int TYPE_ELECTRICIAN = 31; + + int TYPE_ELECTRONICS_STORE = 32; + + int TYPE_EMBASSY = 33; + + int TYPE_ESTABLISHMENT = 34; + + int TYPE_FINANCE = 35; + + int TYPE_FIRE_STATION = 36; + + int TYPE_FLOOR = 1006; + + int TYPE_FLORIST = 37; + + int TYPE_FOOD = 38; + + int TYPE_FUNERAL_HOME = 39; + + int TYPE_FURNITURE_STORE = 40; + + int TYPE_GAS_STATION = 41; + + int TYPE_GENERAL_CONTRACTOR = 42; + + int TYPE_GEOCODE = 1007; + + int TYPE_GROCERY_OR_SUPERMARKET = 43; + + int TYPE_GYM = 44; + + int TYPE_HAIR_CARE = 45; + + int TYPE_HARDWARE_STORE = 46; + + int TYPE_HEALTH = 47; + + int TYPE_HINDU_TEMPLE = 48; + + int TYPE_HOME_GOODS_STORE = 49; + + int TYPE_HOSPITAL = 50; + + int TYPE_INSURANCE_AGENCY = 51; + + int TYPE_INTERSECTION = 1008; + + int TYPE_JEWELRY_STORE = 52; + + int TYPE_LAUNDRY = 53; + + int TYPE_LAWYER = 54; + + int TYPE_LIBRARY = 55; + + int TYPE_LIQUOR_STORE = 56; + + int TYPE_LOCALITY = 1009; + + int TYPE_LOCAL_GOVERNMENT_OFFICE = 57; + + int TYPE_LOCKSMITH = 58; + + int TYPE_LODGING = 59; + + int TYPE_MEAL_DELIVERY = 60; + + int TYPE_MEAL_TAKEAWAY = 61; + + int TYPE_MOSQUE = 62; + + int TYPE_MOVIE_RENTAL = 63; + + int TYPE_MOVIE_THEATER = 64; + + int TYPE_MOVING_COMPANY = 65; + + int TYPE_MUSEUM = 66; + + int TYPE_NATURAL_FEATURE = 1010; + + int TYPE_NEIGHBORHOOD = 1011; + + int TYPE_NIGHT_CLUB = 67; + + int TYPE_OTHER = 0; + + int TYPE_PAINTER = 68; + + int TYPE_PARK = 69; + + int TYPE_PARKING = 70; + + int TYPE_PET_STORE = 71; + + int TYPE_PHARMACY = 72; + + int TYPE_PHYSIOTHERAPIST = 73; + + int TYPE_PLACE_OF_WORSHIP = 74; + + int TYPE_PLUMBER = 75; + + int TYPE_POINT_OF_INTEREST = 1013; + + int TYPE_POLICE = 76; + + int TYPE_POLITICAL = 1012; + + int TYPE_POSTAL_CODE = 1015; + + int TYPE_POSTAL_CODE_PREFIX = 1016; + + int TYPE_POSTAL_TOWN = 1017; + + int TYPE_POST_BOX = 1014; + + int TYPE_POST_OFFICE = 77; + + int TYPE_PREMISE = 1018; + + int TYPE_REAL_ESTATE_AGENCY = 78; + + int TYPE_RESTAURANT = 79; + + int TYPE_ROOFING_CONTRACTOR = 80; + + int TYPE_ROOM = 1019; + + int TYPE_ROUTE = 1020; + + int TYPE_RV_PARK = 81; + + int TYPE_SCHOOL = 82; + + int TYPE_SHOE_STORE = 83; + + int TYPE_SHOPPING_MALL = 84; + + int TYPE_SPA = 85; + + int TYPE_STADIUM = 86; + + int TYPE_STORAGE = 87; + + int TYPE_STORE = 88; + + int TYPE_STREET_ADDRESS = 1021; + + int TYPE_SUBLOCALITY = 1022; + + int TYPE_SUBLOCALITY_LEVEL_1 = 1023; + + int TYPE_SUBLOCALITY_LEVEL_2 = 1024; + + int TYPE_SUBLOCALITY_LEVEL_3 = 1025; + + int TYPE_SUBLOCALITY_LEVEL_4 = 1026; + + int TYPE_SUBLOCALITY_LEVEL_5 = 1027; + + int TYPE_SUBPREMISE = 1028; + + int TYPE_SUBWAY_STATION = 89; + + int TYPE_SYNAGOGUE = 90; + + int TYPE_SYNTHETIC_GEOCODE = 1029; + + int TYPE_TAXI_STAND = 91; + + int TYPE_TRAIN_STATION = 92; + + int TYPE_TRANSIT_STATION = 1030; + + int TYPE_TRAVEL_AGENCY = 93; + + int TYPE_UNIVERSITY = 94; + + int TYPE_VETERINARY_CARE = 95; + + int TYPE_ZOO = 96; + + /** + * Returns a human readable address for this Place. May return null if the address is unknown. + *

+ * The address is localized according to the locale returned by {@link com.google.android.gms.location.places.Place#getLocale()}. + */ + CharSequence getAddress(); + + /** + * Returns the attributions to be shown to the user if data from the {@link com.google.android.gms.location.places.Place} is used. + *

+ * We recommend placing this information below any place information. See + * Displaying Attributions for more details. + * + * @return The attributions in HTML format, or null if there are no attributions to display. + */ + CharSequence getAttributions(); + + /** + * Returns the unique id of this Place. + *

+ * This ID can be passed to {@link com.google.android.gms.location.places.GeoDataApi#getPlaceById(com.google.android.gms.common.api.GoogleApiClient, java.lang.String...)} to lookup the same place at a later + * time, but it is not guaranteed that such a lookup will succeed (the place may no longer exist + * in our database). It is possible that the returned Place in such a lookup will have a + * different ID (so there may be multiple ID's for one given place). + */ + String getId(); + + /** + * Returns the location of this Place. + *

+ * The location is not necessarily the center of the Place, or any particular entry or exit + * point, but some arbitrarily chosen point within the geographic extent of the Place. + */ + LatLng getLatLng(); + + /** + * Returns the locale in which the names and addresses were localized. + */ + Locale getLocale(); + + /** + * Returns the name of this Place. + *

+ * The name is localized according to the locale returned by {@link com.google.android.gms.location.places.Place#getLocale()}. + */ + CharSequence getName(); + + /** + * Returns the place's phone number in international format. Returns null if no phone number is + * known, or the place has no phone number. + *

+ * International format includes the country code, and is prefixed with the plus (+) sign. For + * example, the international phone number for Google's Mountain View, USA office is +1 + * 650-253-0000. + */ + CharSequence getPhoneNumber(); + + /** + * Returns a list of place types for this Place. + *

+ * The elements of this list are drawn from Place.TYPE_* constants, though one should + * expect there could be new place types returned that were introduced after an app was + * published. + */ + List getPlaceTypes(); + + /** + * Returns the price level for this place on a scale from 0 (cheapest) to 4. + *

+ * If no price level is known, a negative value is returned. + *

+ * The price level of the place, on a scale of 0 to 4. The exact amount indicated by a specific + * value will vary from region to region. Price levels are interpreted as follows: + */ + int getPriceLevel(); + + /** + * Returns the place's rating, from 1.0 to 5.0, based on aggregated user reviews. + *

+ * If no rating is known, a negative value is returned. + */ + float getRating(); + + /** + * Returns a viewport for displaying this Place. May return null if the size of the place is not + * known. + *

+ * This returns a viewport of a size that is suitable for displaying this Place. For example, a + * Place representing a store may have a relatively small viewport, while a Place representing a + * country may have a very large viewport. + */ + LatLngBounds getViewport(); + + /** + * Returns the URI of the website of this Place. Returns null if no website is known. + *

+ * This is the URI of the website maintained by the Place, if available. Note this is a + * third-party website not affiliated with the Places API. + */ + Uri getWebsiteUri(); + +} diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlaceImpl.java b/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlaceImpl.java new file mode 100644 index 00000000..7bdac464 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlaceImpl.java @@ -0,0 +1,145 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location.places.internal; + +import android.net.Uri; +import android.os.Bundle; + +import com.google.android.gms.location.places.Place; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.LatLngBounds; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Locale; + +public class PlaceImpl extends AutoSafeParcelable implements Place { + @SafeParceled(1000) + private int versionCode = 2; + @SafeParceled(1) + public String id; + @SafeParceled(2) + public Bundle addressComponents; + @SafeParceled(4) + public LatLng latLng; + @SafeParceled(5) + public float levelNumber; + @SafeParceled(6) + public LatLngBounds viewport; + @SafeParceled(7) + public String timezoneId; + @SafeParceled(8) + public Uri websiteUri; + @SafeParceled(9) + public boolean isPermanentlyClosed; + @SafeParceled(10) + public float rating; + @SafeParceled(11) + public int priceLevel; + @SafeParceled(12) + public long timestampSecs; + @SafeParceled(value = 13, subClass = Integer.class) + public List typesDeprecated = new ArrayList(); + @SafeParceled(14) + public String address; + @SafeParceled(15) + public String phoneNumber; + @SafeParceled(16) + public String regularOpenHours; + @SafeParceled(value = 17, subClass = String.class) + public List attributions = new ArrayList(); + @SafeParceled(19) + public String name; + @SafeParceled(value = 20, subClass = Integer.class) + public List placeTypes = new ArrayList(); + + @Override + public CharSequence getAddress() { + return address; + } + + @Override + public CharSequence getAttributions() { + return Arrays.toString(attributions.toArray()); + } + + @Override + public String getId() { + return id; + } + + @Override + public LatLng getLatLng() { + return latLng; + } + + @Override + public Locale getLocale() { + return Locale.getDefault(); + } + + @Override + public CharSequence getName() { + return name; + } + + @Override + public CharSequence getPhoneNumber() { + return phoneNumber; + } + + @Override + public List getPlaceTypes() { + return placeTypes; + } + + @Override + public int getPriceLevel() { + return priceLevel; + } + + @Override + public float getRating() { + return rating; + } + + @Override + public LatLngBounds getViewport() { + return viewport; + } + + @Override + public Uri getWebsiteUri() { + return websiteUri; + } + + @Override + public Place freeze() { + return this; + } + + @Override + public boolean isDataValid() { + return true; + } + + public static final Creator CREATOR = new AutoSafeParcelable.AutoCreator(PlaceImpl.class); +} diff --git a/play-services-api/src/main/java/org/microg/gms/auth/AuthConstants.java b/play-services-api/src/main/java/org/microg/gms/auth/AuthConstants.java index 70ce7126..b60d781a 100644 --- a/play-services-api/src/main/java/org/microg/gms/auth/AuthConstants.java +++ b/play-services-api/src/main/java/org/microg/gms/auth/AuthConstants.java @@ -19,4 +19,8 @@ package org.microg.gms.auth; public class AuthConstants { public static final String DEFAULT_ACCOUNT = "<>"; public static final String SCOPE_GET_ACCOUNT_ID = "^^_account_id_^^"; + public static final String PROVIDER_METHOD_GET_ACCOUNTS = "get_accounts"; + public static final String PROVIDER_METHOD_CLEAR_PASSWORD = "clear_password"; + public static final String PROVIDER_EXTRA_CLEAR_PASSWORD = "clear_password"; + public static final String PROVIDER_EXTRA_ACCOUNTS = "accounts"; } diff --git a/play-services-api/src/main/java/org/microg/gms/common/Constants.java b/play-services-api/src/main/java/org/microg/gms/common/Constants.java index d838c0b0..4fb16e83 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Constants.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Constants.java @@ -25,5 +25,4 @@ public class Constants { public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; public static final String GSF_PACKAGE_NAME = "com.google.android.gsf"; public static final String GMS_PACKAGE_SIGNATURE_SHA1 = "38918a453d07199354f8b19af05ec6562ced5788"; - } diff --git a/play-services-api/src/main/java/org/microg/gms/location/LocationConstants.java b/play-services-api/src/main/java/org/microg/gms/location/LocationConstants.java index 378c5c73..a06eb103 100644 --- a/play-services-api/src/main/java/org/microg/gms/location/LocationConstants.java +++ b/play-services-api/src/main/java/org/microg/gms/location/LocationConstants.java @@ -18,4 +18,16 @@ package org.microg.gms.location; public class LocationConstants { public static final String KEY_MOCK_LOCATION = "mockLocation"; + + // Place picker client->service + public static final String EXTRA_PRIMARY_COLOR = "primary_color"; + public static final String EXTRA_PRIMARY_COLOR_DARK = "primary_color_dark"; + public static final String EXTRA_CLIENT_VERSION = "gmscore_client_jar_version"; + public static final String EXTRA_BOUNDS = "latlng_bounds"; + + // Place picker service->client + public static final String EXTRA_ATTRIBUTION = "third_party_attributions"; + public static final String EXTRA_FINAL_BOUNDS = "final_latlng_bounds"; + public static final String EXTRA_PLACE = "selected_place"; + public static final String EXTRA_STATUS = "status"; } From 18582ce01a3ba70f1332524bba38a0b54ba6b13f Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sat, 6 Feb 2016 20:46:39 +0100 Subject: [PATCH 083/170] Add missing method to IWearableService --- .../google/android/gms/wearable/internal/IWearableService.aidl | 1 + 1 file changed, 1 insertion(+) diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl index 99f3514a..73cb02e7 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl @@ -17,6 +17,7 @@ interface IWearableService { void addListener(IWearableCallbacks callbacks, in AddListenerRequest request) = 15; void removeListener(IWearableCallbacks callbacks, in RemoveListenerRequest request) = 16; void putConfig(IWearableCallbacks callbacks, in ConnectionConfiguration config) = 19; + void deleteConfig(IWearableCallbacks callbacks, String name) = 20; void getConfigs(IWearableCallbacks callbacks) = 21; void enableConnection(IWearableCallbacks callbacks, String name) = 22; void disableConnection(IWearableCallbacks callbacks, String name) = 23; From 2aec42fb759a426f4ff6d05ff7761a9527622776 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Mon, 22 Feb 2016 23:28:21 +0100 Subject: [PATCH 084/170] Add some new (incomplete) classes for Auth API --- .../AccountRecoveryGuidanceRequest.java | 46 +++++++++++++++++++ .../dataservice/AccountRemovalRequest.java | 46 +++++++++++++++++++ .../ConfirmCredentialsRequest.java | 34 ++++++++++++++ .../firstparty/dataservice/TokenRequest.java | 26 ++++++++++- .../ConfirmCredentialsWorkflowRequest.java | 43 +++++++++++++++++ .../firstparty/shared/AccountCredentials.java | 38 +++++++++++++++ .../firstparty/shared/AppDescription.java | 35 ++++++++++++++ .../firstparty/shared/CaptchaSolution.java | 29 ++++++++++++ .../org/microg/gms/auth/AuthConstants.java | 1 + 9 files changed, 297 insertions(+), 1 deletion(-) create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/AccountRecoveryGuidanceRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/AccountRemovalRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/ConfirmCredentialsRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/firstparty/delegate/ConfirmCredentialsWorkflowRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/AccountCredentials.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/AppDescription.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/CaptchaSolution.java diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/AccountRecoveryGuidanceRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/AccountRecoveryGuidanceRequest.java new file mode 100644 index 00000000..31f64611 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/AccountRecoveryGuidanceRequest.java @@ -0,0 +1,46 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth.firstparty.dataservice; + +import android.accounts.Account; + +import org.microg.gms.auth.AuthConstants; +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class AccountRecoveryGuidanceRequest extends AutoSafeParcelable { + + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + @Deprecated + public final String accountName; + @SafeParceled(3) + public final Account account; + + public AccountRecoveryGuidanceRequest(String accountName) { + this.accountName = accountName; + this.account = new Account(accountName, AuthConstants.DEFAULT_ACCOUNT_TYPE); + } + + public AccountRecoveryGuidanceRequest(Account account) { + this.accountName = account.name; + this.account = account; + } + + public static final Creator CREATOR = new AutoCreator(AccountRecoveryGuidanceRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/AccountRemovalRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/AccountRemovalRequest.java new file mode 100644 index 00000000..ee6dd78d --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/AccountRemovalRequest.java @@ -0,0 +1,46 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth.firstparty.dataservice; + +import android.accounts.Account; + +import org.microg.gms.auth.AuthConstants; +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class AccountRemovalRequest extends AutoSafeParcelable { + + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + @Deprecated + public final String accountName; + @SafeParceled(3) + public final Account account; + + public AccountRemovalRequest(String accountName) { + this.accountName = accountName; + this.account = new Account(accountName, AuthConstants.DEFAULT_ACCOUNT_TYPE); + } + + public AccountRemovalRequest(Account account) { + this.accountName = account.name; + this.account = account; + } + + public static final Creator CREATOR = new AutoCreator(AccountRemovalRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/ConfirmCredentialsRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/ConfirmCredentialsRequest.java new file mode 100644 index 00000000..f477fc08 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/ConfirmCredentialsRequest.java @@ -0,0 +1,34 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth.firstparty.dataservice; + +import com.google.android.gms.auth.firstparty.shared.AccountCredentials; +import com.google.android.gms.auth.firstparty.shared.CaptchaSolution; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class ConfirmCredentialsRequest extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public AccountCredentials accountCredentials; + @SafeParceled(3) + public CaptchaSolution captchaSolution; + + public static final Creator CREATOR = new AutoCreator(ConfirmCredentialsRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java index f9325a0d..d087c3dc 100644 --- a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java @@ -16,5 +16,29 @@ package com.google.android.gms.auth.firstparty.dataservice; -public class TokenRequest { +import android.accounts.Account; +import android.os.Bundle; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +// TODO +public class TokenRequest extends AutoSafeParcelable{ + + @SafeParceled(1) + private int versionCode = 4; + @SafeParceled(3) + public String accountName; + @SafeParceled(4) + public Bundle extras; + @SafeParceled(9) + public String consent; + @SafeParceled(15) + public String accountType; + + public Account getAccount() { + return new Account(accountName, accountType); + } + + public static final Creator CREATOR = new AutoCreator(TokenRequest.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/delegate/ConfirmCredentialsWorkflowRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/delegate/ConfirmCredentialsWorkflowRequest.java new file mode 100644 index 00000000..0505c2fe --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/delegate/ConfirmCredentialsWorkflowRequest.java @@ -0,0 +1,43 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth.firstparty.delegate; + +import android.accounts.Account; +import android.accounts.AccountAuthenticatorResponse; +import android.os.Bundle; + +import com.google.android.gms.auth.firstparty.shared.AppDescription; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class ConfirmCredentialsWorkflowRequest extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 3; + @SafeParceled(2) + public String accountName; + @SafeParceled(3) + public AppDescription appDescription; + @SafeParceled(4) + public Bundle extras; + @SafeParceled(5) + public Account account; + @SafeParceled(6) + public AccountAuthenticatorResponse accountAuthenticatorResponse; + + public static final Creator CREATOR = new AutoCreator(ConfirmCredentialsWorkflowRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/AccountCredentials.java b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/AccountCredentials.java new file mode 100644 index 00000000..ccd614c5 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/AccountCredentials.java @@ -0,0 +1,38 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth.firstparty.shared; + +import android.accounts.Account; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +// TODO +public class AccountCredentials extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 2; + @SafeParceled(3) + public String accountName; + @SafeParceled(9) + public String accountType; + + public Account getAccount() { + return new Account(accountName, accountType); + } + + public static final Creator CREATOR = new AutoCreator(AccountCredentials.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/AppDescription.java b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/AppDescription.java new file mode 100644 index 00000000..601c7174 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/AppDescription.java @@ -0,0 +1,35 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth.firstparty.shared; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class AppDescription extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public int callingUid; + @SafeParceled(3) + public String sessiondId; + @SafeParceled(4) + public String sessiondSig; + @SafeParceled(5) + public String callingPkg; + + public static final Creator CREATOR = new AutoCreator(AppDescription.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/CaptchaSolution.java b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/CaptchaSolution.java new file mode 100644 index 00000000..cd9a1c0b --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/CaptchaSolution.java @@ -0,0 +1,29 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth.firstparty.shared; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +// TODO +public class CaptchaSolution extends AutoSafeParcelable { + + @SafeParceled(1) + private int versionCode = 1; + + public static final Creator CREATOR = new AutoCreator(CaptchaSolution.class); +} diff --git a/play-services-api/src/main/java/org/microg/gms/auth/AuthConstants.java b/play-services-api/src/main/java/org/microg/gms/auth/AuthConstants.java index b60d781a..e2cfc905 100644 --- a/play-services-api/src/main/java/org/microg/gms/auth/AuthConstants.java +++ b/play-services-api/src/main/java/org/microg/gms/auth/AuthConstants.java @@ -23,4 +23,5 @@ public class AuthConstants { public static final String PROVIDER_METHOD_CLEAR_PASSWORD = "clear_password"; public static final String PROVIDER_EXTRA_CLEAR_PASSWORD = "clear_password"; public static final String PROVIDER_EXTRA_ACCOUNTS = "accounts"; + public static final String DEFAULT_ACCOUNT_TYPE = "com.google"; } From c9d08fbe0e02fb7edb837552021c0751df4ddbad Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 28 Feb 2016 13:30:17 +0100 Subject: [PATCH 085/170] Add Actions for GeoData and PlaceDetection API --- .../src/main/java/org/microg/gms/common/Services.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/play-services-api/src/main/java/org/microg/gms/common/Services.java b/play-services-api/src/main/java/org/microg/gms/common/Services.java index 56a5c93e..e36198ac 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Services.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Services.java @@ -330,6 +330,7 @@ public final class Services { public interface GEODATA { int SERVICE_ID = 65; + String ACTION = "com.google.android.gms.location.places.GeoDataApi"; } public interface SEARCH_IME { @@ -338,6 +339,7 @@ public final class Services { public interface PLACE_DETECTION { int SERVICE_ID = 67; + String ACTION = "com.google.android.gms.location.places.PlaceDetectionApi"; } public interface CREDENTIALS { From c959e72839430ee32d6c9bebee1d2531b4e8e31c Mon Sep 17 00:00:00 2001 From: Marvin W Date: Thu, 3 Mar 2016 01:26:28 +0100 Subject: [PATCH 086/170] Add Map API callbacks --- .../android/gms/maps/internal/IOnMapLoadedCallback.aidl | 1 + .../android/gms/maps/internal/ISnapshotReadyCallback.aidl | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl index 969d9652..d3fc105d 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnMapLoadedCallback.aidl @@ -1,4 +1,5 @@ package com.google.android.gms.maps.internal; interface IOnMapLoadedCallback { + void onMapLoaded(); } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl index 48a39219..f907e336 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ISnapshotReadyCallback.aidl @@ -1,4 +1,9 @@ package com.google.android.gms.maps.internal; +import com.google.android.gms.dynamic.IObjectWrapper; +import android.graphics.Bitmap; + interface ISnapshotReadyCallback { + void onBitmapReady(in Bitmap bitmap); + void onBitmapWrappedReady(IObjectWrapper wrapper); } From 96540b11c64f6e5821e86014a9b32647307a89d6 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sat, 5 Mar 2016 21:47:41 +0100 Subject: [PATCH 087/170] Add field to wearable PutDataRequest --- .../gms/wearable/internal/PutDataRequest.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java index 97559a8a..53529134 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java @@ -37,6 +37,7 @@ import java.util.Map; @PublicApi public class PutDataRequest extends AutoSafeParcelable { public static final String WEAR_URI_SCHEME = "wear"; + private static final int DEFAULT_SYNC_DEADLINE = 30 * 60 * 1000; @SafeParceled(1) private int versionCode = 1; @@ -46,6 +47,8 @@ public class PutDataRequest extends AutoSafeParcelable { private final Bundle assets; @SafeParceled(5) byte[] data; + @SafeParceled(6) + long syncDeadline = DEFAULT_SYNC_DEADLINE; private PutDataRequest() { uri = null; @@ -130,10 +133,19 @@ public class PutDataRequest extends AutoSafeParcelable { } public String toString(boolean verbose) { - return "PutDataRequest[uri=" + uri + - ", data=" + (data == null ? "null" : Base64.encodeToString(data, Base64.NO_WRAP)) + - ", numAssets=" + getAssets().size() + "]"; - // TODO: Verbose: dump all assets + StringBuilder sb = new StringBuilder(); + sb.append("PutDataRequest[uri=").append(uri) + .append(", data=").append(data == null ? "null" : Base64.encodeToString(data, Base64.NO_WRAP)) + .append(", numAssets=").append(getAssets().size()); + if (verbose) { + sb.append(",assets=["); + for (String key : getAssets().keySet()) { + sb.append(key).append('=').append(getAsset(key)).append(", "); + } + sb.delete(sb.length() - 2, sb.length()).append(']'); + } + sb.append("]"); + return sb.toString(); } public static final Creator CREATOR = new AutoCreator(PutDataRequest.class); From 249915ed3f1ba5df3eeb1906580e028d01172cb9 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Mon, 14 Mar 2016 19:09:46 +0100 Subject: [PATCH 088/170] Small updates to maps api --- .../android/gms/maps/internal/IMapFragmentDelegate.aidl | 2 ++ .../google/android/gms/maps/internal/IMapViewDelegate.aidl | 2 +- .../java/com/google/android/gms/maps/GoogleMapOptions.java | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl index ebfee0d1..988ecee2 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl @@ -3,6 +3,7 @@ package com.google.android.gms.maps.internal; import android.os.Bundle; import com.google.android.gms.maps.internal.IGoogleMapDelegate; +import com.google.android.gms.maps.internal.IOnMapReadyCallback; import com.google.android.gms.maps.GoogleMapOptions; import com.google.android.gms.dynamic.IObjectWrapper; @@ -18,4 +19,5 @@ interface IMapFragmentDelegate { void onLowMemory(); void onSaveInstanceState(inout Bundle outState); boolean isReady(); + void getMapAsync(IOnMapReadyCallback callback); } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl index b53e364f..80362ce0 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl @@ -15,5 +15,5 @@ interface IMapViewDelegate { void onLowMemory(); void onSaveInstanceState(inout Bundle outState); IObjectWrapper getView(); - void addOnMapReadyCallback(IOnMapReadyCallback callback); + void getMapAsync(IOnMapReadyCallback callback); } diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java b/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java index a5534cb2..fc6ee3fb 100644 --- a/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java +++ b/play-services-api/src/main/java/com/google/android/gms/maps/GoogleMapOptions.java @@ -43,6 +43,12 @@ public final class GoogleMapOptions extends AutoSafeParcelable { private boolean tiltGesturesEnabled = true; @SafeParceled(11) private boolean rotateGesturesEnabled = true; + @SafeParceled(12) + private boolean liteMode = false; + @SafeParceled(14) + private boolean mapToobarEnabled = false; + @SafeParceled(15) + private boolean ambientEnabled = false; public GoogleMapOptions() { } From a3001d93f8db2a79f5f5d339b960eeedaff4f7e2 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Mon, 14 Mar 2016 19:10:22 +0100 Subject: [PATCH 089/170] Add support for Assets to DataItem --- .../wearable/internal/DataItemParcelable.java | 31 +++++++++++++++++-- .../gms/wearable/internal/PutDataRequest.java | 4 +-- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java index 1d6bef63..62040109 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java @@ -19,13 +19,16 @@ package com.google.android.gms.wearable.internal; import android.net.Uri; import android.os.Bundle; +import com.google.android.gms.wearable.DataItem; +import com.google.android.gms.wearable.DataItemAsset; + import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; import java.util.HashMap; import java.util.Map; -public class DataItemParcelable extends AutoSafeParcelable { +public class DataItemParcelable extends AutoSafeParcelable implements DataItem { @SafeParceled(1) private int versionCode = 1; @SafeParceled(2) @@ -50,8 +53,8 @@ public class DataItemParcelable extends AutoSafeParcelable { data = null; } - public Map getAssets() { - Map assets = new HashMap(); + public Map getAssets() { + Map assets = new HashMap(); this.assets.setClassLoader(DataItemAssetParcelable.class.getClassLoader()); for (String key : this.assets.keySet()) { assets.put(key, (DataItemAssetParcelable) this.assets.getParcelable(key)); @@ -59,9 +62,31 @@ public class DataItemParcelable extends AutoSafeParcelable { return assets; } + @Override + public byte[] getData() { + return data; + } + + @Override public Uri getUri() { return uri; } + @Override + public DataItem setData(byte[] data) { + this.data = data; + return this; + } + + @Override + public DataItem freeze() { + return this; + } + + @Override + public boolean isDataValid() { + return true; + } + public static final Creator CREATOR = new AutoCreator(DataItemParcelable.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java index 53529134..49018144 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java @@ -137,8 +137,8 @@ public class PutDataRequest extends AutoSafeParcelable { sb.append("PutDataRequest[uri=").append(uri) .append(", data=").append(data == null ? "null" : Base64.encodeToString(data, Base64.NO_WRAP)) .append(", numAssets=").append(getAssets().size()); - if (verbose) { - sb.append(",assets=["); + if (verbose && !getAssets().isEmpty()) { + sb.append(", assets=["); for (String key : getAssets().keySet()) { sb.append(key).append('=').append(getAsset(key)).append(", "); } From 75562ce8b6d19fccde3ca46ab853513f48832a05 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Wed, 23 Mar 2016 22:45:40 +0100 Subject: [PATCH 090/170] Move constant --- .../src/main/java/org/microg/gms/gcm/GcmConstants.java | 1 + 1 file changed, 1 insertion(+) diff --git a/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java b/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java index d387b56c..ba75ba90 100644 --- a/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java +++ b/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java @@ -32,6 +32,7 @@ public final class GcmConstants { public static final String EXTRA_APP = "app"; public static final String EXTRA_COMPONENT = "component"; public static final String EXTRA_DELAY = "google.delay"; + public static final String EXTRA_DELETE = "delete"; public static final String EXTRA_ERROR = "error"; public static final String EXTRA_FROM = "from"; public static final String EXTRA_GSF_INTENT = "GSF"; From e71bf1b2596a19541e59e3fe4db5cce194b5dd21 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Thu, 14 Apr 2016 21:33:21 +0200 Subject: [PATCH 091/170] Small fixes and Gradle update --- gradle/wrapper/gradle-wrapper.properties | 2 +- play-services-api/build.gradle | 16 +- .../common/internal/GetServiceRequest.java | 4 +- .../gms/wearable/ConnectionConfiguration.java | 16 + .../org/microg/gms/common/GmsService.java | 118 ++++++ .../java/org/microg/gms/common/Services.java | 365 ------------------ 6 files changed, 144 insertions(+), 377 deletions(-) create mode 100644 play-services-api/src/main/java/org/microg/gms/common/GmsService.java delete mode 100644 play-services-api/src/main/java/org/microg/gms/common/Services.java diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 03cfe798..aa76e3eb 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.6-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.12-all.zip diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index 28a98c26..b1477716 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -19,25 +19,23 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:1.5.0' - classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' + classpath 'com.android.tools.build:gradle:2.0.0' } } apply plugin: 'com.android.library' -apply plugin: 'com.github.dcendents.android-maven' String getMyVersionName() { def stdout = new ByteArrayOutputStream() - exec { - commandLine 'git', 'describe', '--tags', '--always', '--dirty' - standardOutput = stdout - } - return stdout.toString().trim() + if (rootProject.file("gradlew").exists()) + exec { commandLine 'git', 'describe', '--tags', '--always', '--dirty'; standardOutput = stdout } + else // automatic build system, don't tag dirty + exec { commandLine 'git', 'describe', '--tags', '--always'; standardOutput = stdout } + return stdout.toString().trim().substring(1) } group = 'org.microg' -version = getMyVersionName().substring(1) +version = getMyVersionName() android { compileSdkVersion 23 diff --git a/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java b/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java index 9633516d..3a4754fc 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java @@ -23,7 +23,7 @@ import android.os.IBinder; import com.google.android.gms.common.api.Scope; import org.microg.gms.common.Constants; -import org.microg.gms.common.Services; +import org.microg.gms.common.GmsService; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; @@ -67,7 +67,7 @@ public class GetServiceRequest extends AutoSafeParcelable { @Override public String toString() { return "GetServiceRequest{" + - "serviceId=" + Services.nameFromServiceId(serviceId) + + "serviceId=" + GmsService.nameFromServiceId(serviceId) + ", gmsVersion=" + gmsVersion + ", packageName='" + packageName + '\'' + (scopes == null || scopes.length == 0 ? "" : (", scopes=" + Arrays.toString(scopes))) + diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java b/play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java index eb707a9a..1b813e40 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java @@ -65,5 +65,21 @@ public class ConnectionConfiguration extends AutoSafeParcelable { this.nodeId = nodeId; } + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("ConnectionConfiguration{"); + sb.append("name='").append(name).append('\''); + sb.append(", address='").append(address).append('\''); + sb.append(", type=").append(type); + sb.append(", role=").append(role); + sb.append(", enabled=").append(enabled); + sb.append(", connected=").append(connected); + sb.append(", peerNodeId='").append(peerNodeId).append('\''); + sb.append(", btlePriority=").append(btlePriority); + sb.append(", nodeId='").append(nodeId).append('\''); + sb.append('}'); + return sb.toString(); + } + public static final Creator CREATOR = new AutoCreator(ConnectionConfiguration.class); } diff --git a/play-services-api/src/main/java/org/microg/gms/common/GmsService.java b/play-services-api/src/main/java/org/microg/gms/common/GmsService.java new file mode 100644 index 00000000..51f6f90b --- /dev/null +++ b/play-services-api/src/main/java/org/microg/gms/common/GmsService.java @@ -0,0 +1,118 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.microg.gms.common; + +public enum GmsService { + UNKNOWN(-2), + ANY(-1), + GAMES(1, "com.google.android.gms.games.service.START"), + PLUS(2, "com.google.android.gms.plus.service.START", "com.google.android.gms.plus.service.internal.START"), + PANORAMA(3, "com.google.android.gms.panorama.service.START"), + WALLET(4, "com.google.android.gms.wallet.service.BIND"), + PEOPLE(5, "com.google.android.gms.people.service.START"), + LOCATION(6), + APPSTATE(7, "com.google.android.gms.appstate.service.START"), + ADREQUEST(8, "com.google.android.gms.ads.service.START"), + ACCOUNT(9, "com.google.android.gms.accounts.ACCOUNT_SERVICE"), + CAST(10, "com.google.android.gms.cast.service.BIND_CAST_DEVICE_CONTROLLER_SERVICE"), + DRIVE(11, "com.google.android.gms.drive.ApiService.START"), + ADDRESS(12, "com.google.android.gms.identity.service.BIND"), + CAR(13, "com.google.android.gms.car.service.START"), + WEARABLE(14, "com.google.android.gms.wearable.BIND"), + AUTH(16, "com.google.android.gms.auth.service.START"), + FITNESS(17, "com.google.android.gms.fitness.GoogleFitnessService.START"), + REMINDERS(18, "com.google.android.gms.reminders.service.START"), + LIGHTWEIGHT_INDEX(19, "com.google.android.gms.icing.LIGHTWEIGHT_INDEX_SERVICE"), + DEVICE_CONNECTION(20, "com.google.android.gms.deviceconnection.service.START"), + INDEX(21, "com.google.android.gms.icing.INDEX_SERVICE"), + LOCATION_REPORTING(22, "com.google.android.gms.location.reporting.service.START", "com.google.android.location.reporting.service.START"), + LOCATION_MANAGER(23, "com.google.android.location.internal.GoogleLocationManagerService.START"), + PLAY_LOG(24, "com.google.android.gms.playlog.service.START"), + DROIDGUARD(25, "com.google.android.gms.droidguard.service.START"), + LOCKBOX(26, "com.google.android.gms.lockbox.service.START"), + CAST_MIRRORING(27, "com.google.android.gms.cast_mirroring.service.START"), + NETWORK_QUALITY(28, "com.google.android.gms.mdm.services.START"), + FEEDBACK(29, "com.google.android.gms.feedback.internal.IFeedbackService"), + SEARCH_ADMINISTRATION(30), + PHOTO_AUTO_BACKUP(31, "com.google.android.gms.photos.autobackup.service.START"), + SEARCH_QUERIES(32), + SEARCH_GLOBAL(33), + UDC(35, "com.google.android.gms.udc.service.START"), + SEARCH_CORPORA(36), + DEVICE_MANAGER(37, "com.google.android.gms.mdm.services.DeviceManagerApiService.START"), + PSEUDONYMOUS_ID(38, "com.google.android.gms.pseudonymous.service.START"), + COMMON(39, "com.google.android.gms.common.service.START"), + CLEARCUT_LOGGER(40, "com.google.android.gms.clearcut.service.START"), + USAGE_REPORTING(41, "com.google.android.gms.usagereporting.service.START"), + KIDS(42, "com.google.android.gms.kids.service.START"), + DOWNLOAD(43, "com.google.android.gms.common.download.START"), + SIGN_IN(44, "com.google.android.gms.signin.service.START"), + SAFETY_NET_CLIENT(45, "com.google.android.gms.safetynet.service.START"), + GSERVICES(46, "com.google.android.gms.ads.gservice.START"), + CONTEXT_MANAGER(47, "com.google.android.contextmanager.service.ContextManagerService.START"), + AUDIO_MODEM(48, "com.google.android.gms.audiomodem.service.AudioModemService.START"), + NEARBY_SHARING(49, "com.google.android.gms.nearby.sharing.service.NearbySharingService.START"), + LIGHTWEIGHT_NETWORK_QUALITY(51, "com.google.android.gms.herrevad.services.LightweightNetworkQualityAndroidService.START"), + PHENOTYPE(51, "com.google.android.gms.phenotype.service.START"), + VOICE_UNLOCK(52, "com.google.android.gms.speech.service.START"), + NEARBY_CONNECTIONS(54, "com.google.android.gms.nearby.connection.service.START"), + FITNESS_SENSORS(55, "com.google.android.gms.fitness.SensorsApi"), + FITNESS_RECORDING(56, "com.google.android.gms.fitness.RecordingApi"), + FITNESS_HISTORY(57, "com.google.android.gms.fitness.HistoryApi"), + FITNESS_SESSIONS(58, "com.google.android.gms.fitness.SessionsApi"), + FITNESS_BLE(59, "com.google.android.gms.fitness.BleApi"), + FITNESS_CONFIG(60, "com.google.android.gms.fitness.ConfigApi"), + FITNESS_INTERNAL(61, "com.google.android.gms.fitness.InternalApi"), + NEARBY_MESSAGES(62, "com.google.android.gms.nearby.messages.service.NearbyMessagesService.START"), + HELP(63, "com.google.android.gms.googlehelp.service.GoogleHelpService.START"), + CONFIG(64, "com.google.android.gms.config.START"), + GEODATA(65, "com.google.android.gms.location.places.GeoDataApi"), + SEARCH_IME(66), + PLACE_DETECTION(67, "com.google.android.gms.location.places.PlaceDetectionApi"), + CREDENTIALS(68, "com.google.android.gms.auth.api.credentials.service.START"); + + public int SERVICE_ID; + public String ACTION; + public String[] SECONDARY_ACTIONS; + + GmsService(int serviceId, String... actions) { + this.SERVICE_ID = serviceId; + this.ACTION = actions.length > 0 ? actions[0] : null; + this.SECONDARY_ACTIONS = actions; + } + + public interface ADVERTISING_ID { + // Has no service id + String ACTION = "com.google.android.gms.ads.identifier.service.START"; + } + + public static GmsService byServiceId(int serviceId) { + for (GmsService service : values()) { + if (service.SERVICE_ID == serviceId) return service; + } + return UNKNOWN; + } + + public static String nameFromServiceId(int serviceId) { + return byServiceId(serviceId).toString(serviceId); + } + + public String toString(int serviceId) { + if (this != UNKNOWN) return toString(); + return "UNKNOWN(" + serviceId + ")"; + } +} diff --git a/play-services-api/src/main/java/org/microg/gms/common/Services.java b/play-services-api/src/main/java/org/microg/gms/common/Services.java deleted file mode 100644 index e36198ac..00000000 --- a/play-services-api/src/main/java/org/microg/gms/common/Services.java +++ /dev/null @@ -1,365 +0,0 @@ -/* - * Copyright 2013-2015 microG Project Team - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.microg.gms.common; - -import java.lang.reflect.Field; - -public final class Services { - - private Services() { - } - - public interface GAMES { - int SERVICE_ID = 1; - String ACTION = "com.google.android.gms.games.service.START"; - } - - public interface PLUS { - int SERVICE_ID = 2; - String ACTION = "com.google.android.gms.plus.service.START"; - String ACTION_INTERNAL = "com.google.android.gms.plus.service.internal.START"; - } - - public interface PANORAMA { - int SERVICE_ID = 3; - String ACTION = "com.google.android.gms.panorama.service.START"; - } - - public interface WALLET { - int SERVICE_ID = 4; - String ACTION = "com.google.android.gms.wallet.service.BIND"; - } - - public interface PEOPLE { - int SERVICE_ID = 5; - String ACTION = "com.google.android.gms.people.service.START"; - } - - public interface LOCATION { - int SERVICE_ID = 6; - } - - public interface APPSTATE { - int SERVICE_ID = 7; - String ACTION = "com.google.android.gms.appstate.service.START"; - } - - public interface ADREQUEST { - int SERVICE_ID = 8; - String ACTION = "com.google.android.gms.ads.service.START"; - } - - public interface ACCOUNT { - int SERVICE_ID = 9; - String ACTION = "com.google.android.gms.accounts.ACCOUNT_SERVICE"; - } - - public interface CAST { - int SERVICE_ID = 10; - String ACTION = "com.google.android.gms.cast.service.BIND_CAST_DEVICE_CONTROLLER_SERVICE"; - } - - public interface DRIVE { - int SERVICE_ID = 11; - String ACTION = "com.google.android.gms.drive.ApiService.START"; - } - - public interface ADDRESS { - int SERVICE_ID = 12; - String ACTION = "com.google.android.gms.identity.service.BIND"; - } - - public interface CAR { - int SERVICE_ID = 13; - String ACTION = "com.google.android.gms.car.service.START"; - } - - public interface WEARABLE { - int SERVICE_ID = 14; - String ACTION = "com.google.android.gms.wearable.BIND"; - } - - public interface AUTH { - int SERVICE_ID = 16; - String ACTION = "com.google.android.gms.auth.service.START"; - } - - public interface FITNESS { - int SERVICE_ID = 17; - String ACTION = "com.google.android.gms.fitness.GoogleFitnessService.START"; - } - - public interface REMINDERS { - int SERVICE_ID = 18; - String ACTION = "com.google.android.gms.reminders.service.START"; - } - - public interface LIGHTWEIGHT_INDEX { - int SERVICE_ID = 19; - String ACTION = "com.google.android.gms.icing.LIGHTWEIGHT_INDEX_SERVICE"; - } - - public interface DEVICE_CONNECTION { - int SERVICE_ID = 20; - String ACTION = "com.google.android.gms.deviceconnection.service.START"; - } - - public interface INDEX { - int SERVICE_ID = 21; - String ACTION = "com.google.android.gms.icing.INDEX_SERVICE"; - } - - public interface LOCATION_REPORTING { - int SERVICE_ID = 22; - String ACTION = "com.google.android.gms.location.reporting.service.START"; - String ACTION_LEGACY = "com.google.android.location.reporting.service.START"; - } - - public interface LOCATION_MANAGER { - int SERVICE_ID = 23; - String ACTION_LEGACY = "com.google.android.location.internal.GoogleLocationManagerService.START"; - } - - public interface PLAY_LOG { - int SERVICE_ID = 24; - String ACTION = "com.google.android.gms.playlog.service.START"; - } - - public interface DROIDGUARD { - int SERVICE_ID = 25; - String ACTION = "com.google.android.gms.droidguard.service.START"; - } - - public interface LOCKBOX { - int SERVICE_ID = 26; - String ACTION = "com.google.android.gms.lockbox.service.START"; - } - - public interface CAST_MIRRORING { - int SERVICE_ID = 27; - String ACTION = "com.google.android.gms.cast_mirroring.service.START"; - } - - public interface NETWORK_QUALITY { - int SERVICE_ID = 28; - String ACTION = "com.google.android.gms.mdm.services.START"; - } - - public interface FEEDBACK { - int SERVICE_ID = 29; - String ACTION = "com.google.android.gms.feedback.internal.IFeedbackService"; - } - - public interface SEARCH_ADMINISTRATION { - int SERVICE_ID = 30; - } - - public interface PHOTO_AUTO_BACKUP { - int SERVICE_ID = 31; - String ACTION = "com.google.android.gms.photos.autobackup.service.START"; - } - - public interface SEARCH_QUERIES { - int SERVICE_ID = 32; - } - - public interface SEARCH_GLOBAL { - int SERVICE_ID = 33; - } - - public interface UDC { - int SERVICE_ID = 35; - String ACTION = "com.google.android.gms.udc.service.START"; - } - - public interface SEARCH_CORPORA { - int SERVICE_ID = 36; - } - - public interface DEVICE_MANAGER { - int SERVICE_ID = 37; - String ACTION = "com.google.android.gms.mdm.services.DeviceManagerApiService.START"; - } - - public interface PSEUDONYMOUS_ID { - int SERVICE_ID = 38; - String ACTION = "com.google.android.gms.pseudonymous.service.START"; - } - - public interface COMMON { - int SERVICE_ID = 39; - String ACTION = "com.google.android.gms.common.service.START"; - } - - public interface CLEARCUT_LOGGER { - int SERVICE_ID = 40; - String ACTION = "com.google.android.gms.clearcut.service.START"; - } - - public interface USAGE_REPORTING { - int SERVICE_ID = 41; - String ACTION = "com.google.android.gms.usagereporting.service.START"; - } - - public interface KIDS { - int SERVICE_ID = 42; - String ACTION = "com.google.android.gms.kids.service.START"; - } - - public interface DOWNLOAD { - int SERVICE_ID = 43; - String ACTION = "com.google.android.gms.common.download.START"; - } - - public interface SIGN_IN { - int SERVICE_ID = 44; - String ACTION = "com.google.android.gms.signin.service.START"; - } - - public interface SAFETY_NET_CLIENT { - int SERVICE_ID = 45; - String ACTION = "com.google.android.gms.safetynet.service.START"; - } - - public interface GSERVICES { - int SERVICE_ID = 46; - String ACTION = "com.google.android.gms.ads.gservice.START"; - } - - public interface CONTEXT_MANAGER { - int SERVICE_ID = 47; - String ACTION = "com.google.android.contextmanager.service.ContextManagerService.START"; - } - - public interface AUDIO_MODEM { - int SERVICE_ID = 48; - String ACTION = "com.google.android.gms.audiomodem.service.AudioModemService.START"; - } - - public interface NEARBY_SHARING { - int SERVICE_ID = 49; - String ACTION = "com.google.android.gms.nearby.sharing.service.NearbySharingService.START"; - } - - public interface LIGHTWEIGHT_NETWORK_QUALITY { - int SERVICE_ID = 51; - String ACTION = "com.google.android.gms.herrevad.services.LightweightNetworkQualityAndroidService.START"; - } - - public interface PHENOTYPE { - int SERVICE_ID = 51; - String ACTION = "com.google.android.gms.phenotype.service.START"; - } - - public interface VOICE_UNLOCK { - int SERVICE_ID = 52; - String ACTION = "com.google.android.gms.speech.service.START"; - } - - public interface NEARBY_CONNECTIONS { - int SERVICE_ID = 54; - String ACTION = "com.google.android.gms.nearby.connection.service.START"; - } - - public interface FITNESS_SENSORS { - int SERVICE_ID = 55; - String ACTION = "com.google.android.gms.fitness.SensorsApi"; - } - - public interface FITNESS_RECORDING { - int SERVICE_ID = 56; - String ACTION = "com.google.android.gms.fitness.RecordingApi"; - } - - public interface FITNESS_HISTORY { - int SERVICE_ID = 57; - String ACTION = "com.google.android.gms.fitness.HistoryApi"; - } - - public interface FITNESS_SESSIONS { - int SERVICE_ID = 58; - String ACTION = "com.google.android.gms.fitness.SessionsApi"; - } - - /** - * BLE = Bluetooth Low Energy - */ - public interface FITNESS_BLE { - int SERVICE_ID = 59; - String ACTION = "com.google.android.gms.fitness.BleApi"; - } - - public interface FITNESS_CONFIG { - int SERVICE_ID = 60; - String ACTION = "com.google.android.gms.fitness.ConfigApi"; - } - - public interface FITNESS_INTERNAL { - int SERVICE_ID = 61; - String ACTION = "com.google.android.gms.fitness.InternalApi"; - } - - public interface NEARBY_MESSAGES { - int SERVICE_ID = 62; - String ACTION = "com.google.android.gms.nearby.messages.service.NearbyMessagesService.START"; - } - - public interface HELP { - int SERVICE_ID = 63; - String ACTION = "com.google.android.gms.googlehelp.service.GoogleHelpService.START"; - } - - public interface CONFIG { - int SERVICE_ID = 64; - String ACTION = "com.google.android.gms.config.START"; - } - - public interface GEODATA { - int SERVICE_ID = 65; - String ACTION = "com.google.android.gms.location.places.GeoDataApi"; - } - - public interface SEARCH_IME { - int SERVICE_ID = 66; - } - - public interface PLACE_DETECTION { - int SERVICE_ID = 67; - String ACTION = "com.google.android.gms.location.places.PlaceDetectionApi"; - } - - public interface CREDENTIALS { - int SERVICE_ID = 68; - String ACTION = "com.google.android.gms.auth.api.credentials.service.START"; - } - - public interface ADVERTISING_ID { - // Has no service id - String ACTION = "com.google.android.gms.ads.identifier.service.START"; - } - - public static String nameFromServiceId(int serviceId) { - for (Class cls : Services.class.getDeclaredClasses()) { - try { - Field serviceIdField = cls.getDeclaredField("SERVICE_ID"); - if ((Integer) serviceIdField.get(null) == serviceId) return cls.getSimpleName(); - } catch (Exception e) { - } - } - return "UNKNOWN(" + serviceId + ")"; - } -} From 6aa110657beec0b3e6c26d1030943e0b97683335 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Thu, 14 Apr 2016 21:36:52 +0200 Subject: [PATCH 092/170] Update Sublib --- extern/SafeParcel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/SafeParcel b/extern/SafeParcel index b062691c..5f5d9c04 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit b062691c8a3271afa2d44531590e262a71107b0b +Subproject commit 5f5d9c04beb90fa8964da019cf80a7681f428a77 From 5e58a66a1eab3c9f01de60bfd937a09225ef5648 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Mon, 18 Apr 2016 10:27:11 +0200 Subject: [PATCH 093/170] Add collapse_key extra --- .../src/main/java/org/microg/gms/gcm/GcmConstants.java | 1 + 1 file changed, 1 insertion(+) diff --git a/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java b/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java index ba75ba90..1258bd4b 100644 --- a/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java +++ b/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java @@ -31,6 +31,7 @@ public final class GcmConstants { public static final String EXTRA_APP = "app"; public static final String EXTRA_COMPONENT = "component"; + public static final String EXTRA_COLLAPSE_KEY = "collapse_key"; public static final String EXTRA_DELAY = "google.delay"; public static final String EXTRA_DELETE = "delete"; public static final String EXTRA_ERROR = "error"; From 9daa4db4f3bfe2508d36a170520b60c68df5fbe1 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Thu, 12 May 2016 01:44:48 +0200 Subject: [PATCH 094/170] GCM: Add more constants --- .../src/main/java/org/microg/gms/gcm/GcmConstants.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java b/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java index 1258bd4b..f035c1ba 100644 --- a/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java +++ b/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java @@ -37,17 +37,22 @@ public final class GcmConstants { public static final String EXTRA_ERROR = "error"; public static final String EXTRA_FROM = "from"; public static final String EXTRA_GSF_INTENT = "GSF"; - public static final String EXTRA_PENDING_INTENT = "com.google.android.gms.gcm.PENDING_INTENT"; public static final String EXTRA_MESSENGER = "google.messenger"; public static final String EXTRA_MESSAGE_TYPE = "message_type"; public static final String EXTRA_MESSAGE_ID = "google.message_id"; + public static final String EXTRA_PENDING_INTENT = "com.google.android.gms.gcm.PENDING_INTENT"; + public static final String EXTRA_RAWDATA = "rawData"; + public static final String EXTRA_RAWDATA_BASE64 = "gcm.rawData64"; public static final String EXTRA_REGISTRATION_ID = "registration_id"; public static final String EXTRA_RETRY_AFTER = "Retry-After"; public static final String EXTRA_SCHEDULER_ACTION = "scheduler_action"; + public static final String EXTRA_SCOPE = "scope"; public static final String EXTRA_SENDER = "sender"; public static final String EXTRA_SENDER_LEGACY = "legacy.sender"; public static final String EXTRA_SEND_TO = "google.to"; public static final String EXTRA_SEND_FROM = "google.from"; + public static final String EXTRA_SUBSCIPTION = "subscription"; + public static final String EXTRA_SUBTYPE = "subtype"; public static final String EXTRA_TAG = "tag"; public static final String EXTRA_TOPIC = "gcm.topic"; public static final String EXTRA_TTL = "google.ttl"; @@ -70,4 +75,7 @@ public final class GcmConstants { public static final String ERROR_SERVICE_NOT_AVAILABLE = "SERVICE_NOT_AVAILABLE"; public static final String INSTANCE_ID_SCOPE_GCM = "GCM"; + + public static final String GCMID_INSTANCE_ID = "google.com/iid"; + public static final String GCMID_REFRESH = "gcm.googleapis.com/refresh"; } From 5f2083f2279f698368cc2f6d6002d9249c43fe04 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Thu, 2 Jun 2016 23:10:06 +0200 Subject: [PATCH 095/170] Start adding reminders API --- .../android/gms/reminders/AccountState.aidl | 3 ++ .../CreateReminderOptionsInternal.aidl | 3 ++ .../gms/reminders/LoadRemindersOptions.aidl | 3 ++ .../gms/reminders/ReindexDueDatesOptions.aidl | 3 ++ .../reminders/UpdateRecurrenceOptions.aidl | 3 ++ .../internal/IRemindersCallbacks.aidl | 17 +++++++++ .../internal/IRemindersListener.aidl | 5 +++ .../reminders/internal/IRemindersService.aidl | 37 +++++++++++++++++++ .../model/CustomizedSnoozePresetEntity.aidl | 3 ++ .../gms/reminders/model/TaskEntity.aidl | 3 ++ .../gms/reminders/model/TaskIdEntity.aidl | 3 ++ .../android/gms/reminders/AccountState.java | 23 ++++++++++++ .../CreateReminderOptionsInternal.java | 23 ++++++++++++ .../gms/reminders/LoadRemindersOptions.java | 23 ++++++++++++ .../gms/reminders/ReindexDueDatesOptions.java | 23 ++++++++++++ .../reminders/UpdateRecurrenceOptions.java | 23 ++++++++++++ .../model/CustomizedSnoozePresetEntity.java | 23 ++++++++++++ .../gms/reminders/model/TaskEntity.java | 23 ++++++++++++ .../gms/reminders/model/TaskIdEntity.java | 23 ++++++++++++ .../java/org/microg/gms/common/Constants.java | 2 +- 20 files changed, 268 insertions(+), 1 deletion(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/reminders/AccountState.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/reminders/CreateReminderOptionsInternal.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/reminders/LoadRemindersOptions.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/reminders/ReindexDueDatesOptions.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/reminders/UpdateRecurrenceOptions.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersCallbacks.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersListener.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersService.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/reminders/model/CustomizedSnoozePresetEntity.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/reminders/model/TaskEntity.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/reminders/model/TaskIdEntity.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/reminders/AccountState.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/reminders/CreateReminderOptionsInternal.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/reminders/LoadRemindersOptions.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/reminders/ReindexDueDatesOptions.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/reminders/UpdateRecurrenceOptions.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/reminders/model/CustomizedSnoozePresetEntity.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/reminders/model/TaskEntity.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/reminders/model/TaskIdEntity.java diff --git a/play-services-api/src/main/aidl/com/google/android/gms/reminders/AccountState.aidl b/play-services-api/src/main/aidl/com/google/android/gms/reminders/AccountState.aidl new file mode 100644 index 00000000..24ae0ffd --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/reminders/AccountState.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.reminders; + +parcelable AccountState; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/reminders/CreateReminderOptionsInternal.aidl b/play-services-api/src/main/aidl/com/google/android/gms/reminders/CreateReminderOptionsInternal.aidl new file mode 100644 index 00000000..142ddedf --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/reminders/CreateReminderOptionsInternal.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.reminders; + +parcelable CreateReminderOptionsInternal; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/reminders/LoadRemindersOptions.aidl b/play-services-api/src/main/aidl/com/google/android/gms/reminders/LoadRemindersOptions.aidl new file mode 100644 index 00000000..ff418443 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/reminders/LoadRemindersOptions.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.reminders; + +parcelable LoadRemindersOptions; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/reminders/ReindexDueDatesOptions.aidl b/play-services-api/src/main/aidl/com/google/android/gms/reminders/ReindexDueDatesOptions.aidl new file mode 100644 index 00000000..55ac1beb --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/reminders/ReindexDueDatesOptions.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.reminders; + +parcelable ReindexDueDatesOptions; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/reminders/UpdateRecurrenceOptions.aidl b/play-services-api/src/main/aidl/com/google/android/gms/reminders/UpdateRecurrenceOptions.aidl new file mode 100644 index 00000000..79f91dec --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/reminders/UpdateRecurrenceOptions.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.reminders; + +parcelable UpdateRecurrenceOptions; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersCallbacks.aidl new file mode 100644 index 00000000..5e5506ee --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersCallbacks.aidl @@ -0,0 +1,17 @@ +package com.google.android.gms.reminders.internal; + +import com.google.android.gms.common.api.Status; +import com.google.android.gms.common.data.DataHolder; + +import com.google.android.gms.reminders.AccountState; + +interface IRemindersCallbacks { + void onDataHolder(in DataHolder data, in Status status) = 0; + void onStatus(in Status status) = 1; + void onNoStatus() = 2; + void onDataHolderNoStatus(in DataHolder data, in Status status) = 3; + void onBool(boolean b, in Status status) = 4; + void onString(in String s, in Status status) = 5; + void onAccountState(in AccountState accountState, in Status status) = 6; + void onAsyncDataHolder(in DataHolder data) = 7; +} \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersListener.aidl new file mode 100644 index 00000000..2added91 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersListener.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.reminders.internal; + +interface IRemindersListener { + +} \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersService.aidl new file mode 100644 index 00000000..f9986484 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersService.aidl @@ -0,0 +1,37 @@ +package com.google.android.gms.reminders.internal; + +import com.google.android.gms.reminders.internal.IRemindersCallbacks; + +import com.google.android.gms.reminders.AccountState; +import com.google.android.gms.reminders.CreateReminderOptionsInternal; +import com.google.android.gms.reminders.LoadRemindersOptions; +import com.google.android.gms.reminders.ReindexDueDatesOptions; +import com.google.android.gms.reminders.UpdateRecurrenceOptions; +import com.google.android.gms.reminders.model.CustomizedSnoozePresetEntity; +import com.google.android.gms.reminders.model.TaskEntity; +import com.google.android.gms.reminders.model.TaskIdEntity; + +interface IRemindersService { + void loadReminders(IRemindersCallbacks callbacks, in LoadRemindersOptions options) = 0; + void addListener(IRemindersCallbacks callbacks) = 1; + void createReminder(IRemindersCallbacks callbacks, in TaskEntity task) = 2; + void updateReminder(IRemindersCallbacks callbacks, in TaskEntity task) = 3; + void deleteReminder(IRemindersCallbacks callbacks, in TaskIdEntity taskId) = 4; + void bumpReminder(IRemindersCallbacks callbacks, in TaskIdEntity taskId) = 5; + void hasUpcomingReminders(IRemindersCallbacks callbacks) = 6; + void createRecurrence(IRemindersCallbacks callbacks, in TaskEntity task) = 7; + void updateRecurrence(IRemindersCallbacks callbacks, String s1, in TaskEntity task, in UpdateRecurrenceOptions options) = 8; + void deleteRecurrence(IRemindersCallbacks callbacks, String s1, in UpdateRecurrenceOptions options) = 9; + void changeRecurrence(IRemindersCallbacks callbacks, String s1, in TaskEntity task, in UpdateRecurrenceOptions options) = 10; + void makeTaskRecurring(IRemindersCallbacks callbacks, in TaskEntity task) = 11; + void makeRecurrenceSingleInstance(IRemindersCallbacks callbacks, String s1, in TaskEntity task, in UpdateRecurrenceOptions options) = 12; + void clearListeners() = 13; + void batchUpdateReminders(IRemindersCallbacks callbacks, in List tasks) = 14; + void createReminderWithOptions(IRemindersCallbacks callbacks, in TaskEntity task, in CreateReminderOptionsInternal options) = 15; + void getCustomizedSnoozePreset(IRemindersCallbacks callbacks) = 16; + void setCustomizedSnoozePreset(IRemindersCallbacks callbacks, in CustomizedSnoozePresetEntity preset) = 17; + void setAccountState(IRemindersCallbacks callbacks, in AccountState accountState) = 18; + void getAccountState(IRemindersCallbacks callbacks) = 19; + void checkReindexDueDatesNeeded(IRemindersCallbacks callbacks, in ReindexDueDatesOptions options) = 20; + void reindexDueDates(IRemindersCallbacks callbacks, in ReindexDueDatesOptions options) = 21; +} \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/reminders/model/CustomizedSnoozePresetEntity.aidl b/play-services-api/src/main/aidl/com/google/android/gms/reminders/model/CustomizedSnoozePresetEntity.aidl new file mode 100644 index 00000000..bbb90836 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/reminders/model/CustomizedSnoozePresetEntity.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.reminders.model; + +parcelable CustomizedSnoozePresetEntity; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/reminders/model/TaskEntity.aidl b/play-services-api/src/main/aidl/com/google/android/gms/reminders/model/TaskEntity.aidl new file mode 100644 index 00000000..9a3883c2 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/reminders/model/TaskEntity.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.reminders.model; + +parcelable TaskEntity; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/reminders/model/TaskIdEntity.aidl b/play-services-api/src/main/aidl/com/google/android/gms/reminders/model/TaskIdEntity.aidl new file mode 100644 index 00000000..a4c41481 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/reminders/model/TaskIdEntity.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.reminders.model; + +parcelable TaskIdEntity; \ No newline at end of file diff --git a/play-services-api/src/main/java/com/google/android/gms/reminders/AccountState.java b/play-services-api/src/main/java/com/google/android/gms/reminders/AccountState.java new file mode 100644 index 00000000..ee6ae6fb --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/reminders/AccountState.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.reminders; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class AccountState extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(AccountState.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/reminders/CreateReminderOptionsInternal.java b/play-services-api/src/main/java/com/google/android/gms/reminders/CreateReminderOptionsInternal.java new file mode 100644 index 00000000..c4e9c62f --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/reminders/CreateReminderOptionsInternal.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.reminders; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class CreateReminderOptionsInternal extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(CreateReminderOptionsInternal.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/reminders/LoadRemindersOptions.java b/play-services-api/src/main/java/com/google/android/gms/reminders/LoadRemindersOptions.java new file mode 100644 index 00000000..cf546d01 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/reminders/LoadRemindersOptions.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.reminders; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class LoadRemindersOptions extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(LoadRemindersOptions.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/reminders/ReindexDueDatesOptions.java b/play-services-api/src/main/java/com/google/android/gms/reminders/ReindexDueDatesOptions.java new file mode 100644 index 00000000..c24a11ac --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/reminders/ReindexDueDatesOptions.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.reminders; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class ReindexDueDatesOptions extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(ReindexDueDatesOptions.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/reminders/UpdateRecurrenceOptions.java b/play-services-api/src/main/java/com/google/android/gms/reminders/UpdateRecurrenceOptions.java new file mode 100644 index 00000000..121aa221 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/reminders/UpdateRecurrenceOptions.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.reminders; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class UpdateRecurrenceOptions extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(UpdateRecurrenceOptions.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/reminders/model/CustomizedSnoozePresetEntity.java b/play-services-api/src/main/java/com/google/android/gms/reminders/model/CustomizedSnoozePresetEntity.java new file mode 100644 index 00000000..084ca131 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/reminders/model/CustomizedSnoozePresetEntity.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.reminders.model; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class CustomizedSnoozePresetEntity extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(CustomizedSnoozePresetEntity.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/reminders/model/TaskEntity.java b/play-services-api/src/main/java/com/google/android/gms/reminders/model/TaskEntity.java new file mode 100644 index 00000000..f4d4019d --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/reminders/model/TaskEntity.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.reminders.model; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class TaskEntity extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(TaskEntity.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/reminders/model/TaskIdEntity.java b/play-services-api/src/main/java/com/google/android/gms/reminders/model/TaskIdEntity.java new file mode 100644 index 00000000..b8154ad7 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/reminders/model/TaskIdEntity.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.reminders.model; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class TaskIdEntity extends AutoSafeParcelable { + public static Creator CREATOR = new AutoCreator(TaskIdEntity.class); +} diff --git a/play-services-api/src/main/java/org/microg/gms/common/Constants.java b/play-services-api/src/main/java/org/microg/gms/common/Constants.java index 4fb16e83..1766e45b 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Constants.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Constants.java @@ -21,7 +21,7 @@ public class Constants { * This is the highest version that was looked at during development. * Does not necessarily mean anything. */ - public static final int MAX_REFERENCE_VERSION = 8489000; + public static final int MAX_REFERENCE_VERSION = 9083000; public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; public static final String GSF_PACKAGE_NAME = "com.google.android.gsf"; public static final String GMS_PACKAGE_SIGNATURE_SHA1 = "38918a453d07199354f8b19af05ec6562ced5788"; From 9c6993eca6574cd85f48d673f705d6812b5b55aa Mon Sep 17 00:00:00 2001 From: Marvin W Date: Thu, 2 Jun 2016 23:10:21 +0200 Subject: [PATCH 096/170] Update build tools --- play-services-api/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index b1477716..9312ef21 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -19,7 +19,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.0.0' + classpath 'com.android.tools.build:gradle:2.1.0' } } From a5afc23373ab1890f5df2ecebce96e9db74c0829 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Thu, 2 Jun 2016 23:10:49 +0200 Subject: [PATCH 097/170] Update sublib --- extern/SafeParcel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/SafeParcel b/extern/SafeParcel index 5f5d9c04..6d20e7a0 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit 5f5d9c04beb90fa8964da019cf80a7681f428a77 +Subproject commit 6d20e7a08bb1e36edb9a4dea29d7096374ac797f From 74f959ae922da5bbff1a96eef3dd4eb71699b629 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Fri, 8 Jul 2016 19:09:03 +0200 Subject: [PATCH 098/170] Update build tools, sublib, version code and add LICENSE --- .travis.yml | 2 +- LICENSE | 177 ++++++++++++++++++ extern/SafeParcel | 2 +- play-services-api/build.gradle | 4 +- .../java/org/microg/gms/common/Constants.java | 2 +- 5 files changed, 182 insertions(+), 5 deletions(-) create mode 100644 LICENSE diff --git a/.travis.yml b/.travis.yml index 5b09d886..a1c9090d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ script: android: components: - tools - - build-tools-23.0.2 + - build-tools-23.0.3 - android-23 - extra-android-m2repository diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..f433b1a5 --- /dev/null +++ b/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/extern/SafeParcel b/extern/SafeParcel index 6d20e7a0..6e2e63bd 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit 6d20e7a08bb1e36edb9a4dea29d7096374ac797f +Subproject commit 6e2e63bdf0016b094b41f66b15accb4915cf7561 diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index 9312ef21..b0b8ad9d 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -19,7 +19,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.0' + classpath 'com.android.tools.build:gradle:2.1.2' } } @@ -39,7 +39,7 @@ version = getMyVersionName() android { compileSdkVersion 23 - buildToolsVersion "23.0.2" + buildToolsVersion "23.0.3" defaultConfig { versionName getMyVersionName() diff --git a/play-services-api/src/main/java/org/microg/gms/common/Constants.java b/play-services-api/src/main/java/org/microg/gms/common/Constants.java index 1766e45b..049a2c62 100644 --- a/play-services-api/src/main/java/org/microg/gms/common/Constants.java +++ b/play-services-api/src/main/java/org/microg/gms/common/Constants.java @@ -21,7 +21,7 @@ public class Constants { * This is the highest version that was looked at during development. * Does not necessarily mean anything. */ - public static final int MAX_REFERENCE_VERSION = 9083000; + public static final int MAX_REFERENCE_VERSION = 9256000; public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; public static final String GSF_PACKAGE_NAME = "com.google.android.gsf"; public static final String GMS_PACKAGE_SIGNATURE_SHA1 = "38918a453d07199354f8b19af05ec6562ced5788"; From cfd7c4e70e8b70a2decc303f1f6b291606211c17 Mon Sep 17 00:00:00 2001 From: Thibaut Girka Date: Thu, 7 Jul 2016 18:50:14 +0200 Subject: [PATCH 099/170] Add FusedLocationProvider stuff required for newer Google client libs --- .../internal/FusedLocationProviderResult.aidl | 3 ++ .../IFusedLocationProviderCallback.aidl | 7 ++++ .../internal/FusedLocationProviderResult.java | 40 +++++++++++++++++++ .../internal/LocationRequestUpdateData.java | 5 +++ 4 files changed, 55 insertions(+) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/internal/FusedLocationProviderResult.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/internal/IFusedLocationProviderCallback.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/location/internal/FusedLocationProviderResult.java diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/FusedLocationProviderResult.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/FusedLocationProviderResult.aidl new file mode 100644 index 00000000..37a17787 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/FusedLocationProviderResult.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.internal; + +parcelable FusedLocationProviderResult; diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IFusedLocationProviderCallback.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IFusedLocationProviderCallback.aidl new file mode 100644 index 00000000..c0560fe5 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IFusedLocationProviderCallback.aidl @@ -0,0 +1,7 @@ +package com.google.android.gms.location.internal; + +import com.google.android.gms.location.internal.FusedLocationProviderResult; + +interface IFusedLocationProviderCallback { + void onFusedLocationProviderResult(in FusedLocationProviderResult result) = 0; +} diff --git a/play-services-api/src/main/java/com/google/android/gms/location/internal/FusedLocationProviderResult.java b/play-services-api/src/main/java/com/google/android/gms/location/internal/FusedLocationProviderResult.java new file mode 100644 index 00000000..2e085fbe --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/location/internal/FusedLocationProviderResult.java @@ -0,0 +1,40 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location.internal; + +import com.google.android.gms.common.api.Status; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class FusedLocationProviderResult extends AutoSafeParcelable { + public static final FusedLocationProviderResult SUCCESS = FusedLocationProviderResult.create(Status.SUCCESS); + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + public Status status; + + public static FusedLocationProviderResult create(Status status) { + FusedLocationProviderResult result = new FusedLocationProviderResult(); + result.status = status; + return result; + } + + public static final Creator CREATOR = new AutoCreator(FusedLocationProviderResult.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestUpdateData.java b/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestUpdateData.java index 748f2f13..9960db4c 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestUpdateData.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestUpdateData.java @@ -20,6 +20,7 @@ import android.app.PendingIntent; import com.google.android.gms.location.ILocationCallback; import com.google.android.gms.location.ILocationListener; +import com.google.android.gms.location.internal.IFusedLocationProviderCallback; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; @@ -47,6 +48,9 @@ public class LocationRequestUpdateData extends AutoSafeParcelable { @SafeParceled(5) public ILocationCallback callback; + @SafeParceled(6) + public IFusedLocationProviderCallback fusedLocationProviderCallback; + @Override public String toString() { return "LocationRequestUpdateData{" + @@ -55,6 +59,7 @@ public class LocationRequestUpdateData extends AutoSafeParcelable { ", listener=" + listener + ", pendingIntent=" + pendingIntent + ", callback=" + callback + + ", fusedLocationProviderCallback=" + fusedLocationProviderCallback + '}'; } From 4991c5c05b98e426614de5d3f23a5e39d6384aa7 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 31 Jul 2016 12:01:48 +0200 Subject: [PATCH 100/170] Implement DataHolder compatible with old public API --- .../android/gms/common/data/DataHolder.java | 455 ++++++++++++++++-- 1 file changed, 426 insertions(+), 29 deletions(-) diff --git a/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java b/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java index bd1efdcb..51a4a602 100644 --- a/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java +++ b/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java @@ -17,39 +17,57 @@ package com.google.android.gms.common.data; import android.annotation.SuppressLint; +import android.content.ContentValues; import android.database.AbstractWindowedCursor; +import android.database.CharArrayBuffer; import android.database.Cursor; import android.database.CursorWindow; +import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.os.Parcel; +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; +import java.io.Closeable; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * Class for accessing collections of data, organized into columns. This provides the backing * support for DataBuffer. Much like a cursor, the holder supports the notion of a current * position, and has methods for extracting various types of data from named columns. */ -public class DataHolder extends AutoSafeParcelable { +@PublicApi(until = "1") +public class DataHolder extends AutoSafeParcelable implements Closeable { @SafeParceled(1000) private int versionCode = 1; @SafeParceled(1) - public final String[] columns; + private final String[] columns; @SafeParceled(2) - public final CursorWindow[] windows; + private final CursorWindow[] windows; @SafeParceled(3) - public final int statusCode; + private final int statusCode; @SafeParceled(4) - public final Bundle metadata; + private final Bundle metadata; + + private boolean closed = false; + private Map columnIndizes; + + protected static final int FIELD_TYPE_NULL = 0; + protected static final int FIELD_TYPE_INTEGER = 1; + protected static final int FIELD_TYPE_FLOAT = 2; + protected static final int FIELD_TYPE_STRING = 3; + protected static final int FIELD_TYPE_BLOB = 4; private DataHolder() { columns = null; @@ -58,18 +76,81 @@ public class DataHolder extends AutoSafeParcelable { metadata = null; } + /** + * Creates a data holder with the specified data. + * + * @param columns The column names corresponding to the data in the given windows. + * @param windows The {@link CursorWindow} instances holding the data. + * @param statusCode The status code of this {@link DataHolder}. + * @param metadata The metadata associated with this {@link DataHolder} (may be null). + */ public DataHolder(String[] columns, CursorWindow[] windows, int statusCode, Bundle metadata) { this.columns = columns; this.windows = windows; this.statusCode = statusCode; this.metadata = metadata; + validateContents(); } - protected static final int FIELD_TYPE_BLOB = 4; - protected static final int FIELD_TYPE_FLOAT = 2; - protected static final int FIELD_TYPE_INTEGER = 1; - protected static final int FIELD_TYPE_NULL = 0; - protected static final int FIELD_TYPE_STRING = 3; + /** + * Creates a data holder wrapping the provided cursor, with provided status code and metadata. + * + * @param cursor The cursor containing the data. + * @param statusCode The status code of this {@link DataHolder}. + * @param metadata The metadata associated with this {@link DataHolder} (may be null). + */ + public DataHolder(AbstractWindowedCursor cursor, int statusCode, Bundle metadata) { + this(cursor.getColumnNames(), createCursorWindows(cursor), statusCode, metadata); + } + + /** + * Creates a data holder wrapping the provided cursor, with provided status code and metadata. + * + * @param cursor The cursor containing the data. + * @param statusCode The status code of this {@link DataHolder}. + * @param metadata The metadata associated with this {@link DataHolder} (may be null). + */ + public DataHolder(Cursor cursor, int statusCode, Bundle metadata) { + this(cursor.getColumnNames(), createCursorWindows(cursor), statusCode, metadata); + } + + /** + * Get a {@link DataHolder.Builder} to create a new {@link DataHolder} manually. + * + * @param columns The array of column names that the object supports. + * @param uniqueColumn The non-null column name that must contain unique values. New rows added to the builder with the same value in this column will replace any older rows. + * @return {@link DataHolder.Builder} object to work with. + */ + public static Builder builder(String[] columns, String uniqueColumn) { + return new Builder(columns, uniqueColumn); + } + + /** + * Get a {@link DataHolder.Builder} to create a new {@link DataHolder} manually. + * + * @param columns The array of column names that the object supports. + * @return {@link DataHolder.Builder} object to work with. + */ + public static Builder builder(String[] columns) { + return builder(columns, null); + } + + /** + * @param statusCode The status code of this {@link DataHolder}. + * @param metadata The metadata associated with this {@link DataHolder} (may be null). + * @return An empty {@link DataHolder} object with the given status and metadata. + */ + public static DataHolder empty(int statusCode, Bundle metadata) { + return new DataHolder(new String[0], new CursorWindow[0], statusCode, metadata); + } + + /** + * @param statusCode The status code of this {@link DataHolder}. + * @return An empty {@link DataHolder} object with the given status and null metadata. + */ + public static DataHolder empty(int statusCode) { + return empty(statusCode, null); + } @SuppressWarnings("deprecation") @SuppressLint("NewApi") @@ -98,46 +179,166 @@ public class DataHolder extends AutoSafeParcelable { throw new RuntimeException("Unsupported cursor on this platform!"); } - public static DataHolder fromCursor(Cursor cursor, int statusCode, Bundle metadata) { + /** + * Closes the data holder, releasing all of its resources and making it completely invalid. + */ + @Override + public void close() { + synchronized (this) { + if (!closed) { + closed = true; + for (CursorWindow window : windows) { + window.close(); + } + } + } + } + + /** + * Copies the String content in the given column at the provided position into a {@link CharArrayBuffer}. + * This will throw an {@link IllegalArgumentException} if the column does not exist, the + * position is invalid, or the data holder has been closed. + * + * @param column The column to retrieve. + * @param row The row to retrieve the data from. + * @param windowIndex Index of the cursor window to extract the data from. + * @param dataOut The {@link CharArrayBuffer} to copy into. + */ + public void copyToBuffer(String column, int row, int windowIndex, CharArrayBuffer dataOut) { + throw new RuntimeException("Not yet available"); + } + + @SuppressWarnings("deprecation") + private static CursorWindow[] createCursorWindows(Builder builder) { + if (builder.columns.length == 0) return new CursorWindow[0]; List windows = new ArrayList(); - CursorWindow cursorWindow = null; - int row = 0; + try { + CursorWindow current = null; + for (int rowIndex = 0; rowIndex < builder.rows.size(); rowIndex++) { + Map row = builder.rows.get(rowIndex); + if (current == null || !current.allocRow()) { + current = new CursorWindow(false); + current.setStartPosition(rowIndex); + current.setNumColumns(builder.columns.length); + windows.add(current); + if (!current.allocRow()) { + windows.remove(current); + return windows.toArray(new CursorWindow[windows.size()]); + } + } + for (int columnIndex = 0; columnIndex < builder.columns.length; columnIndex++) { + Object val = row.get(builder.columns[columnIndex]); + if (val == null) { + current.putNull(rowIndex, columnIndex); + } else if (val instanceof String) { + current.putString((String) val, rowIndex, columnIndex); + } else if (val instanceof Long) { + current.putLong((Long) val, rowIndex, columnIndex); + } else if (val instanceof Integer) { + current.putLong((Integer) val, rowIndex, columnIndex); + } else if (val instanceof Boolean) { + if ((Boolean) val) + current.putLong(1, rowIndex, columnIndex); + } else if (val instanceof byte[]) { + current.putBlob((byte[]) val, rowIndex, columnIndex); + } else if (val instanceof Double) { + current.putDouble((Double) val, rowIndex, columnIndex); + } else if (val instanceof Float) { + current.putDouble((Float) val, rowIndex, columnIndex); + } else { + throw new IllegalArgumentException("Unsupported object for column " + columnIndex + ": " + val); + } + } + } + } catch (RuntimeException e) { + for (CursorWindow window : windows) { + window.close(); + } + throw e; + } + return windows.toArray(new CursorWindow[windows.size()]); + } + + private static CursorWindow[] createCursorWindows(Cursor cursor) { + if (cursor.getColumnCount() == 0) return new CursorWindow[0]; + List windows = new ArrayList(); + CursorWindow current = null; + int rowIndex = 0; while (cursor.moveToNext()) { - if (cursorWindow == null || !cursorWindow.allocRow()) { - cursorWindow = new CursorWindow(false); - cursorWindow.setNumColumns(cursor.getColumnCount()); - windows.add(cursorWindow); - if (!cursorWindow.allocRow()) - throw new RuntimeException("Impossible to store Cursor in CursorWindows"); - row = 0; + if (current == null || !current.allocRow()) { + current = new CursorWindow(false); + current.setStartPosition(rowIndex); + current.setNumColumns(cursor.getColumnCount()); + windows.add(current); + if (!current.allocRow()) { + windows.remove(current); + return windows.toArray(new CursorWindow[windows.size()]); + } } for (int i = 0; i < cursor.getColumnCount(); i++) { switch (getCursorType(cursor, i)) { case FIELD_TYPE_NULL: - cursorWindow.putNull(row, i); + current.putNull(rowIndex, i); break; case FIELD_TYPE_BLOB: - cursorWindow.putBlob(cursor.getBlob(i), row, i); + current.putBlob(cursor.getBlob(i), rowIndex, i); break; case FIELD_TYPE_FLOAT: - cursorWindow.putDouble(cursor.getDouble(i), row, i); + current.putDouble(cursor.getDouble(i), rowIndex, i); break; case FIELD_TYPE_INTEGER: - cursorWindow.putLong(cursor.getLong(i), row, i); + current.putLong(cursor.getLong(i), rowIndex, i); break; case FIELD_TYPE_STRING: - cursorWindow.putString(cursor.getString(i), row, i); + current.putString(cursor.getString(i), rowIndex, i); break; } } - row++; + rowIndex++; } - DataHolder dataHolder = new DataHolder(cursor.getColumnNames(), windows.toArray(new CursorWindow[windows.size()]), statusCode, metadata); cursor.close(); - return dataHolder; + return windows.toArray(new CursorWindow[windows.size()]); } + @PublicApi(exclude = true) + @Deprecated + public static DataHolder fromCursor(Cursor cursor, int statusCode, Bundle metadata) { + return new DataHolder(cursor, statusCode, metadata); + } + /** + * Retrieves the boolean value for a given column at the provided position. + * This will throw an {@link IllegalArgumentException} if the column does not exist, the + * position is invalid, or the data holder has been closed. + * + * @param column The column to retrieve. + * @param row The row to retrieve the data from. + * @param windowIndex Index of the cursor window to extract the data from. + * @return The boolean value in that column. + */ + public boolean getBoolean(String column, int row, int windowIndex) { + return windows[windowIndex].getLong(row, columnIndizes.get(column)) == 1; + } + + /** + * Retrieves the byte array value for a given column at the provided position. + * This will throw an {@link IllegalArgumentException} if the column does not exist, the + * position is invalid, or the data holder has been closed. + * + * @param column The column to retrieve. + * @param row The row to retrieve the data from. + * @param windowIndex Index of the cursor window to extract the data from. + * @return The byte array value in that column. + */ + public byte[] getByteArray(String column, int row, int windowIndex) { + return windows[windowIndex].getBlob(row, columnIndizes.get(column)); + } + + /** + * Gets the number of rows in the data holder. + * + * @return the number of rows in the data holder. + */ public int getCount() { int c = 0; if (windows != null) { @@ -148,6 +349,88 @@ public class DataHolder extends AutoSafeParcelable { return c; } + /** + * Retrieves the integer value for a given column at the provided position. + * This will throw an {@link IllegalArgumentException} if the column does not exist, the + * position is invalid, or the data holder has been closed. + * + * @param column The column to retrieve. + * @param row The row to retrieve the data from. + * @param windowIndex Index of the cursor window to extract the data from. + * @return The integer value in that column. + */ + public int getInteger(String column, int row, int windowIndex) { + return windows[windowIndex].getInt(row, columnIndizes.get(column)); + } + + /** + * Retrieves the long value for a given column at the provided position. + * This will throw an {@link IllegalArgumentException} if the column does not exist, the + * position is invalid, or the data holder has been closed. + * + * @param column The column to retrieve. + * @param row The row to retrieve the data from. + * @param windowIndex Index of the cursor window to extract the data from. + * @return The long value in that column. + */ + public long getLong(String column, int row, int windowIndex) { + return windows[windowIndex].getLong(row, columnIndizes.get(column)); + } + + public int getStatusCode() { + return statusCode; + } + + /** + * Retrieves the string value for a given column at the provided position. + * This will throw an {@link IllegalArgumentException} if the column does not exist, the + * position is invalid, or the data holder has been closed. + * + * @param column The column to retrieve. + * @param row The row to retrieve the data from. + * @param windowIndex Index of the cursor window to extract the data from. + * @return The string value in that column. + */ + public String getString(String column, int row, int windowIndex) { + return windows[windowIndex].getString(row, columnIndizes.get(column)); + } + + /** + * Returns whether the given column at the provided position contains null. + * This will throw an {@link IllegalArgumentException} if the column does not exist, the + * position is invalid, or the data holder has been closed. + * + * @param column The column to retrieve. + * @param row The row to retrieve the data from. + * @param windowIndex Index of the cursor window to extract the data from. + * @return Whether the column value is null at this position. + */ + public boolean isNull(String column, int row, int windowIndex) { + return windows[windowIndex].isNull(row, columnIndizes.get(column)); + } + + public boolean isClosed() { + synchronized (this) { + return closed; + } + } + + /** + * Retrieves the column data at the provided position as a URI if possible, checking for null values. + * This will throw an {@link IllegalArgumentException} if the column does not exist, the + * position is invalid, or the data holder has been closed. + * + * @param column The column to retrieve. + * @param row The row to retrieve the data from. + * @param windowIndex Index of the cursor window to extract the data from. + * @return The column data as a URI, or null if not present. + */ + public Uri parseUri(String column, int row, int windowIndex) { + String string = getString(column, row, windowIndex); + if (string != null) return Uri.parse(string); + return null; + } + @Override public String toString() { return "DataHolder{" + @@ -158,5 +441,119 @@ public class DataHolder extends AutoSafeParcelable { '}'; } - public static final Creator CREATOR = new AutoCreator(DataHolder.class); + public void validateContents() { + columnIndizes = new HashMap(); + for (int i = 0; i < columns.length; i++) { + columnIndizes.put(columns[i], i); + } + } + + /** + * Helper class to build {@link DataHolder} instances containing arbitrary data. + *

+ * Note that the constructor is private; use DataHolder.builder() to create instances of this class. + */ + public static class Builder { + private final String[] columns; + private final ArrayList> rows; + private final String uniqueColumn; + private final Map uniqueIndizes; + + private Builder(String[] columns, String uniqueColumn) { + this.columns = columns; + this.rows = new ArrayList>(); + this.uniqueColumn = uniqueColumn; + this.uniqueIndizes = new HashMap(); + } + + /** + * Instantiate an {@link DataHolder} from this {@link DataHolder.Builder} with the given status code and metadata. + * + * @param statusCode The status code of this {@link DataHolder}. + * @param metadata The metadata associated with this {@link DataHolder} (may be null). + * @return {@link DataHolder} representation of this object. + */ + public DataHolder build(int statusCode, Bundle metadata) { + return new DataHolder(columns, createCursorWindows(this), statusCode, metadata); + } + + /** + * Instantiate an {@link DataHolder} from this {@link DataHolder.Builder} with the given status code and null metadata. + * + * @param statusCode The status code of this {@link DataHolder}. + * @return {@link DataHolder} representation of this object. + */ + public DataHolder build(int statusCode) { + return build(statusCode, null); + } + + /** + * @return The number of rows that the resulting DataHolder will contain. + */ + public int getCount() { + return rows.size(); + } + + /** + * Sort the rows in this builder based on the standard data type comparisons for the value in the provided column. + * Calling this multiple times with the same column will not change the sort order of the builder. + * Note that any data which is added after this call will not be sorted. + * + * @param sortColumn The column to sort the rows in this builder by. + * @return {@link DataHolder.Builder} to continue construction. + */ + public Builder sort(String sortColumn) { + throw new RuntimeException("Not yet implemented"); + } + + /** + * Add a new row of data to the {@link DataHolder} this {@link DataHolder.Builder} will create. Note that the data must contain an entry for all columns + *

+ * Currently the only supported value types that are supported are String, Long, and Boolean (Integer is also accepted and will be stored as a Long). + * + * @param values {@link ContentValues} containing row data. + * @return {@link DataHolder.Builder} to continue construction. + */ + public Builder withRow(ContentValues values) { + HashMap row = new HashMap(); + for (Map.Entry entry : values.valueSet()) { + row.put(entry.getKey(), entry.getValue()); + } + return withRow(row); + } + + /** + * Add a new row of data to the {@link DataHolder} this {@link DataHolder.Builder} will create. Note that the data must contain an entry for all columns + *

+ * Currently the only supported value types that are supported are String, Long, and Boolean (Integer is also accepted and will be stored as a Long). + * + * @param row Map containing row data. + * @return {@link DataHolder.Builder} to continue construction. + */ + public Builder withRow(HashMap row) { + if (uniqueColumn != null) { + Object val = row.get(uniqueColumn); + if (val != null) { + Integer old = uniqueIndizes.get(val); + if (old != null) { + rows.set(old, row); + return this; + } else { + uniqueIndizes.put(val, rows.size()); + } + } + } + rows.add(row); + return this; + } + } + + public static final Creator CREATOR = new AutoCreator(DataHolder.class) { + @Override + public DataHolder createFromParcel(Parcel parcel) { + DataHolder res = super.createFromParcel(parcel); + res.validateContents(); + return res; + } + }; } From d3efde305bd8a18b8024e640e549e8773c120ecb Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 31 Jul 2016 12:02:50 +0200 Subject: [PATCH 101/170] Add method to send rpc messages for wearables --- .../google/android/gms/wearable/internal/IWearableService.aidl | 1 + 1 file changed, 1 insertion(+) diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl index 73cb02e7..854ab06d 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl @@ -12,6 +12,7 @@ interface IWearableService { void putData(IWearableCallbacks callbacks, in PutDataRequest request) = 5; void getDataItem(IWearableCallbacks callbacks, in Uri uri) = 6; void getDataItems(IWearableCallbacks callbacks) = 7; + void sendMessage(IWearableCallbacks callbacks, String targetNodeId, String path, in byte[] data) = 11; void getLocalNode(IWearableCallbacks callbacks) = 13; void getConnectedNodes(IWearableCallbacks callbacks) = 14; void addListener(IWearableCallbacks callbacks, in AddListenerRequest request) = 15; From 707b9de6cd6629c3fa2d697628a6d84b99345dc3 Mon Sep 17 00:00:00 2001 From: Thibaut Girka Date: Sun, 31 Jul 2016 08:51:05 +0200 Subject: [PATCH 102/170] Add initial support for LocationAvailability --- .../IGoogleLocationManagerService.aidl | 2 +- .../gms/location/LocationAvailability.java | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl index 40937c80..123a0952 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl @@ -61,7 +61,7 @@ interface IGoogleLocationManagerService { Location getLastLocationWithPackage(String packageName) = 20; void iglms26(in Location var1, int var2) = 25; - LocationAvailability iglms34(String var1) = 33; + LocationAvailability getLocationAvailabilityWithPackage(String packageName) = 33; IBinder iglms51() = 50; void requestLocationSettingsDialog(in LocationSettingsRequest settingsRequest, ISettingsCallbacks callback, String packageName) = 62; diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationAvailability.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationAvailability.java index 2cba0cf6..3ee22ef9 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/LocationAvailability.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationAvailability.java @@ -17,8 +17,35 @@ package com.google.android.gms.location; import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; public class LocationAvailability extends AutoSafeParcelable { + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + private int cellStatus; + + @SafeParceled(2) + private int wifiStatus; + + @SafeParceled(3) + private long elapsedRealtimeNs; + + @SafeParceled(4) + private int locationStatus; + + private LocationAvailability(int cellStatus, int wifiStatus, int elapsedRealtimeNs, int locationStatus) { + this.cellStatus = cellStatus; + this.wifiStatus = wifiStatus; + this.elapsedRealtimeNs = elapsedRealtimeNs; + this.locationStatus = this.locationStatus; + } + + public static LocationAvailability create() { // TODO + return new LocationAvailability(0, 0, 0, 0); + } + public static final Creator CREATOR = new AutoCreator(LocationAvailability.class); } From cf2927f275c53099781dbf965acb7c7f8ed36e97 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 31 Jul 2016 13:00:23 +0200 Subject: [PATCH 103/170] complete implementation of LocationAvailability --- .../gms/location/LocationAvailability.java | 110 ++++++++++++++++-- 1 file changed, 98 insertions(+), 12 deletions(-) diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationAvailability.java b/play-services-api/src/main/java/com/google/android/gms/location/LocationAvailability.java index 3ee22ef9..f2f70201 100644 --- a/play-services-api/src/main/java/com/google/android/gms/location/LocationAvailability.java +++ b/play-services-api/src/main/java/com/google/android/gms/location/LocationAvailability.java @@ -16,35 +16,121 @@ package com.google.android.gms.location; +import android.content.Intent; + +import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; +import java.util.Arrays; + +/** + * Status on the availability of location data. + *

+ * Delivered from {@link LocationCallback} registered via {@link FusedLocationProviderApi#requestLocationUpdates(com.google.android.gms.common.api.GoogleApiClient, LocationRequest, LocationCallback, android.os.Looper) + * or from a PendingIntent registered via {@link FusedLocationProviderApi#requestLocationUpdates(com.google.android.gms.common.api.GoogleApiClient, LocationRequest, android.app.PendingIntent)}. + * It is also available on demand via {@link FusedLocationProviderApi#getLocationAvailability(com.google.android.gms.common.api.GoogleApiClient)}. + */ +@PublicApi public class LocationAvailability extends AutoSafeParcelable { + private static final String EXTRA_KEY = "com.google.android.gms.location.EXTRA_LOCATION_AVAILABILITY"; + + @PublicApi(exclude = true) + public static final int STATUS_SUCCESSFUL = 0; + @PublicApi(exclude = true) + public static final int STATUS_UNKNOWN = 1; + @PublicApi(exclude = true) + public static final int STATUS_TIMED_OUT_ON_SCAN = 2; + @PublicApi(exclude = true) + public static final int STATUS_NO_INFO_IN_DATABASE = 3; + @PublicApi(exclude = true) + public static final int STATUS_INVALID_SCAN = 4; + @PublicApi(exclude = true) + public static final int STATUS_UNABLE_TO_QUERY_DATABASE = 5; + @PublicApi(exclude = true) + public static final int STATUS_SCANS_DISABLED_IN_SETTINGS = 6; + @PublicApi(exclude = true) + public static final int STATUS_LOCATION_DISABLED_IN_SETTINGS = 7; + @PublicApi(exclude = true) + public static final int STATUS_IN_PROGRESS = 8; @SafeParceled(1000) - private int versionCode = 1; + private int versionCode = 2; @SafeParceled(1) - private int cellStatus; + @PublicApi(exclude = true) + public int cellStatus; @SafeParceled(2) - private int wifiStatus; + @PublicApi(exclude = true) + public int wifiStatus; @SafeParceled(3) - private long elapsedRealtimeNs; + @PublicApi(exclude = true) + public long elapsedRealtimeNs; @SafeParceled(4) - private int locationStatus; + @PublicApi(exclude = true) + public int locationStatus; - private LocationAvailability(int cellStatus, int wifiStatus, int elapsedRealtimeNs, int locationStatus) { - this.cellStatus = cellStatus; - this.wifiStatus = wifiStatus; - this.elapsedRealtimeNs = elapsedRealtimeNs; - this.locationStatus = this.locationStatus; + @PublicApi(exclude = true) + public LocationAvailability() { } - public static LocationAvailability create() { // TODO - return new LocationAvailability(0, 0, 0, 0); + @Override + public boolean equals(Object o) { + if (o instanceof LocationAvailability) { + LocationAvailability other = (LocationAvailability) o; + return other.cellStatus == cellStatus && other.wifiStatus == wifiStatus && other.elapsedRealtimeNs == elapsedRealtimeNs && other.locationStatus == locationStatus; + } + return false; + } + + /** + * Extracts the {@link LocationAvailability} from an Intent. + *

+ * This is a utility function which extracts the {@link LocationAvailability} from the extras + * of an Intent that was sent in response to a location request. + * + * @return a {@link LocationAvailability}, or null if the Intent doesn't contain this data. + */ + public static LocationAvailability extractLocationAvailability(Intent intent) { + if (!hasLocationAvailability(intent)) { + return null; + } + return intent.getParcelableExtra(EXTRA_KEY); + } + + /** + * Returns true if an Intent contains a {@link LocationAvailability}. + *

+ * This is a utility function that can be called from inside an intent receiver to make sure the + * received intent contains location availability data. + * + * @return true if the intent contains a {@link LocationAvailability}, false otherwise. + */ + public static boolean hasLocationAvailability(Intent intent) { + return intent != null && intent.hasExtra(EXTRA_KEY); + } + + @Override + public int hashCode() { + return Arrays.hashCode(new Object[]{locationStatus, cellStatus, wifiStatus, elapsedRealtimeNs}); + } + + /** + * Returns true if the device location is known and reasonably up to date within the hints + * requested by the active {@link LocationRequest}s. Failure to determine location may result + * from a number of causes including disabled location settings or an inability to retrieve + * sensor data in the device's environment. + */ + public boolean isLocationAvailable() { + return locationStatus < 1000; + } + + @Override + public String toString() { + return "LocationAvailability[isLocationAvailable: " + isLocationAvailable() + "]"; } public static final Creator CREATOR = new AutoCreator(LocationAvailability.class); From 417ec2585f085c5a599e45aa9ee3b3df6239c628 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Thu, 4 Aug 2016 08:49:27 +0200 Subject: [PATCH 104/170] Update wearable APIs --- .../google/android/gms/wearable/Asset.aidl | 3 + .../internal/GetCloudSyncSettingResponse.aidl | 3 + .../internal/IChannelStreamCallbacks.aidl | 4 + .../wearable/internal/IWearableCallbacks.aidl | 5 +- .../wearable/internal/IWearableService.aidl | 82 +++++++++++++++---- .../com/google/android/gms/wearable/Node.java | 5 ++ .../internal/GetCloudSyncSettingResponse.java | 38 +++++++++ .../internal/GetFdForAssetResponse.java | 20 +++++ .../gms/wearable/internal/NodeParcelable.java | 37 ++++++--- .../internal/SendMessageResponse.java | 11 +++ 10 files changed, 182 insertions(+), 26 deletions(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/Asset.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IChannelStreamCallbacks.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.java diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/Asset.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/Asset.aidl new file mode 100644 index 00000000..9cb94923 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/Asset.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable; + +parcelable Asset; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.aidl new file mode 100644 index 00000000..3ac2cc1c --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.wearable.internal; + +parcelable GetCloudSyncSettingResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IChannelStreamCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IChannelStreamCallbacks.aidl new file mode 100644 index 00000000..1f08e373 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IChannelStreamCallbacks.aidl @@ -0,0 +1,4 @@ +package com.google.android.gms.wearable.internal; + +interface IChannelStreamCallbacks { +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl index 6af80335..a41f6e5b 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl @@ -3,6 +3,7 @@ package com.google.android.gms.wearable.internal; import com.google.android.gms.common.api.Status; import com.google.android.gms.common.data.DataHolder; import com.google.android.gms.wearable.internal.DeleteDataItemsResponse; +import com.google.android.gms.wearable.internal.GetCloudSyncSettingResponse; import com.google.android.gms.wearable.internal.GetConfigResponse; import com.google.android.gms.wearable.internal.GetConfigsResponse; import com.google.android.gms.wearable.internal.GetConnectedNodesResponse; @@ -17,7 +18,7 @@ interface IWearableCallbacks { void onGetConfigResponse(in GetConfigResponse response) = 1; void onPutDataResponse(in PutDataResponse response) = 2; void onGetDataItemResponse(in GetDataItemResponse response) = 3; - void onDataHolder(in DataHolder dataHolder) = 4; + void onDataItemChanged(in DataHolder dataHolder) = 4; void onDeleteDataItemsResponse(in DeleteDataItemsResponse response) = 5; void onSendMessageResponse(in SendMessageResponse response) = 6; void onGetFdForAssetResponse(in GetFdForAssetResponse response) = 7; @@ -26,4 +27,6 @@ interface IWearableCallbacks { void onStatus(in Status status) = 10; void onStorageInfoResponse(in StorageInfoResponse response) = 11; void onGetConfigsResponse(in GetConfigsResponse response) = 12; + + void onGetCloudSyncSettingResponse(in GetCloudSyncSettingResponse response) = 28; } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl index 854ab06d..4b0acb5f 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl @@ -1,28 +1,82 @@ package com.google.android.gms.wearable.internal; -import com.google.android.gms.wearable.internal.AddListenerRequest; +import com.google.android.gms.wearable.Asset; import com.google.android.gms.wearable.ConnectionConfiguration; +import com.google.android.gms.wearable.internal.AddListenerRequest; +import com.google.android.gms.wearable.internal.AncsNotificationParcelable; import com.google.android.gms.wearable.internal.PutDataRequest; import com.google.android.gms.wearable.internal.RemoveListenerRequest; +import com.google.android.gms.wearable.internal.IChannelStreamCallbacks; import com.google.android.gms.wearable.internal.IWearableCallbacks; import com.google.android.gms.wearable.internal.IWearableService; interface IWearableService { - void getConfig(IWearableCallbacks callbacks) = 2; - void putData(IWearableCallbacks callbacks, in PutDataRequest request) = 5; - void getDataItem(IWearableCallbacks callbacks, in Uri uri) = 6; - void getDataItems(IWearableCallbacks callbacks) = 7; - void sendMessage(IWearableCallbacks callbacks, String targetNodeId, String path, in byte[] data) = 11; - void getLocalNode(IWearableCallbacks callbacks) = 13; - void getConnectedNodes(IWearableCallbacks callbacks) = 14; - void addListener(IWearableCallbacks callbacks, in AddListenerRequest request) = 15; - void removeListener(IWearableCallbacks callbacks, in RemoveListenerRequest request) = 16; + // Configs void putConfig(IWearableCallbacks callbacks, in ConnectionConfiguration config) = 19; void deleteConfig(IWearableCallbacks callbacks, String name) = 20; void getConfigs(IWearableCallbacks callbacks) = 21; - void enableConnection(IWearableCallbacks callbacks, String name) = 22; - void disableConnection(IWearableCallbacks callbacks, String name) = 23; - void getDataItemsByUri(IWearableCallbacks callbacks, in Uri uri, int i) = 39; - void deleteDataItems(IWearableCallbacks callbacks, in Uri uri) = 40; + void enableConfig(IWearableCallbacks callbacks, String name) = 22; + void disableConfig(IWearableCallbacks callbacks, String name) = 23; + + // DataItems + void putData(IWearableCallbacks callbacks, in PutDataRequest request) = 5; + void getDataItem(IWearableCallbacks callbacks, in Uri uri) = 6; + void getDataItems(IWearableCallbacks callbacks) = 7; + void getDataItemsByUri(IWearableCallbacks callbacks, in Uri uri) = 8; + void getDataItemsByUriWithFilter(IWearableCallbacks callbacks, in Uri uri, int typeFilter) = 39; + void deleteDataItems(IWearableCallbacks callbacks, in Uri uri) = 10; + void deleteDataItemsWithFilter(IWearableCallbacks callbacks, in Uri uri, int typeFilter) = 40; + + void sendMessage(IWearableCallbacks callbacks, String targetNodeId, String path, in byte[] data) = 11; + void getFdForAsset(IWearableCallbacks callbacks, in Asset asset) = 12; + + void getLocalNode(IWearableCallbacks callbacks) = 13; + void getConnectedNodes(IWearableCallbacks callbacks) = 14; + + // Capabilties + void getConnectedCapability(IWearableCallbacks callbacks, String s1, int i) = 41; + void getConnectedCapaibilties(IWearableCallbacks callbacks, int i) = 42; + void addLocalCapability(IWearableCallbacks callbacks, String cap) = 45; + void removeLocalCapability(IWearableCallbacks callbacks, String cap) = 46; + + void addListener(IWearableCallbacks callbacks, in AddListenerRequest request) = 15; + void removeListener(IWearableCallbacks callbacks, in RemoveListenerRequest request) = 16; + + void getStrorageInformation(IWearableCallbacks callbacks) = 17; + void clearStorage(IWearableCallbacks callbacks) = 18; + + void endCall(IWearableCallbacks callbacks) = 24; + void acceptRingingCall(IWearableCallbacks callbacks) = 25; + void silenceRinger(IWearableCallbacks callbacks) = 29; + + // Apple Notification Center Service + void injectAncsNotificationForTesting(IWearableCallbacks callbacks, in AncsNotificationParcelable notification) = 26; + void doAncsPositiveAction(IWearableCallbacks callbacks, int i) = 27; + void doAncsNegativeAction(IWearableCallbacks callbacks, int i) = 28; + + // Channels + void openChannel(IWearableCallbacks callbacks, String s1, String s2) = 30; + void closeChannel(IWearableCallbacks callbacks, String s) = 31; + void closeChannelWithError(IWearableCallbacks callbacks, String s, int errorCode) = 32; + void getChannelInputStream(IWearableCallbacks callbacks, IChannelStreamCallbacks channelCallbacks, String s) = 33; + void getChannelOutputStream(IWearableCallbacks callbacks, IChannelStreamCallbacks channelCallbacks, String s) = 34; + void writeChannelInputToFd(IWearableCallbacks callbacks, String s, in ParcelFileDescriptor fd) = 37; + void readChannelOutputFromFd(IWearableCallbacks callbacks, String s, in ParcelFileDescriptor fd, long l1, long l2) = 38; + + void syncWifiCredentials(IWearableCallbacks callbacks) = 36; + + // Cloud Sync void optInCloudSync(IWearableCallbacks callbacks, boolean enable) = 47; + void getCloudSyncOptInDone(IWearableCallbacks callbacks) = 48; // deprecated + void setCloudSyncSetting(IWearableCallbacks callbacks, boolean enable) = 49; + void getCloudSyncSetting(IWearableCallbacks callbacks) = 50; + void getCloudSyncOptInStatus(IWearableCallbacks callbacks) = 51; + + void sendRemoteCommand(IWearableCallbacks callbacks, byte b) = 52; + + // deprecated Connection + void putConnection(IWearableCallbacks callbacks, in ConnectionConfiguration config) = 1; + void getConnection(IWearableCallbacks callbacks) = 2; + void enableConnection(IWearableCallbacks callbacks) = 3; + void disableConnection(IWearableCallbacks callbacks) = 4; } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/Node.java b/play-services-api/src/main/java/com/google/android/gms/wearable/Node.java index 00ed1a47..7300184a 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/Node.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/Node.java @@ -33,4 +33,9 @@ public interface Node { * Returns an opaque string that represents a node in the Android Wear network. */ String getId(); + + /** + * Indicates that this node can be considered geographically nearby the local node. + */ + boolean isNearby(); } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.java new file mode 100644 index 00000000..fc0ae42c --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.java @@ -0,0 +1,38 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable.internal; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class GetCloudSyncSettingResponse extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public int statusCode; + @SafeParceled(3) + public boolean cloudSyncEnabled; + + private GetCloudSyncSettingResponse() {} + + public GetCloudSyncSettingResponse(int statusCode, boolean cloudSyncEnabled) { + this.statusCode = statusCode; + this.cloudSyncEnabled = cloudSyncEnabled; + } + + public static final Creator CREATOR = new AutoCreator(GetCloudSyncSettingResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java index 4b75d203..a0930b6a 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java @@ -16,8 +16,28 @@ package com.google.android.gms.wearable.internal; +import android.os.ParcelFileDescriptor; + import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; public class GetFdForAssetResponse extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + + @SafeParceled(2) + public int statusCode; + + @SafeParceled(3) + public ParcelFileDescriptor pfd; + + private GetFdForAssetResponse() { + } + + public GetFdForAssetResponse(int statusCode, ParcelFileDescriptor pfd) { + this.statusCode = statusCode; + this.pfd = pfd; + } + public static final Creator CREATOR = new AutoCreator(GetFdForAssetResponse.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java index ebaa5cdb..aae4d786 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java @@ -28,22 +28,33 @@ public class NodeParcelable extends AutoSafeParcelable implements Node { @SafeParceled(1) private int versionCode = 1; @SafeParceled(2) - private final String id; + private final String nodeId; @SafeParceled(3) private final String displayName; + @SafeParceled(4) + private final int hops; + @SafeParceled(5) + private final boolean isNearby; private NodeParcelable() { - id = displayName = null; + nodeId = displayName = null; + hops = 0; + isNearby = false; } - public NodeParcelable(String id, String displayName) { - this.id = id; + public NodeParcelable(String nodeId, String displayName, int hops, boolean isNearby) { + this.nodeId = nodeId; this.displayName = displayName; + this.hops = hops; + this.isNearby = isNearby; + } + + public NodeParcelable(String nodeId, String displayName) { + this(nodeId, displayName, 0, false); } public NodeParcelable(Node node) { - this.id = node.getId(); - this.displayName = node.getDisplayName(); + this(node.getId(), node.getDisplayName(), 0, node.isNearby()); } @Override @@ -53,7 +64,7 @@ public class NodeParcelable extends AutoSafeParcelable implements Node { NodeParcelable that = (NodeParcelable) o; - if (!id.equals(that.id)) return false; + if (!nodeId.equals(that.nodeId)) return false; if (!displayName.equals(that.displayName)) return false; return true; @@ -66,18 +77,22 @@ public class NodeParcelable extends AutoSafeParcelable implements Node { @Override public String getId() { - return id; + return nodeId; + } + + @Override + public boolean isNearby() { + return isNearby; } @Override public int hashCode() { - int result = 37 * 17 + id.hashCode(); - return 37 * result + displayName.hashCode(); + return nodeId.hashCode(); } @Override public String toString() { - return "NodeParcelable{" + id + "," + displayName + "}"; + return "NodeParcelable{" + displayName + ", id=" + displayName + ", hops=" + hops + ", isNearby=" + isNearby + "}"; } public static final Creator CREATOR = new AutoCreator(NodeParcelable.class); diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java index f54fd04f..d3a0b7fb 100644 --- a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java +++ b/play-services-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java @@ -17,7 +17,18 @@ package com.google.android.gms.wearable.internal; import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; public class SendMessageResponse extends AutoSafeParcelable { + + @SafeParceled(1) + private int versionCode = 1; + + @SafeParceled(2) + public int statusCode; + + @SafeParceled(3) + public int resultId = -1; + public static final Creator CREATOR = new AutoCreator(SendMessageResponse.class); } From 3d8fee7fabcd9e7c5c46f3f1f44da6cf4db89a70 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Thu, 4 Aug 2016 21:45:00 +0200 Subject: [PATCH 105/170] First split of Api classes --- play-services-api/build.gradle | 5 +- .../android/gms/gcm/PendingCallback.java | 59 ------------------ play-services-cast-api/build.gradle | 55 +++++++++++++++++ .../src/main/AndroidManifest.xml | 24 ++++++++ .../android/gms/cast/ApplicationMetadata.java | 0 .../google/android/gms/cast/CastDevice.java | 0 .../gms/cast/CastMediaControlIntent.java | 0 .../android/gms/cast/CastStatusCodes.java | 0 .../android/gms/cast/LaunchOptions.java | 0 play-services-common-api/build.gradle | 60 +++++++++++++++++++ .../src/main/AndroidManifest.xml | 24 ++++++++ .../google/android/gms/common/api/Status.aidl | 0 .../android/gms/common/data/DataHolder.aidl | 0 .../common/internal/GetServiceRequest.aidl | 0 .../gms/common/internal/ICancelToken.aidl | 0 .../gms/common/internal/IGmsCallbacks.aidl | 0 .../common/internal/IGmsServiceBroker.aidl | 0 .../common/internal/ISignInButtonCreator.aidl | 0 .../internal/ValidateAccountRequest.aidl | 0 .../common/server/FavaDiagnosticsEntity.aidl | 0 .../android/gms/dynamic/IObjectWrapper.aidl | 0 .../com/google/android/gms/common/Scopes.java | 0 .../android/gms/common/api/AccountInfo.java | 0 .../gms/common/api/CommonStatusCodes.java | 0 .../google/android/gms/common/api/Result.java | 0 .../google/android/gms/common/api/Scope.java | 0 .../google/android/gms/common/api/Status.java | 0 .../android/gms/common/data/DataHolder.java | 0 .../android/gms/common/data/Freezable.java | 0 .../android/gms/common/images/WebImage.java | 0 .../gms/common/internal/BinderWrapper.java | 0 .../common/internal/GetServiceRequest.java | 0 .../internal/ValidateAccountRequest.java | 0 .../common/server/FavaDiagnosticsEntity.java | 0 .../android/gms/dynamic/ObjectWrapper.java | 0 .../org/microg/gms/auth/AuthConstants.java | 0 .../java/org/microg/gms/common/Constants.java | 0 .../org/microg/gms/common/GmsService.java | 0 .../java/org/microg/gms/common/PublicApi.java | 0 play-services-location-api/build.gradle | 55 +++++++++++++++++ .../src/main/AndroidManifest.xml | 24 ++++++++ .../location/ActivityRecognitionResult.aidl | 0 .../google/android/gms/location/Geofence.aidl | 0 .../gms/location/GeofencingRequest.aidl | 0 .../android/gms/location/GestureRequest.aidl | 0 .../gms/location/ILocationCallback.aidl | 0 .../gms/location/ILocationListener.aidl | 0 .../gms/location/LocationAvailability.aidl | 0 .../android/gms/location/LocationRequest.aidl | 0 .../android/gms/location/LocationResult.aidl | 0 .../gms/location/LocationSettingsRequest.aidl | 0 .../gms/location/LocationSettingsResult.aidl | 0 .../android/gms/location/LocationStatus.aidl | 0 .../internal/FusedLocationProviderResult.aidl | 0 .../IFusedLocationProviderCallback.aidl | 0 .../internal/IGeofencerCallbacks.aidl | 0 .../IGoogleLocationManagerService.aidl | 0 .../location/internal/ISettingsCallbacks.aidl | 0 .../internal/LocationRequestInternal.aidl | 0 .../internal/LocationRequestUpdateData.aidl | 0 .../location/places/AutocompleteFilter.aidl | 0 .../location/places/NearbyAlertRequest.aidl | 0 .../gms/location/places/PlaceFilter.aidl | 0 .../gms/location/places/PlaceReport.aidl | 0 .../gms/location/places/PlaceRequest.aidl | 0 .../gms/location/places/UserAddedPlace.aidl | 0 .../gms/location/places/UserDataType.aidl | 0 .../places/internal/IPlacesCallbacks.aidl | 0 .../places/internal/PlacesParams.aidl | 0 .../location/reporting/ReportingState.aidl | 0 .../gms/location/reporting/UploadRequest.aidl | 0 .../reporting/UploadRequestResult.aidl | 0 .../reporting/internal/IReportingService.aidl | 0 .../google/android/gms/maps/model/LatLng.aidl | 0 .../android/gms/maps/model/LatLngBounds.aidl | 0 .../location/ActivityRecognitionResult.java | 0 .../google/android/gms/location/Geofence.java | 0 .../gms/location/GeofencingRequest.java | 0 .../android/gms/location/GestureRequest.java | 0 .../gms/location/LocationAvailability.java | 0 .../android/gms/location/LocationRequest.java | 0 .../android/gms/location/LocationResult.java | 0 .../gms/location/LocationSettingsRequest.java | 0 .../gms/location/LocationSettingsResult.java | 0 .../gms/location/LocationSettingsStates.java | 0 .../android/gms/location/LocationStatus.java | 0 .../gms/location/internal/ClientIdentity.java | 0 .../internal/FusedLocationProviderResult.java | 0 .../internal/LocationRequestInternal.java | 0 .../internal/LocationRequestUpdateData.java | 0 .../location/places/AutocompleteFilter.java | 0 .../location/places/NearbyAlertRequest.java | 0 .../android/gms/location/places/Place.java | 0 .../gms/location/places/PlaceFilter.java | 0 .../gms/location/places/PlaceReport.java | 0 .../gms/location/places/PlaceRequest.java | 0 .../gms/location/places/UserAddedPlace.java | 0 .../gms/location/places/UserDataType.java | 0 .../location/places/internal/PlaceImpl.java | 0 .../places/internal/PlacesParams.java | 0 .../location/reporting/ReportingState.java | 0 .../gms/location/reporting/UploadRequest.java | 0 .../reporting/UploadRequestResult.java | 0 .../google/android/gms/maps/model/LatLng.java | 0 .../android/gms/maps/model/LatLngBounds.java | 0 .../gms/location/LocationConstants.java | 0 play-services-wearable-api/build.gradle | 55 +++++++++++++++++ .../src/main/AndroidManifest.xml | 24 ++++++++ .../google/android/gms/wearable/Asset.aidl | 0 .../gms/wearable/ConnectionConfiguration.aidl | 0 .../wearable/internal/AddListenerRequest.aidl | 0 .../internal/AmsEntityUpdateParcelable.aidl | 0 .../internal/AncsNotificationParcelable.aidl | 0 .../internal/CapabilityInfoParcelable.aidl | 0 .../internal/ChannelEventParcelable.aidl | 0 .../internal/DeleteDataItemsResponse.aidl | 0 .../internal/GetCloudSyncSettingResponse.aidl | 0 .../wearable/internal/GetConfigResponse.aidl | 0 .../wearable/internal/GetConfigsResponse.aidl | 0 .../internal/GetConnectedNodesResponse.aidl | 0 .../internal/GetDataItemResponse.aidl | 0 .../internal/GetFdForAssetResponse.aidl | 0 .../internal/GetLocalNodeResponse.aidl | 0 .../internal/IChannelStreamCallbacks.aidl | 0 .../wearable/internal/IWearableCallbacks.aidl | 0 .../wearable/internal/IWearableListener.aidl | 0 .../wearable/internal/IWearableService.aidl | 0 .../internal/MessageEventParcelable.aidl | 0 .../gms/wearable/internal/NodeParcelable.aidl | 0 .../gms/wearable/internal/PutDataRequest.aidl | 0 .../wearable/internal/PutDataResponse.aidl | 0 .../internal/RemoveListenerRequest.aidl | 0 .../internal/SendMessageResponse.aidl | 0 .../internal/StorageInfoResponse.aidl | 0 .../google/android/gms/wearable/Asset.java | 0 .../gms/wearable/ConnectionConfiguration.java | 0 .../google/android/gms/wearable/DataItem.java | 0 .../android/gms/wearable/DataItemAsset.java | 0 .../android/gms/wearable/MessageEvent.java | 0 .../com/google/android/gms/wearable/Node.java | 0 .../gms/wearable/WearableStatusCodes.java | 0 .../wearable/internal/AddListenerRequest.java | 0 .../internal/AmsEntityUpdateParcelable.java | 0 .../internal/AncsNotificationParcelable.java | 0 .../internal/CapabilityInfoParcelable.java | 0 .../internal/ChannelEventParcelable.java | 0 .../internal/DataItemAssetParcelable.java | 0 .../wearable/internal/DataItemParcelable.java | 0 .../internal/DeleteDataItemsResponse.java | 0 .../internal/GetCloudSyncSettingResponse.java | 0 .../wearable/internal/GetConfigResponse.java | 0 .../wearable/internal/GetConfigsResponse.java | 0 .../internal/GetConnectedNodesResponse.java | 0 .../internal/GetDataItemResponse.java | 0 .../internal/GetFdForAssetResponse.java | 0 .../internal/GetLocalNodeResponse.java | 0 .../internal/MessageEventParcelable.java | 0 .../gms/wearable/internal/NodeParcelable.java | 0 .../gms/wearable/internal/PutDataRequest.java | 0 .../wearable/internal/PutDataResponse.java | 0 .../internal/RemoveListenerRequest.java | 0 .../internal/SendMessageResponse.java | 0 .../internal/StorageInfoResponse.java | 0 settings.gradle | 4 ++ 164 files changed, 329 insertions(+), 60 deletions(-) delete mode 100644 play-services-api/src/main/java/com/google/android/gms/gcm/PendingCallback.java create mode 100644 play-services-cast-api/build.gradle create mode 100644 play-services-cast-api/src/main/AndroidManifest.xml rename {play-services-api => play-services-cast-api}/src/main/java/com/google/android/gms/cast/ApplicationMetadata.java (100%) rename {play-services-api => play-services-cast-api}/src/main/java/com/google/android/gms/cast/CastDevice.java (100%) rename {play-services-api => play-services-cast-api}/src/main/java/com/google/android/gms/cast/CastMediaControlIntent.java (100%) rename {play-services-api => play-services-cast-api}/src/main/java/com/google/android/gms/cast/CastStatusCodes.java (100%) rename {play-services-api => play-services-cast-api}/src/main/java/com/google/android/gms/cast/LaunchOptions.java (100%) create mode 100644 play-services-common-api/build.gradle create mode 100644 play-services-common-api/src/main/AndroidManifest.xml rename {play-services-api => play-services-common-api}/src/main/aidl/com/google/android/gms/common/api/Status.aidl (100%) rename {play-services-api => play-services-common-api}/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl (100%) rename {play-services-api => play-services-common-api}/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl (100%) rename {play-services-api => play-services-common-api}/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl (100%) rename {play-services-api => play-services-common-api}/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl (100%) rename {play-services-api => play-services-common-api}/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl (100%) rename {play-services-api => play-services-common-api}/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl (100%) rename {play-services-api => play-services-common-api}/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl (100%) rename {play-services-api => play-services-common-api}/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl (100%) rename {play-services-api => play-services-common-api}/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl (100%) rename {play-services-api => play-services-common-api}/src/main/java/com/google/android/gms/common/Scopes.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/com/google/android/gms/common/api/AccountInfo.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/com/google/android/gms/common/api/Result.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/com/google/android/gms/common/api/Scope.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/com/google/android/gms/common/api/Status.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/com/google/android/gms/common/data/DataHolder.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/com/google/android/gms/common/data/Freezable.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/com/google/android/gms/common/images/WebImage.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/com/google/android/gms/common/internal/BinderWrapper.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/org/microg/gms/auth/AuthConstants.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/org/microg/gms/common/Constants.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/org/microg/gms/common/GmsService.java (100%) rename {play-services-api => play-services-common-api}/src/main/java/org/microg/gms/common/PublicApi.java (100%) create mode 100644 play-services-location-api/build.gradle create mode 100644 play-services-location-api/src/main/AndroidManifest.xml rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/ActivityRecognitionResult.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/Geofence.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/GeofencingRequest.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/GestureRequest.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/ILocationCallback.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/ILocationListener.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/LocationAvailability.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/LocationRequest.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/LocationResult.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/LocationSettingsRequest.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/LocationSettingsResult.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/LocationStatus.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/internal/FusedLocationProviderResult.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/internal/IFusedLocationProviderCallback.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallbacks.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/internal/LocationRequestInternal.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/internal/LocationRequestUpdateData.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/places/AutocompleteFilter.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/places/NearbyAlertRequest.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/places/PlaceFilter.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/places/PlaceReport.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/places/PlaceRequest.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/places/UserAddedPlace.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/places/UserDataType.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/places/internal/PlacesParams.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/reporting/ReportingState.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/reporting/UploadRequest.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/reporting/UploadRequestResult.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/maps/model/LatLng.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/aidl/com/google/android/gms/maps/model/LatLngBounds.aidl (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/ActivityRecognitionResult.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/Geofence.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/GeofencingRequest.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/GestureRequest.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/LocationAvailability.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/LocationRequest.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/LocationResult.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/LocationSettingsResult.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/LocationSettingsStates.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/LocationStatus.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/internal/FusedLocationProviderResult.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/internal/LocationRequestUpdateData.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/places/Place.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/places/PlaceFilter.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/places/PlaceReport.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/places/PlaceRequest.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/places/UserDataType.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/places/internal/PlaceImpl.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/reporting/ReportingState.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/reporting/UploadRequest.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/location/reporting/UploadRequestResult.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/maps/model/LatLng.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java (100%) rename {play-services-api => play-services-location-api}/src/main/java/org/microg/gms/location/LocationConstants.java (100%) create mode 100644 play-services-wearable-api/build.gradle create mode 100644 play-services-wearable-api/src/main/AndroidManifest.xml rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/Asset.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/ConnectionConfiguration.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/AddListenerRequest.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/AncsNotificationParcelable.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/ChannelEventParcelable.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigResponse.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigsResponse.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/GetDataItemResponse.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/GetFdForAssetResponse.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/GetLocalNodeResponse.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/IChannelStreamCallbacks.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/MessageEventParcelable.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/NodeParcelable.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/PutDataRequest.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/PutDataResponse.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/RemoveListenerRequest.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/SendMessageResponse.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/aidl/com/google/android/gms/wearable/internal/StorageInfoResponse.aidl (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/Asset.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/DataItem.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/DataItemAsset.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/MessageEvent.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/Node.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/GetConfigResponse.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/GetConfigsResponse.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/GetDataItemResponse.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/GetLocalNodeResponse.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/PutDataResponse.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/RemoveListenerRequest.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java (100%) rename {play-services-api => play-services-wearable-api}/src/main/java/com/google/android/gms/wearable/internal/StorageInfoResponse.java (100%) diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index b0b8ad9d..5b5dd33e 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -51,5 +51,8 @@ android { } dependencies { - compile project(':safe-parcel') + compile project(':play-services-cast-api') + compile project(':play-services-common-api') + compile project(':play-services-location-api') + compile project(':play-services-wearable-api') } diff --git a/play-services-api/src/main/java/com/google/android/gms/gcm/PendingCallback.java b/play-services-api/src/main/java/com/google/android/gms/gcm/PendingCallback.java deleted file mode 100644 index 6eed3e3d..00000000 --- a/play-services-api/src/main/java/com/google/android/gms/gcm/PendingCallback.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2013-2016 microG Project Team - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.gms.gcm; - -import android.os.IBinder; -import android.os.Parcel; -import android.os.Parcelable; - -public class PendingCallback implements Parcelable { - private final IBinder binder; - - public PendingCallback(IBinder binder) { - this.binder = binder; - } - - private PendingCallback(Parcel in) { - this.binder = in.readStrongBinder(); - } - - public IBinder getBinder() { - return binder; - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeStrongBinder(binder); - } - - public static final Creator CREATOR = new Creator() { - @Override - public PendingCallback createFromParcel(Parcel source) { - return new PendingCallback(source); - } - - @Override - public PendingCallback[] newArray(int size) { - return new PendingCallback[size]; - } - }; -} diff --git a/play-services-cast-api/build.gradle b/play-services-cast-api/build.gradle new file mode 100644 index 00000000..47f513a0 --- /dev/null +++ b/play-services-cast-api/build.gradle @@ -0,0 +1,55 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.1.2' + } +} + +apply plugin: 'com.android.library' + +String getMyVersionName() { + def stdout = new ByteArrayOutputStream() + if (rootProject.file("gradlew").exists()) + exec { commandLine 'git', 'describe', '--tags', '--always', '--dirty'; standardOutput = stdout } + else // automatic build system, don't tag dirty + exec { commandLine 'git', 'describe', '--tags', '--always'; standardOutput = stdout } + return stdout.toString().trim().substring(1) +} + +group = 'org.microg' +version = getMyVersionName() + +android { + compileSdkVersion 23 + buildToolsVersion "23.0.3" + + defaultConfig { + versionName getMyVersionName() + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_6 + } +} + +dependencies { + compile project(':play-services-common-api') +} diff --git a/play-services-cast-api/src/main/AndroidManifest.xml b/play-services-cast-api/src/main/AndroidManifest.xml new file mode 100644 index 00000000..1aca1c4a --- /dev/null +++ b/play-services-cast-api/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/play-services-api/src/main/java/com/google/android/gms/cast/ApplicationMetadata.java b/play-services-cast-api/src/main/java/com/google/android/gms/cast/ApplicationMetadata.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/cast/ApplicationMetadata.java rename to play-services-cast-api/src/main/java/com/google/android/gms/cast/ApplicationMetadata.java diff --git a/play-services-api/src/main/java/com/google/android/gms/cast/CastDevice.java b/play-services-cast-api/src/main/java/com/google/android/gms/cast/CastDevice.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/cast/CastDevice.java rename to play-services-cast-api/src/main/java/com/google/android/gms/cast/CastDevice.java diff --git a/play-services-api/src/main/java/com/google/android/gms/cast/CastMediaControlIntent.java b/play-services-cast-api/src/main/java/com/google/android/gms/cast/CastMediaControlIntent.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/cast/CastMediaControlIntent.java rename to play-services-cast-api/src/main/java/com/google/android/gms/cast/CastMediaControlIntent.java diff --git a/play-services-api/src/main/java/com/google/android/gms/cast/CastStatusCodes.java b/play-services-cast-api/src/main/java/com/google/android/gms/cast/CastStatusCodes.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/cast/CastStatusCodes.java rename to play-services-cast-api/src/main/java/com/google/android/gms/cast/CastStatusCodes.java diff --git a/play-services-api/src/main/java/com/google/android/gms/cast/LaunchOptions.java b/play-services-cast-api/src/main/java/com/google/android/gms/cast/LaunchOptions.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/cast/LaunchOptions.java rename to play-services-cast-api/src/main/java/com/google/android/gms/cast/LaunchOptions.java diff --git a/play-services-common-api/build.gradle b/play-services-common-api/build.gradle new file mode 100644 index 00000000..f43af0a4 --- /dev/null +++ b/play-services-common-api/build.gradle @@ -0,0 +1,60 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.1.2' + } +} + +apply plugin: 'com.android.library' + +String getMyVersionName() { + def stdout = new ByteArrayOutputStream() + if (rootProject.file("gradlew").exists()) + exec { + commandLine 'git', 'describe', '--tags', '--always', '--dirty'; standardOutput = stdout + } + else // automatic build system, don't tag dirty + exec { commandLine 'git', 'describe', '--tags', '--always'; standardOutput = stdout } + return stdout.toString().trim().substring(1) +} + +group = 'org.microg' +version = getMyVersionName() + +android { + compileSdkVersion 23 + buildToolsVersion "23.0.3" + + aidlPackageWhiteList "com/google/android/gms/common/internal/ICancelToken.aidl" + aidlPackageWhiteList "com/google/android/gms/dynamic/IObjectWrapper.aidl" + + defaultConfig { + versionName getMyVersionName() + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_6 + } +} + +dependencies { + compile project(':safe-parcel') +} diff --git a/play-services-common-api/src/main/AndroidManifest.xml b/play-services-common-api/src/main/AndroidManifest.xml new file mode 100644 index 00000000..03679b28 --- /dev/null +++ b/play-services-common-api/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/api/Status.aidl b/play-services-common-api/src/main/aidl/com/google/android/gms/common/api/Status.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/common/api/Status.aidl rename to play-services-common-api/src/main/aidl/com/google/android/gms/common/api/Status.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl b/play-services-common-api/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl rename to play-services-common-api/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl b/play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl rename to play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl b/play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl rename to play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl b/play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl rename to play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl b/play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl rename to play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl b/play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl rename to play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl b/play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl rename to play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl b/play-services-common-api/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl rename to play-services-common-api/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl b/play-services-common-api/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl rename to play-services-common-api/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl diff --git a/play-services-api/src/main/java/com/google/android/gms/common/Scopes.java b/play-services-common-api/src/main/java/com/google/android/gms/common/Scopes.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/common/Scopes.java rename to play-services-common-api/src/main/java/com/google/android/gms/common/Scopes.java diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java b/play-services-common-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java rename to play-services-common-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java b/play-services-common-api/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java rename to play-services-common-api/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/Result.java b/play-services-common-api/src/main/java/com/google/android/gms/common/api/Result.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/common/api/Result.java rename to play-services-common-api/src/main/java/com/google/android/gms/common/api/Result.java diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java b/play-services-common-api/src/main/java/com/google/android/gms/common/api/Scope.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/common/api/Scope.java rename to play-services-common-api/src/main/java/com/google/android/gms/common/api/Scope.java diff --git a/play-services-api/src/main/java/com/google/android/gms/common/api/Status.java b/play-services-common-api/src/main/java/com/google/android/gms/common/api/Status.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/common/api/Status.java rename to play-services-common-api/src/main/java/com/google/android/gms/common/api/Status.java diff --git a/play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java b/play-services-common-api/src/main/java/com/google/android/gms/common/data/DataHolder.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/common/data/DataHolder.java rename to play-services-common-api/src/main/java/com/google/android/gms/common/data/DataHolder.java diff --git a/play-services-api/src/main/java/com/google/android/gms/common/data/Freezable.java b/play-services-common-api/src/main/java/com/google/android/gms/common/data/Freezable.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/common/data/Freezable.java rename to play-services-common-api/src/main/java/com/google/android/gms/common/data/Freezable.java diff --git a/play-services-api/src/main/java/com/google/android/gms/common/images/WebImage.java b/play-services-common-api/src/main/java/com/google/android/gms/common/images/WebImage.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/common/images/WebImage.java rename to play-services-common-api/src/main/java/com/google/android/gms/common/images/WebImage.java diff --git a/play-services-api/src/main/java/com/google/android/gms/common/internal/BinderWrapper.java b/play-services-common-api/src/main/java/com/google/android/gms/common/internal/BinderWrapper.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/common/internal/BinderWrapper.java rename to play-services-common-api/src/main/java/com/google/android/gms/common/internal/BinderWrapper.java diff --git a/play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java b/play-services-common-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java rename to play-services-common-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java diff --git a/play-services-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java b/play-services-common-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java rename to play-services-common-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java diff --git a/play-services-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java b/play-services-common-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java rename to play-services-common-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java diff --git a/play-services-api/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java b/play-services-common-api/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java rename to play-services-common-api/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java diff --git a/play-services-api/src/main/java/org/microg/gms/auth/AuthConstants.java b/play-services-common-api/src/main/java/org/microg/gms/auth/AuthConstants.java similarity index 100% rename from play-services-api/src/main/java/org/microg/gms/auth/AuthConstants.java rename to play-services-common-api/src/main/java/org/microg/gms/auth/AuthConstants.java diff --git a/play-services-api/src/main/java/org/microg/gms/common/Constants.java b/play-services-common-api/src/main/java/org/microg/gms/common/Constants.java similarity index 100% rename from play-services-api/src/main/java/org/microg/gms/common/Constants.java rename to play-services-common-api/src/main/java/org/microg/gms/common/Constants.java diff --git a/play-services-api/src/main/java/org/microg/gms/common/GmsService.java b/play-services-common-api/src/main/java/org/microg/gms/common/GmsService.java similarity index 100% rename from play-services-api/src/main/java/org/microg/gms/common/GmsService.java rename to play-services-common-api/src/main/java/org/microg/gms/common/GmsService.java diff --git a/play-services-api/src/main/java/org/microg/gms/common/PublicApi.java b/play-services-common-api/src/main/java/org/microg/gms/common/PublicApi.java similarity index 100% rename from play-services-api/src/main/java/org/microg/gms/common/PublicApi.java rename to play-services-common-api/src/main/java/org/microg/gms/common/PublicApi.java diff --git a/play-services-location-api/build.gradle b/play-services-location-api/build.gradle new file mode 100644 index 00000000..47f513a0 --- /dev/null +++ b/play-services-location-api/build.gradle @@ -0,0 +1,55 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.1.2' + } +} + +apply plugin: 'com.android.library' + +String getMyVersionName() { + def stdout = new ByteArrayOutputStream() + if (rootProject.file("gradlew").exists()) + exec { commandLine 'git', 'describe', '--tags', '--always', '--dirty'; standardOutput = stdout } + else // automatic build system, don't tag dirty + exec { commandLine 'git', 'describe', '--tags', '--always'; standardOutput = stdout } + return stdout.toString().trim().substring(1) +} + +group = 'org.microg' +version = getMyVersionName() + +android { + compileSdkVersion 23 + buildToolsVersion "23.0.3" + + defaultConfig { + versionName getMyVersionName() + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_6 + } +} + +dependencies { + compile project(':play-services-common-api') +} diff --git a/play-services-location-api/src/main/AndroidManifest.xml b/play-services-location-api/src/main/AndroidManifest.xml new file mode 100644 index 00000000..2439e26f --- /dev/null +++ b/play-services-location-api/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/ActivityRecognitionResult.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/ActivityRecognitionResult.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/ActivityRecognitionResult.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/ActivityRecognitionResult.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/Geofence.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/Geofence.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/Geofence.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/Geofence.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/GeofencingRequest.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/GeofencingRequest.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/GeofencingRequest.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/GeofencingRequest.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/GestureRequest.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/GestureRequest.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/GestureRequest.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/GestureRequest.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/ILocationCallback.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/ILocationCallback.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/ILocationCallback.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/ILocationCallback.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/ILocationListener.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/ILocationListener.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/ILocationListener.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/ILocationListener.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/LocationAvailability.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/LocationAvailability.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/LocationAvailability.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/LocationAvailability.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/LocationRequest.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/LocationRequest.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/LocationRequest.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/LocationRequest.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/LocationResult.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/LocationResult.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/LocationResult.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/LocationResult.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/LocationSettingsRequest.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/LocationSettingsRequest.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/LocationSettingsRequest.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/LocationSettingsRequest.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/LocationSettingsResult.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/LocationSettingsResult.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/LocationSettingsResult.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/LocationSettingsResult.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/LocationStatus.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/LocationStatus.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/LocationStatus.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/LocationStatus.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/FusedLocationProviderResult.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/FusedLocationProviderResult.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/internal/FusedLocationProviderResult.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/FusedLocationProviderResult.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IFusedLocationProviderCallback.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/IFusedLocationProviderCallback.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/internal/IFusedLocationProviderCallback.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/IFusedLocationProviderCallback.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallbacks.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallbacks.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallbacks.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/ISettingsCallbacks.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/LocationRequestInternal.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/LocationRequestInternal.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/internal/LocationRequestInternal.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/LocationRequestInternal.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/internal/LocationRequestUpdateData.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/LocationRequestUpdateData.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/internal/LocationRequestUpdateData.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/LocationRequestUpdateData.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/places/AutocompleteFilter.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/places/AutocompleteFilter.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/places/AutocompleteFilter.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/places/AutocompleteFilter.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/places/NearbyAlertRequest.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/places/NearbyAlertRequest.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/places/NearbyAlertRequest.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/places/NearbyAlertRequest.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/places/PlaceFilter.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/places/PlaceFilter.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/places/PlaceFilter.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/places/PlaceFilter.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/places/PlaceReport.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/places/PlaceReport.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/places/PlaceReport.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/places/PlaceReport.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/places/PlaceRequest.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/places/PlaceRequest.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/places/PlaceRequest.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/places/PlaceRequest.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/places/UserAddedPlace.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/places/UserAddedPlace.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/places/UserAddedPlace.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/places/UserAddedPlace.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/places/UserDataType.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/places/UserDataType.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/places/UserDataType.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/places/UserDataType.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/places/internal/IPlacesCallbacks.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/PlacesParams.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/places/internal/PlacesParams.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/PlacesParams.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/places/internal/PlacesParams.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/ReportingState.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/reporting/ReportingState.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/reporting/ReportingState.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/reporting/ReportingState.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequest.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequest.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequest.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequest.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequestResult.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequestResult.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequestResult.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/reporting/UploadRequestResult.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/location/reporting/internal/IReportingService.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/model/LatLng.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/maps/model/LatLng.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/maps/model/LatLng.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/maps/model/LatLng.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/model/LatLngBounds.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/maps/model/LatLngBounds.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/maps/model/LatLngBounds.aidl rename to play-services-location-api/src/main/aidl/com/google/android/gms/maps/model/LatLngBounds.aidl diff --git a/play-services-api/src/main/java/com/google/android/gms/location/ActivityRecognitionResult.java b/play-services-location-api/src/main/java/com/google/android/gms/location/ActivityRecognitionResult.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/ActivityRecognitionResult.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/ActivityRecognitionResult.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/Geofence.java b/play-services-location-api/src/main/java/com/google/android/gms/location/Geofence.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/Geofence.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/Geofence.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/GeofencingRequest.java b/play-services-location-api/src/main/java/com/google/android/gms/location/GeofencingRequest.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/GeofencingRequest.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/GeofencingRequest.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/GestureRequest.java b/play-services-location-api/src/main/java/com/google/android/gms/location/GestureRequest.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/GestureRequest.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/GestureRequest.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationAvailability.java b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationAvailability.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/LocationAvailability.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/LocationAvailability.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationRequest.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/LocationRequest.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/LocationRequest.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationResult.java b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationResult.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/LocationResult.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/LocationResult.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsResult.java b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsResult.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsResult.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsResult.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationStatus.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/LocationStatus.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/LocationStatus.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java b/play-services-location-api/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/internal/ClientIdentity.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/internal/FusedLocationProviderResult.java b/play-services-location-api/src/main/java/com/google/android/gms/location/internal/FusedLocationProviderResult.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/internal/FusedLocationProviderResult.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/internal/FusedLocationProviderResult.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java b/play-services-location-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestUpdateData.java b/play-services-location-api/src/main/java/com/google/android/gms/location/internal/LocationRequestUpdateData.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/internal/LocationRequestUpdateData.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/internal/LocationRequestUpdateData.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java b/play-services-location-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/places/AutocompleteFilter.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java b/play-services-location-api/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/places/NearbyAlertRequest.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/Place.java b/play-services-location-api/src/main/java/com/google/android/gms/location/places/Place.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/places/Place.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/places/Place.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceFilter.java b/play-services-location-api/src/main/java/com/google/android/gms/location/places/PlaceFilter.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/places/PlaceFilter.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/places/PlaceFilter.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java b/play-services-location-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/places/PlaceReport.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/PlaceRequest.java b/play-services-location-api/src/main/java/com/google/android/gms/location/places/PlaceRequest.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/places/PlaceRequest.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/places/PlaceRequest.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java b/play-services-location-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/places/UserAddedPlace.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/UserDataType.java b/play-services-location-api/src/main/java/com/google/android/gms/location/places/UserDataType.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/places/UserDataType.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/places/UserDataType.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlaceImpl.java b/play-services-location-api/src/main/java/com/google/android/gms/location/places/internal/PlaceImpl.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlaceImpl.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/places/internal/PlaceImpl.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java b/play-services-location-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/places/internal/PlacesParams.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java b/play-services-location-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/reporting/ReportingState.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/reporting/UploadRequest.java b/play-services-location-api/src/main/java/com/google/android/gms/location/reporting/UploadRequest.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/reporting/UploadRequest.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/reporting/UploadRequest.java diff --git a/play-services-api/src/main/java/com/google/android/gms/location/reporting/UploadRequestResult.java b/play-services-location-api/src/main/java/com/google/android/gms/location/reporting/UploadRequestResult.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/location/reporting/UploadRequestResult.java rename to play-services-location-api/src/main/java/com/google/android/gms/location/reporting/UploadRequestResult.java diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java b/play-services-location-api/src/main/java/com/google/android/gms/maps/model/LatLng.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/maps/model/LatLng.java rename to play-services-location-api/src/main/java/com/google/android/gms/maps/model/LatLng.java diff --git a/play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java b/play-services-location-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java rename to play-services-location-api/src/main/java/com/google/android/gms/maps/model/LatLngBounds.java diff --git a/play-services-api/src/main/java/org/microg/gms/location/LocationConstants.java b/play-services-location-api/src/main/java/org/microg/gms/location/LocationConstants.java similarity index 100% rename from play-services-api/src/main/java/org/microg/gms/location/LocationConstants.java rename to play-services-location-api/src/main/java/org/microg/gms/location/LocationConstants.java diff --git a/play-services-wearable-api/build.gradle b/play-services-wearable-api/build.gradle new file mode 100644 index 00000000..47f513a0 --- /dev/null +++ b/play-services-wearable-api/build.gradle @@ -0,0 +1,55 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.1.2' + } +} + +apply plugin: 'com.android.library' + +String getMyVersionName() { + def stdout = new ByteArrayOutputStream() + if (rootProject.file("gradlew").exists()) + exec { commandLine 'git', 'describe', '--tags', '--always', '--dirty'; standardOutput = stdout } + else // automatic build system, don't tag dirty + exec { commandLine 'git', 'describe', '--tags', '--always'; standardOutput = stdout } + return stdout.toString().trim().substring(1) +} + +group = 'org.microg' +version = getMyVersionName() + +android { + compileSdkVersion 23 + buildToolsVersion "23.0.3" + + defaultConfig { + versionName getMyVersionName() + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_6 + } +} + +dependencies { + compile project(':play-services-common-api') +} diff --git a/play-services-wearable-api/src/main/AndroidManifest.xml b/play-services-wearable-api/src/main/AndroidManifest.xml new file mode 100644 index 00000000..9ab8979d --- /dev/null +++ b/play-services-wearable-api/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/Asset.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/Asset.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/Asset.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/Asset.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/ConnectionConfiguration.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/ConnectionConfiguration.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/ConnectionConfiguration.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/ConnectionConfiguration.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AddListenerRequest.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/AddListenerRequest.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AddListenerRequest.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/AddListenerRequest.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AncsNotificationParcelable.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/AncsNotificationParcelable.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/AncsNotificationParcelable.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/AncsNotificationParcelable.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/ChannelEventParcelable.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/ChannelEventParcelable.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/ChannelEventParcelable.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/ChannelEventParcelable.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigResponse.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigResponse.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigResponse.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigResponse.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigsResponse.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigsResponse.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigsResponse.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConfigsResponse.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetDataItemResponse.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/GetDataItemResponse.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetDataItemResponse.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/GetDataItemResponse.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetFdForAssetResponse.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/GetFdForAssetResponse.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetFdForAssetResponse.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/GetFdForAssetResponse.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetLocalNodeResponse.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/GetLocalNodeResponse.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/GetLocalNodeResponse.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/GetLocalNodeResponse.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IChannelStreamCallbacks.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/IChannelStreamCallbacks.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IChannelStreamCallbacks.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/IChannelStreamCallbacks.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableCallbacks.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableListener.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/MessageEventParcelable.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/MessageEventParcelable.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/MessageEventParcelable.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/MessageEventParcelable.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/NodeParcelable.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/NodeParcelable.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/NodeParcelable.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/NodeParcelable.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataRequest.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataRequest.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataRequest.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataRequest.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataResponse.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataResponse.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataResponse.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/PutDataResponse.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/RemoveListenerRequest.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/RemoveListenerRequest.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/RemoveListenerRequest.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/RemoveListenerRequest.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/SendMessageResponse.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/SendMessageResponse.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/SendMessageResponse.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/SendMessageResponse.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/StorageInfoResponse.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/StorageInfoResponse.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/wearable/internal/StorageInfoResponse.aidl rename to play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/StorageInfoResponse.aidl diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/Asset.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/Asset.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/Asset.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/ConnectionConfiguration.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/DataItem.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/DataItem.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/DataItem.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/DataItem.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/DataItemAsset.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/DataItemAsset.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/DataItemAsset.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/DataItemAsset.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/MessageEvent.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/MessageEvent.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/MessageEvent.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/MessageEvent.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/Node.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/Node.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/Node.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/Node.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/WearableStatusCodes.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AddListenerRequest.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/DataItemAssetParcelable.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/DataItemParcelable.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/DeleteDataItemsResponse.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/GetCloudSyncSettingResponse.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigResponse.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigResponse.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigResponse.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigResponse.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigsResponse.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigsResponse.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigsResponse.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/GetConfigsResponse.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/GetConnectedNodesResponse.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetDataItemResponse.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/GetDataItemResponse.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetDataItemResponse.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/GetDataItemResponse.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/GetFdForAssetResponse.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetLocalNodeResponse.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/GetLocalNodeResponse.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/GetLocalNodeResponse.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/GetLocalNodeResponse.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/MessageEventParcelable.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/NodeParcelable.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/PutDataRequest.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataResponse.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/PutDataResponse.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/PutDataResponse.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/PutDataResponse.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/RemoveListenerRequest.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/RemoveListenerRequest.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/RemoveListenerRequest.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/RemoveListenerRequest.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java diff --git a/play-services-api/src/main/java/com/google/android/gms/wearable/internal/StorageInfoResponse.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/StorageInfoResponse.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/wearable/internal/StorageInfoResponse.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/StorageInfoResponse.java diff --git a/settings.gradle b/settings.gradle index 22f70d94..7a2ffd82 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,6 @@ include ':play-services-api' +include ':play-services-cast-api' +include ':play-services-common-api' +include ':play-services-location-api' +include ':play-services-wearable-api' include ':safe-parcel' From 4eaec4e534ba4c161e3245eb8d693c6ba9112490 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Fri, 5 Aug 2016 16:13:51 +0200 Subject: [PATCH 106/170] Fix typo #4 --- .../google/android/gms/wearable/internal/IWearableService.aidl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl index 4b0acb5f..c449ee36 100644 --- a/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl +++ b/play-services-wearable-api/src/main/aidl/com/google/android/gms/wearable/internal/IWearableService.aidl @@ -42,7 +42,7 @@ interface IWearableService { void addListener(IWearableCallbacks callbacks, in AddListenerRequest request) = 15; void removeListener(IWearableCallbacks callbacks, in RemoveListenerRequest request) = 16; - void getStrorageInformation(IWearableCallbacks callbacks) = 17; + void getStorageInformation(IWearableCallbacks callbacks) = 17; void clearStorage(IWearableCallbacks callbacks) = 18; void endCall(IWearableCallbacks callbacks) = 24; From 59558720d9120a6d15d5db793ab376b009572427 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sat, 6 Aug 2016 16:16:12 +0200 Subject: [PATCH 107/170] Extract play-services-iid-api --- play-services-api/build.gradle | 1 + .../java/org/microg/gms/gcm/GcmConstants.java | 0 play-services-iid-api/build.gradle | 55 +++++++++++++++++++ .../src/main/AndroidManifest.xml | 24 ++++++++ .../android/gms/iid/IMessengerCompat.aidl | 0 .../android/gms/iid/MessengerCompat.java | 0 settings.gradle | 1 + 7 files changed, 81 insertions(+) rename {play-services-api => play-services-common-api}/src/main/java/org/microg/gms/gcm/GcmConstants.java (100%) create mode 100644 play-services-iid-api/build.gradle create mode 100644 play-services-iid-api/src/main/AndroidManifest.xml rename {play-services-api => play-services-iid-api}/src/main/aidl/com/google/android/gms/iid/IMessengerCompat.aidl (100%) rename {play-services-api => play-services-iid-api}/src/main/java/com/google/android/gms/iid/MessengerCompat.java (100%) diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index 5b5dd33e..9b97d190 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -53,6 +53,7 @@ android { dependencies { compile project(':play-services-cast-api') compile project(':play-services-common-api') + compile project(':play-services-iid-api') compile project(':play-services-location-api') compile project(':play-services-wearable-api') } diff --git a/play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java b/play-services-common-api/src/main/java/org/microg/gms/gcm/GcmConstants.java similarity index 100% rename from play-services-api/src/main/java/org/microg/gms/gcm/GcmConstants.java rename to play-services-common-api/src/main/java/org/microg/gms/gcm/GcmConstants.java diff --git a/play-services-iid-api/build.gradle b/play-services-iid-api/build.gradle new file mode 100644 index 00000000..47f513a0 --- /dev/null +++ b/play-services-iid-api/build.gradle @@ -0,0 +1,55 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.1.2' + } +} + +apply plugin: 'com.android.library' + +String getMyVersionName() { + def stdout = new ByteArrayOutputStream() + if (rootProject.file("gradlew").exists()) + exec { commandLine 'git', 'describe', '--tags', '--always', '--dirty'; standardOutput = stdout } + else // automatic build system, don't tag dirty + exec { commandLine 'git', 'describe', '--tags', '--always'; standardOutput = stdout } + return stdout.toString().trim().substring(1) +} + +group = 'org.microg' +version = getMyVersionName() + +android { + compileSdkVersion 23 + buildToolsVersion "23.0.3" + + defaultConfig { + versionName getMyVersionName() + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_6 + } +} + +dependencies { + compile project(':play-services-common-api') +} diff --git a/play-services-iid-api/src/main/AndroidManifest.xml b/play-services-iid-api/src/main/AndroidManifest.xml new file mode 100644 index 00000000..fa9ea1be --- /dev/null +++ b/play-services-iid-api/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/play-services-api/src/main/aidl/com/google/android/gms/iid/IMessengerCompat.aidl b/play-services-iid-api/src/main/aidl/com/google/android/gms/iid/IMessengerCompat.aidl similarity index 100% rename from play-services-api/src/main/aidl/com/google/android/gms/iid/IMessengerCompat.aidl rename to play-services-iid-api/src/main/aidl/com/google/android/gms/iid/IMessengerCompat.aidl diff --git a/play-services-api/src/main/java/com/google/android/gms/iid/MessengerCompat.java b/play-services-iid-api/src/main/java/com/google/android/gms/iid/MessengerCompat.java similarity index 100% rename from play-services-api/src/main/java/com/google/android/gms/iid/MessengerCompat.java rename to play-services-iid-api/src/main/java/com/google/android/gms/iid/MessengerCompat.java diff --git a/settings.gradle b/settings.gradle index 7a2ffd82..b13b2661 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,6 +1,7 @@ include ':play-services-api' include ':play-services-cast-api' include ':play-services-common-api' +include ':play-services-iid-api' include ':play-services-location-api' include ':play-services-wearable-api' include ':safe-parcel' From be6af2eeb76ba4bcc1700285f2ba87f217ab6ac2 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 7 Aug 2016 14:32:40 +0200 Subject: [PATCH 108/170] Add more instance id specific constants for gcm --- .../main/java/org/microg/gms/gcm/GcmConstants.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/play-services-common-api/src/main/java/org/microg/gms/gcm/GcmConstants.java b/play-services-common-api/src/main/java/org/microg/gms/gcm/GcmConstants.java index f035c1ba..317c74ad 100644 --- a/play-services-common-api/src/main/java/org/microg/gms/gcm/GcmConstants.java +++ b/play-services-common-api/src/main/java/org/microg/gms/gcm/GcmConstants.java @@ -30,6 +30,10 @@ public final class GcmConstants { public static final String ACTION_INSTANCE_ID = "com.google.android.gms.iid.InstanceID"; public static final String EXTRA_APP = "app"; + public static final String EXTRA_APP_ID = "appid"; + public static final String EXTRA_APP_VERSION_CODE = "app_ver"; + public static final String EXTRA_APP_VERSION_NAME = "app_ver_name"; + public static final String EXTRA_CLIENT_VERSION = "cliv"; public static final String EXTRA_COMPONENT = "component"; public static final String EXTRA_COLLAPSE_KEY = "collapse_key"; public static final String EXTRA_DELAY = "google.delay"; @@ -37,10 +41,15 @@ public final class GcmConstants { public static final String EXTRA_ERROR = "error"; public static final String EXTRA_FROM = "from"; public static final String EXTRA_GSF_INTENT = "GSF"; + public static final String EXTRA_GMS_VERSION = "gmsv"; + public static final String EXTRA_IS_MESSENGER2 = "messenger2"; + public static final String EXTRA_KID = "kid"; public static final String EXTRA_MESSENGER = "google.messenger"; public static final String EXTRA_MESSAGE_TYPE = "message_type"; public static final String EXTRA_MESSAGE_ID = "google.message_id"; + public static final String EXTRA_OS_VERSION = "osv"; public static final String EXTRA_PENDING_INTENT = "com.google.android.gms.gcm.PENDING_INTENT"; + public static final String EXTRA_PUBLIC_KEY = "pub2"; public static final String EXTRA_RAWDATA = "rawData"; public static final String EXTRA_RAWDATA_BASE64 = "gcm.rawData64"; public static final String EXTRA_REGISTRATION_ID = "registration_id"; @@ -51,8 +60,10 @@ public final class GcmConstants { public static final String EXTRA_SENDER_LEGACY = "legacy.sender"; public static final String EXTRA_SEND_TO = "google.to"; public static final String EXTRA_SEND_FROM = "google.from"; + public static final String EXTRA_SIGNATURE = "sig"; public static final String EXTRA_SUBSCIPTION = "subscription"; public static final String EXTRA_SUBTYPE = "subtype"; + public static final String EXTRA_USE_GSF = "useGsf"; public static final String EXTRA_TAG = "tag"; public static final String EXTRA_TOPIC = "gcm.topic"; public static final String EXTRA_TTL = "google.ttl"; From 252718585f32befa17b1d85b82871fa0bff11fc4 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 7 Aug 2016 20:37:16 +0200 Subject: [PATCH 109/170] Rename common-api to basement, Move ChannelApi to Api classes --- play-services-api/build.gradle | 2 +- .../build.gradle | 1 + .../src/main/AndroidManifest.xml | 0 .../google/android/gms/common/api/Status.aidl | 0 .../android/gms/common/data/DataHolder.aidl | 0 .../common/internal/GetServiceRequest.aidl | 0 .../gms/common/internal/ICancelToken.aidl | 0 .../gms/common/internal/IGmsCallbacks.aidl | 0 .../common/internal/IGmsServiceBroker.aidl | 0 .../common/internal/ISignInButtonCreator.aidl | 0 .../internal/ValidateAccountRequest.aidl | 0 .../common/server/FavaDiagnosticsEntity.aidl | 0 .../android/gms/dynamic/IObjectWrapper.aidl | 0 .../android/gms/common/ConnectionResult.java | 310 +++++++++++ .../com/google/android/gms/common/Scopes.java | 0 .../android/gms/common/api/AccountInfo.java | 0 .../google/android/gms/common/api/Api.java | 84 +++ .../gms/common/api/CommonStatusCodes.java | 0 .../gms/common/api/GoogleApiClient.java | 494 ++++++++++++++++++ .../android/gms/common/api/PendingResult.java | 59 +++ .../android/gms/common/api/Releasable.java | 24 + .../google/android/gms/common/api/Result.java | 0 .../gms/common/api/ResultCallback.java | 33 ++ .../google/android/gms/common/api/Scope.java | 0 .../google/android/gms/common/api/Status.java | 0 .../android/gms/common/data/DataHolder.java | 0 .../android/gms/common/data/Freezable.java | 0 .../android/gms/common/images/WebImage.java | 0 .../gms/common/internal/BinderWrapper.java | 0 .../common/internal/GetServiceRequest.java | 0 .../internal/ValidateAccountRequest.java | 0 .../common/server/FavaDiagnosticsEntity.java | 0 .../android/gms/dynamic/ObjectWrapper.java | 0 .../org/microg/gms/auth/AuthConstants.java | 0 .../java/org/microg/gms/common/Constants.java | 0 .../org/microg/gms/common/GmsService.java | 0 .../java/org/microg/gms/common/PublicApi.java | 0 .../org/microg/gms/common/api/ApiBuilder.java | 30 ++ .../microg/gms/common/api/ApiConnection.java | 27 + .../gms/common/api/GoogleApiClientImpl.java | 223 ++++++++ .../java/org/microg/gms/gcm/GcmConstants.java | 0 play-services-cast-api/build.gradle | 2 +- play-services-iid-api/build.gradle | 2 +- play-services-location-api/build.gradle | 2 +- play-services-wearable-api/build.gradle | 2 +- .../google/android/gms/wearable/Channel.java | 94 ++++ .../android/gms/wearable/ChannelApi.java | 185 +++++++ .../wearable/internal/AmsEntityUpdate.java | 20 + .../internal/AmsEntityUpdateParcelable.java | 2 +- .../wearable/internal/AncsNotification.java | 20 + .../internal/AncsNotificationParcelable.java | 2 +- .../internal/ChannelEventParcelable.java | 15 + settings.gradle | 2 +- 53 files changed, 1627 insertions(+), 8 deletions(-) rename {play-services-common-api => play-services-basement}/build.gradle (97%) rename {play-services-common-api => play-services-basement}/src/main/AndroidManifest.xml (100%) rename {play-services-common-api => play-services-basement}/src/main/aidl/com/google/android/gms/common/api/Status.aidl (100%) rename {play-services-common-api => play-services-basement}/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl (100%) rename {play-services-common-api => play-services-basement}/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl (100%) rename {play-services-common-api => play-services-basement}/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl (100%) rename {play-services-common-api => play-services-basement}/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl (100%) rename {play-services-common-api => play-services-basement}/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl (100%) rename {play-services-common-api => play-services-basement}/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl (100%) rename {play-services-common-api => play-services-basement}/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl (100%) rename {play-services-common-api => play-services-basement}/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl (100%) rename {play-services-common-api => play-services-basement}/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl (100%) create mode 100644 play-services-basement/src/main/java/com/google/android/gms/common/ConnectionResult.java rename {play-services-common-api => play-services-basement}/src/main/java/com/google/android/gms/common/Scopes.java (100%) rename {play-services-common-api => play-services-basement}/src/main/java/com/google/android/gms/common/api/AccountInfo.java (100%) create mode 100644 play-services-basement/src/main/java/com/google/android/gms/common/api/Api.java rename {play-services-common-api => play-services-basement}/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java (100%) create mode 100644 play-services-basement/src/main/java/com/google/android/gms/common/api/GoogleApiClient.java create mode 100644 play-services-basement/src/main/java/com/google/android/gms/common/api/PendingResult.java create mode 100644 play-services-basement/src/main/java/com/google/android/gms/common/api/Releasable.java rename {play-services-common-api => play-services-basement}/src/main/java/com/google/android/gms/common/api/Result.java (100%) create mode 100644 play-services-basement/src/main/java/com/google/android/gms/common/api/ResultCallback.java rename {play-services-common-api => play-services-basement}/src/main/java/com/google/android/gms/common/api/Scope.java (100%) rename {play-services-common-api => play-services-basement}/src/main/java/com/google/android/gms/common/api/Status.java (100%) rename {play-services-common-api => play-services-basement}/src/main/java/com/google/android/gms/common/data/DataHolder.java (100%) rename {play-services-common-api => play-services-basement}/src/main/java/com/google/android/gms/common/data/Freezable.java (100%) rename {play-services-common-api => play-services-basement}/src/main/java/com/google/android/gms/common/images/WebImage.java (100%) rename {play-services-common-api => play-services-basement}/src/main/java/com/google/android/gms/common/internal/BinderWrapper.java (100%) rename {play-services-common-api => play-services-basement}/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java (100%) rename {play-services-common-api => play-services-basement}/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java (100%) rename {play-services-common-api => play-services-basement}/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java (100%) rename {play-services-common-api => play-services-basement}/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java (100%) rename {play-services-common-api => play-services-basement}/src/main/java/org/microg/gms/auth/AuthConstants.java (100%) rename {play-services-common-api => play-services-basement}/src/main/java/org/microg/gms/common/Constants.java (100%) rename {play-services-common-api => play-services-basement}/src/main/java/org/microg/gms/common/GmsService.java (100%) rename {play-services-common-api => play-services-basement}/src/main/java/org/microg/gms/common/PublicApi.java (100%) create mode 100644 play-services-basement/src/main/java/org/microg/gms/common/api/ApiBuilder.java create mode 100644 play-services-basement/src/main/java/org/microg/gms/common/api/ApiConnection.java create mode 100644 play-services-basement/src/main/java/org/microg/gms/common/api/GoogleApiClientImpl.java rename {play-services-common-api => play-services-basement}/src/main/java/org/microg/gms/gcm/GcmConstants.java (100%) create mode 100644 play-services-wearable-api/src/main/java/com/google/android/gms/wearable/Channel.java create mode 100644 play-services-wearable-api/src/main/java/com/google/android/gms/wearable/ChannelApi.java create mode 100644 play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdate.java create mode 100644 play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotification.java diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index 9b97d190..3e899acf 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -51,8 +51,8 @@ android { } dependencies { + compile project(':play-services-basement') compile project(':play-services-cast-api') - compile project(':play-services-common-api') compile project(':play-services-iid-api') compile project(':play-services-location-api') compile project(':play-services-wearable-api') diff --git a/play-services-common-api/build.gradle b/play-services-basement/build.gradle similarity index 97% rename from play-services-common-api/build.gradle rename to play-services-basement/build.gradle index f43af0a4..796ea36c 100644 --- a/play-services-common-api/build.gradle +++ b/play-services-basement/build.gradle @@ -56,5 +56,6 @@ android { } dependencies { + compile 'com.android.support:support-v4:23.4.0' compile project(':safe-parcel') } diff --git a/play-services-common-api/src/main/AndroidManifest.xml b/play-services-basement/src/main/AndroidManifest.xml similarity index 100% rename from play-services-common-api/src/main/AndroidManifest.xml rename to play-services-basement/src/main/AndroidManifest.xml diff --git a/play-services-common-api/src/main/aidl/com/google/android/gms/common/api/Status.aidl b/play-services-basement/src/main/aidl/com/google/android/gms/common/api/Status.aidl similarity index 100% rename from play-services-common-api/src/main/aidl/com/google/android/gms/common/api/Status.aidl rename to play-services-basement/src/main/aidl/com/google/android/gms/common/api/Status.aidl diff --git a/play-services-common-api/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl b/play-services-basement/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl similarity index 100% rename from play-services-common-api/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl rename to play-services-basement/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl diff --git a/play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl b/play-services-basement/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl similarity index 100% rename from play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl rename to play-services-basement/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl diff --git a/play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl b/play-services-basement/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl similarity index 100% rename from play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl rename to play-services-basement/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl diff --git a/play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl b/play-services-basement/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl similarity index 100% rename from play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl rename to play-services-basement/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl diff --git a/play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl b/play-services-basement/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl similarity index 100% rename from play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl rename to play-services-basement/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl diff --git a/play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl b/play-services-basement/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl similarity index 100% rename from play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl rename to play-services-basement/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl diff --git a/play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl b/play-services-basement/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl similarity index 100% rename from play-services-common-api/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl rename to play-services-basement/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl diff --git a/play-services-common-api/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl b/play-services-basement/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl similarity index 100% rename from play-services-common-api/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl rename to play-services-basement/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl diff --git a/play-services-common-api/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl b/play-services-basement/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl similarity index 100% rename from play-services-common-api/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl rename to play-services-basement/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/ConnectionResult.java b/play-services-basement/src/main/java/com/google/android/gms/common/ConnectionResult.java new file mode 100644 index 00000000..f6f75c1a --- /dev/null +++ b/play-services-basement/src/main/java/com/google/android/gms/common/ConnectionResult.java @@ -0,0 +1,310 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.common; + +import android.app.Activity; +import android.app.PendingIntent; +import android.content.Intent; +import android.content.IntentSender; +import android.text.TextUtils; + +import com.google.android.gms.common.api.GoogleApiClient; + +import java.util.Arrays; + +/** + * Contains all possible error codes for when a client fails to connect to Google Play services. + * These error codes are used by {@link GoogleApiClient.OnConnectionFailedListener}. + */ +public class ConnectionResult { + /** + * The connection was successful. + */ + public static final int SUCCESS = 0; + /** + * Google Play services is missing on this device. The calling activity should pass this error + * code to {@link GooglePlayServicesUtil#getErrorDialog(int, Activity, int)} to get a localized + * error dialog that will resolve the error when shown. + */ + public static final int SERVICE_MISSING = 1; + /** + * The installed version of Google Play services is out of date. The calling activity should + * pass this error code to {@link GooglePlayServicesUtil#getErrorDialog(int, Activity, int)} to + * get a localized error dialog that will resolve the error when shown. + */ + public static final int SERVICE_VERSION_UPDATE_REQUIRED = 2; + /** + * The installed version of Google Play services has been disabled on this device. The calling + * activity should pass this error code to + * {@link GooglePlayServicesUtil#getErrorDialog(int, Activity, int)} to get a localized error + * dialog that will resolve the error when shown. + */ + public static final int SERVICE_DISABLED = 3; + /** + * The client attempted to connect to the service but the user is not signed in. The client may + * choose to continue without using the API or it may call + * {@link #startResolutionForResult(Activity, int)} to prompt the user to sign in. After the + * sign in activity returns with {@link Activity#RESULT_OK} further attempts to connect should + * succeed. + */ + public static final int SIGN_IN_REQUIRED = 4; + /** + * The client attempted to connect to the service with an invalid account name specified. + */ + public static final int INVALID_ACCOUNT = 5; + /** + * Completing the connection requires some form of resolution. A resolution will be available + * to be started with {@link #startResolutionForResult(Activity, int)}. If the result returned + * is {@link Activity#RESULT_OK}, then further attempts to connect should either complete or + * continue on to the next issue that needs to be resolved. + */ + public static final int RESOLUTION_REQUIRED = 6; + /** + * A network error occurred. Retrying should resolve the problem. + */ + public static final int NETWORK_ERROR = 7; + /** + * An internal error occurred. Retrying should resolve the problem. + */ + public static final int INTERNAL_ERROR = 8; + /** + * The version of the Google Play services installed on this device is not authentic. + */ + public static final int SERVICE_INVALID = 9; + /** + * The application is misconfigured. This error is not recoverable and will be treated as + * fatal. The developer should look at the logs after this to determine more actionable + * information. + */ + public static final int DEVELOPER_ERROR = 10; + /** + * The application is not licensed to the user. This error is not recoverable and will be + * treated as fatal. + */ + public static final int LICENSE_CHECK_FAILED = 11; + /** + * The client canceled the connection by calling {@link GoogleApiClient#disconnect()}. + * Only returned by {@link GoogleApiClient#blockingConnect()}. + */ + public static final int CANCELED = 13; + /** + * The timeout was exceeded while waiting for the connection to complete. Only returned by + * {@link GoogleApiClient#blockingConnect()}. + */ + public static final int TIMEOUT = 14; + /** + * An interrupt occurred while waiting for the connection complete. Only returned by + * {@link GoogleApiClient#blockingConnect()}. + */ + public static final int INTERRUPTED = 15; + /** + * One of the API components you attempted to connect to is not available. The API will not + * work on this device, and updating Google Play services will not likely solve the problem. + * Using the API on the device should be avoided. + */ + public static final int API_UNAVAILABLE = 16; + + /** + * The Drive API requires external storage (such as an SD card), but no external storage is + * mounted. This error is recoverable if the user installs external storage (if none is + * present) and ensures that it is mounted (which may involve disabling USB storage mode, + * formatting the storage, or other initialization as required by the device). + *

+ * This error should never be returned on a device with emulated external storage. On devices + * with emulated external storage, the emulated "external storage" is always present regardless + * of whether the device also has removable storage. + */ + @Deprecated + public static final int DRIVE_EXTERNAL_STORAGE_REQUIRED = 1500; + + private final int statusCode; + private final PendingIntent pendingIntent; + private final String message; + + /** + * Creates a connection result. + * + * @param statusCode The status code. + */ + public ConnectionResult(int statusCode) { + this(statusCode, null); + } + + /** + * Creates a connection result. + * + * @param statusCode The status code. + * @param pendingIntent A pending intent that will resolve the issue when started, or null. + */ + public ConnectionResult(int statusCode, PendingIntent pendingIntent) { + this(statusCode, pendingIntent, getStatusString(statusCode)); + } + + /** + * Creates a connection result. + * + * @param statusCode The status code. + * @param pendingIntent A pending intent that will resolve the issue when started, or null. + * @param message An additional error message for the connection result, or null. + */ + public ConnectionResult(int statusCode, PendingIntent pendingIntent, String message) { + this.statusCode = statusCode; + this.pendingIntent = pendingIntent; + this.message = message; + } + + static String getStatusString(int statusCode) { + switch (statusCode) { + case -1: + return "UNKNOWN"; + case 0: + return "SUCCESS"; + case 1: + return "SERVICE_MISSING"; + case 2: + return "SERVICE_VERSION_UPDATE_REQUIRED"; + case 3: + return "SERVICE_DISABLED"; + case 4: + return "SIGN_IN_REQUIRED"; + case 5: + return "INVALID_ACCOUNT"; + case 6: + return "RESOLUTION_REQUIRED"; + case 7: + return "NETWORK_ERROR"; + case 8: + return "INTERNAL_ERROR"; + case 9: + return "SERVICE_INVALID"; + case 10: + return "DEVELOPER_ERROR"; + case 11: + return "LICENSE_CHECK_FAILED"; + case 13: + return "CANCELED"; + case 14: + return "TIMEOUT"; + case 15: + return "INTERRUPTED"; + case 16: + return "API_UNAVAILABLE"; + case 17: + return "SIGN_IN_FAILED"; + case 18: + return "SERVICE_UPDATING"; + case 19: + return "SERVICE_MISSING_PERMISSION"; + case 20: + return "RESTRICTED_PROFILE"; + case 21: + return "API_VERSION_UPDATE_REQUIRED"; + case 42: + return "UPDATE_ANDROID_WEAR"; + case 99: + return "UNFINISHED"; + case 1500: + return "DRIVE_EXTERNAL_STORAGE_REQUIRED"; + default: + return "UNKNOWN_ERROR_CODE(" + statusCode + ")"; + } + } + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } else if (!(o instanceof ConnectionResult)) { + return false; + } else { + ConnectionResult r = (ConnectionResult)o; + return statusCode == r.statusCode && pendingIntent == null ? r.pendingIntent == null : pendingIntent.equals(r.pendingIntent) && TextUtils.equals(message, r.message); + } + } + + /** + * Indicates the type of error that interrupted connection. + * + * @return the error code, or {@link #SUCCESS} if no error occurred. + */ + public int getErrorCode() { + return statusCode; + } + + /** + * Returns an error message for connection result. + * + * @return the message + */ + public String getErrorMessage() { + return message; + } + + /** + * A pending intent to resolve the connection failure. This intent can be started with + * {@link Activity#startIntentSenderForResult(IntentSender, int, Intent, int, int, int)} to + * present UI to solve the issue. + * + * @return The pending intent to resolve the connection failure. + */ + public PendingIntent getResolution() { + return pendingIntent; + } + + @Override + public int hashCode() { + return Arrays.hashCode(new Object[]{statusCode, pendingIntent, message}); + } + + /** + * Returns {@code true} if calling {@link #startResolutionForResult(Activity, int)} will start + * any intents requiring user interaction. + * + * @return {@code true} if there is a resolution that can be started. + */ + public boolean hasResolution() { + return statusCode != 0 && pendingIntent != null; + } + + /** + * Returns {@code true} if the connection was successful. + * + * @return {@code true} if the connection was successful, {@code false} if there was an error. + */ + public boolean isSuccess() { + return statusCode == 0; + } + + /** + * Resolves an error by starting any intents requiring user interaction. See + * {@link #SIGN_IN_REQUIRED}, and {@link #RESOLUTION_REQUIRED}. + * + * @param activity An Activity context to use to resolve the issue. The activity's + * {@link Activity#onActivityResult} method will be invoked after the user + * is done. If the resultCode is {@link Activity#RESULT_OK}, the application + * should try to connect again. + * @param requestCode The request code to pass to {@link Activity#onActivityResult}. + * @throws IntentSender.SendIntentException If the resolution intent has been canceled or is no + * longer able to execute the request. + */ + public void startResolutionForResult(Activity activity, int requestCode) throws + IntentSender.SendIntentException { + if (hasResolution()) { + activity.startIntentSenderForResult(pendingIntent.getIntentSender(), requestCode, null, 0, 0, 0); + } + } +} diff --git a/play-services-common-api/src/main/java/com/google/android/gms/common/Scopes.java b/play-services-basement/src/main/java/com/google/android/gms/common/Scopes.java similarity index 100% rename from play-services-common-api/src/main/java/com/google/android/gms/common/Scopes.java rename to play-services-basement/src/main/java/com/google/android/gms/common/Scopes.java diff --git a/play-services-common-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/AccountInfo.java similarity index 100% rename from play-services-common-api/src/main/java/com/google/android/gms/common/api/AccountInfo.java rename to play-services-basement/src/main/java/com/google/android/gms/common/api/AccountInfo.java diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/api/Api.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/Api.java new file mode 100644 index 00000000..1b0f03f2 --- /dev/null +++ b/play-services-basement/src/main/java/com/google/android/gms/common/api/Api.java @@ -0,0 +1,84 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.common.api; + +import org.microg.gms.common.PublicApi; +import org.microg.gms.common.api.ApiBuilder; + +/** + * Describes a section of the Google Play Services API that should be made available. Instances of + * this should be passed into {@link GoogleApiClient.Builder#addApi(Api)} to enable the appropriate + * parts of Google Play Services. + *

+ * Google APIs are partitioned into sections which allow your application to configure only the + * services it requires. Each Google API provides an API object which can be passed to + * {@link GoogleApiClient.Builder#addApi(Api)} in order to configure and enable that functionality + * in your {@link GoogleApiClient} instance. + *

+ * See {@link GoogleApiClient.Builder} for usage examples. + */ +@PublicApi +public final class Api { + + private final ApiBuilder builder; + + @PublicApi(exclude = true) + public Api(ApiBuilder builder) { + this.builder = builder; + } + + @PublicApi(exclude = true) + public ApiBuilder getBuilder() { + return builder; + } + + /** + * Base interface for API options. These are used to configure specific parameters for + * individual API surfaces. The default implementation has no parameters. + */ + @PublicApi + public interface ApiOptions { + /** + * Base interface for {@link ApiOptions} in {@link Api}s that have options. + */ + @PublicApi + interface HasOptions extends ApiOptions { + } + + /** + * Base interface for {@link ApiOptions} that are not required, don't exist. + */ + @PublicApi + interface NotRequiredOptions extends ApiOptions { + } + + /** + * {@link ApiOptions} implementation for {@link Api}s that do not take any options. + */ + @PublicApi + final class NoOptions implements NotRequiredOptions { + } + + /** + * Base interface for {@link ApiOptions} that are optional. + */ + @PublicApi + interface Optional extends HasOptions, NotRequiredOptions { + } + } + +} diff --git a/play-services-common-api/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java similarity index 100% rename from play-services-common-api/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java rename to play-services-basement/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/api/GoogleApiClient.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/GoogleApiClient.java new file mode 100644 index 00000000..87b05d6b --- /dev/null +++ b/play-services-basement/src/main/java/com/google/android/gms/common/api/GoogleApiClient.java @@ -0,0 +1,494 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.common.api; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +import android.support.v4.app.FragmentActivity; +import android.view.View; + +import com.google.android.gms.common.ConnectionResult; + +import org.microg.gms.auth.AuthConstants; +import org.microg.gms.common.PublicApi; +import org.microg.gms.common.api.GoogleApiClientImpl; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +/** + * The main entry point for Google Play services integration. + *

+ * GoogleApiClient is used with a variety of static methods. Some of these methods require that + * GoogleApiClient be connected, some will queue up calls before GoogleApiClient is connected; + * check the specific API documentation to determine whether you need to be connected. + *

+ * Before any operation is executed, the GoogleApiClient must be connected using the + * {@link #connect()} method. The client is not considered connected until the + * {@link ConnectionCallbacks#onConnected(Bundle)} callback has been called. + *

+ * When your app is done using this client, call {@link #disconnect()}, even if the async result + * from {@link #connect()} has not yet been delivered. + *

+ * You should instantiate a client object in your Activity's {@link Activity#onCreate(Bundle)} + * method and then call {@link #connect()} in {@link Activity#onStart()} and {@link #disconnect()} + * in {@link Activity#onStop()}, regardless of the state. + */ +@PublicApi +public interface GoogleApiClient { + /** + * Connects the client to Google Play services. Blocks until the connection either succeeds or + * fails. This is not allowed on the UI thread. + * + * @return the result of the connection + */ + ConnectionResult blockingConnect(); + + /** + * Connects the client to Google Play services. Blocks until the connection is set or failed or + * has timed out. This is not allowed on the UI thread. + * + * @param timeout the maximum time to wait + * @param unit the time unit of the {@code timeout} argument + * @return the result of the connection + */ + ConnectionResult blockingConnect(long timeout, TimeUnit unit); + + /** + * Clears the account selected by the user and reconnects the client asking the user to pick an + * account again if {@link Builder#useDefaultAccount()} was set. + * + * @return the pending result is fired once the default account has been cleared, but before + * the client is reconnected - for that {@link ConnectionCallbacks} can be used. + */ + PendingResult clearDefaultAccountAndReconnect(); + + /** + * Connects the client to Google Play services. This method returns immediately, and connects + * to the service in the background. If the connection is successful, + * {@link ConnectionCallbacks#onConnected(Bundle)} is called and enqueued items are executed. + * On a failure, {@link OnConnectionFailedListener#onConnectionFailed(ConnectionResult)} is + * called. + */ + void connect(); + + /** + * Closes the connection to Google Play services. No calls can be made using this client after + * calling this method. Any method calls that haven't executed yet will be canceled. That is + * {@link ResultCallback#onResult(Result)} won't be called, if connection to the service hasn't + * been established yet all calls already made will be canceled. + * + * @see #connect() + */ + void disconnect(); + + /** + * Checks if the client is currently connected to the service, so that requests to other + * methods will succeed. Applications should guard client actions caused by the user with a + * call to this method. + * + * @return {@code true} if the client is connected to the service. + */ + boolean isConnected(); + + /** + * Checks if the client is attempting to connect to the service. + * + * @return {@code true} if the client is attempting to connect to the service. + */ + boolean isConnecting(); + + /** + * Returns {@code true} if the specified listener is currently registered to receive connection + * events. + * + * @param listener The listener to check for. + * @return {@code true} if the specified listener is currently registered to receive connection + * events. + * @see #registerConnectionCallbacks(ConnectionCallbacks) + * @see #unregisterConnectionCallbacks(ConnectionCallbacks) + */ + boolean isConnectionCallbacksRegistered(ConnectionCallbacks listener); + + /** + * Returns {@code true} if the specified listener is currently registered to receive connection + * failed events. + * + * @param listener The listener to check for. + * @return {@code true} if the specified listener is currently registered to receive connection + * failed events. + * @see #registerConnectionFailedListener(OnConnectionFailedListener) + * @see #unregisterConnectionFailedListener(OnConnectionFailedListener) + */ + public boolean isConnectionFailedListenerRegistered(OnConnectionFailedListener listener); + + /** + * Closes the current connection to Google Play services and creates a new connection. + *

+ * This method closes the current connection then returns immediately and reconnects to the + * service in the background. + *

+ * After calling this method, your application will receive + * {@link ConnectionCallbacks#onConnected(Bundle)} if the connection is successful, or + * {@link OnConnectionFailedListener#onConnectionFailed(ConnectionResult)} if the connection + * failed. + * + * @see #connect() + * @see #disconnect() + */ + void reconnect(); + + /** + * Registers a listener to receive connection events from this {@link GoogleApiClient}. If the + * service is already connected, the listener's {@link ConnectionCallbacks#onConnected(Bundle)} + * method will be called immediately. Applications should balance calls to this method with + * calls to {@link #unregisterConnectionCallbacks(ConnectionCallbacks)} to avoid leaking + * resources. + *

+ * If the specified listener is already registered to receive connection events, this method + * will not add a duplicate entry for the same listener, but will still call the listener's + * {@link ConnectionCallbacks#onConnected(Bundle)} method if currently connected. + *

+ * Note that the order of messages received here may not be stable, so clients should not rely + * on the order that multiple listeners receive events in. + * + * @param listener the listener where the results of the asynchronous {@link #connect()} call + * are delivered. + */ + void registerConnectionCallbacks(ConnectionCallbacks listener); + + /** + * Registers a listener to receive connection failed events from this {@link GoogleApiClient}. + * Unlike {@link #registerConnectionCallbacks(ConnectionCallbacks)}, if the service is not + * already connected, the listener's + * {@link OnConnectionFailedListener#onConnectionFailed(ConnectionResult)} method will not be + * called immediately. Applications should balance calls to this method with calls to + * {@link #unregisterConnectionFailedListener(OnConnectionFailedListener)} to avoid leaking + * resources. + *

+ * If the specified listener is already registered to receive connection failed events, this + * method will not add a duplicate entry for the same listener. + *

+ * Note that the order of messages received here may not be stable, so clients should not rely + * on the order that multiple listeners receive events in. + * + * @param listener the listener where the results of the asynchronous {@link #connect()} call + * are delivered. + */ + public void registerConnectionFailedListener(OnConnectionFailedListener listener); + + /** + * Disconnects the client and stops automatic lifecycle management. Use this before creating a + * new client (which might be necessary when switching accounts, changing the set of used APIs + * etc.). + *

+ * This method must be called from the main thread. + * + * @param lifecycleActivity the activity managing the client's lifecycle. + * @throws IllegalStateException if called from outside of the main thread. + * @see Builder#enableAutoManage(FragmentActivity, int, OnConnectionFailedListener) + */ + void stopAutoManager(FragmentActivity lifecycleActivity) throws IllegalStateException; + + /** + * Removes a connection listener from this {@link GoogleApiClient}. Note that removing a + * listener does not generate any callbacks. + *

+ * If the specified listener is not currently registered to receive connection events, this + * method will have no effect. + * + * @param listener the listener to unregister. + */ + void unregisterConnectionCallbacks(ConnectionCallbacks listener); + + /** + * Removes a connection failed listener from the {@link GoogleApiClient}. Note that removing a + * listener does not generate any callbacks. + *

+ * If the specified listener is not currently registered to receive connection failed events, + * this method will have no effect. + * + * @param listener the listener to unregister. + */ + void unregisterConnectionFailedListener(OnConnectionFailedListener listener); + + /** + * Builder to configure a {@link GoogleApiClient}. + */ + @PublicApi + class Builder { + private final Context context; + private final Map apis = new HashMap(); + private final Set connectionCallbacks = new HashSet(); + private final Set connectionFailedListeners = new HashSet(); + private final Set scopes = new HashSet(); + private String accountName; + private int clientId = -1; + private FragmentActivity fragmentActivity; + private Looper looper; + private int gravityForPopups; + private OnConnectionFailedListener unresolvedConnectionFailedListener; + private View viewForPopups; + + /** + * Builder to help construct the {@link GoogleApiClient} object. + * + * @param context The context to use for the connection. + */ + public Builder(Context context) { + this.context = context; + this.looper = context.getMainLooper(); + } + + /** + * Builder to help construct the {@link GoogleApiClient} object. + * + * @param context The context to use for the connection. + * @param connectedListener The listener where the results of the asynchronous + * {@link #connect()} call are delivered. + * @param connectionFailedListener The listener which will be notified if the connection + * attempt fails. + */ + public Builder(Context context, ConnectionCallbacks connectedListener, + OnConnectionFailedListener connectionFailedListener) { + this(context); + addConnectionCallbacks(connectedListener); + addOnConnectionFailedListener(connectionFailedListener); + } + + /** + * Specify which Apis are requested by your app. See {@link Api} for more information. + * + * @param api The Api requested by your app. + * @param options Any additional parameters required for the specific AP + * @see Api + */ + public Builder addApi(Api api, O options) { + apis.put(api, options); + return this; + } + + /** + * Specify which Apis are requested by your app. See {@link Api} for more information. + * + * @param api The Api requested by your app. + * @see Api + */ + public Builder addApi(Api api) { + apis.put(api, null); + return this; + } + + /** + * Registers a listener to receive connection events from this {@link GoogleApiClient}. + * Applications should balance calls to this method with calls to + * {@link #unregisterConnectionCallbacks(ConnectionCallbacks)} to avoid + * leaking resources. + *

+ * If the specified listener is already registered to receive connection events, this + * method will not add a duplicate entry for the same listener. + *

+ * Note that the order of messages received here may not be stable, so clients should not + * rely on the order that multiple listeners receive events in. + * + * @param listener the listener where the results of the asynchronous {@link #connect()} + * call are delivered. + */ + public Builder addConnectionCallbacks(ConnectionCallbacks listener) { + connectionCallbacks.add(listener); + return this; + } + + /** + * Adds a listener to register to receive connection failed events from this + * {@link GoogleApiClient}. Applications should balance calls to this method with calls to + * {@link #unregisterConnectionFailedListener(OnConnectionFailedListener)} to avoid + * leaking resources. + *

+ * If the specified listener is already registered to receive connection failed events, + * this method will not add a duplicate entry for the same listener. + *

+ * Note that the order of messages received here may not be stable, so clients should not + * rely on the order that multiple listeners receive events in. + * + * @param listener the listener where the results of the asynchronous {@link #connect()} + * call are delivered. + */ + public Builder addOnConnectionFailedListener(OnConnectionFailedListener listener) { + connectionFailedListeners.add(listener); + return this; + } + + /** + * Specify the OAuth 2.0 scopes requested by your app. See + * {@link com.google.android.gms.common.Scopes} for more information. + * + * @param scope The OAuth 2.0 scopes requested by your app. + * @see com.google.android.gms.common.Scopes + */ + public Builder addScope(Scope scope) { + scopes.add(scope.getScopeUri()); + return this; + } + + /** + * Builds a new {@link GoogleApiClient} object for communicating with the Google APIs. + * + * @return The {@link GoogleApiClient} object. + */ + public GoogleApiClient build() { + return new GoogleApiClientImpl(context, looper, getAccountInfo(), apis, + connectionCallbacks, connectionFailedListeners, clientId); + } + + private AccountInfo getAccountInfo() { + return null; + } + + public Builder enableAutoManage(FragmentActivity fragmentActivity, int cliendId, + OnConnectionFailedListener unresolvedConnectionFailedListener) + throws NullPointerException, IllegalArgumentException, IllegalStateException { + this.fragmentActivity = fragmentActivity; + this.clientId = cliendId; + this.unresolvedConnectionFailedListener = unresolvedConnectionFailedListener; + return this; + } + + /** + * Specify an account name on the device that should be used. If this is never called, the + * client will use the current default account for Google Play services for this + * application. + * + * @param accountName The account name on the device that should be used by + * {@link GoogleApiClient}. + */ + public Builder setAccountName(String accountName) { + this.accountName = accountName; + return this; + } + + /** + * Specifies the part of the screen at which games service popups (for example, + * "welcome back" or "achievement unlocked" popups) will be displayed using gravity. + * + * @param gravityForPopups The gravity which controls the placement of games service popups. + */ + public Builder setGravityForPopups(int gravityForPopups) { + this.gravityForPopups = gravityForPopups; + return this; + } + + /** + * Sets a {@link Handler} to indicate which thread to use when invoking callbacks. Will not + * be used directly to handle callbacks. If this is not called then the application's main + * thread will be used. + */ + public Builder setHandler(Handler handler) { + this.looper = handler.getLooper(); + return this; + } + + /** + * Sets the {@link View} to use as a content view for popups. + * + * @param viewForPopups The view to use as a content view for popups. View cannot be null. + */ + public Builder setViewForPopups(View viewForPopups) { + this.viewForPopups = viewForPopups; + return this; + } + + /** + * Specify that the default account should be used when connecting to services. + */ + public Builder useDefaultAccount() { + this.accountName = AuthConstants.DEFAULT_ACCOUNT; + return this; + } + } + + /** + * Provides callbacks that are called when the client is connected or disconnected from the + * service. Most applications implement {@link #onConnected(Bundle)} to start making requests. + */ + @PublicApi + interface ConnectionCallbacks { + /** + * A suspension cause informing that the service has been killed. + */ + int CAUSE_SERVICE_DISCONNECTED = 1; + /** + * A suspension cause informing you that a peer device connection was lost. + */ + int CAUSE_NETWORK_LOST = 2; + + /** + * After calling {@link #connect()}, this method will be invoked asynchronously when the + * connect request has successfully completed. After this callback, the application can + * make requests on other methods provided by the client and expect that no user + * intervention is required to call methods that use account and scopes provided to the + * client constructor. + *

+ * Note that the contents of the {@code connectionHint} Bundle are defined by the specific + * services. Please see the documentation of the specific implementation of + * {@link GoogleApiClient} you are using for more information. + * + * @param connectionHint Bundle of data provided to clients by Google Play services. May + * be null if no content is provided by the service. + */ + void onConnected(Bundle connectionHint); + + /** + * Called when the client is temporarily in a disconnected state. This can happen if there + * is a problem with the remote service (e.g. a crash or resource problem causes it to be + * killed by the system). When called, all requests have been canceled and no outstanding + * listeners will be executed. GoogleApiClient will automatically attempt to restore the + * connection. Applications should disable UI components that require the service, and wait + * for a call to {@link #onConnected(Bundle)} to re-enable them. + * + * @param cause The reason for the disconnection. Defined by constants {@code CAUSE_*}. + */ + void onConnectionSuspended(int cause); + } + + /** + * Provides callbacks for scenarios that result in a failed attempt to connect the client to + * the service. See {@link ConnectionResult} for a list of error codes and suggestions for + * resolution. + */ + @PublicApi + interface OnConnectionFailedListener { + /** + * Called when there was an error connecting the client to the service. + * + * @param result A {@link ConnectionResult} that can be used for resolving the error, and + * deciding what sort of error occurred. To resolve the error, the resolution + * must be started from an activity with a non-negative {@code requestCode} + * passed to {@link ConnectionResult#startResolutionForResult(Activity, int)}. + * Applications should implement {@link Activity#onActivityResult} in their + * Activity to call {@link #connect()} again if the user has resolved the + * issue (resultCode is {@link Activity#RESULT_OK}). + */ + void onConnectionFailed(ConnectionResult result); + } +} diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/api/PendingResult.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/PendingResult.java new file mode 100644 index 00000000..28943f18 --- /dev/null +++ b/play-services-basement/src/main/java/com/google/android/gms/common/api/PendingResult.java @@ -0,0 +1,59 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.common.api; + +import java.util.concurrent.TimeUnit; + +/** + * Represents a pending result from calling an API method in Google Play services. The final result + * object from a PendingResult is of type R, which can be retrieved in one of two ways. + *

+ *

    + *
  • via blocking calls to {@link #await()}, or {@link #await(long, TimeUnit)}, or
  • + *
  • via a callback by passing in an object implementing interface {@link ResultCallback} to + * {@link #setResultCallback(ResultCallback)}.
  • + *
+ * After the result has been retrieved using {@link #await()} or delivered to the result callback, + * it is an error to attempt to retrieve the result again. It is the responsibility of the caller + * or callback receiver to release any resources associated with the returned result. Some result + * types may implement {@link Releasable}, in which case {@link Releasable#release()} should be + * used to free the associated resources. + *

+ * TODO: Docs + */ +public interface PendingResult { + /** + * Blocks until the task is completed. This is not allowed on the UI thread. The returned + * result object can have an additional failure mode of INTERRUPTED. + */ + public R await(); + + /** + * Blocks until the task is completed or has timed out waiting for the result. This is not + * allowed on the UI thread. The returned result object can have an additional failure mode + * of either INTERRUPTED or TIMEOUT. + */ + public R await(long time, TimeUnit unit); + + public void cancel(); + + public boolean isCanceled(); + + public void setResultCallback(ResultCallback callback, long time, TimeUnit unit); + + public void setResultCallback(ResultCallback callback); +} diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/api/Releasable.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/Releasable.java new file mode 100644 index 00000000..4ea1c727 --- /dev/null +++ b/play-services-basement/src/main/java/com/google/android/gms/common/api/Releasable.java @@ -0,0 +1,24 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.common.api; + +/** + * Represents a resource, or a holder of resources, which may be released once they are no longer needed. + */ +public interface Releasable { + void release(); +} diff --git a/play-services-common-api/src/main/java/com/google/android/gms/common/api/Result.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/Result.java similarity index 100% rename from play-services-common-api/src/main/java/com/google/android/gms/common/api/Result.java rename to play-services-basement/src/main/java/com/google/android/gms/common/api/Result.java diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/api/ResultCallback.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/ResultCallback.java new file mode 100644 index 00000000..4695dbcb --- /dev/null +++ b/play-services-basement/src/main/java/com/google/android/gms/common/api/ResultCallback.java @@ -0,0 +1,33 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.common.api; + +/** + * An interface for receiving a {@link Result} from a {@link PendingResult} as an asynchronous + * callback. + */ +public interface ResultCallback { + /** + * Called when the {@link Result} is ready. It is the responsibility of each callback to + * release any resources associated with the result. Some result types may implement + * {@link Releasable}, in which case {@link Releasable#release()} should be used to free the + * associated resources. + * + * @param result The result from the API call. May not be null. + */ + public void onResult(R result); +} diff --git a/play-services-common-api/src/main/java/com/google/android/gms/common/api/Scope.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/Scope.java similarity index 100% rename from play-services-common-api/src/main/java/com/google/android/gms/common/api/Scope.java rename to play-services-basement/src/main/java/com/google/android/gms/common/api/Scope.java diff --git a/play-services-common-api/src/main/java/com/google/android/gms/common/api/Status.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/Status.java similarity index 100% rename from play-services-common-api/src/main/java/com/google/android/gms/common/api/Status.java rename to play-services-basement/src/main/java/com/google/android/gms/common/api/Status.java diff --git a/play-services-common-api/src/main/java/com/google/android/gms/common/data/DataHolder.java b/play-services-basement/src/main/java/com/google/android/gms/common/data/DataHolder.java similarity index 100% rename from play-services-common-api/src/main/java/com/google/android/gms/common/data/DataHolder.java rename to play-services-basement/src/main/java/com/google/android/gms/common/data/DataHolder.java diff --git a/play-services-common-api/src/main/java/com/google/android/gms/common/data/Freezable.java b/play-services-basement/src/main/java/com/google/android/gms/common/data/Freezable.java similarity index 100% rename from play-services-common-api/src/main/java/com/google/android/gms/common/data/Freezable.java rename to play-services-basement/src/main/java/com/google/android/gms/common/data/Freezable.java diff --git a/play-services-common-api/src/main/java/com/google/android/gms/common/images/WebImage.java b/play-services-basement/src/main/java/com/google/android/gms/common/images/WebImage.java similarity index 100% rename from play-services-common-api/src/main/java/com/google/android/gms/common/images/WebImage.java rename to play-services-basement/src/main/java/com/google/android/gms/common/images/WebImage.java diff --git a/play-services-common-api/src/main/java/com/google/android/gms/common/internal/BinderWrapper.java b/play-services-basement/src/main/java/com/google/android/gms/common/internal/BinderWrapper.java similarity index 100% rename from play-services-common-api/src/main/java/com/google/android/gms/common/internal/BinderWrapper.java rename to play-services-basement/src/main/java/com/google/android/gms/common/internal/BinderWrapper.java diff --git a/play-services-common-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java b/play-services-basement/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java similarity index 100% rename from play-services-common-api/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java rename to play-services-basement/src/main/java/com/google/android/gms/common/internal/GetServiceRequest.java diff --git a/play-services-common-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java b/play-services-basement/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java similarity index 100% rename from play-services-common-api/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java rename to play-services-basement/src/main/java/com/google/android/gms/common/internal/ValidateAccountRequest.java diff --git a/play-services-common-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java b/play-services-basement/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java similarity index 100% rename from play-services-common-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java rename to play-services-basement/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java diff --git a/play-services-common-api/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java b/play-services-basement/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java similarity index 100% rename from play-services-common-api/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java rename to play-services-basement/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java diff --git a/play-services-common-api/src/main/java/org/microg/gms/auth/AuthConstants.java b/play-services-basement/src/main/java/org/microg/gms/auth/AuthConstants.java similarity index 100% rename from play-services-common-api/src/main/java/org/microg/gms/auth/AuthConstants.java rename to play-services-basement/src/main/java/org/microg/gms/auth/AuthConstants.java diff --git a/play-services-common-api/src/main/java/org/microg/gms/common/Constants.java b/play-services-basement/src/main/java/org/microg/gms/common/Constants.java similarity index 100% rename from play-services-common-api/src/main/java/org/microg/gms/common/Constants.java rename to play-services-basement/src/main/java/org/microg/gms/common/Constants.java diff --git a/play-services-common-api/src/main/java/org/microg/gms/common/GmsService.java b/play-services-basement/src/main/java/org/microg/gms/common/GmsService.java similarity index 100% rename from play-services-common-api/src/main/java/org/microg/gms/common/GmsService.java rename to play-services-basement/src/main/java/org/microg/gms/common/GmsService.java diff --git a/play-services-common-api/src/main/java/org/microg/gms/common/PublicApi.java b/play-services-basement/src/main/java/org/microg/gms/common/PublicApi.java similarity index 100% rename from play-services-common-api/src/main/java/org/microg/gms/common/PublicApi.java rename to play-services-basement/src/main/java/org/microg/gms/common/PublicApi.java diff --git a/play-services-basement/src/main/java/org/microg/gms/common/api/ApiBuilder.java b/play-services-basement/src/main/java/org/microg/gms/common/api/ApiBuilder.java new file mode 100644 index 00000000..6c12551e --- /dev/null +++ b/play-services-basement/src/main/java/org/microg/gms/common/api/ApiBuilder.java @@ -0,0 +1,30 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.microg.gms.common.api; + +import android.content.Context; +import android.os.Looper; + +import com.google.android.gms.common.api.AccountInfo; +import com.google.android.gms.common.api.Api; +import com.google.android.gms.common.api.GoogleApiClient; + +public interface ApiBuilder { + ApiConnection build(Context context, Looper looper, O options, AccountInfo accountInfo, + GoogleApiClient.ConnectionCallbacks callbacks, + GoogleApiClient.OnConnectionFailedListener connectionFailedListener); +} diff --git a/play-services-basement/src/main/java/org/microg/gms/common/api/ApiConnection.java b/play-services-basement/src/main/java/org/microg/gms/common/api/ApiConnection.java new file mode 100644 index 00000000..019ea5d8 --- /dev/null +++ b/play-services-basement/src/main/java/org/microg/gms/common/api/ApiConnection.java @@ -0,0 +1,27 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.microg.gms.common.api; + +public interface ApiConnection { + void connect(); + + void disconnect(); + + boolean isConnected(); + + boolean isConnecting(); +} diff --git a/play-services-basement/src/main/java/org/microg/gms/common/api/GoogleApiClientImpl.java b/play-services-basement/src/main/java/org/microg/gms/common/api/GoogleApiClientImpl.java new file mode 100644 index 00000000..5993b403 --- /dev/null +++ b/play-services-basement/src/main/java/org/microg/gms/common/api/GoogleApiClientImpl.java @@ -0,0 +1,223 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.microg.gms.common.api; + +import android.content.Context; +import android.os.Bundle; +import android.os.Looper; +import android.os.Message; +import android.support.v4.app.FragmentActivity; +import android.util.Log; + +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.api.AccountInfo; +import com.google.android.gms.common.api.Api; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.common.api.PendingResult; +import com.google.android.gms.common.api.Status; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +public class GoogleApiClientImpl implements GoogleApiClient { + private static final String TAG = "GmsApiClientImpl"; + + private final Context context; + private final Looper looper; + private final AccountInfo accountInfo; + private final Map apis = new HashMap(); + private final Map apiConnections = new HashMap(); + private final Handler handler; + private final Set connectionCallbacks = new HashSet(); + private final Set connectionFailedListeners = new HashSet(); + private final int clientId; + private final ConnectionCallbacks baseConnectionCallbacks = new ConnectionCallbacks() { + @Override + public void onConnected(Bundle connectionHint) { + Log.d(TAG, "ConnectionCallbacks : onConnected()"); + for (ConnectionCallbacks callback : connectionCallbacks) { + callback.onConnected(connectionHint); + } + } + + @Override + public void onConnectionSuspended(int cause) { + Log.d(TAG, "ConnectionCallbacks : onConnectionSuspended()"); + for (ConnectionCallbacks callback : connectionCallbacks) { + callback.onConnectionSuspended(cause); + } + } + }; + private final OnConnectionFailedListener baseConnectionFailedListener = new + OnConnectionFailedListener() { + @Override + public void onConnectionFailed(ConnectionResult result) { + Log.d(TAG, "OnConnectionFailedListener : onConnectionFailed()"); + for (OnConnectionFailedListener listener : connectionFailedListeners) { + listener.onConnectionFailed(result); + } + } + }; + + public GoogleApiClientImpl(Context context, Looper looper, AccountInfo accountInfo, + Map apis, + Set connectionCallbacks, + Set connectionFailedListeners, int clientId) { + this.context = context; + this.looper = looper; + this.handler = new Handler(looper); + this.accountInfo = accountInfo; + this.apis.putAll(apis); + this.connectionCallbacks.addAll(connectionCallbacks); + this.connectionFailedListeners.addAll(connectionFailedListeners); + this.clientId = clientId; + + for (Api api : apis.keySet()) { + apiConnections.put(api, api.getBuilder().build(context, looper, + apis.get(api), accountInfo, baseConnectionCallbacks, + baseConnectionFailedListener)); + } + } + + public Looper getLooper() { + return looper; + } + + public ApiConnection getApiConnection(Api api) { + return apiConnections.get(api); + } + + @Override + public ConnectionResult blockingConnect() { + return null; + } + + @Override + public ConnectionResult blockingConnect(long timeout, TimeUnit unit) { + return null; + } + + @Override + public PendingResult clearDefaultAccountAndReconnect() { + return null; + } + + @Override + public synchronized void connect() { + Log.d(TAG, "connect()"); + if (isConnected() || isConnecting()) { + Log.d(TAG, "Already connected/connecting, nothing to do"); + return; + } + for (ApiConnection connection : apiConnections.values()) { + if (!connection.isConnected()) { + connection.connect(); + } + } + } + + @Override + public synchronized void disconnect() { + Log.d(TAG, "disconnect()"); + for (ApiConnection connection : apiConnections.values()) { + if (connection.isConnected()) { + connection.disconnect(); + } + } + } + + @Override + public synchronized boolean isConnected() { + for (ApiConnection connection : apiConnections.values()) { + if (!connection.isConnected()) return false; + } + return true; + } + + @Override + public synchronized boolean isConnecting() { + for (ApiConnection connection : apiConnections.values()) { + if (connection.isConnecting()) return true; + } + return false; + } + + @Override + public boolean isConnectionCallbacksRegistered(ConnectionCallbacks listener) { + return connectionCallbacks.contains(listener); + } + + @Override + public boolean isConnectionFailedListenerRegistered( + OnConnectionFailedListener listener) { + return connectionFailedListeners.contains(listener); + } + + @Override + public synchronized void reconnect() { + Log.d(TAG, "reconnect()"); + disconnect(); + connect(); + } + + @Override + public void registerConnectionCallbacks(ConnectionCallbacks listener) { + connectionCallbacks.add(listener); + } + + @Override + public void registerConnectionFailedListener(OnConnectionFailedListener listener) { + connectionFailedListeners.add(listener); + } + + @Override + public void stopAutoManager(FragmentActivity lifecycleActivity) throws IllegalStateException { + + } + + @Override + public void unregisterConnectionCallbacks(ConnectionCallbacks listener) { + connectionCallbacks.remove(listener); + } + + @Override + public void unregisterConnectionFailedListener(OnConnectionFailedListener listener) { + connectionFailedListeners.remove(listener); + } + + private class Handler extends android.os.Handler { + private Handler(Looper looper) { + super(looper); + } + + @Override + public void handleMessage(Message msg) { + if (msg.what == 0 && msg.obj instanceof Runnable) { + ((Runnable) msg.obj).run(); + } else { + super.handleMessage(msg); + } + } + + public void sendRunnable(Runnable runnable) { + sendMessage(obtainMessage(1, runnable)); + } + } +} diff --git a/play-services-common-api/src/main/java/org/microg/gms/gcm/GcmConstants.java b/play-services-basement/src/main/java/org/microg/gms/gcm/GcmConstants.java similarity index 100% rename from play-services-common-api/src/main/java/org/microg/gms/gcm/GcmConstants.java rename to play-services-basement/src/main/java/org/microg/gms/gcm/GcmConstants.java diff --git a/play-services-cast-api/build.gradle b/play-services-cast-api/build.gradle index 47f513a0..3ce1445d 100644 --- a/play-services-cast-api/build.gradle +++ b/play-services-cast-api/build.gradle @@ -51,5 +51,5 @@ android { } dependencies { - compile project(':play-services-common-api') + compile project(':play-services-basement') } diff --git a/play-services-iid-api/build.gradle b/play-services-iid-api/build.gradle index 47f513a0..3ce1445d 100644 --- a/play-services-iid-api/build.gradle +++ b/play-services-iid-api/build.gradle @@ -51,5 +51,5 @@ android { } dependencies { - compile project(':play-services-common-api') + compile project(':play-services-basement') } diff --git a/play-services-location-api/build.gradle b/play-services-location-api/build.gradle index 47f513a0..3ce1445d 100644 --- a/play-services-location-api/build.gradle +++ b/play-services-location-api/build.gradle @@ -51,5 +51,5 @@ android { } dependencies { - compile project(':play-services-common-api') + compile project(':play-services-basement') } diff --git a/play-services-wearable-api/build.gradle b/play-services-wearable-api/build.gradle index 47f513a0..3ce1445d 100644 --- a/play-services-wearable-api/build.gradle +++ b/play-services-wearable-api/build.gradle @@ -51,5 +51,5 @@ android { } dependencies { - compile project(':play-services-common-api') + compile project(':play-services-basement') } diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/Channel.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/Channel.java new file mode 100644 index 00000000..7c74ca5f --- /dev/null +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/Channel.java @@ -0,0 +1,94 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import android.net.Uri; +import android.os.Parcelable; + +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.common.api.PendingResult; +import com.google.android.gms.common.api.Releasable; +import com.google.android.gms.common.api.Result; +import com.google.android.gms.common.api.Status; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +/** + * A channel created through {@link ChannelApi#openChannel(GoogleApiClient, String, String)}. + *

+ * The implementation of this interface is parcelable and immutable, and implements reasonable {@link #equals(Object)} + * and {@link #hashCode()} methods, so can be used in collections. + */ +public interface Channel extends Parcelable { + + PendingResult addListener(GoogleApiClient client, ChannelApi.ChannelListener listener); + + PendingResult close(GoogleApiClient client, int errorCode); + + PendingResult close(GoogleApiClient client); + + PendingResult getInputStream(GoogleApiClient client); + + PendingResult getOutputStream(GoogleApiClient client); + + String getPath(); + + PendingResult receiveFile(GoogleApiClient client, Uri uri, boolean append); + + PendingResult removeListener(GoogleApiClient client, ChannelApi.ChannelListener listener); + + PendingResult sendFile(GoogleApiClient client, Uri uri); + + PendingResult sendFile(GoogleApiClient client, Uri uri, long startOffset, long length); + + interface GetInputStreamResult extends Releasable, Result { + /** + * Returns an input stream which can read data from the remote node. The stream should be + * closed when no longer needed. This method will only return {@code null} if this result's + * {@linkplain #getStatus() status} was not {@linkplain Status#isSuccess() success}. + *

+ * The returned stream will throw {@link IOException} on read if any connection errors + * occur. This exception might be a {@link ChannelIOException}. + *

+ * Since data for this stream comes over the network, reads may block for a long time. + *

+ * Multiple calls to this method will return the same instance. + */ + InputStream getInputStream(); + } + + interface GetOutputStreamResult extends Releasable, Result { + /** + * Returns an output stream which can send data to a remote node. The stream should be + * closed when no longer needed. This method will only return {@code null} if this result's + * {@linkplain #getStatus() status} was not {@linkplain Status#isSuccess() success}. + *

+ * The returned stream will throw {@link IOException} on read if any connection errors + * occur. This exception might be a {@link ChannelIOException}. + *

+ * Since data for this stream comes over the network, reads may block for a long time. + *

+ * Data written to this stream is buffered. If you wish to send the current data without + * waiting for the buffer to fill up, {@linkplain OutputStream#flush() flush} the stream. + *

+ * Multiple calls to this method will return the same instance. + */ + OutputStream getOutputStream(); + } +} diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/ChannelApi.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/ChannelApi.java new file mode 100644 index 00000000..66d6ae71 --- /dev/null +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/ChannelApi.java @@ -0,0 +1,185 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.common.api.GoogleApiClient.Builder; +import com.google.android.gms.common.api.PendingResult; +import com.google.android.gms.common.api.Result; +import com.google.android.gms.common.api.Status; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Client interface for Wearable Channel API. Allows apps on a wearable device to send and receive + * data from other wearable nodes. + *

+ * Channels are bidirectional. Each side, both the initiator and the receiver may both read and + * write to the channel by using {@link Channel#getOutputStream(GoogleApiClient)} and {@link Channel#getInputStream(GoogleApiClient)}. + * Once a channel is established, the API for the initiator and receiver are identical. + *

+ * Channels are only available when the wearable nodes are connected. When the remote node + * disconnects, all existing channels will be closed. Any listeners (added through {@link #addListener(GoogleApiClient, ChannelListener)} + * and any installed {@link WearableListenerService}) will be notified of the channel closing. + */ +public interface ChannelApi { + /** + * Channel action for use in listener filters. + * + * @see WearableListenerService + */ + String ACTION_CHANNEL_EVENT = "com.google.android.gms.wearable.CHANNEL_EVENT"; + + /** + * Registers a listener to be notified of channel events. Calls to this method should be + * balanced with calls to {@link #removeListener(GoogleApiClient, ChannelListener)} to avoid + * leaking resources. + *

+ * Listener events will be called on the main thread, or the handler specified on {@code client} + * when it was built (using {@link Builder#setHandler(Handler)}). + *

+ * Callers wishing to be notified of events in the background should use {@link WearableListenerService}. + * + * @param client a connected client + * @param listener a listener which will be notified of changes to any channel + */ + PendingResult addListener(GoogleApiClient client, ChannelListener listener); + + /** + * Opens a channel to exchange data with a remote node. + *

+ * Channel which are no longer needed should be closed using {@link Channel#close(GoogleApiClient)}. + *

+ * This call involves a network round trip, so may be long running. {@code client} must remain + * connected during that time, or the request will be cancelled (like any other Play Services + * API calls). + * + * @param client a connected client + * @param nodeId the node ID of a wearable node, as returned from {@link NodeApi#getConnectedNodes(GoogleApiClient)} + * @param path an app-specific identifier for the channel + */ + PendingResult openChannel(GoogleApiClient client, String nodeId, String path); + + /** + * Removes a listener which was previously added through {@link #addListener(GoogleApiClient, ChannelListener)}. + * + * @param client a connected client + * @param listener a listener which was added using {@link #addListener(GoogleApiClient, ChannelListener)} + */ + PendingResult removeListener(GoogleApiClient client, ChannelListener listener); + + /** + * A listener which will be notified on changes to channels. + */ + interface ChannelListener { + /** + * Value passed to {@link #onChannelClosed(Channel, int, int)}, {@link #onInputClosed(Channel, int, int)} + * and {@link #onOutputClosed(Channel, int, int)} when the closing is due to a remote node + * being disconnected. + */ + int CLOSE_REASON_DISCONNECTED = 1; + + /** + * Value passed to {@link #onChannelClosed(Channel, int, int)}, {@link #onInputClosed(Channel, int, int)} + * and {@link #onOutputClosed(Channel, int, int)} when the stream is closed due to the + * local node calling {@link Channel#close(GoogleApiClient)} or {@link Channel#close(GoogleApiClient, int)}. + */ + int CLOSE_REASON_LOCAL_CLOSE = 3; + + /** + * Value passed to {@link #onInputClosed(Channel, int, int)} or {@link #onOutputClosed(Channel, int, int)} + * (but not {@link #onChannelClosed(Channel, int, int)}), when the stream was closed under + * normal conditions, e.g the whole file was read, or the OutputStream on the remote node + * was closed normally. + */ + int CLOSE_REASON_NORMAL = 0; + + /** + * Value passed to {@link #onChannelClosed(Channel, int, int)}, {@link #onInputClosed(Channel, int, int)} + * and {@link #onOutputClosed(Channel, int, int)} when the stream is closed due to the + * remote node calling {@link Channel#close(GoogleApiClient)} or {@link Channel#close(GoogleApiClient, int)}. + */ + int CLOSE_REASON_REMOTE_CLOSE = 2; + + /** + * Called when a channel is closed. This can happen through an explicit call to {@link Channel#close(GoogleApiClient)} + * or {@link #close(GoogleApiClient, int)} on either side of the connection, or due to + * disconnecting from the remote node. + * + * @param closeReason the reason for the channel closing. One of {@link #CLOSE_REASON_DISCONNECTED}, + * {@link #CLOSE_REASON_REMOTE_CLOSE}, or {@link #CLOSE_REASON_LOCAL_CLOSE}. + * @param appSpecificErrorCode the error code specified on {@link Channel#close(GoogleApiClient, int)}, + * or 0 if closeReason is {@link #CLOSE_REASON_DISCONNECTED}. + */ + void onChannelClosed(Channel channel, int closeReason, int appSpecificErrorCode); + + /** + * Called when a new channel is opened by a remote node. + */ + void onChannelOpened(Channel channel); + + /** + * Called when the input side of a channel is closed. + * + * @param closeReason the reason for the channel closing. One of {@link #CLOSE_REASON_DISCONNECTED}, + * {@link #CLOSE_REASON_REMOTE_CLOSE}, {@link #CLOSE_REASON_LOCAL_CLOSE} + * or {@link #CLOSE_REASON_NORMAL}. + * @param appSpecificErrorCode the error code specified on {@link Channel#close(GoogleApiClient, int)}, + * or 0 if closeReason is {@link #CLOSE_REASON_DISCONNECTED} or + * {@link #CLOSE_REASON_NORMAL}. + */ + void onInputClosed(Channel channel, @CloseReason int closeReason, int appSpecificErrorCode); + + /** + * Called when the output side of a channel is closed. + * + * @param closeReason the reason for the channel closing. One of {@link #CLOSE_REASON_DISCONNECTED}, + * {@link #CLOSE_REASON_REMOTE_CLOSE}, {@link #CLOSE_REASON_LOCAL_CLOSE} + * or {@link #CLOSE_REASON_NORMAL}. + * @param appSpecificErrorCode the error code specified on {@link Channel#close(GoogleApiClient, int)}, + * or 0 if closeReason is {@link #CLOSE_REASON_DISCONNECTED} or + * {@link #CLOSE_REASON_NORMAL}. + */ + void onOutputClosed(Channel channel, @CloseReason int closeReason, int appSpecificErrorCode); + } + + /** + * An annotation for values passed to {@link ChannelListener#onChannelClosed(Channel, int, int)}, + * and other methods on the {@link ChannelListener} interface. Annotated method parameters will + * always take one of the following values: + *

    + *
  • {@link ChannelListener#CLOSE_REASON_DISCONNECTED}
  • + *
  • {@link ChannelListener#CLOSE_REASON_NORMAL}
  • + *
  • {@link ChannelListener#CLOSE_REASON_LOCAL_CLOSE}
  • + *
  • {@link ChannelListener#CLOSE_REASON_REMOTE_CLOSE}
  • + *
+ */ + @Retention(RetentionPolicy.SOURCE) + @interface CloseReason { + } + + /** + * Result of {@link #openChannel(GoogleApiClient, String, String)}. + */ + interface OpenChannelResult extends Result { + /** + * Returns the newly created channel, or {@code null}, if the connection couldn't be opened. + */ + Channel getChannel(); + } +} diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdate.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdate.java new file mode 100644 index 00000000..1e156633 --- /dev/null +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdate.java @@ -0,0 +1,20 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable.internal; + +public interface AmsEntityUpdate { +} diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java index e43a38bf..8533e19b 100644 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java @@ -18,6 +18,6 @@ package com.google.android.gms.wearable.internal; import org.microg.safeparcel.AutoSafeParcelable; -public class AmsEntityUpdateParcelable extends AutoSafeParcelable { +public class AmsEntityUpdateParcelable extends AutoSafeParcelable implements AmsEntityUpdate { public static final Creator CREATOR = new AutoCreator(AmsEntityUpdateParcelable.class); } diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotification.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotification.java new file mode 100644 index 00000000..f96a605f --- /dev/null +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotification.java @@ -0,0 +1,20 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable.internal; + +public interface AncsNotification { +} diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java index 05f7c7f7..81cdb875 100644 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java @@ -18,6 +18,6 @@ package com.google.android.gms.wearable.internal; import org.microg.safeparcel.AutoSafeParcelable; -public class AncsNotificationParcelable extends AutoSafeParcelable { +public class AncsNotificationParcelable extends AutoSafeParcelable implements AncsNotification { public static final Creator CREATOR = new AutoCreator(AncsNotificationParcelable.class); } diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java index b562032b..93c0be72 100644 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java @@ -16,8 +16,23 @@ package com.google.android.gms.wearable.internal; +import com.google.android.gms.wearable.Channel; + import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; public class ChannelEventParcelable extends AutoSafeParcelable { + + @SafeParceled(1) + private int versionCode; + @SafeParceled(2) + public Channel channel; // TODO: ChannelImpl needed! + @SafeParceled(3) + public int eventType; + @SafeParceled(4) + public int closeReason; + @SafeParceled(5) + public int appSpecificErrorCode; + public static final Creator CREATOR = new AutoCreator(ChannelEventParcelable.class); } diff --git a/settings.gradle b/settings.gradle index b13b2661..99da0fb4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,6 +1,6 @@ +include ':play-services-basement' include ':play-services-api' include ':play-services-cast-api' -include ':play-services-common-api' include ':play-services-iid-api' include ':play-services-location-api' include ':play-services-wearable-api' From 289a346315ec6be8ffead7adfc26ebf7dda91435 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 14 Aug 2016 10:26:04 +0200 Subject: [PATCH 110/170] Update version code --- play-services-basement/src/main/AndroidManifest.xml | 2 +- .../src/main/java/org/microg/gms/common/Constants.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/play-services-basement/src/main/AndroidManifest.xml b/play-services-basement/src/main/AndroidManifest.xml index 03679b28..3ea99c6e 100644 --- a/play-services-basement/src/main/AndroidManifest.xml +++ b/play-services-basement/src/main/AndroidManifest.xml @@ -16,7 +16,7 @@ --> + package="org.microg.gms.basement"> diff --git a/play-services-basement/src/main/java/org/microg/gms/common/Constants.java b/play-services-basement/src/main/java/org/microg/gms/common/Constants.java index 049a2c62..bf74f5b9 100644 --- a/play-services-basement/src/main/java/org/microg/gms/common/Constants.java +++ b/play-services-basement/src/main/java/org/microg/gms/common/Constants.java @@ -21,7 +21,7 @@ public class Constants { * This is the highest version that was looked at during development. * Does not necessarily mean anything. */ - public static final int MAX_REFERENCE_VERSION = 9256000; + public static final int MAX_REFERENCE_VERSION = 9452000; public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; public static final String GSF_PACKAGE_NAME = "com.google.android.gsf"; public static final String GMS_PACKAGE_SIGNATURE_SHA1 = "38918a453d07199354f8b19af05ec6562ced5788"; From b9cb95d39bdb4bbac6dd0d2b0405e4d5a23717c2 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 14 Aug 2016 10:26:24 +0200 Subject: [PATCH 111/170] Move certain wearable classes --- .../{internal => }/AmsEntityUpdate.java | 2 +- .../{internal => }/AncsNotification.java | 2 +- .../android/gms/wearable/CapabilityInfo.java | 34 +++++ .../android/gms/wearable/MessageApi.java | 88 +++++++++++++ .../internal/AmsEntityUpdateParcelable.java | 2 + .../internal/AncsNotificationParcelable.java | 2 + .../internal/CapabilityInfoParcelable.java | 69 +++++++++- .../internal/ChannelEventParcelable.java | 6 +- .../gms/wearable/internal/ChannelImpl.java | 120 ++++++++++++++++++ .../internal/SendMessageResponse.java | 17 ++- 10 files changed, 333 insertions(+), 9 deletions(-) rename play-services-wearable-api/src/main/java/com/google/android/gms/wearable/{internal => }/AmsEntityUpdate.java (92%) rename play-services-wearable-api/src/main/java/com/google/android/gms/wearable/{internal => }/AncsNotification.java (92%) create mode 100644 play-services-wearable-api/src/main/java/com/google/android/gms/wearable/CapabilityInfo.java create mode 100644 play-services-wearable-api/src/main/java/com/google/android/gms/wearable/MessageApi.java create mode 100644 play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelImpl.java diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdate.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/AmsEntityUpdate.java similarity index 92% rename from play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdate.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/AmsEntityUpdate.java index 1e156633..92f3c07c 100644 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdate.java +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/AmsEntityUpdate.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.android.gms.wearable.internal; +package com.google.android.gms.wearable; public interface AmsEntityUpdate { } diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotification.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/AncsNotification.java similarity index 92% rename from play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotification.java rename to play-services-wearable-api/src/main/java/com/google/android/gms/wearable/AncsNotification.java index f96a605f..20685d5f 100644 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotification.java +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/AncsNotification.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.android.gms.wearable.internal; +package com.google.android.gms.wearable; public interface AncsNotification { } diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/CapabilityInfo.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/CapabilityInfo.java new file mode 100644 index 00000000..cc9fd8d9 --- /dev/null +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/CapabilityInfo.java @@ -0,0 +1,34 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import java.util.Set; + +/** + * Information about a Capability on the network and where it is available. + */ +public interface CapabilityInfo { + /** + * Returns the name of the capability. + */ + String getName(); + + /** + * Returns the set of nodes for the capability. Disconnected nodes may or may not be included in the set. + */ + Set getNodes(); +} diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/MessageApi.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/MessageApi.java new file mode 100644 index 00000000..e2016f73 --- /dev/null +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/MessageApi.java @@ -0,0 +1,88 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable; + +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.common.api.PendingResult; +import com.google.android.gms.common.api.Result; +import com.google.android.gms.common.api.Status; + +import org.microg.gms.common.PublicApi; + +@PublicApi +public interface MessageApi { + + /** + * A value returned by {@link SendMessageResult#getRequestId()} when + * {@link #sendMessage(GoogleApiClient, String, String, byte[])} fails. + */ + int UNKNOWN_REQUEST_ID = -1; + + /** + * Registers a listener to be notified of received messages. Calls to this method should + * balanced with {@link #removeListener(GoogleApiClient, MessageListener)} to avoid leaking + * resources. + *

+ * Callers wishing to be notified of events in the background should use {@link WearableListenerService}. + */ + PendingResult addListener(GoogleApiClient client, MessageListener listener); + + /** + * Removes a message listener which was previously added through + * {@link #addListener(GoogleApiClient, MessageListener)}. + */ + PendingResult removeListener(GoogleApiClient client, MessageListener listener); + + /** + * Sends {@code byte[]} data to the specified node. + * + * @param nodeId identifier for a particular node on the Android Wear network. Valid targets + * may be obtained through {@link NodeApi#getConnectedNodes(GoogleApiClient)} + * or from the host in {@link DataItem#getUri()}. + * @param path identifier used to specify a particular endpoint at the receiving node + * @param data small array of information to pass to the target node. Generally not larger + * than 100k + */ + PendingResult sendMessage(GoogleApiClient client, String nodeId, + String path, byte[] data); + + /** + * Used with {@link MessageApi#addListener(GoogleApiClient, MessageListener)} to receive + * message events. + *

+ * Callers wishing to be notified of events in the background should use + * {@link WearableListenerService}. + */ + interface MessageListener { + /** + * Notification that a message has been received. + */ + void onMessageReceived(MessageEvent messageEvent); + } + + /** + * Contains the request id assigned to the message. On failure, the id will be + * {@link MessageApi#UNKNOWN_REQUEST_ID} and the status will be unsuccessful. + */ + interface SendMessageResult extends Result { + /** + * @return an ID used to identify the sent message. If {@link #getStatus()} is not + * successful, this value will be {@link MessageApi#UNKNOWN_REQUEST_ID}. + */ + int getRequestId(); + } +} diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java index 8533e19b..6c96ec9d 100644 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AmsEntityUpdateParcelable.java @@ -16,6 +16,8 @@ package com.google.android.gms.wearable.internal; +import com.google.android.gms.wearable.AmsEntityUpdate; + import org.microg.safeparcel.AutoSafeParcelable; public class AmsEntityUpdateParcelable extends AutoSafeParcelable implements AmsEntityUpdate { diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java index 81cdb875..a7d3cd0d 100644 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/AncsNotificationParcelable.java @@ -16,6 +16,8 @@ package com.google.android.gms.wearable.internal; +import com.google.android.gms.wearable.AncsNotification; + import org.microg.safeparcel.AutoSafeParcelable; public class AncsNotificationParcelable extends AutoSafeParcelable implements AncsNotification { diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java index cdc5d6c4..49b94e7f 100644 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/CapabilityInfoParcelable.java @@ -16,8 +16,75 @@ package com.google.android.gms.wearable.internal; +import com.google.android.gms.wearable.CapabilityInfo; +import com.google.android.gms.wearable.Node; + import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class CapabilityInfoParcelable extends AutoSafeParcelable implements CapabilityInfo { + @SafeParceled(1) + private int versionCode = 1; + + @SafeParceled(2) + private String name; + + @SafeParceled(value = 3, subClass = NodeParcelable.class) + private List nodeParcelables; + + private Set nodes; + private Object lock = new Object(); + + private CapabilityInfoParcelable() { + } + + public CapabilityInfoParcelable(String name, List nodeParcelables) { + this.name = name; + this.nodeParcelables = nodeParcelables; + } + + @Override + public String getName() { + return name; + } + + @Override + public synchronized Set getNodes() { + if (nodes == null) { + nodes = new HashSet(nodeParcelables); + } + return nodes; + } + + @Override + public boolean equals(Object other) { + if (this == other) return true; + if (other == null || getClass() != other.getClass()) return false; + + CapabilityInfoParcelable that = (CapabilityInfoParcelable) other; + + if (versionCode != that.versionCode) return false; + if (name != null ? !name.equals(that.name) : that.name != null) return false; + return nodeParcelables != null ? nodeParcelables.equals(that.nodeParcelables) : that.nodeParcelables == null; + } + + @Override + public int hashCode() { + int result = versionCode; + result = 31 * result + (name != null ? name.hashCode() : 0); + result = 31 * result + (nodeParcelables != null ? nodeParcelables.hashCode() : 0); + return result; + } + + @Override + public String toString() { + return "CapabilityInfo{" + name + ", " + nodeParcelables + "}"; + } -public class CapabilityInfoParcelable extends AutoSafeParcelable { public static final Creator CREATOR = new AutoCreator(CapabilityInfoParcelable.class); + } diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java index 93c0be72..7336c2be 100644 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java @@ -16,17 +16,15 @@ package com.google.android.gms.wearable.internal; -import com.google.android.gms.wearable.Channel; - import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; public class ChannelEventParcelable extends AutoSafeParcelable { @SafeParceled(1) - private int versionCode; + private int versionCode = 1; @SafeParceled(2) - public Channel channel; // TODO: ChannelImpl needed! + public ChannelImpl channel; @SafeParceled(3) public int eventType; @SafeParceled(4) diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelImpl.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelImpl.java new file mode 100644 index 00000000..18ab6ebc --- /dev/null +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelImpl.java @@ -0,0 +1,120 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable.internal; + +import android.net.Uri; +import android.util.Log; + +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.common.api.PendingResult; +import com.google.android.gms.common.api.Status; +import com.google.android.gms.wearable.Channel; +import com.google.android.gms.wearable.ChannelApi; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class ChannelImpl extends AutoSafeParcelable implements Channel { + private static final String TAG = "GmsWearChannelImpl"; + + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + private String token; + @SafeParceled(3) + private String nodeId; + @SafeParceled(4) + private String path; + + private ChannelImpl() { + } + + public ChannelImpl(String token, String nodeId, String path) { + this.token = token; + this.nodeId = nodeId; + this.path = path; + } + + @Override + public PendingResult addListener(GoogleApiClient client, ChannelApi.ChannelListener listener) { + Log.d(TAG, "unimplemented Method: addListener"); + return null; + } + + @Override + public PendingResult close(GoogleApiClient client, int errorCode) { + Log.d(TAG, "unimplemented Method: close"); + return null; + } + + @Override + public PendingResult close(GoogleApiClient client) { + Log.d(TAG, "unimplemented Method: close"); + return null; + } + + @Override + public PendingResult getInputStream(GoogleApiClient client) { + Log.d(TAG, "unimplemented Method: getInputStream"); + return null; + } + + @Override + public PendingResult getOutputStream(GoogleApiClient client) { + Log.d(TAG, "unimplemented Method: getOutputStream"); + return null; + } + + public String getNodeId() { + return nodeId; + } + + @Override + public String getPath() { + return path; + } + + public String getToken() { + return token; + } + + @Override + public PendingResult receiveFile(GoogleApiClient client, Uri uri, boolean append) { + Log.d(TAG, "unimplemented Method: receiveFile"); + return null; + } + + @Override + public PendingResult removeListener(GoogleApiClient client, ChannelApi.ChannelListener listener) { + Log.d(TAG, "unimplemented Method: removeListener"); + return null; + } + + @Override + public PendingResult sendFile(GoogleApiClient client, Uri uri) { + Log.d(TAG, "unimplemented Method: sendFile"); + return null; + } + + @Override + public PendingResult sendFile(GoogleApiClient client, Uri uri, long startOffset, long length) { + Log.d(TAG, "unimplemented Method: sendFile"); + return null; + } + + public static final Creator CREATOR = new AutoCreator(ChannelImpl.class); +} diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java index d3a0b7fb..3d8364a6 100644 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java @@ -16,10 +16,13 @@ package com.google.android.gms.wearable.internal; +import com.google.android.gms.common.api.Status; +import com.google.android.gms.wearable.MessageApi; + import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; -public class SendMessageResponse extends AutoSafeParcelable { +public class SendMessageResponse extends AutoSafeParcelable implements MessageApi.SendMessageResult { @SafeParceled(1) private int versionCode = 1; @@ -28,7 +31,17 @@ public class SendMessageResponse extends AutoSafeParcelable { public int statusCode; @SafeParceled(3) - public int resultId = -1; + public int requestId = -1; + + @Override + public int getRequestId() { + return requestId; + } + + @Override + public Status getStatus() { + return new Status(statusCode); + } public static final Creator CREATOR = new AutoCreator(SendMessageResponse.class); } From e057a9daaea26ea80d15b1e6f795425a7b21e9cf Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 14 Aug 2016 15:01:43 +0200 Subject: [PATCH 112/170] Add parts of dynamite API and firebase database API --- .../android/gms/dynamite/IDynamiteLoader.aidl | 10 +++++ .../idl/CompoundHashParcelable.aidl | 3 ++ .../connection/idl/ConnectionConfig.aidl | 3 ++ .../idl/IConnectionAuthTokenProvider.aidl | 7 +++ .../connection/idl/IGetTokenCallback.aidl | 6 +++ .../connection/idl/IListenHashProvider.aidl | 11 +++++ .../connection/idl/IPersistentConnection.aidl | 44 +++++++++++++++++++ .../idl/IPersistentConnectionDelegate.aidl | 19 ++++++++ .../idl/IRequestResultCallback.aidl | 5 +++ .../connection/idl/RangeParcelable.aidl | 3 ++ .../idl/CompoundHashParcelable.java | 23 ++++++++++ .../connection/idl/ConnectionConfig.java | 23 ++++++++++ .../connection/idl/RangeParcelable.java | 23 ++++++++++ 13 files changed, 180 insertions(+) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/dynamite/IDynamiteLoader.aidl create mode 100644 play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/CompoundHashParcelable.aidl create mode 100644 play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/ConnectionConfig.aidl create mode 100644 play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IConnectionAuthTokenProvider.aidl create mode 100644 play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IGetTokenCallback.aidl create mode 100644 play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IListenHashProvider.aidl create mode 100644 play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IPersistentConnection.aidl create mode 100644 play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IPersistentConnectionDelegate.aidl create mode 100644 play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IRequestResultCallback.aidl create mode 100644 play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/RangeParcelable.aidl create mode 100644 play-services-api/src/main/java/com/google/firebase/database/connection/idl/CompoundHashParcelable.java create mode 100644 play-services-api/src/main/java/com/google/firebase/database/connection/idl/ConnectionConfig.java create mode 100644 play-services-api/src/main/java/com/google/firebase/database/connection/idl/RangeParcelable.java diff --git a/play-services-api/src/main/aidl/com/google/android/gms/dynamite/IDynamiteLoader.aidl b/play-services-api/src/main/aidl/com/google/android/gms/dynamite/IDynamiteLoader.aidl new file mode 100644 index 00000000..8cb2be99 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/dynamite/IDynamiteLoader.aidl @@ -0,0 +1,10 @@ +package com.google.android.gms.dynamite; + +import com.google.android.gms.dynamic.IObjectWrapper; + +interface IDynamiteLoader { + int getModuleVersion(IObjectWrapper context, String moduleId) = 0; + int getModuleVersion2(IObjectWrapper context, String moduleId, boolean updateConfigIfRequired) = 2; + + IObjectWrapper createModuleContext(IObjectWrapper context, String moduleId, int minVersion) = 1; +} \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/CompoundHashParcelable.aidl b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/CompoundHashParcelable.aidl new file mode 100644 index 00000000..689e5918 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/CompoundHashParcelable.aidl @@ -0,0 +1,3 @@ +package com.google.firebase.database.connection.idl; + +parcelable CompoundHashParcelable; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/ConnectionConfig.aidl b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/ConnectionConfig.aidl new file mode 100644 index 00000000..d6c1fc31 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/ConnectionConfig.aidl @@ -0,0 +1,3 @@ +package com.google.firebase.database.connection.idl; + +parcelable ConnectionConfig; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IConnectionAuthTokenProvider.aidl b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IConnectionAuthTokenProvider.aidl new file mode 100644 index 00000000..447f9f4a --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IConnectionAuthTokenProvider.aidl @@ -0,0 +1,7 @@ +package com.google.firebase.database.connection.idl; + +import com.google.firebase.database.connection.idl.IGetTokenCallback; + +interface IConnectionAuthTokenProvider { + void zero(boolean var1, IGetTokenCallback var2) = 0; +} \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IGetTokenCallback.aidl b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IGetTokenCallback.aidl new file mode 100644 index 00000000..c4d45cdd --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IGetTokenCallback.aidl @@ -0,0 +1,6 @@ +package com.google.firebase.database.connection.idl; + +interface IGetTokenCallback { + void zero(String s) = 0; + void onError(String s) = 1; +} \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IListenHashProvider.aidl b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IListenHashProvider.aidl new file mode 100644 index 00000000..a5aaa187 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IListenHashProvider.aidl @@ -0,0 +1,11 @@ +package com.google.firebase.database.connection.idl; + +import com.google.firebase.database.connection.idl.CompoundHashParcelable; + +interface IListenHashProvider { + String zzPY() = 0; + + boolean zzPZ() = 1; + + CompoundHashParcelable zzQF() = 2; +} \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IPersistentConnection.aidl b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IPersistentConnection.aidl new file mode 100644 index 00000000..21e00b1c --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IPersistentConnection.aidl @@ -0,0 +1,44 @@ +package com.google.firebase.database.connection.idl; + +import com.google.android.gms.dynamic.IObjectWrapper; + +import com.google.firebase.database.connection.idl.ConnectionConfig; +import com.google.firebase.database.connection.idl.IConnectionAuthTokenProvider; +import com.google.firebase.database.connection.idl.IListenHashProvider; +import com.google.firebase.database.connection.idl.IPersistentConnectionDelegate; +import com.google.firebase.database.connection.idl.IRequestResultCallback; + + +interface IPersistentConnection { + void setup(in ConnectionConfig var1, IConnectionAuthTokenProvider var2, IObjectWrapper var3, IPersistentConnectionDelegate var4) = 0; + + void initialize() = 1; + + void shutdown() = 2; + + void refreshAuthToken() = 3; + + void listen(in List var1, IObjectWrapper var2, IListenHashProvider var3, long var4, IRequestResultCallback var6) = 4; + + void unlisten(in List var1, IObjectWrapper var2) = 5; + + void purgeOutstandingWrites() = 6; + + void put(in List var1, IObjectWrapper var2, IRequestResultCallback var3) = 7; + + void compareAndPut(in List var1, IObjectWrapper var2, String var3, IRequestResultCallback var4) = 8; + + void merge(in List var1, IObjectWrapper var2, IRequestResultCallback var3) = 9; + + void onDisconnectPut(in List var1, IObjectWrapper var2, IRequestResultCallback var3) = 10; + + void onDisconnectMerge(in List var1, IObjectWrapper var2, IRequestResultCallback var3) = 11; + + void onDisconnectCancel(in List var1, IRequestResultCallback var2) = 12; + + void interrupt(String var1) = 13; + + void resume(String var1) = 14; + + boolean isInterrupted(String var1) = 15; +} diff --git a/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IPersistentConnectionDelegate.aidl b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IPersistentConnectionDelegate.aidl new file mode 100644 index 00000000..9ae649d0 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IPersistentConnectionDelegate.aidl @@ -0,0 +1,19 @@ +package com.google.firebase.database.connection.idl; + +import com.google.android.gms.dynamic.IObjectWrapper; + +import com.google.firebase.database.connection.idl.RangeParcelable; + +interface IPersistentConnectionDelegate { + void zero(in List var1, IObjectWrapper var2, boolean var3, long var4) = 0; + + void one(in List var1, in List var2, IObjectWrapper var3, long var4) = 1; + + void two() = 2; + + void onDisconnect() = 3; + + void four(boolean var1) = 4; + + void five(IObjectWrapper var1) = 5; +} \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IRequestResultCallback.aidl b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IRequestResultCallback.aidl new file mode 100644 index 00000000..5806bc35 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IRequestResultCallback.aidl @@ -0,0 +1,5 @@ +package com.google.firebase.database.connection.idl; + +interface IRequestResultCallback { + void zero(String var1, String var2) = 0; +} \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/RangeParcelable.aidl b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/RangeParcelable.aidl new file mode 100644 index 00000000..08d6df18 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/RangeParcelable.aidl @@ -0,0 +1,3 @@ +package com.google.firebase.database.connection.idl; + +parcelable RangeParcelable; \ No newline at end of file diff --git a/play-services-api/src/main/java/com/google/firebase/database/connection/idl/CompoundHashParcelable.java b/play-services-api/src/main/java/com/google/firebase/database/connection/idl/CompoundHashParcelable.java new file mode 100644 index 00000000..2cb50dbf --- /dev/null +++ b/play-services-api/src/main/java/com/google/firebase/database/connection/idl/CompoundHashParcelable.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.firebase.database.connection.idl; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class CompoundHashParcelable extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(CompoundHashParcelable.class); +} diff --git a/play-services-api/src/main/java/com/google/firebase/database/connection/idl/ConnectionConfig.java b/play-services-api/src/main/java/com/google/firebase/database/connection/idl/ConnectionConfig.java new file mode 100644 index 00000000..63fd6335 --- /dev/null +++ b/play-services-api/src/main/java/com/google/firebase/database/connection/idl/ConnectionConfig.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.firebase.database.connection.idl; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class ConnectionConfig extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(ConnectionConfig.class); +} diff --git a/play-services-api/src/main/java/com/google/firebase/database/connection/idl/RangeParcelable.java b/play-services-api/src/main/java/com/google/firebase/database/connection/idl/RangeParcelable.java new file mode 100644 index 00000000..0645f703 --- /dev/null +++ b/play-services-api/src/main/java/com/google/firebase/database/connection/idl/RangeParcelable.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.firebase.database.connection.idl; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class RangeParcelable extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(RangeParcelable.class); +} From c6f5d25850d86a78119c0175678c81178b0500e1 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sat, 27 Aug 2016 12:28:00 +0200 Subject: [PATCH 113/170] Update Gradle, Add initial Credential API files --- build.gradle | 38 +++ extern/SafeParcel | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- play-services-api/build.gradle | 13 +- .../gms/auth/api/credentials/Credential.aidl | 3 + .../api/credentials/CredentialRequest.aidl | 3 + .../credentials/internal/DeleteRequest.aidl | 3 + .../internal/GeneratePasswordRequest.aidl | 3 + .../internal/ICredentialsCallbacks.aidl | 10 + .../internal/ICredentialsService.aidl | 15 ++ .../api/credentials/internal/SaveRequest.aidl | 3 + .../gms/auth/api/credentials/Credential.java | 248 ++++++++++++++++++ .../credentials/CredentialPickerConfig.java | 92 +++++++ .../api/credentials/CredentialRequest.java | 75 ++++++ .../gms/auth/api/credentials/IdToken.java | 58 ++++ .../credentials/internal/DeleteRequest.java | 23 ++ .../internal/GeneratePasswordRequest.java | 23 ++ .../api/credentials/internal/SaveRequest.java | 23 ++ play-services-basement/build.gradle | 13 +- .../android/gms/common/data/DataHolder.java | 24 +- play-services-cast-api/build.gradle | 13 +- play-services-iid-api/build.gradle | 13 +- play-services-location-api/build.gradle | 13 +- play-services-wearable-api/build.gradle | 13 +- 24 files changed, 643 insertions(+), 83 deletions(-) create mode 100644 build.gradle create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/Credential.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/CredentialRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/DeleteRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/GeneratePasswordRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/ICredentialsCallbacks.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/ICredentialsService.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/SaveRequest.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/Credential.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/CredentialPickerConfig.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/CredentialRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/IdToken.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/DeleteRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/GeneratePasswordRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/SaveRequest.java diff --git a/build.gradle b/build.gradle new file mode 100644 index 00000000..4b3b586b --- /dev/null +++ b/build.gradle @@ -0,0 +1,38 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.1.3' + classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' + } +} + +allprojects { + apply plugin: 'idea' + ext.androidBuildVersionTools = "23.0.3" +} + +def androidCompileSdk() { return 23 } + +subprojects { + repositories { + jcenter() + } +} diff --git a/extern/SafeParcel b/extern/SafeParcel index 6e2e63bd..7e7fcee2 160000 --- a/extern/SafeParcel +++ b/extern/SafeParcel @@ -1 +1 @@ -Subproject commit 6e2e63bdf0016b094b41f66b15accb4915cf7561 +Subproject commit 7e7fcee20047116b87406ae0e1296489a46bac73 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index aa76e3eb..06df1f78 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.12-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index 3e899acf..33871ca2 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -14,15 +14,6 @@ * limitations under the License. */ -buildscript { - repositories { - jcenter() - } - dependencies { - classpath 'com.android.tools.build:gradle:2.1.2' - } -} - apply plugin: 'com.android.library' String getMyVersionName() { @@ -38,8 +29,8 @@ group = 'org.microg' version = getMyVersionName() android { - compileSdkVersion 23 - buildToolsVersion "23.0.3" + compileSdkVersion androidCompileSdk() + buildToolsVersion "$androidBuildVersionTools" defaultConfig { versionName getMyVersionName() diff --git a/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/Credential.aidl b/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/Credential.aidl new file mode 100644 index 00000000..82536b93 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/Credential.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.auth.api.credentials; + +parcelable Credential; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/CredentialRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/CredentialRequest.aidl new file mode 100644 index 00000000..d000f32e --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/CredentialRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.auth.api.credentials; + +parcelable CredentialRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/DeleteRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/DeleteRequest.aidl new file mode 100644 index 00000000..7fa0d4ab --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/DeleteRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.auth.api.credentials.internal; + +parcelable DeleteRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/GeneratePasswordRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/GeneratePasswordRequest.aidl new file mode 100644 index 00000000..814f68da --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/GeneratePasswordRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.auth.api.credentials.internal; + +parcelable GeneratePasswordRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/ICredentialsCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/ICredentialsCallbacks.aidl new file mode 100644 index 00000000..da248c33 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/ICredentialsCallbacks.aidl @@ -0,0 +1,10 @@ +package com.google.android.gms.auth.api.credentials.internal; + +import com.google.android.gms.common.api.Status; +import com.google.android.gms.auth.api.credentials.Credential; + +interface ICredentialsCallbacks { + void onStatusAndCredential(in Status status, in Credential credential) = 0; + void onStatus(in Status status) = 1; + void onStatusAndString(in Status status, String string) = 2; +} \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/ICredentialsService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/ICredentialsService.aidl new file mode 100644 index 00000000..89c6c7e2 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/ICredentialsService.aidl @@ -0,0 +1,15 @@ +package com.google.android.gms.auth.api.credentials.internal; + +import com.google.android.gms.auth.api.credentials.CredentialRequest; +import com.google.android.gms.auth.api.credentials.internal.ICredentialsCallbacks; +import com.google.android.gms.auth.api.credentials.internal.DeleteRequest; +import com.google.android.gms.auth.api.credentials.internal.GeneratePasswordRequest; +import com.google.android.gms.auth.api.credentials.internal.SaveRequest; + +interface ICredentialsService { + void request(ICredentialsCallbacks callbacks, in CredentialRequest request) = 0; + void save(ICredentialsCallbacks callbacks, in SaveRequest request) = 1; + void delete(ICredentialsCallbacks callbacks, in DeleteRequest request) = 2; + void disableAutoSignIn(ICredentialsCallbacks callbacks) = 3; + void generatePassword(ICredentialsCallbacks callbacks, in GeneratePasswordRequest request) = 4; +} \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/SaveRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/SaveRequest.aidl new file mode 100644 index 00000000..b5bcb593 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/SaveRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.auth.api.credentials.internal; + +parcelable SaveRequest; \ No newline at end of file diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/Credential.java b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/Credential.java new file mode 100644 index 00000000..db4b41f7 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/Credential.java @@ -0,0 +1,248 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth.api.credentials; + +import android.net.Uri; +import android.text.TextUtils; + +import org.microg.gms.common.PublicApi; +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.Arrays; +import java.util.List; + +@PublicApi +public class Credential extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + private String id; + + @SafeParceled(2) + private String name; + + @SafeParceled(3) + private Uri profilePictureUri; + + @SafeParceled(value = 4, subClass = IdToken.class) + private List tokens; + + @SafeParceled(5) + private String password; + + @SafeParceled(6) + private String accountType; + + @SafeParceled(7) + private String generatedPassword; + + private Credential() { + } + + /** + * Returns the type of federated identity account used to sign in the user. While this may be + * any string, it is strongly recommended that values from {@link com.google.android.gms.auth.api.credentials.IdentityProviders} + * are used, which are the login domains for common identity providers. + * + * @return A string identifying the federated identity provider associated with this account, + * typically in the form of the identity provider's login domain. null will be returned if the + * credential is a password credential. + */ + public String getAccountType() { + return accountType; + } + + /** + * Returns the generated password for an account hint. + */ + public String getGeneratedPassword() { + return generatedPassword; + } + + /** + * Returns the credential identifier, typically an email address or user name, though it may + * also be some encoded unique identifier for a federated identity account. + */ + public String getId() { + return id; + } + + /** + * Returns the ID tokens that assert the identity of the user, if available. ID tokens provide + * a secure mechanism to verify that the user owns the identity asserted by the credential. + *

+ * This is useful for account hints, where the ID token can replace the need to separately + * verify that the user owns their claimed email address - with a valid ID token, it is not + * necessary to send an account activation link to the address, simplifying the account + * creation process for the user. + *

+ * A signed ID token is returned automatically for credential hints when the credential ID is a + * Google account that is authenticated on the device. This ID token can be sent along with + * your application's account creation operation, where the signature can be verified. + */ + public List getIdTokens() { + return tokens; + } + + /** + * Returns the display name of the credential, if available. Typically, the display name will + * be the name of the user, or some other string which the user can easily recognize and + * distinguish from other accounts they may have. + */ + public String getName() { + return name; + } + + /** + * Returns the password used to sign in the user. + */ + public String getPassword() { + return password; + } + + /** + * Returns the URL to an image of the user, if available. + */ + public Uri getProfilePictureUri() { + return profilePictureUri; + } + + @PublicApi(exclude = true) + public String getAsString() { + if (TextUtils.isEmpty(accountType)) { + return id.toLowerCase() + "|"; + } else { + Uri uri = Uri.parse(accountType); + return id.toLowerCase() + "|" + (TextUtils.isEmpty(uri.getScheme()) ? "" : uri.getScheme().toLowerCase()) + "://" + + (TextUtils.isEmpty(uri.getHost()) ? "unknown" : uri.getHost().toLowerCase()) + ":" + uri.getPort(); + } + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || !(o instanceof Credential)) return false; + + Credential that = (Credential) o; + + if (id != null ? !id.equals(that.id) : that.id != null) return false; + if (name != null ? !name.equals(that.name) : that.name != null) return false; + if (profilePictureUri != null ? !profilePictureUri.equals(that.profilePictureUri) : that.profilePictureUri != null) + return false; + if (password != null ? !password.equals(that.password) : that.password != null) + return false; + if (accountType != null ? !accountType.equals(that.accountType) : that.accountType != null) + return false; + return generatedPassword != null ? generatedPassword.equals(that.generatedPassword) : that.generatedPassword == null; + + } + + @Override + public int hashCode() { + return Arrays.hashCode(new Object[]{id, name, profilePictureUri, password, accountType, generatedPassword}); + } + + public static class Builder { + private String id; + private String name; + private Uri profilePictureUri; + private String password; + private String accountType; + + @PublicApi(exclude = true) + public List tokens; + @PublicApi(exclude = true) + private String generatedPassword; + + public Builder(String id) { + this.id = id; + } + + /** + * Copies the information stored in an existing credential, in order to allow that information to be modified. + * + * @param credential the existing credential + */ + public Builder(Credential credential) { + this.id = credential.id; + this.name = credential.name; + this.profilePictureUri = credential.profilePictureUri; + this.password = credential.password; + this.accountType = credential.accountType; + this.tokens = credential.tokens; + this.generatedPassword = credential.generatedPassword; + } + + public Credential build() { + Credential credential = new Credential(); + credential.id = id; + credential.name = name; + credential.profilePictureUri = profilePictureUri; + credential.password = password; + credential.accountType = accountType; + credential.tokens = tokens; + credential.generatedPassword = generatedPassword; + return credential; + } + + /** + * Specifies the account type for a federated credential. The value should be set to + * identity provider's login domain, such as "https://accounts.google.com" for Google + * accounts. The login domains for common identity providers are listed in {@link IdentityProviders}. + * + * @param accountType The type of the account. Typically, one of the values in {@link IdentityProviders}. + */ + public Builder setAccountType(String accountType) { + this.accountType = accountType; + return this; + } + + /** + * Sets the display name for the credential, which should be easy for the user to recognize + * as associated to the credential, and distinguishable from other credentials they may + * have. This string will be displayed more prominently than, or instead of, the account ID + * whenever available. In most cases, the name of the user is sufficient. + */ + public Builder setName(String name) { + this.name = name; + return this; + } + + /** + * Sets the password for the credential. Either the password or the account type must be + * set for a credential, but not both. + */ + public Builder setPassword(String password) { + this.password = password; + return this; + } + + /** + * Sets a profile picture associated with the credential, typically a picture the user has + * selected to represent the account. + */ + public Builder setProfilePictureUri(Uri profilePictureUri) { + this.profilePictureUri = profilePictureUri; + return this; + } + } + + public static final Creator CREATOR = new AutoCreator(Credential.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/CredentialPickerConfig.java b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/CredentialPickerConfig.java new file mode 100644 index 00000000..3cd60f62 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/CredentialPickerConfig.java @@ -0,0 +1,92 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth.api.credentials; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class CredentialPickerConfig extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + private boolean showAddAccountButton; + + @SafeParceled(2) + private boolean showCancelButton; + + @SafeParceled(3) + private boolean forNewAccount; + + private CredentialPickerConfig() { + } + + public CredentialPickerConfig(boolean showAddAccountButton, boolean showCancelButton, boolean forNewAccount) { + this.showAddAccountButton = showAddAccountButton; + this.showCancelButton = showCancelButton; + this.forNewAccount = forNewAccount; + } + + public boolean isForNewAccount() { + return forNewAccount; + } + + public boolean shouldShowAddAccountButton() { + return showAddAccountButton; + } + + public boolean shouldShowCancelButton() { + return showCancelButton; + } + + public class Builder { + private boolean showAddAccountButton; + private boolean showCancelButton; + private boolean forNewAccount; + + public CredentialPickerConfig build() { + return new CredentialPickerConfig(showAddAccountButton, showCancelButton, forNewAccount); + } + + /** + * Sets whether the hint request is for a new account sign-up flow. + */ + public Builder setForNewAccount(boolean forNewAccount) { + this.forNewAccount = forNewAccount; + return this; + } + + /** + * Sets whether the add account button should be shown in credential picker dialog. + */ + public Builder setShowAddAccountButton(boolean showAddAccountButton) { + this.showAddAccountButton = showAddAccountButton; + return this; + } + + /** + * Sets whether the cancel button should be shown in credential picker dialog. + */ + public Builder setShowCancelButton(boolean showCancelButton) { + this.showCancelButton = showCancelButton; + return this; + } + } + + public static final Creator CREATOR = new AutoCreator(CredentialPickerConfig.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/CredentialRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/CredentialRequest.java new file mode 100644 index 00000000..632ae5f6 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/CredentialRequest.java @@ -0,0 +1,75 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth.api.credentials; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +/** + * Parameters for requesting a Credential, via Auth.CredentialsApi.request(). Instances can be + * created using CredentialRequest.Builder. + */ +public class CredentialRequest extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + private boolean passwordLoginSupported; + + @SafeParceled(2) + private String[] accountTypes; + + @SafeParceled(3) + private CredentialPickerConfig credentialPickerConfig; + + @SafeParceled(4) + private CredentialPickerConfig credentialHintPickerConfig; + + public CredentialRequest(boolean passwordLoginSupported, String[] accountTypes, CredentialPickerConfig credentialPickerConfig, CredentialPickerConfig credentialHintPickerConfig) { + this.passwordLoginSupported = passwordLoginSupported; + this.accountTypes = accountTypes; + this.credentialPickerConfig = credentialPickerConfig; + this.credentialHintPickerConfig = credentialHintPickerConfig; + } + + public String[] getAccountTypes() { + return accountTypes; + } + + public CredentialPickerConfig getCredentialHintPickerConfig() { + return credentialHintPickerConfig; + } + + public CredentialPickerConfig getCredentialPickerConfig() { + return credentialPickerConfig; + } + + /** + * @deprecated Use {@link #isPasswordLoginSupported()} + */ + @Deprecated + public boolean getSupportsPasswordLogin() { + return isPasswordLoginSupported(); + } + + public boolean isPasswordLoginSupported() { + return passwordLoginSupported; + } + + public static final Creator CREATOR = new AutoCreator(CredentialRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/IdToken.java b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/IdToken.java new file mode 100644 index 00000000..497ee887 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/IdToken.java @@ -0,0 +1,58 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth.api.credentials; + +import org.microg.gms.common.PublicApi; +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +@PublicApi +public class IdToken extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + private String accountType; + + @SafeParceled(2) + private String id; + + private IdToken() { + } + + public IdToken(String accountType, String id) { + this.accountType = accountType; + this.id = id; + } + + /** + * Returns {@code AccountManager} account type for the token. + */ + public String getAccountType() { + return accountType; + } + + /** + * Returns the ID token, formatted according to the rules defined by the account type. + */ + public String getIdToken() { + return id; + } + + public static final Creator CREATOR = new AutoCreator(IdToken.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/DeleteRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/DeleteRequest.java new file mode 100644 index 00000000..973c1854 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/DeleteRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth.api.credentials.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class DeleteRequest extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(DeleteRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/GeneratePasswordRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/GeneratePasswordRequest.java new file mode 100644 index 00000000..b412bd50 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/GeneratePasswordRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth.api.credentials.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class GeneratePasswordRequest extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(GeneratePasswordRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/SaveRequest.java b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/SaveRequest.java new file mode 100644 index 00000000..d028e30f --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/SaveRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.auth.api.credentials.internal; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class SaveRequest extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(SaveRequest.class); +} diff --git a/play-services-basement/build.gradle b/play-services-basement/build.gradle index 796ea36c..38d7eb7f 100644 --- a/play-services-basement/build.gradle +++ b/play-services-basement/build.gradle @@ -14,15 +14,6 @@ * limitations under the License. */ -buildscript { - repositories { - jcenter() - } - dependencies { - classpath 'com.android.tools.build:gradle:2.1.2' - } -} - apply plugin: 'com.android.library' String getMyVersionName() { @@ -40,8 +31,8 @@ group = 'org.microg' version = getMyVersionName() android { - compileSdkVersion 23 - buildToolsVersion "23.0.3" + compileSdkVersion androidCompileSdk() + buildToolsVersion "$androidBuildVersionTools" aidlPackageWhiteList "com/google/android/gms/common/internal/ICancelToken.aidl" aidlPackageWhiteList "com/google/android/gms/dynamic/IObjectWrapper.aidl" diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/data/DataHolder.java b/play-services-basement/src/main/java/com/google/android/gms/common/data/DataHolder.java index 51a4a602..e749abfd 100644 --- a/play-services-basement/src/main/java/com/google/android/gms/common/data/DataHolder.java +++ b/play-services-basement/src/main/java/com/google/android/gms/common/data/DataHolder.java @@ -61,7 +61,7 @@ public class DataHolder extends AutoSafeParcelable implements Closeable { private final Bundle metadata; private boolean closed = false; - private Map columnIndizes; + private Map columnIndices; protected static final int FIELD_TYPE_NULL = 0; protected static final int FIELD_TYPE_INTEGER = 1; @@ -300,12 +300,6 @@ public class DataHolder extends AutoSafeParcelable implements Closeable { return windows.toArray(new CursorWindow[windows.size()]); } - @PublicApi(exclude = true) - @Deprecated - public static DataHolder fromCursor(Cursor cursor, int statusCode, Bundle metadata) { - return new DataHolder(cursor, statusCode, metadata); - } - /** * Retrieves the boolean value for a given column at the provided position. * This will throw an {@link IllegalArgumentException} if the column does not exist, the @@ -317,7 +311,7 @@ public class DataHolder extends AutoSafeParcelable implements Closeable { * @return The boolean value in that column. */ public boolean getBoolean(String column, int row, int windowIndex) { - return windows[windowIndex].getLong(row, columnIndizes.get(column)) == 1; + return windows[windowIndex].getLong(row, columnIndices.get(column)) == 1; } /** @@ -331,7 +325,7 @@ public class DataHolder extends AutoSafeParcelable implements Closeable { * @return The byte array value in that column. */ public byte[] getByteArray(String column, int row, int windowIndex) { - return windows[windowIndex].getBlob(row, columnIndizes.get(column)); + return windows[windowIndex].getBlob(row, columnIndices.get(column)); } /** @@ -360,7 +354,7 @@ public class DataHolder extends AutoSafeParcelable implements Closeable { * @return The integer value in that column. */ public int getInteger(String column, int row, int windowIndex) { - return windows[windowIndex].getInt(row, columnIndizes.get(column)); + return windows[windowIndex].getInt(row, columnIndices.get(column)); } /** @@ -374,7 +368,7 @@ public class DataHolder extends AutoSafeParcelable implements Closeable { * @return The long value in that column. */ public long getLong(String column, int row, int windowIndex) { - return windows[windowIndex].getLong(row, columnIndizes.get(column)); + return windows[windowIndex].getLong(row, columnIndices.get(column)); } public int getStatusCode() { @@ -392,7 +386,7 @@ public class DataHolder extends AutoSafeParcelable implements Closeable { * @return The string value in that column. */ public String getString(String column, int row, int windowIndex) { - return windows[windowIndex].getString(row, columnIndizes.get(column)); + return windows[windowIndex].getString(row, columnIndices.get(column)); } /** @@ -406,7 +400,7 @@ public class DataHolder extends AutoSafeParcelable implements Closeable { * @return Whether the column value is null at this position. */ public boolean isNull(String column, int row, int windowIndex) { - return windows[windowIndex].isNull(row, columnIndizes.get(column)); + return windows[windowIndex].isNull(row, columnIndices.get(column)); } public boolean isClosed() { @@ -442,9 +436,9 @@ public class DataHolder extends AutoSafeParcelable implements Closeable { } public void validateContents() { - columnIndizes = new HashMap(); + columnIndices = new HashMap(); for (int i = 0; i < columns.length; i++) { - columnIndizes.put(columns[i], i); + columnIndices.put(columns[i], i); } } diff --git a/play-services-cast-api/build.gradle b/play-services-cast-api/build.gradle index 3ce1445d..b4ddb5c3 100644 --- a/play-services-cast-api/build.gradle +++ b/play-services-cast-api/build.gradle @@ -14,15 +14,6 @@ * limitations under the License. */ -buildscript { - repositories { - jcenter() - } - dependencies { - classpath 'com.android.tools.build:gradle:2.1.2' - } -} - apply plugin: 'com.android.library' String getMyVersionName() { @@ -38,8 +29,8 @@ group = 'org.microg' version = getMyVersionName() android { - compileSdkVersion 23 - buildToolsVersion "23.0.3" + compileSdkVersion androidCompileSdk() + buildToolsVersion "$androidBuildVersionTools" defaultConfig { versionName getMyVersionName() diff --git a/play-services-iid-api/build.gradle b/play-services-iid-api/build.gradle index 3ce1445d..b4ddb5c3 100644 --- a/play-services-iid-api/build.gradle +++ b/play-services-iid-api/build.gradle @@ -14,15 +14,6 @@ * limitations under the License. */ -buildscript { - repositories { - jcenter() - } - dependencies { - classpath 'com.android.tools.build:gradle:2.1.2' - } -} - apply plugin: 'com.android.library' String getMyVersionName() { @@ -38,8 +29,8 @@ group = 'org.microg' version = getMyVersionName() android { - compileSdkVersion 23 - buildToolsVersion "23.0.3" + compileSdkVersion androidCompileSdk() + buildToolsVersion "$androidBuildVersionTools" defaultConfig { versionName getMyVersionName() diff --git a/play-services-location-api/build.gradle b/play-services-location-api/build.gradle index 3ce1445d..b4ddb5c3 100644 --- a/play-services-location-api/build.gradle +++ b/play-services-location-api/build.gradle @@ -14,15 +14,6 @@ * limitations under the License. */ -buildscript { - repositories { - jcenter() - } - dependencies { - classpath 'com.android.tools.build:gradle:2.1.2' - } -} - apply plugin: 'com.android.library' String getMyVersionName() { @@ -38,8 +29,8 @@ group = 'org.microg' version = getMyVersionName() android { - compileSdkVersion 23 - buildToolsVersion "23.0.3" + compileSdkVersion androidCompileSdk() + buildToolsVersion "$androidBuildVersionTools" defaultConfig { versionName getMyVersionName() diff --git a/play-services-wearable-api/build.gradle b/play-services-wearable-api/build.gradle index 3ce1445d..b4ddb5c3 100644 --- a/play-services-wearable-api/build.gradle +++ b/play-services-wearable-api/build.gradle @@ -14,15 +14,6 @@ * limitations under the License. */ -buildscript { - repositories { - jcenter() - } - dependencies { - classpath 'com.android.tools.build:gradle:2.1.2' - } -} - apply plugin: 'com.android.library' String getMyVersionName() { @@ -38,8 +29,8 @@ group = 'org.microg' version = getMyVersionName() android { - compileSdkVersion 23 - buildToolsVersion "23.0.3" + compileSdkVersion androidCompileSdk() + buildToolsVersion "$androidBuildVersionTools" defaultConfig { versionName getMyVersionName() From 7f5440d36edb9aff7c4af6790ced8d861288153c Mon Sep 17 00:00:00 2001 From: Marvin W Date: Fri, 16 Sep 2016 23:03:59 +0200 Subject: [PATCH 114/170] Add Firebase auth api --- .../firebase/auth/api/internal/IFirebaseAuthService.aidl | 5 +++++ .../main/java/com/google/android/gms/common/api/Status.java | 2 ++ 2 files changed, 7 insertions(+) create mode 100644 play-services-api/src/main/aidl/com/google/firebase/auth/api/internal/IFirebaseAuthService.aidl diff --git a/play-services-api/src/main/aidl/com/google/firebase/auth/api/internal/IFirebaseAuthService.aidl b/play-services-api/src/main/aidl/com/google/firebase/auth/api/internal/IFirebaseAuthService.aidl new file mode 100644 index 00000000..6269896b --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/firebase/auth/api/internal/IFirebaseAuthService.aidl @@ -0,0 +1,5 @@ +package com.google.firebase.auth.api.internal; + +interface IFirebaseAuthService { + +} \ No newline at end of file diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/api/Status.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/Status.java index 480ea072..7c225820 100644 --- a/play-services-basement/src/main/java/com/google/android/gms/common/api/Status.java +++ b/play-services-basement/src/main/java/com/google/android/gms/common/api/Status.java @@ -28,9 +28,11 @@ import org.microg.safeparcel.AutoSafeParcelable; */ @PublicApi public final class Status extends AutoSafeParcelable implements Result { + private static final int STATUS_CODE_INTERNAL_ERROR = 8; private static final int STATUS_CODE_INTERRUPTED = 14; private static final int STATUS_CODE_CANCELED = 16; + public static final Status INTERNAL_ERROR = new Status(STATUS_CODE_INTERNAL_ERROR); public static final Status INTERRUPTED = new Status(STATUS_CODE_INTERRUPTED); public static final Status CANCELED = new Status(STATUS_CODE_CANCELED); public static final Status SUCCESS = new Status(0); From 351a4b861594ca25eed5f7a921888563e0fece51 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Fri, 16 Sep 2016 23:05:05 +0200 Subject: [PATCH 115/170] Update Log events --- .../gms/clearcut/LogEventParcelable.java | 81 ++++++++++++++++++- .../playlog/internal/PlayLoggerContext.java | 52 +++++++++--- 2 files changed, 120 insertions(+), 13 deletions(-) diff --git a/play-services-api/src/main/java/com/google/android/gms/clearcut/LogEventParcelable.java b/play-services-api/src/main/java/com/google/android/gms/clearcut/LogEventParcelable.java index 4b041a6f..897a5e86 100644 --- a/play-services-api/src/main/java/com/google/android/gms/clearcut/LogEventParcelable.java +++ b/play-services-api/src/main/java/com/google/android/gms/clearcut/LogEventParcelable.java @@ -16,10 +16,89 @@ package com.google.android.gms.clearcut; +import android.util.Base64; + +import com.google.android.gms.playlog.internal.PlayLoggerContext; + import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.nio.ByteBuffer; +import java.nio.CharBuffer; +import java.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; +import java.util.Arrays; public class LogEventParcelable extends AutoSafeParcelable { - // TODO + @SafeParceled(1) + private int versionCode = 1; + + @SafeParceled(2) + public final PlayLoggerContext context; + + @SafeParceled(3) + public final byte[] bytes; + + @SafeParceled(4) + public final int[] testCodes; + + @SafeParceled(5) + public final String[] mendelPackages; + + @SafeParceled(6) + public final int[] experimentIds; + + @SafeParceled(7) + public final byte[][] experimentTokens; + + @SafeParceled(8) + public final boolean addPhenotypeExperimentTokens; + + private LogEventParcelable() { + context = null; + bytes = null; + testCodes = experimentIds = null; + mendelPackages = null; + experimentTokens = null; + addPhenotypeExperimentTokens = false; + } + + public LogEventParcelable(PlayLoggerContext context, byte[] bytes, int[] testCodes, String[] mendelPackages, int[] experimentIds, byte[][] experimentTokens, boolean addPhenotypeExperimentTokens) { + this.context = context; + this.bytes = bytes; + this.testCodes = testCodes; + this.mendelPackages = mendelPackages; + this.experimentIds = experimentIds; + this.experimentTokens = experimentTokens; + this.addPhenotypeExperimentTokens = addPhenotypeExperimentTokens; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("LogEventParcelable[") + .append(versionCode).append(", ").append(context) + .append(", LogEventBytes: ").append(getBytesAsString()); + if (testCodes != null) sb.append(", TestCodes: ").append(Arrays.toString(testCodes)); + if (mendelPackages != null) + sb.append(", MendelPackages: ").append(Arrays.toString(mendelPackages)); + if (experimentIds != null) + sb.append(", ExperimentIds: ").append(Arrays.toString(experimentIds)); + if (experimentTokens != null) + sb.append(", ExperimentTokens: ").append(Arrays.toString(experimentTokens)); + return sb.append(", AddPhenotypeExperimentTokens: ").append(addPhenotypeExperimentTokens) + .append(']').toString(); + } + + private String getBytesAsString() { + if (bytes == null) return "null"; + try { + CharsetDecoder d = Charset.forName("US-ASCII").newDecoder(); + CharBuffer r = d.decode(ByteBuffer.wrap(bytes)); + return r.toString(); + } catch (Exception e) { + return Base64.encodeToString(bytes, Base64.NO_WRAP); + } + } public static final Creator CREATOR = new AutoCreator(LogEventParcelable.class); } diff --git a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java index ce6818db..065ba239 100644 --- a/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java +++ b/play-services-api/src/main/java/com/google/android/gms/playlog/internal/PlayLoggerContext.java @@ -27,6 +27,9 @@ public class PlayLoggerContext extends AutoSafeParcelable { @SafeParceled(2) public final String packageName; + @SafeParceled(3) + public final int packageVersionCode; + @SafeParceled(4) public final int logSource; @@ -42,31 +45,56 @@ public class PlayLoggerContext extends AutoSafeParcelable { @SafeParceled(8) public final String logSourceName; + @SafeParceled(9) + public final boolean isAnonymous; + + @SafeParceled(10) + public final int qosTier; + private PlayLoggerContext() { packageName = uploadAccount = logSourceName = null; - logSource = loggingId = -1; - logAndroidId = false; + qosTier = packageVersionCode = logSource = loggingId = -1; + isAnonymous = logAndroidId = false; } - public PlayLoggerContext(String packageName, int logSource, String uploadAccount, int loggingId, String logSourceName) { + public PlayLoggerContext(String packageName, int packageVersionCode, int logSource, String uploadAccount, int loggingId, boolean logAndroidId) { this.packageName = packageName; + this.packageVersionCode = packageVersionCode; this.logSource = logSource; + this.logSourceName = null; this.uploadAccount = uploadAccount; this.loggingId = loggingId; + this.logAndroidId = logAndroidId; + this.isAnonymous = false; + this.qosTier = 0; + } + + public PlayLoggerContext(String packageName, int packageVersionCode, int logSource, String logSourceName, String uploadAccount, int loggingId, boolean isAnonymous, int qosTier) { + this.packageName = packageName; + this.packageVersionCode = packageVersionCode; + this.logSource = logSource; this.logSourceName = logSourceName; - this.logAndroidId = true; + this.uploadAccount = uploadAccount; + this.loggingId = loggingId; + this.logAndroidId = !isAnonymous; + this.isAnonymous = isAnonymous; + this.qosTier = qosTier; } @Override public String toString() { - return "PlayLoggerContext{" + - "packageName='" + packageName + '\'' + - ", logSource=" + logSource + - ", uploadAccount='" + uploadAccount + '\'' + - ", loggingId=" + loggingId + - ", logAndroidId=" + logAndroidId + - ", logSourceName='" + logSourceName + '\'' + - '}'; + final StringBuilder sb = new StringBuilder("PlayLoggerContext[").append(versionCode); + sb.append(", package=").append(packageName); + sb.append(", packageVersionCode=").append(packageVersionCode); + sb.append(", logSource=").append(logSource); + sb.append(", uploadAccount=").append(uploadAccount); + sb.append(", loggingId=").append(loggingId); + sb.append(", logAndroidId=").append(logAndroidId); + sb.append(", logSourceName=").append(logSourceName); + sb.append(", isAnonymous=").append(isAnonymous); + sb.append(", qosTier=").append(qosTier); + sb.append(']'); + return sb.toString(); } public static Creator CREATOR = new AutoCreator(PlayLoggerContext.class); From 18da23b48289427f060af75adde627dcc1401f00 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Fri, 16 Sep 2016 23:05:21 +0200 Subject: [PATCH 116/170] Add SafetyNet API --- .../gms/safetynet/AttestationData.aidl | 3 ++ .../gms/safetynet/HarmfulAppsData.aidl | 3 ++ .../gms/safetynet/SafeBrowsingData.aidl | 3 ++ .../internal/ISafetyNetCallbacks.aidl | 14 +++++++ .../safetynet/internal/ISafetyNetService.aidl | 11 +++++ .../gms/safetynet/AttestationData.java | 41 +++++++++++++++++++ .../gms/safetynet/HarmfulAppsData.java | 23 +++++++++++ .../gms/safetynet/SafeBrowsingData.java | 33 +++++++++++++++ 8 files changed, 131 insertions(+) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/safetynet/AttestationData.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/safetynet/HarmfulAppsData.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/safetynet/SafeBrowsingData.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/safetynet/internal/ISafetyNetCallbacks.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/safetynet/internal/ISafetyNetService.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/safetynet/AttestationData.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/safetynet/HarmfulAppsData.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/safetynet/SafeBrowsingData.java diff --git a/play-services-api/src/main/aidl/com/google/android/gms/safetynet/AttestationData.aidl b/play-services-api/src/main/aidl/com/google/android/gms/safetynet/AttestationData.aidl new file mode 100644 index 00000000..f1e056b4 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/safetynet/AttestationData.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.safetynet; + +parcelable AttestationData; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/safetynet/HarmfulAppsData.aidl b/play-services-api/src/main/aidl/com/google/android/gms/safetynet/HarmfulAppsData.aidl new file mode 100644 index 00000000..9e5456b0 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/safetynet/HarmfulAppsData.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.safetynet; + +parcelable HarmfulAppsData; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/safetynet/SafeBrowsingData.aidl b/play-services-api/src/main/aidl/com/google/android/gms/safetynet/SafeBrowsingData.aidl new file mode 100644 index 00000000..5b18294d --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/safetynet/SafeBrowsingData.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.safetynet; + +parcelable SafeBrowsingData; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/safetynet/internal/ISafetyNetCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/safetynet/internal/ISafetyNetCallbacks.aidl new file mode 100644 index 00000000..fe57be6d --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/safetynet/internal/ISafetyNetCallbacks.aidl @@ -0,0 +1,14 @@ +package com.google.android.gms.safetynet.internal; + +import com.google.android.gms.common.api.Status; +import com.google.android.gms.safetynet.AttestationData; +import com.google.android.gms.safetynet.HarmfulAppsData; +import com.google.android.gms.safetynet.SafeBrowsingData; + +interface ISafetyNetCallbacks { + void onAttestationData(in Status status, in AttestationData attestationData) = 0; + void onString(String s) = 1; + void onSafeBrowsingData(in Status status, in SafeBrowsingData safeBrowsingData) = 2; + void onBoolean(in Status status, boolean b) = 3; + void onHarmfulAppsData(in Status status, in List harmfulAppsData) = 4; +} \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/safetynet/internal/ISafetyNetService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/safetynet/internal/ISafetyNetService.aidl new file mode 100644 index 00000000..9e23438a --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/safetynet/internal/ISafetyNetService.aidl @@ -0,0 +1,11 @@ +package com.google.android.gms.safetynet.internal; + +import com.google.android.gms.safetynet.internal.ISafetyNetCallbacks; + +interface ISafetyNetService { + void attest(ISafetyNetCallbacks callbacks, in byte[] nonce) = 0; + void getSharedUuid(ISafetyNetCallbacks callbacks) = 1; + void lookupUri(ISafetyNetCallbacks callbacks, String s1, in int[] threatTypes, int i, String s2) = 2; + void init(ISafetyNetCallbacks callbacks) = 3; + void unknown4(ISafetyNetCallbacks callbacks) = 4; +} \ No newline at end of file diff --git a/play-services-api/src/main/java/com/google/android/gms/safetynet/AttestationData.java b/play-services-api/src/main/java/com/google/android/gms/safetynet/AttestationData.java new file mode 100644 index 00000000..91350258 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/safetynet/AttestationData.java @@ -0,0 +1,41 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.safetynet; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class AttestationData extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + private final String jwsResult; + + private AttestationData() { + jwsResult = null; + } + + public AttestationData(String jwsResult) { + this.jwsResult = jwsResult; + } + + public String getJwsResult() { + return jwsResult; + } + + public static final Creator CREATOR = new AutoCreator(AttestationData.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/safetynet/HarmfulAppsData.java b/play-services-api/src/main/java/com/google/android/gms/safetynet/HarmfulAppsData.java new file mode 100644 index 00000000..4837d67c --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/safetynet/HarmfulAppsData.java @@ -0,0 +1,23 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.safetynet; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class HarmfulAppsData extends AutoSafeParcelable { + public static final Creator CREATOR = new AutoCreator(HarmfulAppsData.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/safetynet/SafeBrowsingData.java b/play-services-api/src/main/java/com/google/android/gms/safetynet/SafeBrowsingData.java new file mode 100644 index 00000000..ee869f75 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/safetynet/SafeBrowsingData.java @@ -0,0 +1,33 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.safetynet; + +import com.google.android.gms.common.data.DataHolder; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class SafeBrowsingData extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + private String status; + @SafeParceled(3) + private DataHolder data; + + public static final Creator CREATOR = new AutoCreator(SafeBrowsingData.class); +} From a421ff5d950714554200ce4bddb1e8e94cce4655 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sat, 24 Sep 2016 20:37:20 +0200 Subject: [PATCH 117/170] Add Global Search API classes, use SafeParcel from maven --- .gitmodules | 3 - extern/SafeParcel | 1 - .../IGooglePlaceDetectionService.aidl | 5 ++ .../places/internal/IGooglePlacesService.aidl | 5 ++ .../GetCurrentExperimentIdsRequest.aidl | 3 + .../GetCurrentExperimentIdsResponse.aidl | 3 + .../global/GetGlobalSearchSourcesRequest.aidl | 3 + .../GetGlobalSearchSourcesResponse.aidl | 3 + .../GetPendingExperimentIdsRequest.aidl | 3 + .../GetPendingExperimentIdsResponse.aidl | 3 + .../global/SetExperimentIdsRequest.aidl | 3 + .../global/SetExperimentIdsResponse.aidl | 3 + .../SetIncludeInGlobalSearchRequest.aidl | 3 + .../SetIncludeInGlobalSearchResponse.aidl | 3 + .../internal/IGlobalSearchAdminCallbacks.aidl | 16 +++++ .../internal/IGlobalSearchAdminService.aidl | 14 ++++- .../GetCurrentExperimentIdsRequest.java | 28 +++++++++ .../GetCurrentExperimentIdsResponse.java | 57 ++++++++++++++++++ .../global/GetGlobalSearchSourcesRequest.java | 39 ++++++++++++ .../GetGlobalSearchSourcesResponse.java | 59 +++++++++++++++++++ .../GetPendingExperimentIdsRequest.java | 28 +++++++++ .../GetPendingExperimentIdsResponse.java | 57 ++++++++++++++++++ .../global/SetExperimentIdsRequest.java | 45 ++++++++++++++ .../global/SetExperimentIdsResponse.java | 49 +++++++++++++++ .../SetIncludeInGlobalSearchRequest.java | 47 +++++++++++++++ .../SetIncludeInGlobalSearchResponse.java | 49 +++++++++++++++ play-services-basement/build.gradle | 2 +- .../org/microg/gms/common/GmsService.java | 2 +- safe-parcel | 1 - 29 files changed, 529 insertions(+), 8 deletions(-) delete mode 100644 .gitmodules delete mode 160000 extern/SafeParcel create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/IGooglePlaceDetectionService.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/IGooglePlacesService.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/global/GetCurrentExperimentIdsRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/global/GetCurrentExperimentIdsResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/global/GetGlobalSearchSourcesRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/global/GetGlobalSearchSourcesResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/global/GetPendingExperimentIdsRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/global/GetPendingExperimentIdsResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/global/SetExperimentIdsRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/global/SetExperimentIdsResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/global/SetIncludeInGlobalSearchRequest.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/global/SetIncludeInGlobalSearchResponse.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/search/global/internal/IGlobalSearchAdminCallbacks.aidl create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/global/GetCurrentExperimentIdsRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/global/GetCurrentExperimentIdsResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/global/GetGlobalSearchSourcesRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/global/GetGlobalSearchSourcesResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/global/GetPendingExperimentIdsRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/global/GetPendingExperimentIdsResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/global/SetExperimentIdsRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/global/SetExperimentIdsResponse.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/global/SetIncludeInGlobalSearchRequest.java create mode 100644 play-services-api/src/main/java/com/google/android/gms/search/global/SetIncludeInGlobalSearchResponse.java delete mode 120000 safe-parcel diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 134f71c7..00000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "SafeParcel"] - path = extern/SafeParcel - url = https://github.com/microg/android_external_SafeParcel.git diff --git a/extern/SafeParcel b/extern/SafeParcel deleted file mode 160000 index 7e7fcee2..00000000 --- a/extern/SafeParcel +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7e7fcee20047116b87406ae0e1296489a46bac73 diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/IGooglePlaceDetectionService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/IGooglePlaceDetectionService.aidl new file mode 100644 index 00000000..39b0a53f --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/IGooglePlaceDetectionService.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.location.places.internal; + +interface IGooglePlaceDetectionService { + +} \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/IGooglePlacesService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/IGooglePlacesService.aidl new file mode 100644 index 00000000..854e921e --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/location/places/internal/IGooglePlacesService.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.location.places.internal; + +interface IGooglePlacesService { + +} \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetCurrentExperimentIdsRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetCurrentExperimentIdsRequest.aidl new file mode 100644 index 00000000..426cbe47 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetCurrentExperimentIdsRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.global; + +parcelable GetCurrentExperimentIdsRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetCurrentExperimentIdsResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetCurrentExperimentIdsResponse.aidl new file mode 100644 index 00000000..8fdb4567 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetCurrentExperimentIdsResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.global; + +parcelable GetCurrentExperimentIdsResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetGlobalSearchSourcesRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetGlobalSearchSourcesRequest.aidl new file mode 100644 index 00000000..986ab4db --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetGlobalSearchSourcesRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.global; + +parcelable GetGlobalSearchSourcesRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetGlobalSearchSourcesResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetGlobalSearchSourcesResponse.aidl new file mode 100644 index 00000000..86d52a13 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetGlobalSearchSourcesResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.global; + +parcelable GetGlobalSearchSourcesResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetPendingExperimentIdsRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetPendingExperimentIdsRequest.aidl new file mode 100644 index 00000000..8d7382ed --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetPendingExperimentIdsRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.global; + +parcelable GetPendingExperimentIdsRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetPendingExperimentIdsResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetPendingExperimentIdsResponse.aidl new file mode 100644 index 00000000..ca99ad5f --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/global/GetPendingExperimentIdsResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.global; + +parcelable GetPendingExperimentIdsResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/global/SetExperimentIdsRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/global/SetExperimentIdsRequest.aidl new file mode 100644 index 00000000..2bd4d8b3 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/global/SetExperimentIdsRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.global; + +parcelable SetExperimentIdsRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/global/SetExperimentIdsResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/global/SetExperimentIdsResponse.aidl new file mode 100644 index 00000000..ff552760 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/global/SetExperimentIdsResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.global; + +parcelable SetExperimentIdsResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/global/SetIncludeInGlobalSearchRequest.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/global/SetIncludeInGlobalSearchRequest.aidl new file mode 100644 index 00000000..79cbb179 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/global/SetIncludeInGlobalSearchRequest.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.global; + +parcelable SetIncludeInGlobalSearchRequest; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/global/SetIncludeInGlobalSearchResponse.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/global/SetIncludeInGlobalSearchResponse.aidl new file mode 100644 index 00000000..a5f2d6d0 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/global/SetIncludeInGlobalSearchResponse.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.search.global; + +parcelable SetIncludeInGlobalSearchResponse; \ No newline at end of file diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/global/internal/IGlobalSearchAdminCallbacks.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/global/internal/IGlobalSearchAdminCallbacks.aidl new file mode 100644 index 00000000..b08d9530 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/global/internal/IGlobalSearchAdminCallbacks.aidl @@ -0,0 +1,16 @@ +package com.google.android.gms.search.global.internal; + +import com.google.android.gms.search.global.GetCurrentExperimentIdsResponse; +import com.google.android.gms.search.global.GetGlobalSearchSourcesResponse; +import com.google.android.gms.search.global.GetPendingExperimentIdsResponse; +import com.google.android.gms.search.global.SetExperimentIdsResponse; +import com.google.android.gms.search.global.SetIncludeInGlobalSearchResponse; + +interface IGlobalSearchAdminCallbacks { + void onGetGlobalSearchSourcesResponse(in GetGlobalSearchSourcesResponse request) = 1; + void onSetExperimentIdsResponse(in SetExperimentIdsResponse response) = 2; + void onGetCurrentExperimentIdsResponse(in GetCurrentExperimentIdsResponse response) = 3; + void onGetPendingExperimentIdsResponse(in GetPendingExperimentIdsResponse response) = 4; + + void onSetIncludeInGlobalSearchResponse(in SetIncludeInGlobalSearchResponse response) = 7; +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/search/global/internal/IGlobalSearchAdminService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/search/global/internal/IGlobalSearchAdminService.aidl index 35ed0dbe..95bc32a7 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/search/global/internal/IGlobalSearchAdminService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/search/global/internal/IGlobalSearchAdminService.aidl @@ -1,5 +1,17 @@ package com.google.android.gms.search.global.internal; -interface IGlobalSearchAdminService { +import com.google.android.gms.search.global.GetCurrentExperimentIdsRequest; +import com.google.android.gms.search.global.GetGlobalSearchSourcesRequest; +import com.google.android.gms.search.global.GetPendingExperimentIdsRequest; +import com.google.android.gms.search.global.SetExperimentIdsRequest; +import com.google.android.gms.search.global.SetIncludeInGlobalSearchRequest; +import com.google.android.gms.search.global.internal.IGlobalSearchAdminCallbacks; +interface IGlobalSearchAdminService { + void getGlobalSearchSources(in GetGlobalSearchSourcesRequest request, IGlobalSearchAdminCallbacks callbacks) = 1; + void setExperimentIds(in SetExperimentIdsRequest request, IGlobalSearchAdminCallbacks callbacks) = 2; + void getCurrentExperimentIds(in GetCurrentExperimentIdsRequest request, IGlobalSearchAdminCallbacks callbacks) = 3; + void getPendingExperimentIds(in GetPendingExperimentIdsRequest request, IGlobalSearchAdminCallbacks callbacks) = 4; + + void setIncludeInGlobalSearch(in SetIncludeInGlobalSearchRequest request, IGlobalSearchAdminCallbacks callbacks) = 7; } diff --git a/play-services-api/src/main/java/com/google/android/gms/search/global/GetCurrentExperimentIdsRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/global/GetCurrentExperimentIdsRequest.java new file mode 100644 index 00000000..5f83f769 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/global/GetCurrentExperimentIdsRequest.java @@ -0,0 +1,28 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.global; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class GetCurrentExperimentIdsRequest extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 1; + + public static final Creator CREATOR = new AutoCreator(GetCurrentExperimentIdsRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/global/GetCurrentExperimentIdsResponse.java b/play-services-api/src/main/java/com/google/android/gms/search/global/GetCurrentExperimentIdsResponse.java new file mode 100644 index 00000000..d94502e3 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/global/GetCurrentExperimentIdsResponse.java @@ -0,0 +1,57 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.global; + +import com.google.android.gms.common.api.Status; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.Arrays; + +public class GetCurrentExperimentIdsResponse extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + public final Status status; + + @SafeParceled(2) + public final int[] experimentIds; + + private GetCurrentExperimentIdsResponse() { + status = null; + experimentIds = null; + } + + public GetCurrentExperimentIdsResponse(Status status, int[] experimentIds) { + this.status = status; + this.experimentIds = experimentIds; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("GetCurrentExperimentIdsResponse{"); + sb.append("status=").append(status); + sb.append(", experimentIds=").append(Arrays.toString(experimentIds)); + sb.append('}'); + return sb.toString(); + } + + public static final Creator CREATOR = new AutoCreator(GetCurrentExperimentIdsResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/global/GetGlobalSearchSourcesRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/global/GetGlobalSearchSourcesRequest.java new file mode 100644 index 00000000..ba1849cc --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/global/GetGlobalSearchSourcesRequest.java @@ -0,0 +1,39 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.global; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class GetGlobalSearchSourcesRequest extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + public boolean bool; + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("GetGlobalSearchSourcesRequest{"); + sb.append("bool=").append(bool); + sb.append('}'); + return sb.toString(); + } + + public static final Creator CREATOR = new AutoCreator(GetGlobalSearchSourcesRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/global/GetGlobalSearchSourcesResponse.java b/play-services-api/src/main/java/com/google/android/gms/search/global/GetGlobalSearchSourcesResponse.java new file mode 100644 index 00000000..cc771ad3 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/global/GetGlobalSearchSourcesResponse.java @@ -0,0 +1,59 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.global; + +import android.os.Parcelable; + +import com.google.android.gms.common.api.Status; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.Arrays; + +public class GetGlobalSearchSourcesResponse extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + public final Status status; + + @SafeParceled(2) + public final Parcelable[] sources; + + private GetGlobalSearchSourcesResponse() { + status = null; + sources = null; + } + + public GetGlobalSearchSourcesResponse(Status status, Parcelable[] sources) { + this.status = status; + this.sources = sources; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("GetGlobalSearchSourcesResponse{"); + sb.append("status=").append(status); + sb.append(", sources=").append(Arrays.toString(sources)); + sb.append('}'); + return sb.toString(); + } + + public static final Creator CREATOR = new AutoCreator(GetGlobalSearchSourcesResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/global/GetPendingExperimentIdsRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/global/GetPendingExperimentIdsRequest.java new file mode 100644 index 00000000..da762433 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/global/GetPendingExperimentIdsRequest.java @@ -0,0 +1,28 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.global; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class GetPendingExperimentIdsRequest extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 1; + + public static final Creator CREATOR = new AutoCreator(GetPendingExperimentIdsRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/global/GetPendingExperimentIdsResponse.java b/play-services-api/src/main/java/com/google/android/gms/search/global/GetPendingExperimentIdsResponse.java new file mode 100644 index 00000000..f786e3f0 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/global/GetPendingExperimentIdsResponse.java @@ -0,0 +1,57 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.global; + +import com.google.android.gms.common.api.Status; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.Arrays; + +public class GetPendingExperimentIdsResponse extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + public final Status status; + + @SafeParceled(2) + public final int[] experimentIds; + + private GetPendingExperimentIdsResponse() { + status = null; + experimentIds = null; + } + + public GetPendingExperimentIdsResponse(Status status, int[] experimentIds) { + this.status = status; + this.experimentIds = experimentIds; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("GetPendingExperimentIdsResponse{"); + sb.append("status=").append(status); + sb.append(", experimentIds=").append(Arrays.toString(experimentIds)); + sb.append('}'); + return sb.toString(); + } + + public static final Creator CREATOR = new AutoCreator(GetPendingExperimentIdsResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/global/SetExperimentIdsRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/global/SetExperimentIdsRequest.java new file mode 100644 index 00000000..5a1d3bad --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/global/SetExperimentIdsRequest.java @@ -0,0 +1,45 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.global; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +import java.util.Arrays; + +public class SetExperimentIdsRequest extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + public byte[] experimentIds; + + @SafeParceled(2) + public boolean enable; + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("SetExperimentIdsRequest{"); + sb.append("experimentIds=").append(Arrays.toString(experimentIds)); + sb.append(", enable=").append(enable); + sb.append('}'); + return sb.toString(); + } + + public static final Creator CREATOR = new AutoCreator(SetExperimentIdsRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/global/SetExperimentIdsResponse.java b/play-services-api/src/main/java/com/google/android/gms/search/global/SetExperimentIdsResponse.java new file mode 100644 index 00000000..61f46fcd --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/global/SetExperimentIdsResponse.java @@ -0,0 +1,49 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.global; + +import com.google.android.gms.common.api.Status; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class SetExperimentIdsResponse extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + public final Status status; + + private SetExperimentIdsResponse() { + status = null; + } + + public SetExperimentIdsResponse(Status status) { + this.status = status; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("SetExperimentIdsResponse{"); + sb.append("status=").append(status); + sb.append('}'); + return sb.toString(); + } + + public static final Creator CREATOR = new AutoCreator(SetExperimentIdsResponse.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/global/SetIncludeInGlobalSearchRequest.java b/play-services-api/src/main/java/com/google/android/gms/search/global/SetIncludeInGlobalSearchRequest.java new file mode 100644 index 00000000..ae0ed18a --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/global/SetIncludeInGlobalSearchRequest.java @@ -0,0 +1,47 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.global; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class SetIncludeInGlobalSearchRequest extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + public String packageName; + + @SafeParceled(2) + public String source; + + @SafeParceled(3) + public boolean enabled; + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("SetIncludeInGlobalSearchRequest{"); + sb.append("packageName='").append(packageName).append('\''); + sb.append(", source='").append(source).append('\''); + sb.append(", enabled=").append(enabled); + sb.append('}'); + return sb.toString(); + } + + public static final Creator CREATOR = new AutoCreator(SetIncludeInGlobalSearchRequest.class); +} diff --git a/play-services-api/src/main/java/com/google/android/gms/search/global/SetIncludeInGlobalSearchResponse.java b/play-services-api/src/main/java/com/google/android/gms/search/global/SetIncludeInGlobalSearchResponse.java new file mode 100644 index 00000000..18c91252 --- /dev/null +++ b/play-services-api/src/main/java/com/google/android/gms/search/global/SetIncludeInGlobalSearchResponse.java @@ -0,0 +1,49 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.search.global; + +import com.google.android.gms.common.api.Status; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class SetIncludeInGlobalSearchResponse extends AutoSafeParcelable { + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + public final Status status; + + private SetIncludeInGlobalSearchResponse() { + status = null; + } + + public SetIncludeInGlobalSearchResponse(Status status) { + this.status = status; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("SetIncludeInGlobalSearchResponse{"); + sb.append("status=").append(status); + sb.append('}'); + return sb.toString(); + } + + public static final Creator CREATOR = new AutoCreator(SetIncludeInGlobalSearchResponse.class); +} diff --git a/play-services-basement/build.gradle b/play-services-basement/build.gradle index 38d7eb7f..3fb7414a 100644 --- a/play-services-basement/build.gradle +++ b/play-services-basement/build.gradle @@ -48,5 +48,5 @@ android { dependencies { compile 'com.android.support:support-v4:23.4.0' - compile project(':safe-parcel') + compile 'org.microg:safe-parcel:1.4.0' } diff --git a/play-services-basement/src/main/java/org/microg/gms/common/GmsService.java b/play-services-basement/src/main/java/org/microg/gms/common/GmsService.java index 51f6f90b..ca6b0464 100644 --- a/play-services-basement/src/main/java/org/microg/gms/common/GmsService.java +++ b/play-services-basement/src/main/java/org/microg/gms/common/GmsService.java @@ -66,7 +66,7 @@ public enum GmsService { CONTEXT_MANAGER(47, "com.google.android.contextmanager.service.ContextManagerService.START"), AUDIO_MODEM(48, "com.google.android.gms.audiomodem.service.AudioModemService.START"), NEARBY_SHARING(49, "com.google.android.gms.nearby.sharing.service.NearbySharingService.START"), - LIGHTWEIGHT_NETWORK_QUALITY(51, "com.google.android.gms.herrevad.services.LightweightNetworkQualityAndroidService.START"), + LIGHTWEIGHT_NETWORK_QUALITY(50, "com.google.android.gms.herrevad.services.LightweightNetworkQualityAndroidService.START"), PHENOTYPE(51, "com.google.android.gms.phenotype.service.START"), VOICE_UNLOCK(52, "com.google.android.gms.speech.service.START"), NEARBY_CONNECTIONS(54, "com.google.android.gms.nearby.connection.service.START"), diff --git a/safe-parcel b/safe-parcel deleted file mode 120000 index 76875b71..00000000 --- a/safe-parcel +++ /dev/null @@ -1 +0,0 @@ -extern/SafeParcel/safe-parcel \ No newline at end of file From acec513b19aaba856722fc22c9adf3f5e0ea3ac7 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sat, 24 Sep 2016 20:58:01 +0200 Subject: [PATCH 118/170] Update build tools and target sdk --- .travis.yml | 17 +++++++++++------ build.gradle | 6 +++--- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index a1c9090d..c57a40b2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,15 +4,20 @@ git: before_install: - git submodule update --init --recursive script: - - export JAVA_OPTS="-XX:MaxPermSize=1024m -XX:+CMSClassUnloadingEnabled -XX:+HeapDumpOnOutOfMemoryError -Xmx2048m" + - export JAVA_OPTS="-XX:+CMSClassUnloadingEnabled -XX:+HeapDumpOnOutOfMemoryError -Xmx2048m" - export TERM=dumb - echo sdk.dir $ANDROID_HOME > local.properties - - ./gradlew assembleDebug -x lint + - jdk_switcher use oraclejdk8 + - ./gradlew assemble android: components: - tools - - build-tools-23.0.3 - - android-23 + - build-tools-24.0.2 + - android-24 - extra-android-m2repository - - +before_cache: + - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock +cache: + directories: + - $HOME/.gradle/caches/ + - $HOME/.gradle/wrapper/ diff --git a/build.gradle b/build.gradle index 4b3b586b..9e2799c4 100644 --- a/build.gradle +++ b/build.gradle @@ -19,17 +19,17 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.3' + classpath 'com.android.tools.build:gradle:2.2.0' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' } } allprojects { apply plugin: 'idea' - ext.androidBuildVersionTools = "23.0.3" + ext.androidBuildVersionTools = "24.0.2" } -def androidCompileSdk() { return 23 } +def androidCompileSdk() { return 24 } subprojects { repositories { From 107d70080ad5f8389db97dc0bb7f36d52af46afe Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 2 Oct 2016 20:15:36 +0200 Subject: [PATCH 119/170] Update reference version code --- .../src/main/java/org/microg/gms/common/Constants.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/play-services-basement/src/main/java/org/microg/gms/common/Constants.java b/play-services-basement/src/main/java/org/microg/gms/common/Constants.java index bf74f5b9..6cb9f7cc 100644 --- a/play-services-basement/src/main/java/org/microg/gms/common/Constants.java +++ b/play-services-basement/src/main/java/org/microg/gms/common/Constants.java @@ -17,11 +17,7 @@ package org.microg.gms.common; public class Constants { - /** - * This is the highest version that was looked at during development. - * Does not necessarily mean anything. - */ - public static final int MAX_REFERENCE_VERSION = 9452000; + public static final int MAX_REFERENCE_VERSION = 9683000; public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; public static final String GSF_PACKAGE_NAME = "com.google.android.gsf"; public static final String GMS_PACKAGE_SIGNATURE_SHA1 = "38918a453d07199354f8b19af05ec6562ced5788"; From f7716698dae5c162d63df7d265451d9907064023 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 6 Nov 2016 02:21:11 +0100 Subject: [PATCH 120/170] Increase basement version and add initial parts of cast-framework-api --- play-services-api/build.gradle | 1 + play-services-basement/build.gradle | 2 +- .../java/org/microg/gms/common/Constants.java | 2 +- play-services-cast-framework-api/build.gradle | 46 +++++++++++++++++++ .../src/main/AndroidManifest.xml | 24 ++++++++++ .../gms/cast/framework/CastOptions.aidl | 3 ++ .../framework/ICastConnectionController.aidl | 5 ++ .../gms/cast/framework/ICastContext.aidl | 15 ++++++ .../gms/cast/framework/ICastSession.aidl | 5 ++ .../cast/framework/IReconnectionService.aidl | 5 ++ .../android/gms/cast/framework/ISession.aidl | 5 ++ .../gms/cast/framework/ISessionManager.aidl | 13 ++++++ .../gms/cast/framework/ISessionProxy.aidl | 5 ++ .../internal/ICastDynamiteModule.aidl | 24 ++++++++++ .../cast/framework/internal/IMediaRouter.aidl | 5 ++ .../framework/media/CastMediaOptions.aidl | 3 ++ .../media/IMediaNotificationService.aidl | 5 ++ .../media/internal/IFetchBitmapTask.aidl | 5 ++ .../IFetchBitmapTaskProgressPublisher.aidl | 5 ++ .../gms/cast/framework/CastOptions.java | 25 ++++++++++ .../framework/media/CastMediaOptions.java | 25 ++++++++++ settings.gradle | 1 + 22 files changed, 227 insertions(+), 2 deletions(-) create mode 100644 play-services-cast-framework-api/build.gradle create mode 100644 play-services-cast-framework-api/src/main/AndroidManifest.xml create mode 100644 play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/CastOptions.aidl create mode 100644 play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastConnectionController.aidl create mode 100644 play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastContext.aidl create mode 100644 play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastSession.aidl create mode 100644 play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/IReconnectionService.aidl create mode 100644 play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISession.aidl create mode 100644 play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISessionManager.aidl create mode 100644 play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISessionProxy.aidl create mode 100644 play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/internal/ICastDynamiteModule.aidl create mode 100644 play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/internal/IMediaRouter.aidl create mode 100644 play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/CastMediaOptions.aidl create mode 100644 play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/IMediaNotificationService.aidl create mode 100644 play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/internal/IFetchBitmapTask.aidl create mode 100644 play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/internal/IFetchBitmapTaskProgressPublisher.aidl create mode 100644 play-services-cast-framework-api/src/main/java/com/google/android/gms/cast/framework/CastOptions.java create mode 100644 play-services-cast-framework-api/src/main/java/com/google/android/gms/cast/framework/media/CastMediaOptions.java diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index 33871ca2..972d5ad2 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -44,6 +44,7 @@ android { dependencies { compile project(':play-services-basement') compile project(':play-services-cast-api') + compile project(':play-services-cast-framework-api') compile project(':play-services-iid-api') compile project(':play-services-location-api') compile project(':play-services-wearable-api') diff --git a/play-services-basement/build.gradle b/play-services-basement/build.gradle index 3fb7414a..8358b839 100644 --- a/play-services-basement/build.gradle +++ b/play-services-basement/build.gradle @@ -47,6 +47,6 @@ android { } dependencies { - compile 'com.android.support:support-v4:23.4.0' + compile 'com.android.support:support-v4:24.2.1' compile 'org.microg:safe-parcel:1.4.0' } diff --git a/play-services-basement/src/main/java/org/microg/gms/common/Constants.java b/play-services-basement/src/main/java/org/microg/gms/common/Constants.java index 6cb9f7cc..9fadb62b 100644 --- a/play-services-basement/src/main/java/org/microg/gms/common/Constants.java +++ b/play-services-basement/src/main/java/org/microg/gms/common/Constants.java @@ -17,7 +17,7 @@ package org.microg.gms.common; public class Constants { - public static final int MAX_REFERENCE_VERSION = 9683000; + public static final int MAX_REFERENCE_VERSION = 10084000; public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; public static final String GSF_PACKAGE_NAME = "com.google.android.gsf"; public static final String GMS_PACKAGE_SIGNATURE_SHA1 = "38918a453d07199354f8b19af05ec6562ced5788"; diff --git a/play-services-cast-framework-api/build.gradle b/play-services-cast-framework-api/build.gradle new file mode 100644 index 00000000..b4ddb5c3 --- /dev/null +++ b/play-services-cast-framework-api/build.gradle @@ -0,0 +1,46 @@ +/* + * Copyright 2013-2015 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +apply plugin: 'com.android.library' + +String getMyVersionName() { + def stdout = new ByteArrayOutputStream() + if (rootProject.file("gradlew").exists()) + exec { commandLine 'git', 'describe', '--tags', '--always', '--dirty'; standardOutput = stdout } + else // automatic build system, don't tag dirty + exec { commandLine 'git', 'describe', '--tags', '--always'; standardOutput = stdout } + return stdout.toString().trim().substring(1) +} + +group = 'org.microg' +version = getMyVersionName() + +android { + compileSdkVersion androidCompileSdk() + buildToolsVersion "$androidBuildVersionTools" + + defaultConfig { + versionName getMyVersionName() + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_6 + } +} + +dependencies { + compile project(':play-services-basement') +} diff --git a/play-services-cast-framework-api/src/main/AndroidManifest.xml b/play-services-cast-framework-api/src/main/AndroidManifest.xml new file mode 100644 index 00000000..d4913c98 --- /dev/null +++ b/play-services-cast-framework-api/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/CastOptions.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/CastOptions.aidl new file mode 100644 index 00000000..e867d59d --- /dev/null +++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/CastOptions.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.cast.framework; + +parcelable CastOptions; \ No newline at end of file diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastConnectionController.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastConnectionController.aidl new file mode 100644 index 00000000..6857ad18 --- /dev/null +++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastConnectionController.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.cast.framework; + +interface ICastConnectionController { + +} \ No newline at end of file diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastContext.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastContext.aidl new file mode 100644 index 00000000..25c4ec51 --- /dev/null +++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastContext.aidl @@ -0,0 +1,15 @@ +package com.google.android.gms.cast.framework; + +import com.google.android.gms.cast.framework.ISessionManager; +import com.google.android.gms.dynamic.IObjectWrapper; + +interface ICastContext { + Bundle getMergedSelectorAsBundle() = 0; + boolean isApplicationVisible() = 1; + //void addAppVisibilityListener(IAppVisibilityListener listener) = 2; + //void removeAppVisibilityListener(IAppVisibilityListener listener) = 3; + ISessionManager getSessionManager() = 4; + void destroy() = 5; + void onActivityResumed(in IObjectWrapper activity) = 6; + void onActivityPaused(in IObjectWrapper activity) = 7; +} \ No newline at end of file diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastSession.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastSession.aidl new file mode 100644 index 00000000..848fb6b5 --- /dev/null +++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastSession.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.cast.framework; + +interface ICastSession { + +} \ No newline at end of file diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/IReconnectionService.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/IReconnectionService.aidl new file mode 100644 index 00000000..33f19574 --- /dev/null +++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/IReconnectionService.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.cast.framework; + +interface IReconnectionService { + +} \ No newline at end of file diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISession.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISession.aidl new file mode 100644 index 00000000..51602ea7 --- /dev/null +++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISession.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.cast.framework; + +interface ISession { + +} \ No newline at end of file diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISessionManager.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISessionManager.aidl new file mode 100644 index 00000000..c2cc3e66 --- /dev/null +++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISessionManager.aidl @@ -0,0 +1,13 @@ +package com.google.android.gms.cast.framework; + +import com.google.android.gms.dynamic.IObjectWrapper; + +interface ISessionManager { + IObjectWrapper getWrappedCurrentSession() = 0; + //void addSessionManagerListener(ISessionManagerListener listener) = 1; + //void removeSessionManagerListener(ISessionManagerListener listener) = 2; + //void addCastStateListener(ICastStateListener listener) = 3; + //void removeCastStateListener(ICastStateListener listener) = 4; + void endCurrentSession(boolean b, boolean stopCasting) = 5; + IObjectWrapper getWrappedThis() = 6; +} \ No newline at end of file diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISessionProxy.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISessionProxy.aidl new file mode 100644 index 00000000..7d0a4fad --- /dev/null +++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISessionProxy.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.cast.framework; + +interface ISessionProxy { + +} \ No newline at end of file diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/internal/ICastDynamiteModule.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/internal/ICastDynamiteModule.aidl new file mode 100644 index 00000000..e62d1a67 --- /dev/null +++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/internal/ICastDynamiteModule.aidl @@ -0,0 +1,24 @@ +package com.google.android.gms.cast.framework.internal; + +import com.google.android.gms.cast.framework.CastOptions; +import com.google.android.gms.cast.framework.ICastConnectionController; +import com.google.android.gms.cast.framework.ICastContext; +import com.google.android.gms.cast.framework.ICastSession; +import com.google.android.gms.cast.framework.IReconnectionService; +import com.google.android.gms.cast.framework.ISession; +import com.google.android.gms.cast.framework.ISessionProxy; +import com.google.android.gms.cast.framework.internal.IMediaRouter; +import com.google.android.gms.cast.framework.media.CastMediaOptions; +import com.google.android.gms.cast.framework.media.IMediaNotificationService; +import com.google.android.gms.cast.framework.media.internal.IFetchBitmapTask; +import com.google.android.gms.cast.framework.media.internal.IFetchBitmapTaskProgressPublisher; +import com.google.android.gms.dynamic.IObjectWrapper; + +interface ICastDynamiteModule { + ICastContext newCastContextImpl(in IObjectWrapper context, in CastOptions options, IMediaRouter router, in Map map) = 0; + ISession newSessionImpl(String s1, String s2, ISessionProxy proxy) = 1; + ICastSession newCastSessionImpl(in CastOptions options, in IObjectWrapper session, ICastConnectionController controller) = 2; + IMediaNotificationService newMediaNotificationServiceImpl(in IObjectWrapper service, in IObjectWrapper castContext, in IObjectWrapper resources, in CastMediaOptions options) = 3; + IReconnectionService newReconnectionServiceImpl(in IObjectWrapper service, in IObjectWrapper sessionManager, in IObjectWrapper discoveryManager) = 4; + IFetchBitmapTask newFetchBitmapTaskImpl(in IObjectWrapper asyncTask, IFetchBitmapTaskProgressPublisher progressPublisher, int i1, int i2, boolean b1, long l1, int i3, int i4, int i5) = 5; +} \ No newline at end of file diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/internal/IMediaRouter.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/internal/IMediaRouter.aidl new file mode 100644 index 00000000..73fd0506 --- /dev/null +++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/internal/IMediaRouter.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.cast.framework.internal; + +interface IMediaRouter { + +} \ No newline at end of file diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/CastMediaOptions.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/CastMediaOptions.aidl new file mode 100644 index 00000000..4186fc4b --- /dev/null +++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/CastMediaOptions.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.cast.framework.media; + +parcelable CastMediaOptions; \ No newline at end of file diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/IMediaNotificationService.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/IMediaNotificationService.aidl new file mode 100644 index 00000000..03e48729 --- /dev/null +++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/IMediaNotificationService.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.cast.framework.media; + +interface IMediaNotificationService { + +} \ No newline at end of file diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/internal/IFetchBitmapTask.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/internal/IFetchBitmapTask.aidl new file mode 100644 index 00000000..c9f2286d --- /dev/null +++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/internal/IFetchBitmapTask.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.cast.framework.media.internal; + +interface IFetchBitmapTask { + +} \ No newline at end of file diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/internal/IFetchBitmapTaskProgressPublisher.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/internal/IFetchBitmapTaskProgressPublisher.aidl new file mode 100644 index 00000000..58b80c08 --- /dev/null +++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/internal/IFetchBitmapTaskProgressPublisher.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.cast.framework.media.internal; + +interface IFetchBitmapTaskProgressPublisher { + +} \ No newline at end of file diff --git a/play-services-cast-framework-api/src/main/java/com/google/android/gms/cast/framework/CastOptions.java b/play-services-cast-framework-api/src/main/java/com/google/android/gms/cast/framework/CastOptions.java new file mode 100644 index 00000000..7510362a --- /dev/null +++ b/play-services-cast-framework-api/src/main/java/com/google/android/gms/cast/framework/CastOptions.java @@ -0,0 +1,25 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.cast.framework; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class CastOptions extends AutoSafeParcelable { + + + public static Creator CREATOR = new AutoCreator(CastOptions.class); +} diff --git a/play-services-cast-framework-api/src/main/java/com/google/android/gms/cast/framework/media/CastMediaOptions.java b/play-services-cast-framework-api/src/main/java/com/google/android/gms/cast/framework/media/CastMediaOptions.java new file mode 100644 index 00000000..362e89f2 --- /dev/null +++ b/play-services-cast-framework-api/src/main/java/com/google/android/gms/cast/framework/media/CastMediaOptions.java @@ -0,0 +1,25 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.cast.framework.media; + +import org.microg.safeparcel.AutoSafeParcelable; + +public class CastMediaOptions extends AutoSafeParcelable { + + + public static Creator CREATOR = new AutoCreator(CastMediaOptions.class); +} diff --git a/settings.gradle b/settings.gradle index 99da0fb4..aed59ec3 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,6 +1,7 @@ include ':play-services-basement' include ':play-services-api' include ':play-services-cast-api' +include ':play-services-cast-framework-api' include ':play-services-iid-api' include ':play-services-location-api' include ':play-services-wearable-api' From 7e04251b381f4f314bc76be163132cfeea4f8380 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 6 Nov 2016 02:45:48 +0100 Subject: [PATCH 121/170] Prepare for being a maven artifact --- build.gradle | 2 +- play-services-api/gradle.properties | 4 +-- play-services-basement/gradle.properties | 34 +++++++++++++++++++ play-services-cast-api/gradle.properties | 34 +++++++++++++++++++ .../gradle.properties | 34 +++++++++++++++++++ play-services-iid-api/gradle.properties | 34 +++++++++++++++++++ play-services-location-api/gradle.properties | 34 +++++++++++++++++++ play-services-wearable-api/gradle.properties | 34 +++++++++++++++++++ 8 files changed, 207 insertions(+), 3 deletions(-) create mode 100644 play-services-basement/gradle.properties create mode 100644 play-services-cast-api/gradle.properties create mode 100644 play-services-cast-framework-api/gradle.properties create mode 100644 play-services-iid-api/gradle.properties create mode 100644 play-services-location-api/gradle.properties create mode 100644 play-services-wearable-api/gradle.properties diff --git a/build.gradle b/build.gradle index 9e2799c4..92c603d5 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.0' + classpath 'com.android.tools.build:gradle:2.2.2' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' } } diff --git a/play-services-api/gradle.properties b/play-services-api/gradle.properties index f547fef2..221fda84 100644 --- a/play-services-api/gradle.properties +++ b/play-services-api/gradle.properties @@ -1,5 +1,5 @@ # -# Copyright 2013-2015 microG Project Team +# Copyright 2013-2016 microG Project Team # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,7 +14,7 @@ # limitations under the License. # -POM_NAME=GmsApi +POM_NAME=Play Services Internal API POM_DESCRIPTION=Interfaces and objects for IPC between Play Services Library and Play Services Core POM_PACKAGING=aar diff --git a/play-services-basement/gradle.properties b/play-services-basement/gradle.properties new file mode 100644 index 00000000..c18a7f49 --- /dev/null +++ b/play-services-basement/gradle.properties @@ -0,0 +1,34 @@ +# +# Copyright 2013-2016 microG Project Team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +POM_NAME=Play Services Basement +POM_DESCRIPTION=Interfaces and objects used all over Play Services API, Library and Core + +POM_PACKAGING=aar + +POM_URL=https://github.com/microg/android_external_GmsApi + +POM_SCM_URL=https://github.com/microg/android_external_GmsApi +POM_SCM_CONNECTION=scm:git@github.com:microg/android_external_GmsApi.git +POM_SCM_DEV_CONNECTION=scm:git@github.com:microg/android_external_GmsApi.git + +POM_LICENCE_NAME=The Apache Software License, Version 2.0 +POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt +POM_LICENCE_DIST=repo + +POM_DEVELOPER_ID=mar-v-in +POM_DEVELOPER_NAME=Marvin W + diff --git a/play-services-cast-api/gradle.properties b/play-services-cast-api/gradle.properties new file mode 100644 index 00000000..18ff0a50 --- /dev/null +++ b/play-services-cast-api/gradle.properties @@ -0,0 +1,34 @@ +# +# Copyright 2013-2016 microG Project Team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +POM_NAME=Play Services Internal Cast API +POM_DESCRIPTION=Interfaces and objects for IPC between Play Services Library and Play Services Core + +POM_PACKAGING=aar + +POM_URL=https://github.com/microg/android_external_GmsApi + +POM_SCM_URL=https://github.com/microg/android_external_GmsApi +POM_SCM_CONNECTION=scm:git@github.com:microg/android_external_GmsApi.git +POM_SCM_DEV_CONNECTION=scm:git@github.com:microg/android_external_GmsApi.git + +POM_LICENCE_NAME=The Apache Software License, Version 2.0 +POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt +POM_LICENCE_DIST=repo + +POM_DEVELOPER_ID=mar-v-in +POM_DEVELOPER_NAME=Marvin W + diff --git a/play-services-cast-framework-api/gradle.properties b/play-services-cast-framework-api/gradle.properties new file mode 100644 index 00000000..54557daf --- /dev/null +++ b/play-services-cast-framework-api/gradle.properties @@ -0,0 +1,34 @@ +# +# Copyright 2013-2016 microG Project Team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +POM_NAME=Play Services Internal Cast Framework API +POM_DESCRIPTION=Interfaces and objects for IPC between Play Services Library and Play Services Core + +POM_PACKAGING=aar + +POM_URL=https://github.com/microg/android_external_GmsApi + +POM_SCM_URL=https://github.com/microg/android_external_GmsApi +POM_SCM_CONNECTION=scm:git@github.com:microg/android_external_GmsApi.git +POM_SCM_DEV_CONNECTION=scm:git@github.com:microg/android_external_GmsApi.git + +POM_LICENCE_NAME=The Apache Software License, Version 2.0 +POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt +POM_LICENCE_DIST=repo + +POM_DEVELOPER_ID=mar-v-in +POM_DEVELOPER_NAME=Marvin W + diff --git a/play-services-iid-api/gradle.properties b/play-services-iid-api/gradle.properties new file mode 100644 index 00000000..d54aab99 --- /dev/null +++ b/play-services-iid-api/gradle.properties @@ -0,0 +1,34 @@ +# +# Copyright 2013-2016 microG Project Team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +POM_NAME=Play Services Internal IID API +POM_DESCRIPTION=Interfaces and objects for IPC between Play Services Library and Play Services Core + +POM_PACKAGING=aar + +POM_URL=https://github.com/microg/android_external_GmsApi + +POM_SCM_URL=https://github.com/microg/android_external_GmsApi +POM_SCM_CONNECTION=scm:git@github.com:microg/android_external_GmsApi.git +POM_SCM_DEV_CONNECTION=scm:git@github.com:microg/android_external_GmsApi.git + +POM_LICENCE_NAME=The Apache Software License, Version 2.0 +POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt +POM_LICENCE_DIST=repo + +POM_DEVELOPER_ID=mar-v-in +POM_DEVELOPER_NAME=Marvin W + diff --git a/play-services-location-api/gradle.properties b/play-services-location-api/gradle.properties new file mode 100644 index 00000000..de0a3085 --- /dev/null +++ b/play-services-location-api/gradle.properties @@ -0,0 +1,34 @@ +# +# Copyright 2013-2016 microG Project Team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +POM_NAME=Play Services Internal Location API +POM_DESCRIPTION=Interfaces and objects for IPC between Play Services Library and Play Services Core + +POM_PACKAGING=aar + +POM_URL=https://github.com/microg/android_external_GmsApi + +POM_SCM_URL=https://github.com/microg/android_external_GmsApi +POM_SCM_CONNECTION=scm:git@github.com:microg/android_external_GmsApi.git +POM_SCM_DEV_CONNECTION=scm:git@github.com:microg/android_external_GmsApi.git + +POM_LICENCE_NAME=The Apache Software License, Version 2.0 +POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt +POM_LICENCE_DIST=repo + +POM_DEVELOPER_ID=mar-v-in +POM_DEVELOPER_NAME=Marvin W + diff --git a/play-services-wearable-api/gradle.properties b/play-services-wearable-api/gradle.properties new file mode 100644 index 00000000..c771353e --- /dev/null +++ b/play-services-wearable-api/gradle.properties @@ -0,0 +1,34 @@ +# +# Copyright 2013-2016 microG Project Team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +POM_NAME=Play Services Internal Wearable API +POM_DESCRIPTION=Interfaces and objects for IPC between Play Services Library and Play Services Core + +POM_PACKAGING=aar + +POM_URL=https://github.com/microg/android_external_GmsApi + +POM_SCM_URL=https://github.com/microg/android_external_GmsApi +POM_SCM_CONNECTION=scm:git@github.com:microg/android_external_GmsApi.git +POM_SCM_DEV_CONNECTION=scm:git@github.com:microg/android_external_GmsApi.git + +POM_LICENCE_NAME=The Apache Software License, Version 2.0 +POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt +POM_LICENCE_DIST=repo + +POM_DEVELOPER_ID=mar-v-in +POM_DEVELOPER_NAME=Marvin W + From 9ff42ae73a02ea971dc557f657b612113dfa6e24 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 6 Nov 2016 16:10:32 +0100 Subject: [PATCH 122/170] Move things that do not belong into basement back to base --- .../android/gms/common/ConnectionResult.java | 2 - .../android/gms/common/api/AccountInfo.java | 23 - .../google/android/gms/common/api/Api.java | 84 --- .../gms/common/api/GoogleApiClient.java | 494 ------------------ .../android/gms/common/api/PendingResult.java | 59 --- .../org/microg/gms/common/api/ApiBuilder.java | 30 -- .../microg/gms/common/api/ApiConnection.java | 27 - .../gms/common/api/GoogleApiClientImpl.java | 223 -------- .../google/android/gms/wearable/Channel.java | 94 ---- .../android/gms/wearable/ChannelApi.java | 185 ------- .../android/gms/wearable/MessageApi.java | 88 ---- .../internal/ChannelEventParcelable.java | 2 +- .../gms/wearable/internal/ChannelImpl.java | 120 ----- .../wearable/internal/ChannelParcelable.java | 42 ++ .../internal/SendMessageResponse.java | 15 +- 15 files changed, 44 insertions(+), 1444 deletions(-) delete mode 100644 play-services-basement/src/main/java/com/google/android/gms/common/api/AccountInfo.java delete mode 100644 play-services-basement/src/main/java/com/google/android/gms/common/api/Api.java delete mode 100644 play-services-basement/src/main/java/com/google/android/gms/common/api/GoogleApiClient.java delete mode 100644 play-services-basement/src/main/java/com/google/android/gms/common/api/PendingResult.java delete mode 100644 play-services-basement/src/main/java/org/microg/gms/common/api/ApiBuilder.java delete mode 100644 play-services-basement/src/main/java/org/microg/gms/common/api/ApiConnection.java delete mode 100644 play-services-basement/src/main/java/org/microg/gms/common/api/GoogleApiClientImpl.java delete mode 100644 play-services-wearable-api/src/main/java/com/google/android/gms/wearable/Channel.java delete mode 100644 play-services-wearable-api/src/main/java/com/google/android/gms/wearable/ChannelApi.java delete mode 100644 play-services-wearable-api/src/main/java/com/google/android/gms/wearable/MessageApi.java delete mode 100644 play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelImpl.java create mode 100644 play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelParcelable.java diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/ConnectionResult.java b/play-services-basement/src/main/java/com/google/android/gms/common/ConnectionResult.java index f6f75c1a..afe7b99d 100644 --- a/play-services-basement/src/main/java/com/google/android/gms/common/ConnectionResult.java +++ b/play-services-basement/src/main/java/com/google/android/gms/common/ConnectionResult.java @@ -22,8 +22,6 @@ import android.content.Intent; import android.content.IntentSender; import android.text.TextUtils; -import com.google.android.gms.common.api.GoogleApiClient; - import java.util.Arrays; /** diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/api/AccountInfo.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/AccountInfo.java deleted file mode 100644 index 109be301..00000000 --- a/play-services-basement/src/main/java/com/google/android/gms/common/api/AccountInfo.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2013-2015 microG Project Team - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.gms.common.api; - -import org.microg.safeparcel.AutoSafeParcelable; - -public class AccountInfo extends AutoSafeParcelable { - public static final Creator CREATOR = new AutoCreator(AccountInfo.class); -} diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/api/Api.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/Api.java deleted file mode 100644 index 1b0f03f2..00000000 --- a/play-services-basement/src/main/java/com/google/android/gms/common/api/Api.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2013-2015 microG Project Team - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.gms.common.api; - -import org.microg.gms.common.PublicApi; -import org.microg.gms.common.api.ApiBuilder; - -/** - * Describes a section of the Google Play Services API that should be made available. Instances of - * this should be passed into {@link GoogleApiClient.Builder#addApi(Api)} to enable the appropriate - * parts of Google Play Services. - *

- * Google APIs are partitioned into sections which allow your application to configure only the - * services it requires. Each Google API provides an API object which can be passed to - * {@link GoogleApiClient.Builder#addApi(Api)} in order to configure and enable that functionality - * in your {@link GoogleApiClient} instance. - *

- * See {@link GoogleApiClient.Builder} for usage examples. - */ -@PublicApi -public final class Api { - - private final ApiBuilder builder; - - @PublicApi(exclude = true) - public Api(ApiBuilder builder) { - this.builder = builder; - } - - @PublicApi(exclude = true) - public ApiBuilder getBuilder() { - return builder; - } - - /** - * Base interface for API options. These are used to configure specific parameters for - * individual API surfaces. The default implementation has no parameters. - */ - @PublicApi - public interface ApiOptions { - /** - * Base interface for {@link ApiOptions} in {@link Api}s that have options. - */ - @PublicApi - interface HasOptions extends ApiOptions { - } - - /** - * Base interface for {@link ApiOptions} that are not required, don't exist. - */ - @PublicApi - interface NotRequiredOptions extends ApiOptions { - } - - /** - * {@link ApiOptions} implementation for {@link Api}s that do not take any options. - */ - @PublicApi - final class NoOptions implements NotRequiredOptions { - } - - /** - * Base interface for {@link ApiOptions} that are optional. - */ - @PublicApi - interface Optional extends HasOptions, NotRequiredOptions { - } - } - -} diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/api/GoogleApiClient.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/GoogleApiClient.java deleted file mode 100644 index 87b05d6b..00000000 --- a/play-services-basement/src/main/java/com/google/android/gms/common/api/GoogleApiClient.java +++ /dev/null @@ -1,494 +0,0 @@ -/* - * Copyright 2013-2015 microG Project Team - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.gms.common.api; - -import android.app.Activity; -import android.content.Context; -import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; -import android.support.v4.app.FragmentActivity; -import android.view.View; - -import com.google.android.gms.common.ConnectionResult; - -import org.microg.gms.auth.AuthConstants; -import org.microg.gms.common.PublicApi; -import org.microg.gms.common.api.GoogleApiClientImpl; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.TimeUnit; - -/** - * The main entry point for Google Play services integration. - *

- * GoogleApiClient is used with a variety of static methods. Some of these methods require that - * GoogleApiClient be connected, some will queue up calls before GoogleApiClient is connected; - * check the specific API documentation to determine whether you need to be connected. - *

- * Before any operation is executed, the GoogleApiClient must be connected using the - * {@link #connect()} method. The client is not considered connected until the - * {@link ConnectionCallbacks#onConnected(Bundle)} callback has been called. - *

- * When your app is done using this client, call {@link #disconnect()}, even if the async result - * from {@link #connect()} has not yet been delivered. - *

- * You should instantiate a client object in your Activity's {@link Activity#onCreate(Bundle)} - * method and then call {@link #connect()} in {@link Activity#onStart()} and {@link #disconnect()} - * in {@link Activity#onStop()}, regardless of the state. - */ -@PublicApi -public interface GoogleApiClient { - /** - * Connects the client to Google Play services. Blocks until the connection either succeeds or - * fails. This is not allowed on the UI thread. - * - * @return the result of the connection - */ - ConnectionResult blockingConnect(); - - /** - * Connects the client to Google Play services. Blocks until the connection is set or failed or - * has timed out. This is not allowed on the UI thread. - * - * @param timeout the maximum time to wait - * @param unit the time unit of the {@code timeout} argument - * @return the result of the connection - */ - ConnectionResult blockingConnect(long timeout, TimeUnit unit); - - /** - * Clears the account selected by the user and reconnects the client asking the user to pick an - * account again if {@link Builder#useDefaultAccount()} was set. - * - * @return the pending result is fired once the default account has been cleared, but before - * the client is reconnected - for that {@link ConnectionCallbacks} can be used. - */ - PendingResult clearDefaultAccountAndReconnect(); - - /** - * Connects the client to Google Play services. This method returns immediately, and connects - * to the service in the background. If the connection is successful, - * {@link ConnectionCallbacks#onConnected(Bundle)} is called and enqueued items are executed. - * On a failure, {@link OnConnectionFailedListener#onConnectionFailed(ConnectionResult)} is - * called. - */ - void connect(); - - /** - * Closes the connection to Google Play services. No calls can be made using this client after - * calling this method. Any method calls that haven't executed yet will be canceled. That is - * {@link ResultCallback#onResult(Result)} won't be called, if connection to the service hasn't - * been established yet all calls already made will be canceled. - * - * @see #connect() - */ - void disconnect(); - - /** - * Checks if the client is currently connected to the service, so that requests to other - * methods will succeed. Applications should guard client actions caused by the user with a - * call to this method. - * - * @return {@code true} if the client is connected to the service. - */ - boolean isConnected(); - - /** - * Checks if the client is attempting to connect to the service. - * - * @return {@code true} if the client is attempting to connect to the service. - */ - boolean isConnecting(); - - /** - * Returns {@code true} if the specified listener is currently registered to receive connection - * events. - * - * @param listener The listener to check for. - * @return {@code true} if the specified listener is currently registered to receive connection - * events. - * @see #registerConnectionCallbacks(ConnectionCallbacks) - * @see #unregisterConnectionCallbacks(ConnectionCallbacks) - */ - boolean isConnectionCallbacksRegistered(ConnectionCallbacks listener); - - /** - * Returns {@code true} if the specified listener is currently registered to receive connection - * failed events. - * - * @param listener The listener to check for. - * @return {@code true} if the specified listener is currently registered to receive connection - * failed events. - * @see #registerConnectionFailedListener(OnConnectionFailedListener) - * @see #unregisterConnectionFailedListener(OnConnectionFailedListener) - */ - public boolean isConnectionFailedListenerRegistered(OnConnectionFailedListener listener); - - /** - * Closes the current connection to Google Play services and creates a new connection. - *

- * This method closes the current connection then returns immediately and reconnects to the - * service in the background. - *

- * After calling this method, your application will receive - * {@link ConnectionCallbacks#onConnected(Bundle)} if the connection is successful, or - * {@link OnConnectionFailedListener#onConnectionFailed(ConnectionResult)} if the connection - * failed. - * - * @see #connect() - * @see #disconnect() - */ - void reconnect(); - - /** - * Registers a listener to receive connection events from this {@link GoogleApiClient}. If the - * service is already connected, the listener's {@link ConnectionCallbacks#onConnected(Bundle)} - * method will be called immediately. Applications should balance calls to this method with - * calls to {@link #unregisterConnectionCallbacks(ConnectionCallbacks)} to avoid leaking - * resources. - *

- * If the specified listener is already registered to receive connection events, this method - * will not add a duplicate entry for the same listener, but will still call the listener's - * {@link ConnectionCallbacks#onConnected(Bundle)} method if currently connected. - *

- * Note that the order of messages received here may not be stable, so clients should not rely - * on the order that multiple listeners receive events in. - * - * @param listener the listener where the results of the asynchronous {@link #connect()} call - * are delivered. - */ - void registerConnectionCallbacks(ConnectionCallbacks listener); - - /** - * Registers a listener to receive connection failed events from this {@link GoogleApiClient}. - * Unlike {@link #registerConnectionCallbacks(ConnectionCallbacks)}, if the service is not - * already connected, the listener's - * {@link OnConnectionFailedListener#onConnectionFailed(ConnectionResult)} method will not be - * called immediately. Applications should balance calls to this method with calls to - * {@link #unregisterConnectionFailedListener(OnConnectionFailedListener)} to avoid leaking - * resources. - *

- * If the specified listener is already registered to receive connection failed events, this - * method will not add a duplicate entry for the same listener. - *

- * Note that the order of messages received here may not be stable, so clients should not rely - * on the order that multiple listeners receive events in. - * - * @param listener the listener where the results of the asynchronous {@link #connect()} call - * are delivered. - */ - public void registerConnectionFailedListener(OnConnectionFailedListener listener); - - /** - * Disconnects the client and stops automatic lifecycle management. Use this before creating a - * new client (which might be necessary when switching accounts, changing the set of used APIs - * etc.). - *

- * This method must be called from the main thread. - * - * @param lifecycleActivity the activity managing the client's lifecycle. - * @throws IllegalStateException if called from outside of the main thread. - * @see Builder#enableAutoManage(FragmentActivity, int, OnConnectionFailedListener) - */ - void stopAutoManager(FragmentActivity lifecycleActivity) throws IllegalStateException; - - /** - * Removes a connection listener from this {@link GoogleApiClient}. Note that removing a - * listener does not generate any callbacks. - *

- * If the specified listener is not currently registered to receive connection events, this - * method will have no effect. - * - * @param listener the listener to unregister. - */ - void unregisterConnectionCallbacks(ConnectionCallbacks listener); - - /** - * Removes a connection failed listener from the {@link GoogleApiClient}. Note that removing a - * listener does not generate any callbacks. - *

- * If the specified listener is not currently registered to receive connection failed events, - * this method will have no effect. - * - * @param listener the listener to unregister. - */ - void unregisterConnectionFailedListener(OnConnectionFailedListener listener); - - /** - * Builder to configure a {@link GoogleApiClient}. - */ - @PublicApi - class Builder { - private final Context context; - private final Map apis = new HashMap(); - private final Set connectionCallbacks = new HashSet(); - private final Set connectionFailedListeners = new HashSet(); - private final Set scopes = new HashSet(); - private String accountName; - private int clientId = -1; - private FragmentActivity fragmentActivity; - private Looper looper; - private int gravityForPopups; - private OnConnectionFailedListener unresolvedConnectionFailedListener; - private View viewForPopups; - - /** - * Builder to help construct the {@link GoogleApiClient} object. - * - * @param context The context to use for the connection. - */ - public Builder(Context context) { - this.context = context; - this.looper = context.getMainLooper(); - } - - /** - * Builder to help construct the {@link GoogleApiClient} object. - * - * @param context The context to use for the connection. - * @param connectedListener The listener where the results of the asynchronous - * {@link #connect()} call are delivered. - * @param connectionFailedListener The listener which will be notified if the connection - * attempt fails. - */ - public Builder(Context context, ConnectionCallbacks connectedListener, - OnConnectionFailedListener connectionFailedListener) { - this(context); - addConnectionCallbacks(connectedListener); - addOnConnectionFailedListener(connectionFailedListener); - } - - /** - * Specify which Apis are requested by your app. See {@link Api} for more information. - * - * @param api The Api requested by your app. - * @param options Any additional parameters required for the specific AP - * @see Api - */ - public Builder addApi(Api api, O options) { - apis.put(api, options); - return this; - } - - /** - * Specify which Apis are requested by your app. See {@link Api} for more information. - * - * @param api The Api requested by your app. - * @see Api - */ - public Builder addApi(Api api) { - apis.put(api, null); - return this; - } - - /** - * Registers a listener to receive connection events from this {@link GoogleApiClient}. - * Applications should balance calls to this method with calls to - * {@link #unregisterConnectionCallbacks(ConnectionCallbacks)} to avoid - * leaking resources. - *

- * If the specified listener is already registered to receive connection events, this - * method will not add a duplicate entry for the same listener. - *

- * Note that the order of messages received here may not be stable, so clients should not - * rely on the order that multiple listeners receive events in. - * - * @param listener the listener where the results of the asynchronous {@link #connect()} - * call are delivered. - */ - public Builder addConnectionCallbacks(ConnectionCallbacks listener) { - connectionCallbacks.add(listener); - return this; - } - - /** - * Adds a listener to register to receive connection failed events from this - * {@link GoogleApiClient}. Applications should balance calls to this method with calls to - * {@link #unregisterConnectionFailedListener(OnConnectionFailedListener)} to avoid - * leaking resources. - *

- * If the specified listener is already registered to receive connection failed events, - * this method will not add a duplicate entry for the same listener. - *

- * Note that the order of messages received here may not be stable, so clients should not - * rely on the order that multiple listeners receive events in. - * - * @param listener the listener where the results of the asynchronous {@link #connect()} - * call are delivered. - */ - public Builder addOnConnectionFailedListener(OnConnectionFailedListener listener) { - connectionFailedListeners.add(listener); - return this; - } - - /** - * Specify the OAuth 2.0 scopes requested by your app. See - * {@link com.google.android.gms.common.Scopes} for more information. - * - * @param scope The OAuth 2.0 scopes requested by your app. - * @see com.google.android.gms.common.Scopes - */ - public Builder addScope(Scope scope) { - scopes.add(scope.getScopeUri()); - return this; - } - - /** - * Builds a new {@link GoogleApiClient} object for communicating with the Google APIs. - * - * @return The {@link GoogleApiClient} object. - */ - public GoogleApiClient build() { - return new GoogleApiClientImpl(context, looper, getAccountInfo(), apis, - connectionCallbacks, connectionFailedListeners, clientId); - } - - private AccountInfo getAccountInfo() { - return null; - } - - public Builder enableAutoManage(FragmentActivity fragmentActivity, int cliendId, - OnConnectionFailedListener unresolvedConnectionFailedListener) - throws NullPointerException, IllegalArgumentException, IllegalStateException { - this.fragmentActivity = fragmentActivity; - this.clientId = cliendId; - this.unresolvedConnectionFailedListener = unresolvedConnectionFailedListener; - return this; - } - - /** - * Specify an account name on the device that should be used. If this is never called, the - * client will use the current default account for Google Play services for this - * application. - * - * @param accountName The account name on the device that should be used by - * {@link GoogleApiClient}. - */ - public Builder setAccountName(String accountName) { - this.accountName = accountName; - return this; - } - - /** - * Specifies the part of the screen at which games service popups (for example, - * "welcome back" or "achievement unlocked" popups) will be displayed using gravity. - * - * @param gravityForPopups The gravity which controls the placement of games service popups. - */ - public Builder setGravityForPopups(int gravityForPopups) { - this.gravityForPopups = gravityForPopups; - return this; - } - - /** - * Sets a {@link Handler} to indicate which thread to use when invoking callbacks. Will not - * be used directly to handle callbacks. If this is not called then the application's main - * thread will be used. - */ - public Builder setHandler(Handler handler) { - this.looper = handler.getLooper(); - return this; - } - - /** - * Sets the {@link View} to use as a content view for popups. - * - * @param viewForPopups The view to use as a content view for popups. View cannot be null. - */ - public Builder setViewForPopups(View viewForPopups) { - this.viewForPopups = viewForPopups; - return this; - } - - /** - * Specify that the default account should be used when connecting to services. - */ - public Builder useDefaultAccount() { - this.accountName = AuthConstants.DEFAULT_ACCOUNT; - return this; - } - } - - /** - * Provides callbacks that are called when the client is connected or disconnected from the - * service. Most applications implement {@link #onConnected(Bundle)} to start making requests. - */ - @PublicApi - interface ConnectionCallbacks { - /** - * A suspension cause informing that the service has been killed. - */ - int CAUSE_SERVICE_DISCONNECTED = 1; - /** - * A suspension cause informing you that a peer device connection was lost. - */ - int CAUSE_NETWORK_LOST = 2; - - /** - * After calling {@link #connect()}, this method will be invoked asynchronously when the - * connect request has successfully completed. After this callback, the application can - * make requests on other methods provided by the client and expect that no user - * intervention is required to call methods that use account and scopes provided to the - * client constructor. - *

- * Note that the contents of the {@code connectionHint} Bundle are defined by the specific - * services. Please see the documentation of the specific implementation of - * {@link GoogleApiClient} you are using for more information. - * - * @param connectionHint Bundle of data provided to clients by Google Play services. May - * be null if no content is provided by the service. - */ - void onConnected(Bundle connectionHint); - - /** - * Called when the client is temporarily in a disconnected state. This can happen if there - * is a problem with the remote service (e.g. a crash or resource problem causes it to be - * killed by the system). When called, all requests have been canceled and no outstanding - * listeners will be executed. GoogleApiClient will automatically attempt to restore the - * connection. Applications should disable UI components that require the service, and wait - * for a call to {@link #onConnected(Bundle)} to re-enable them. - * - * @param cause The reason for the disconnection. Defined by constants {@code CAUSE_*}. - */ - void onConnectionSuspended(int cause); - } - - /** - * Provides callbacks for scenarios that result in a failed attempt to connect the client to - * the service. See {@link ConnectionResult} for a list of error codes and suggestions for - * resolution. - */ - @PublicApi - interface OnConnectionFailedListener { - /** - * Called when there was an error connecting the client to the service. - * - * @param result A {@link ConnectionResult} that can be used for resolving the error, and - * deciding what sort of error occurred. To resolve the error, the resolution - * must be started from an activity with a non-negative {@code requestCode} - * passed to {@link ConnectionResult#startResolutionForResult(Activity, int)}. - * Applications should implement {@link Activity#onActivityResult} in their - * Activity to call {@link #connect()} again if the user has resolved the - * issue (resultCode is {@link Activity#RESULT_OK}). - */ - void onConnectionFailed(ConnectionResult result); - } -} diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/api/PendingResult.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/PendingResult.java deleted file mode 100644 index 28943f18..00000000 --- a/play-services-basement/src/main/java/com/google/android/gms/common/api/PendingResult.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2013-2015 microG Project Team - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.gms.common.api; - -import java.util.concurrent.TimeUnit; - -/** - * Represents a pending result from calling an API method in Google Play services. The final result - * object from a PendingResult is of type R, which can be retrieved in one of two ways. - *

- *

    - *
  • via blocking calls to {@link #await()}, or {@link #await(long, TimeUnit)}, or
  • - *
  • via a callback by passing in an object implementing interface {@link ResultCallback} to - * {@link #setResultCallback(ResultCallback)}.
  • - *
- * After the result has been retrieved using {@link #await()} or delivered to the result callback, - * it is an error to attempt to retrieve the result again. It is the responsibility of the caller - * or callback receiver to release any resources associated with the returned result. Some result - * types may implement {@link Releasable}, in which case {@link Releasable#release()} should be - * used to free the associated resources. - *

- * TODO: Docs - */ -public interface PendingResult { - /** - * Blocks until the task is completed. This is not allowed on the UI thread. The returned - * result object can have an additional failure mode of INTERRUPTED. - */ - public R await(); - - /** - * Blocks until the task is completed or has timed out waiting for the result. This is not - * allowed on the UI thread. The returned result object can have an additional failure mode - * of either INTERRUPTED or TIMEOUT. - */ - public R await(long time, TimeUnit unit); - - public void cancel(); - - public boolean isCanceled(); - - public void setResultCallback(ResultCallback callback, long time, TimeUnit unit); - - public void setResultCallback(ResultCallback callback); -} diff --git a/play-services-basement/src/main/java/org/microg/gms/common/api/ApiBuilder.java b/play-services-basement/src/main/java/org/microg/gms/common/api/ApiBuilder.java deleted file mode 100644 index 6c12551e..00000000 --- a/play-services-basement/src/main/java/org/microg/gms/common/api/ApiBuilder.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2013-2016 microG Project Team - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.microg.gms.common.api; - -import android.content.Context; -import android.os.Looper; - -import com.google.android.gms.common.api.AccountInfo; -import com.google.android.gms.common.api.Api; -import com.google.android.gms.common.api.GoogleApiClient; - -public interface ApiBuilder { - ApiConnection build(Context context, Looper looper, O options, AccountInfo accountInfo, - GoogleApiClient.ConnectionCallbacks callbacks, - GoogleApiClient.OnConnectionFailedListener connectionFailedListener); -} diff --git a/play-services-basement/src/main/java/org/microg/gms/common/api/ApiConnection.java b/play-services-basement/src/main/java/org/microg/gms/common/api/ApiConnection.java deleted file mode 100644 index 019ea5d8..00000000 --- a/play-services-basement/src/main/java/org/microg/gms/common/api/ApiConnection.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2013-2015 microG Project Team - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.microg.gms.common.api; - -public interface ApiConnection { - void connect(); - - void disconnect(); - - boolean isConnected(); - - boolean isConnecting(); -} diff --git a/play-services-basement/src/main/java/org/microg/gms/common/api/GoogleApiClientImpl.java b/play-services-basement/src/main/java/org/microg/gms/common/api/GoogleApiClientImpl.java deleted file mode 100644 index 5993b403..00000000 --- a/play-services-basement/src/main/java/org/microg/gms/common/api/GoogleApiClientImpl.java +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright 2013-2016 microG Project Team - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.microg.gms.common.api; - -import android.content.Context; -import android.os.Bundle; -import android.os.Looper; -import android.os.Message; -import android.support.v4.app.FragmentActivity; -import android.util.Log; - -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.api.AccountInfo; -import com.google.android.gms.common.api.Api; -import com.google.android.gms.common.api.GoogleApiClient; -import com.google.android.gms.common.api.PendingResult; -import com.google.android.gms.common.api.Status; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.TimeUnit; - -public class GoogleApiClientImpl implements GoogleApiClient { - private static final String TAG = "GmsApiClientImpl"; - - private final Context context; - private final Looper looper; - private final AccountInfo accountInfo; - private final Map apis = new HashMap(); - private final Map apiConnections = new HashMap(); - private final Handler handler; - private final Set connectionCallbacks = new HashSet(); - private final Set connectionFailedListeners = new HashSet(); - private final int clientId; - private final ConnectionCallbacks baseConnectionCallbacks = new ConnectionCallbacks() { - @Override - public void onConnected(Bundle connectionHint) { - Log.d(TAG, "ConnectionCallbacks : onConnected()"); - for (ConnectionCallbacks callback : connectionCallbacks) { - callback.onConnected(connectionHint); - } - } - - @Override - public void onConnectionSuspended(int cause) { - Log.d(TAG, "ConnectionCallbacks : onConnectionSuspended()"); - for (ConnectionCallbacks callback : connectionCallbacks) { - callback.onConnectionSuspended(cause); - } - } - }; - private final OnConnectionFailedListener baseConnectionFailedListener = new - OnConnectionFailedListener() { - @Override - public void onConnectionFailed(ConnectionResult result) { - Log.d(TAG, "OnConnectionFailedListener : onConnectionFailed()"); - for (OnConnectionFailedListener listener : connectionFailedListeners) { - listener.onConnectionFailed(result); - } - } - }; - - public GoogleApiClientImpl(Context context, Looper looper, AccountInfo accountInfo, - Map apis, - Set connectionCallbacks, - Set connectionFailedListeners, int clientId) { - this.context = context; - this.looper = looper; - this.handler = new Handler(looper); - this.accountInfo = accountInfo; - this.apis.putAll(apis); - this.connectionCallbacks.addAll(connectionCallbacks); - this.connectionFailedListeners.addAll(connectionFailedListeners); - this.clientId = clientId; - - for (Api api : apis.keySet()) { - apiConnections.put(api, api.getBuilder().build(context, looper, - apis.get(api), accountInfo, baseConnectionCallbacks, - baseConnectionFailedListener)); - } - } - - public Looper getLooper() { - return looper; - } - - public ApiConnection getApiConnection(Api api) { - return apiConnections.get(api); - } - - @Override - public ConnectionResult blockingConnect() { - return null; - } - - @Override - public ConnectionResult blockingConnect(long timeout, TimeUnit unit) { - return null; - } - - @Override - public PendingResult clearDefaultAccountAndReconnect() { - return null; - } - - @Override - public synchronized void connect() { - Log.d(TAG, "connect()"); - if (isConnected() || isConnecting()) { - Log.d(TAG, "Already connected/connecting, nothing to do"); - return; - } - for (ApiConnection connection : apiConnections.values()) { - if (!connection.isConnected()) { - connection.connect(); - } - } - } - - @Override - public synchronized void disconnect() { - Log.d(TAG, "disconnect()"); - for (ApiConnection connection : apiConnections.values()) { - if (connection.isConnected()) { - connection.disconnect(); - } - } - } - - @Override - public synchronized boolean isConnected() { - for (ApiConnection connection : apiConnections.values()) { - if (!connection.isConnected()) return false; - } - return true; - } - - @Override - public synchronized boolean isConnecting() { - for (ApiConnection connection : apiConnections.values()) { - if (connection.isConnecting()) return true; - } - return false; - } - - @Override - public boolean isConnectionCallbacksRegistered(ConnectionCallbacks listener) { - return connectionCallbacks.contains(listener); - } - - @Override - public boolean isConnectionFailedListenerRegistered( - OnConnectionFailedListener listener) { - return connectionFailedListeners.contains(listener); - } - - @Override - public synchronized void reconnect() { - Log.d(TAG, "reconnect()"); - disconnect(); - connect(); - } - - @Override - public void registerConnectionCallbacks(ConnectionCallbacks listener) { - connectionCallbacks.add(listener); - } - - @Override - public void registerConnectionFailedListener(OnConnectionFailedListener listener) { - connectionFailedListeners.add(listener); - } - - @Override - public void stopAutoManager(FragmentActivity lifecycleActivity) throws IllegalStateException { - - } - - @Override - public void unregisterConnectionCallbacks(ConnectionCallbacks listener) { - connectionCallbacks.remove(listener); - } - - @Override - public void unregisterConnectionFailedListener(OnConnectionFailedListener listener) { - connectionFailedListeners.remove(listener); - } - - private class Handler extends android.os.Handler { - private Handler(Looper looper) { - super(looper); - } - - @Override - public void handleMessage(Message msg) { - if (msg.what == 0 && msg.obj instanceof Runnable) { - ((Runnable) msg.obj).run(); - } else { - super.handleMessage(msg); - } - } - - public void sendRunnable(Runnable runnable) { - sendMessage(obtainMessage(1, runnable)); - } - } -} diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/Channel.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/Channel.java deleted file mode 100644 index 7c74ca5f..00000000 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/Channel.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2013-2016 microG Project Team - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.gms.wearable; - -import android.net.Uri; -import android.os.Parcelable; - -import com.google.android.gms.common.api.GoogleApiClient; -import com.google.android.gms.common.api.PendingResult; -import com.google.android.gms.common.api.Releasable; -import com.google.android.gms.common.api.Result; -import com.google.android.gms.common.api.Status; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; - -/** - * A channel created through {@link ChannelApi#openChannel(GoogleApiClient, String, String)}. - *

- * The implementation of this interface is parcelable and immutable, and implements reasonable {@link #equals(Object)} - * and {@link #hashCode()} methods, so can be used in collections. - */ -public interface Channel extends Parcelable { - - PendingResult addListener(GoogleApiClient client, ChannelApi.ChannelListener listener); - - PendingResult close(GoogleApiClient client, int errorCode); - - PendingResult close(GoogleApiClient client); - - PendingResult getInputStream(GoogleApiClient client); - - PendingResult getOutputStream(GoogleApiClient client); - - String getPath(); - - PendingResult receiveFile(GoogleApiClient client, Uri uri, boolean append); - - PendingResult removeListener(GoogleApiClient client, ChannelApi.ChannelListener listener); - - PendingResult sendFile(GoogleApiClient client, Uri uri); - - PendingResult sendFile(GoogleApiClient client, Uri uri, long startOffset, long length); - - interface GetInputStreamResult extends Releasable, Result { - /** - * Returns an input stream which can read data from the remote node. The stream should be - * closed when no longer needed. This method will only return {@code null} if this result's - * {@linkplain #getStatus() status} was not {@linkplain Status#isSuccess() success}. - *

- * The returned stream will throw {@link IOException} on read if any connection errors - * occur. This exception might be a {@link ChannelIOException}. - *

- * Since data for this stream comes over the network, reads may block for a long time. - *

- * Multiple calls to this method will return the same instance. - */ - InputStream getInputStream(); - } - - interface GetOutputStreamResult extends Releasable, Result { - /** - * Returns an output stream which can send data to a remote node. The stream should be - * closed when no longer needed. This method will only return {@code null} if this result's - * {@linkplain #getStatus() status} was not {@linkplain Status#isSuccess() success}. - *

- * The returned stream will throw {@link IOException} on read if any connection errors - * occur. This exception might be a {@link ChannelIOException}. - *

- * Since data for this stream comes over the network, reads may block for a long time. - *

- * Data written to this stream is buffered. If you wish to send the current data without - * waiting for the buffer to fill up, {@linkplain OutputStream#flush() flush} the stream. - *

- * Multiple calls to this method will return the same instance. - */ - OutputStream getOutputStream(); - } -} diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/ChannelApi.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/ChannelApi.java deleted file mode 100644 index 66d6ae71..00000000 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/ChannelApi.java +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright 2013-2016 microG Project Team - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.gms.wearable; - -import com.google.android.gms.common.api.GoogleApiClient; -import com.google.android.gms.common.api.GoogleApiClient.Builder; -import com.google.android.gms.common.api.PendingResult; -import com.google.android.gms.common.api.Result; -import com.google.android.gms.common.api.Status; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -/** - * Client interface for Wearable Channel API. Allows apps on a wearable device to send and receive - * data from other wearable nodes. - *

- * Channels are bidirectional. Each side, both the initiator and the receiver may both read and - * write to the channel by using {@link Channel#getOutputStream(GoogleApiClient)} and {@link Channel#getInputStream(GoogleApiClient)}. - * Once a channel is established, the API for the initiator and receiver are identical. - *

- * Channels are only available when the wearable nodes are connected. When the remote node - * disconnects, all existing channels will be closed. Any listeners (added through {@link #addListener(GoogleApiClient, ChannelListener)} - * and any installed {@link WearableListenerService}) will be notified of the channel closing. - */ -public interface ChannelApi { - /** - * Channel action for use in listener filters. - * - * @see WearableListenerService - */ - String ACTION_CHANNEL_EVENT = "com.google.android.gms.wearable.CHANNEL_EVENT"; - - /** - * Registers a listener to be notified of channel events. Calls to this method should be - * balanced with calls to {@link #removeListener(GoogleApiClient, ChannelListener)} to avoid - * leaking resources. - *

- * Listener events will be called on the main thread, or the handler specified on {@code client} - * when it was built (using {@link Builder#setHandler(Handler)}). - *

- * Callers wishing to be notified of events in the background should use {@link WearableListenerService}. - * - * @param client a connected client - * @param listener a listener which will be notified of changes to any channel - */ - PendingResult addListener(GoogleApiClient client, ChannelListener listener); - - /** - * Opens a channel to exchange data with a remote node. - *

- * Channel which are no longer needed should be closed using {@link Channel#close(GoogleApiClient)}. - *

- * This call involves a network round trip, so may be long running. {@code client} must remain - * connected during that time, or the request will be cancelled (like any other Play Services - * API calls). - * - * @param client a connected client - * @param nodeId the node ID of a wearable node, as returned from {@link NodeApi#getConnectedNodes(GoogleApiClient)} - * @param path an app-specific identifier for the channel - */ - PendingResult openChannel(GoogleApiClient client, String nodeId, String path); - - /** - * Removes a listener which was previously added through {@link #addListener(GoogleApiClient, ChannelListener)}. - * - * @param client a connected client - * @param listener a listener which was added using {@link #addListener(GoogleApiClient, ChannelListener)} - */ - PendingResult removeListener(GoogleApiClient client, ChannelListener listener); - - /** - * A listener which will be notified on changes to channels. - */ - interface ChannelListener { - /** - * Value passed to {@link #onChannelClosed(Channel, int, int)}, {@link #onInputClosed(Channel, int, int)} - * and {@link #onOutputClosed(Channel, int, int)} when the closing is due to a remote node - * being disconnected. - */ - int CLOSE_REASON_DISCONNECTED = 1; - - /** - * Value passed to {@link #onChannelClosed(Channel, int, int)}, {@link #onInputClosed(Channel, int, int)} - * and {@link #onOutputClosed(Channel, int, int)} when the stream is closed due to the - * local node calling {@link Channel#close(GoogleApiClient)} or {@link Channel#close(GoogleApiClient, int)}. - */ - int CLOSE_REASON_LOCAL_CLOSE = 3; - - /** - * Value passed to {@link #onInputClosed(Channel, int, int)} or {@link #onOutputClosed(Channel, int, int)} - * (but not {@link #onChannelClosed(Channel, int, int)}), when the stream was closed under - * normal conditions, e.g the whole file was read, or the OutputStream on the remote node - * was closed normally. - */ - int CLOSE_REASON_NORMAL = 0; - - /** - * Value passed to {@link #onChannelClosed(Channel, int, int)}, {@link #onInputClosed(Channel, int, int)} - * and {@link #onOutputClosed(Channel, int, int)} when the stream is closed due to the - * remote node calling {@link Channel#close(GoogleApiClient)} or {@link Channel#close(GoogleApiClient, int)}. - */ - int CLOSE_REASON_REMOTE_CLOSE = 2; - - /** - * Called when a channel is closed. This can happen through an explicit call to {@link Channel#close(GoogleApiClient)} - * or {@link #close(GoogleApiClient, int)} on either side of the connection, or due to - * disconnecting from the remote node. - * - * @param closeReason the reason for the channel closing. One of {@link #CLOSE_REASON_DISCONNECTED}, - * {@link #CLOSE_REASON_REMOTE_CLOSE}, or {@link #CLOSE_REASON_LOCAL_CLOSE}. - * @param appSpecificErrorCode the error code specified on {@link Channel#close(GoogleApiClient, int)}, - * or 0 if closeReason is {@link #CLOSE_REASON_DISCONNECTED}. - */ - void onChannelClosed(Channel channel, int closeReason, int appSpecificErrorCode); - - /** - * Called when a new channel is opened by a remote node. - */ - void onChannelOpened(Channel channel); - - /** - * Called when the input side of a channel is closed. - * - * @param closeReason the reason for the channel closing. One of {@link #CLOSE_REASON_DISCONNECTED}, - * {@link #CLOSE_REASON_REMOTE_CLOSE}, {@link #CLOSE_REASON_LOCAL_CLOSE} - * or {@link #CLOSE_REASON_NORMAL}. - * @param appSpecificErrorCode the error code specified on {@link Channel#close(GoogleApiClient, int)}, - * or 0 if closeReason is {@link #CLOSE_REASON_DISCONNECTED} or - * {@link #CLOSE_REASON_NORMAL}. - */ - void onInputClosed(Channel channel, @CloseReason int closeReason, int appSpecificErrorCode); - - /** - * Called when the output side of a channel is closed. - * - * @param closeReason the reason for the channel closing. One of {@link #CLOSE_REASON_DISCONNECTED}, - * {@link #CLOSE_REASON_REMOTE_CLOSE}, {@link #CLOSE_REASON_LOCAL_CLOSE} - * or {@link #CLOSE_REASON_NORMAL}. - * @param appSpecificErrorCode the error code specified on {@link Channel#close(GoogleApiClient, int)}, - * or 0 if closeReason is {@link #CLOSE_REASON_DISCONNECTED} or - * {@link #CLOSE_REASON_NORMAL}. - */ - void onOutputClosed(Channel channel, @CloseReason int closeReason, int appSpecificErrorCode); - } - - /** - * An annotation for values passed to {@link ChannelListener#onChannelClosed(Channel, int, int)}, - * and other methods on the {@link ChannelListener} interface. Annotated method parameters will - * always take one of the following values: - *

    - *
  • {@link ChannelListener#CLOSE_REASON_DISCONNECTED}
  • - *
  • {@link ChannelListener#CLOSE_REASON_NORMAL}
  • - *
  • {@link ChannelListener#CLOSE_REASON_LOCAL_CLOSE}
  • - *
  • {@link ChannelListener#CLOSE_REASON_REMOTE_CLOSE}
  • - *
- */ - @Retention(RetentionPolicy.SOURCE) - @interface CloseReason { - } - - /** - * Result of {@link #openChannel(GoogleApiClient, String, String)}. - */ - interface OpenChannelResult extends Result { - /** - * Returns the newly created channel, or {@code null}, if the connection couldn't be opened. - */ - Channel getChannel(); - } -} diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/MessageApi.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/MessageApi.java deleted file mode 100644 index e2016f73..00000000 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/MessageApi.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2013-2015 microG Project Team - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.gms.wearable; - -import com.google.android.gms.common.api.GoogleApiClient; -import com.google.android.gms.common.api.PendingResult; -import com.google.android.gms.common.api.Result; -import com.google.android.gms.common.api.Status; - -import org.microg.gms.common.PublicApi; - -@PublicApi -public interface MessageApi { - - /** - * A value returned by {@link SendMessageResult#getRequestId()} when - * {@link #sendMessage(GoogleApiClient, String, String, byte[])} fails. - */ - int UNKNOWN_REQUEST_ID = -1; - - /** - * Registers a listener to be notified of received messages. Calls to this method should - * balanced with {@link #removeListener(GoogleApiClient, MessageListener)} to avoid leaking - * resources. - *

- * Callers wishing to be notified of events in the background should use {@link WearableListenerService}. - */ - PendingResult addListener(GoogleApiClient client, MessageListener listener); - - /** - * Removes a message listener which was previously added through - * {@link #addListener(GoogleApiClient, MessageListener)}. - */ - PendingResult removeListener(GoogleApiClient client, MessageListener listener); - - /** - * Sends {@code byte[]} data to the specified node. - * - * @param nodeId identifier for a particular node on the Android Wear network. Valid targets - * may be obtained through {@link NodeApi#getConnectedNodes(GoogleApiClient)} - * or from the host in {@link DataItem#getUri()}. - * @param path identifier used to specify a particular endpoint at the receiving node - * @param data small array of information to pass to the target node. Generally not larger - * than 100k - */ - PendingResult sendMessage(GoogleApiClient client, String nodeId, - String path, byte[] data); - - /** - * Used with {@link MessageApi#addListener(GoogleApiClient, MessageListener)} to receive - * message events. - *

- * Callers wishing to be notified of events in the background should use - * {@link WearableListenerService}. - */ - interface MessageListener { - /** - * Notification that a message has been received. - */ - void onMessageReceived(MessageEvent messageEvent); - } - - /** - * Contains the request id assigned to the message. On failure, the id will be - * {@link MessageApi#UNKNOWN_REQUEST_ID} and the status will be unsuccessful. - */ - interface SendMessageResult extends Result { - /** - * @return an ID used to identify the sent message. If {@link #getStatus()} is not - * successful, this value will be {@link MessageApi#UNKNOWN_REQUEST_ID}. - */ - int getRequestId(); - } -} diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java index 7336c2be..79a5d9e2 100644 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelEventParcelable.java @@ -24,7 +24,7 @@ public class ChannelEventParcelable extends AutoSafeParcelable { @SafeParceled(1) private int versionCode = 1; @SafeParceled(2) - public ChannelImpl channel; + public ChannelParcelable channel; @SafeParceled(3) public int eventType; @SafeParceled(4) diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelImpl.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelImpl.java deleted file mode 100644 index 18ab6ebc..00000000 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelImpl.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright 2013-2016 microG Project Team - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.gms.wearable.internal; - -import android.net.Uri; -import android.util.Log; - -import com.google.android.gms.common.api.GoogleApiClient; -import com.google.android.gms.common.api.PendingResult; -import com.google.android.gms.common.api.Status; -import com.google.android.gms.wearable.Channel; -import com.google.android.gms.wearable.ChannelApi; - -import org.microg.safeparcel.AutoSafeParcelable; -import org.microg.safeparcel.SafeParceled; - -public class ChannelImpl extends AutoSafeParcelable implements Channel { - private static final String TAG = "GmsWearChannelImpl"; - - @SafeParceled(1) - private int versionCode = 1; - @SafeParceled(2) - private String token; - @SafeParceled(3) - private String nodeId; - @SafeParceled(4) - private String path; - - private ChannelImpl() { - } - - public ChannelImpl(String token, String nodeId, String path) { - this.token = token; - this.nodeId = nodeId; - this.path = path; - } - - @Override - public PendingResult addListener(GoogleApiClient client, ChannelApi.ChannelListener listener) { - Log.d(TAG, "unimplemented Method: addListener"); - return null; - } - - @Override - public PendingResult close(GoogleApiClient client, int errorCode) { - Log.d(TAG, "unimplemented Method: close"); - return null; - } - - @Override - public PendingResult close(GoogleApiClient client) { - Log.d(TAG, "unimplemented Method: close"); - return null; - } - - @Override - public PendingResult getInputStream(GoogleApiClient client) { - Log.d(TAG, "unimplemented Method: getInputStream"); - return null; - } - - @Override - public PendingResult getOutputStream(GoogleApiClient client) { - Log.d(TAG, "unimplemented Method: getOutputStream"); - return null; - } - - public String getNodeId() { - return nodeId; - } - - @Override - public String getPath() { - return path; - } - - public String getToken() { - return token; - } - - @Override - public PendingResult receiveFile(GoogleApiClient client, Uri uri, boolean append) { - Log.d(TAG, "unimplemented Method: receiveFile"); - return null; - } - - @Override - public PendingResult removeListener(GoogleApiClient client, ChannelApi.ChannelListener listener) { - Log.d(TAG, "unimplemented Method: removeListener"); - return null; - } - - @Override - public PendingResult sendFile(GoogleApiClient client, Uri uri) { - Log.d(TAG, "unimplemented Method: sendFile"); - return null; - } - - @Override - public PendingResult sendFile(GoogleApiClient client, Uri uri, long startOffset, long length) { - Log.d(TAG, "unimplemented Method: sendFile"); - return null; - } - - public static final Creator CREATOR = new AutoCreator(ChannelImpl.class); -} diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelParcelable.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelParcelable.java new file mode 100644 index 00000000..95f8d643 --- /dev/null +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/ChannelParcelable.java @@ -0,0 +1,42 @@ +/* + * Copyright 2013-2016 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.wearable.internal; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class ChannelParcelable extends AutoSafeParcelable { + @SafeParceled(1) + private int versionCode = 1; + @SafeParceled(2) + public String token; + @SafeParceled(3) + public String nodeId; + @SafeParceled(4) + public String path; + + private ChannelParcelable() { + } + + public ChannelParcelable(String token, String nodeId, String path) { + this.token = token; + this.nodeId = nodeId; + this.path = path; + } + + public static final Creator CREATOR = new AutoCreator(ChannelParcelable.class); +} diff --git a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java index 3d8364a6..9ac4e491 100644 --- a/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java +++ b/play-services-wearable-api/src/main/java/com/google/android/gms/wearable/internal/SendMessageResponse.java @@ -16,13 +16,10 @@ package com.google.android.gms.wearable.internal; -import com.google.android.gms.common.api.Status; -import com.google.android.gms.wearable.MessageApi; - import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; -public class SendMessageResponse extends AutoSafeParcelable implements MessageApi.SendMessageResult { +public class SendMessageResponse extends AutoSafeParcelable { @SafeParceled(1) private int versionCode = 1; @@ -33,15 +30,5 @@ public class SendMessageResponse extends AutoSafeParcelable implements MessageAp @SafeParceled(3) public int requestId = -1; - @Override - public int getRequestId() { - return requestId; - } - - @Override - public Status getStatus() { - return new Status(statusCode); - } - public static final Creator CREATOR = new AutoCreator(SendMessageResponse.class); } From 0b4f43c6a6a091dbdeb0ec544d533373a83ea319 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Mon, 14 Nov 2016 20:21:14 +0100 Subject: [PATCH 123/170] Update build tools, set sdk versions through gradle --- .travis.yml | 2 +- build.gradle | 6 +++++- play-services-api/build.gradle | 2 ++ play-services-api/src/main/AndroidManifest.xml | 8 +------- play-services-basement/build.gradle | 2 ++ play-services-basement/src/main/AndroidManifest.xml | 8 +------- play-services-cast-api/build.gradle | 2 ++ play-services-cast-api/src/main/AndroidManifest.xml | 8 +------- play-services-cast-framework-api/build.gradle | 2 ++ .../src/main/AndroidManifest.xml | 8 +------- play-services-iid-api/build.gradle | 2 ++ play-services-iid-api/src/main/AndroidManifest.xml | 8 +------- play-services-location-api/build.gradle | 2 ++ play-services-location-api/src/main/AndroidManifest.xml | 8 +------- play-services-wearable-api/build.gradle | 2 ++ play-services-wearable-api/src/main/AndroidManifest.xml | 8 +------- 16 files changed, 27 insertions(+), 51 deletions(-) diff --git a/.travis.yml b/.travis.yml index c57a40b2..612507ec 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ script: android: components: - tools - - build-tools-24.0.2 + - build-tools-24.0.3 - android-24 - extra-android-m2repository before_cache: diff --git a/build.gradle b/build.gradle index 92c603d5..c02fd47b 100644 --- a/build.gradle +++ b/build.gradle @@ -26,11 +26,15 @@ buildscript { allprojects { apply plugin: 'idea' - ext.androidBuildVersionTools = "24.0.2" + ext.androidBuildVersionTools = "24.0.3" } def androidCompileSdk() { return 24 } +def androidTargetSdk() { return 24 } + +def androidMinSdk() { return 9 } + subprojects { repositories { jcenter() diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index 972d5ad2..22155d2d 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -34,6 +34,8 @@ android { defaultConfig { versionName getMyVersionName() + minSdkVersion androidMinSdk() + targetSdkVersion androidTargetSdk() } compileOptions { diff --git a/play-services-api/src/main/AndroidManifest.xml b/play-services-api/src/main/AndroidManifest.xml index 6e6ebf08..2dd201aa 100644 --- a/play-services-api/src/main/AndroidManifest.xml +++ b/play-services-api/src/main/AndroidManifest.xml @@ -15,10 +15,4 @@ ~ limitations under the License. --> - - - - - - + diff --git a/play-services-basement/build.gradle b/play-services-basement/build.gradle index 8358b839..d916c320 100644 --- a/play-services-basement/build.gradle +++ b/play-services-basement/build.gradle @@ -39,6 +39,8 @@ android { defaultConfig { versionName getMyVersionName() + minSdkVersion androidMinSdk() + targetSdkVersion androidTargetSdk() } compileOptions { diff --git a/play-services-basement/src/main/AndroidManifest.xml b/play-services-basement/src/main/AndroidManifest.xml index 3ea99c6e..6d382815 100644 --- a/play-services-basement/src/main/AndroidManifest.xml +++ b/play-services-basement/src/main/AndroidManifest.xml @@ -15,10 +15,4 @@ ~ limitations under the License. --> - - - - - - + diff --git a/play-services-cast-api/build.gradle b/play-services-cast-api/build.gradle index b4ddb5c3..dd3226e5 100644 --- a/play-services-cast-api/build.gradle +++ b/play-services-cast-api/build.gradle @@ -34,6 +34,8 @@ android { defaultConfig { versionName getMyVersionName() + minSdkVersion androidMinSdk() + targetSdkVersion androidTargetSdk() } compileOptions { diff --git a/play-services-cast-api/src/main/AndroidManifest.xml b/play-services-cast-api/src/main/AndroidManifest.xml index 1aca1c4a..ad7313ae 100644 --- a/play-services-cast-api/src/main/AndroidManifest.xml +++ b/play-services-cast-api/src/main/AndroidManifest.xml @@ -15,10 +15,4 @@ ~ limitations under the License. --> - - - - - - + diff --git a/play-services-cast-framework-api/build.gradle b/play-services-cast-framework-api/build.gradle index b4ddb5c3..dd3226e5 100644 --- a/play-services-cast-framework-api/build.gradle +++ b/play-services-cast-framework-api/build.gradle @@ -34,6 +34,8 @@ android { defaultConfig { versionName getMyVersionName() + minSdkVersion androidMinSdk() + targetSdkVersion androidTargetSdk() } compileOptions { diff --git a/play-services-cast-framework-api/src/main/AndroidManifest.xml b/play-services-cast-framework-api/src/main/AndroidManifest.xml index d4913c98..343e61e9 100644 --- a/play-services-cast-framework-api/src/main/AndroidManifest.xml +++ b/play-services-cast-framework-api/src/main/AndroidManifest.xml @@ -15,10 +15,4 @@ ~ limitations under the License. --> - - - - - - + diff --git a/play-services-iid-api/build.gradle b/play-services-iid-api/build.gradle index b4ddb5c3..dd3226e5 100644 --- a/play-services-iid-api/build.gradle +++ b/play-services-iid-api/build.gradle @@ -34,6 +34,8 @@ android { defaultConfig { versionName getMyVersionName() + minSdkVersion androidMinSdk() + targetSdkVersion androidTargetSdk() } compileOptions { diff --git a/play-services-iid-api/src/main/AndroidManifest.xml b/play-services-iid-api/src/main/AndroidManifest.xml index fa9ea1be..b3bcdc29 100644 --- a/play-services-iid-api/src/main/AndroidManifest.xml +++ b/play-services-iid-api/src/main/AndroidManifest.xml @@ -15,10 +15,4 @@ ~ limitations under the License. --> - - - - - - + \ No newline at end of file diff --git a/play-services-location-api/build.gradle b/play-services-location-api/build.gradle index b4ddb5c3..dd3226e5 100644 --- a/play-services-location-api/build.gradle +++ b/play-services-location-api/build.gradle @@ -34,6 +34,8 @@ android { defaultConfig { versionName getMyVersionName() + minSdkVersion androidMinSdk() + targetSdkVersion androidTargetSdk() } compileOptions { diff --git a/play-services-location-api/src/main/AndroidManifest.xml b/play-services-location-api/src/main/AndroidManifest.xml index 2439e26f..a50ca2d3 100644 --- a/play-services-location-api/src/main/AndroidManifest.xml +++ b/play-services-location-api/src/main/AndroidManifest.xml @@ -15,10 +15,4 @@ ~ limitations under the License. --> - - - - - - + diff --git a/play-services-wearable-api/build.gradle b/play-services-wearable-api/build.gradle index b4ddb5c3..dd3226e5 100644 --- a/play-services-wearable-api/build.gradle +++ b/play-services-wearable-api/build.gradle @@ -34,6 +34,8 @@ android { defaultConfig { versionName getMyVersionName() + minSdkVersion androidMinSdk() + targetSdkVersion androidTargetSdk() } compileOptions { diff --git a/play-services-wearable-api/src/main/AndroidManifest.xml b/play-services-wearable-api/src/main/AndroidManifest.xml index 9ab8979d..deea7864 100644 --- a/play-services-wearable-api/src/main/AndroidManifest.xml +++ b/play-services-wearable-api/src/main/AndroidManifest.xml @@ -15,10 +15,4 @@ ~ limitations under the License. --> - - - - - - + From bfae24a17c11d9633fdce4f9b82dff0da4769f8d Mon Sep 17 00:00:00 2001 From: Marvin W Date: Fri, 2 Dec 2016 16:15:31 +0100 Subject: [PATCH 124/170] Add (empty) Wallet API and update Maps API also fix small lint issue --- .../gms/maps/internal/IGoogleMapDelegate.aidl | 113 +++++++++++------- .../maps/internal/IOnCameraIdleListener.aidl | 5 + .../IOnCameraMoveCanceledListener.aidl | 5 + .../maps/internal/IOnCameraMoveListener.aidl | 5 + .../IOnCameraMoveStartedListener.aidl | 5 + .../gms/wallet/internal/IOwService.aidl | 5 + .../gms/auth/api/credentials/Credential.java | 7 +- 7 files changed, 100 insertions(+), 45 deletions(-) create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraIdleListener.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraMoveCanceledListener.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraMoveListener.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraMoveStartedListener.aidl create mode 100644 play-services-api/src/main/aidl/com/google/android/gms/wallet/internal/IOwService.aidl diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl index ae5e402b..0f78cf48 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IGoogleMapDelegate.aidl @@ -9,6 +9,10 @@ import com.google.android.gms.maps.internal.ILocationSourceDelegate; import com.google.android.gms.maps.internal.IUiSettingsDelegate; import com.google.android.gms.maps.internal.IProjectionDelegate; import com.google.android.gms.maps.internal.IOnCameraChangeListener; +import com.google.android.gms.maps.internal.IOnCameraIdleListener; +import com.google.android.gms.maps.internal.IOnCameraMoveCanceledListener; +import com.google.android.gms.maps.internal.IOnCameraMoveListener; +import com.google.android.gms.maps.internal.IOnCameraMoveStartedListener; import com.google.android.gms.maps.internal.IOnMapClickListener; import com.google.android.gms.maps.internal.IOnMapLongClickListener; import com.google.android.gms.maps.internal.IOnMarkerClickListener; @@ -33,61 +37,86 @@ import com.google.android.gms.maps.model.internal.IGroundOverlayDelegate; import com.google.android.gms.maps.model.internal.ITileOverlayDelegate; interface IGoogleMapDelegate { - CameraPosition getCameraPosition(); + CameraPosition getCameraPosition() = 0; - float getMaxZoomLevel(); - float getMinZoomLevel(); + float getMaxZoomLevel() = 1; + float getMinZoomLevel() = 2; - void moveCamera(IObjectWrapper cameraUpdate); - void animateCamera(IObjectWrapper cameraUpdate); - void animateCameraWithCallback(IObjectWrapper cameraUpdate, ICancelableCallback callback); - void animateCameraWithDurationAndCallback(IObjectWrapper cameraUpdate, int duration, ICancelableCallback callback); - void stopAnimation(); + void moveCamera(IObjectWrapper cameraUpdate) = 3; + void animateCamera(IObjectWrapper cameraUpdate) = 4; + void animateCameraWithCallback(IObjectWrapper cameraUpdate, ICancelableCallback callback) = 5; + void animateCameraWithDurationAndCallback(IObjectWrapper cameraUpdate, int duration, ICancelableCallback callback) = 6; + void stopAnimation() = 7; - IPolylineDelegate addPolyline(in PolylineOptions options); - IPolygonDelegate addPolygon(in PolygonOptions options); - IMarkerDelegate addMarker(in MarkerOptions options); - IGroundOverlayDelegate addGroundOverlay(in GroundOverlayOptions options); - ITileOverlayDelegate addTileOverlay(in TileOverlayOptions options); + IPolylineDelegate addPolyline(in PolylineOptions options) = 8; + IPolygonDelegate addPolygon(in PolygonOptions options) = 9; + IMarkerDelegate addMarker(in MarkerOptions options) = 10; + IGroundOverlayDelegate addGroundOverlay(in GroundOverlayOptions options) = 11; + ITileOverlayDelegate addTileOverlay(in TileOverlayOptions options) = 12; + ICircleDelegate addCircle(in CircleOptions options) = 34; - void clear(); + void clear() = 13; - int getMapType(); - void setMapType(int type); - boolean isTrafficEnabled(); - void setTrafficEnabled(boolean traffic); - boolean isIndoorEnabled(); - void setIndoorEnabled(boolean indoor); + int getMapType() = 14; + void setMapType(int type) = 15; + boolean isTrafficEnabled() = 16; + void setTrafficEnabled(boolean traffic) = 17; + boolean isIndoorEnabled() = 18; + void setIndoorEnabled(boolean indoor) = 19; - boolean isMyLocationEnabled(); - void setMyLocationEnabled(boolean myLocation); - Location getMyLocation(); - void setLocationSource(ILocationSourceDelegate locationSource); + boolean isMyLocationEnabled() = 20; + void setMyLocationEnabled(boolean myLocation) = 21; + Location getMyLocation() = 22; + void setLocationSource(ILocationSourceDelegate locationSource) = 23; - IUiSettingsDelegate getUiSettings(); - IProjectionDelegate getProjection(); + IUiSettingsDelegate getUiSettings() = 24; + IProjectionDelegate getProjection() = 25; - void setOnCameraChangeListener(IOnCameraChangeListener listener); - void setOnMapClickListener(IOnMapClickListener listener); - void setOnMapLongClickListener(IOnMapLongClickListener listener); - void setOnMarkerClickListener(IOnMarkerClickListener listener); - void setOnMarkerDragListener(IOnMarkerDragListener listener); - void setOnInfoWindowClickListener(IOnInfoWindowClickListener listener); - void setInfoWindowAdapter(IInfoWindowAdapter adapter); + void setOnCameraChangeListener(IOnCameraChangeListener listener) = 26; + void setOnMapClickListener(IOnMapClickListener listener) = 27; + void setOnMapLongClickListener(IOnMapLongClickListener listener) = 28; + void setOnMarkerClickListener(IOnMarkerClickListener listener) = 29; + void setOnMarkerDragListener(IOnMarkerDragListener listener) = 30; + void setOnInfoWindowClickListener(IOnInfoWindowClickListener listener) = 31; + void setInfoWindowAdapter(IInfoWindowAdapter adapter) = 32; - IObjectWrapper getTestingHelper(); + IObjectWrapper getTestingHelper() = 33; - ICircleDelegate addCircle(in CircleOptions options); + void setOnMyLocationChangeListener(IOnMyLocationChangeListener listener) = 35; + void setOnMyLocationButtonClickListener(IOnMyLocationButtonClickListener listener) = 36; - void setOnMyLocationChangeListener(IOnMyLocationChangeListener listener); - void setOnMyLocationButtonClickListener(IOnMyLocationButtonClickListener listener); + void snapshot(ISnapshotReadyCallback callback, IObjectWrapper bitmap) = 37; - void snapshot(ISnapshotReadyCallback callback, IObjectWrapper bitmap); + void setPadding(int left, int top, int right, int bottom) = 38; - void setPadding(int left, int top, int right, int bottom); + boolean isBuildingsEnabled() = 39; + void setBuildingsEnabled(boolean buildings) = 40; - boolean isBuildingsEnabled(); - void setBuildingsEnabled(boolean buildings); + void setOnMapLoadedCallback(IOnMapLoadedCallback callback) = 41; - void setOnMapLoadedCallback(IOnMapLoadedCallback callback); + //IIndoorBuildingDelegate getIndoorBuilding() = 43; + //void setIndoorStateChangeListener(IOnIndoorStateChangeListener listener) = 44; + + //void a(boolean a) = 50; + + //void setOnMapReadyCallback(IOnMapReadyCallback callback) = 52; + + //void setSnapshotReadyCallback(ISnapshotReadyCallback callback) = 70; + + //void setPoiClickListener(IOnPoiClickListener listener) = 79; + + //void setInfoWindowLongClickListener(IOnInfoWindowLongClickListener listener) = 83; + //void setPolygonClickListener(IOnPolygonClickListener listener) = 84; + //void setInfoWindowCloseListener(IOnInfoWindowCloseListener listener) = 85; + //void setPolylineClickListener(IOnPolylineClickListener listener) = 86; + //void setCircleClickListener(IOnCircleClickListener listener) = 88; + + //boolean setMapStyle(in MapStyleOptions options) = 90; + + //void setBounds(in LatLngBounds bounds) = 94; + + void setCameraMoveStartedListener(IOnCameraMoveStartedListener listener) = 95; + void setCameraMoveListener(IOnCameraMoveListener listener) = 96; + void setCameraMoveCanceledListener(IOnCameraMoveCanceledListener listener) = 97; + void setCameraIdleListener(IOnCameraIdleListener listener) = 98; } diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraIdleListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraIdleListener.aidl new file mode 100644 index 00000000..caa686a8 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraIdleListener.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.maps.internal; + +interface IOnCameraIdleListener { + void onCameraIdle(); +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraMoveCanceledListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraMoveCanceledListener.aidl new file mode 100644 index 00000000..bb1494e8 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraMoveCanceledListener.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.maps.internal; + +interface IOnCameraMoveCanceledListener { + void onCameraMoveCanceled(); +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraMoveListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraMoveListener.aidl new file mode 100644 index 00000000..6b404d65 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraMoveListener.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.maps.internal; + +interface IOnCameraMoveListener { + void onCameraMove(); +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraMoveStartedListener.aidl b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraMoveStartedListener.aidl new file mode 100644 index 00000000..2a5f65d9 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IOnCameraMoveStartedListener.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.maps.internal; + +interface IOnCameraMoveStartedListener { + void onCameraMoveStarted(int i); +} diff --git a/play-services-api/src/main/aidl/com/google/android/gms/wallet/internal/IOwService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/wallet/internal/IOwService.aidl new file mode 100644 index 00000000..d9cb9209 --- /dev/null +++ b/play-services-api/src/main/aidl/com/google/android/gms/wallet/internal/IOwService.aidl @@ -0,0 +1,5 @@ +package com.google.android.gms.wallet.internal; + +interface IOwService { + +} diff --git a/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/Credential.java b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/Credential.java index db4b41f7..710b0181 100644 --- a/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/Credential.java +++ b/play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/Credential.java @@ -25,6 +25,7 @@ import org.microg.safeparcel.SafeParceled; import java.util.Arrays; import java.util.List; +import java.util.Locale; @PublicApi public class Credential extends AutoSafeParcelable { @@ -127,11 +128,11 @@ public class Credential extends AutoSafeParcelable { @PublicApi(exclude = true) public String getAsString() { if (TextUtils.isEmpty(accountType)) { - return id.toLowerCase() + "|"; + return id.toLowerCase(Locale.US) + "|"; } else { Uri uri = Uri.parse(accountType); - return id.toLowerCase() + "|" + (TextUtils.isEmpty(uri.getScheme()) ? "" : uri.getScheme().toLowerCase()) + "://" + - (TextUtils.isEmpty(uri.getHost()) ? "unknown" : uri.getHost().toLowerCase()) + ":" + uri.getPort(); + return id.toLowerCase(Locale.US) + "|" + (TextUtils.isEmpty(uri.getScheme()) ? "" : uri.getScheme().toLowerCase(Locale.US)) + "://" + + (TextUtils.isEmpty(uri.getHost()) ? "unknown" : uri.getHost().toLowerCase(Locale.US)) + ":" + uri.getPort(); } } From 3dabc13028b56c792573743107b2a56f2fdd3148 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Wed, 18 Jan 2017 17:27:38 +0100 Subject: [PATCH 125/170] Location: Add forceCoarseLocation flag --- .../gms/location/internal/LocationRequestInternal.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/play-services-location-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java b/play-services-location-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java index 1c9fe3d6..0849b8d0 100644 --- a/play-services-location-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java +++ b/play-services-location-api/src/main/java/com/google/android/gms/location/internal/LocationRequestInternal.java @@ -49,6 +49,9 @@ public class LocationRequestInternal extends AutoSafeParcelable { @SafeParceled(7) public boolean hideFromAppOps; + @SafeParceled(8) + public boolean forceCoarseLocation; + @Override public String toString() { return "LocationRequestInternal{" + @@ -59,6 +62,7 @@ public class LocationRequestInternal extends AutoSafeParcelable { ", clients=" + clients + ", tag='" + tag + '\'' + ", hideFromAppOps=" + hideFromAppOps + + ", forceCoarseLocation=" + forceCoarseLocation + '}'; } From 5e8494c11ad1d981bfb7ecb955e028a35eff0829 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sat, 11 Feb 2017 00:29:13 +0100 Subject: [PATCH 126/170] Add more details of location API --- .../google/android/gms/location/Geofence.aidl | 3 - .../IGoogleLocationManagerService.aidl | 4 +- .../location/internal/ParcelableGeofence.aidl | 3 + .../location/ActivityRecognitionResult.java | 171 +++++++++++++++++- .../gms/location/DetectedActivity.java | 154 ++++++++++++++++ .../google/android/gms/location/Geofence.java | 154 +++++++++++++++- .../gms/location/GeofenceStatusCodes.java | 55 ++++++ .../gms/location/LocationAvailability.java | 6 +- .../gms/location/LocationSettingsRequest.java | 67 +++++++ .../gms/location/LocationSettingsResult.java | 12 ++ .../gms/location/LocationSettingsStates.java | 3 + .../location/LocationSettingsStatusCodes.java | 33 ++++ .../location/internal/ParcelableGeofence.java | 77 ++++++++ 13 files changed, 730 insertions(+), 12 deletions(-) delete mode 100644 play-services-location-api/src/main/aidl/com/google/android/gms/location/Geofence.aidl create mode 100644 play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/ParcelableGeofence.aidl create mode 100644 play-services-location-api/src/main/java/com/google/android/gms/location/DetectedActivity.java create mode 100644 play-services-location-api/src/main/java/com/google/android/gms/location/GeofenceStatusCodes.java create mode 100644 play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsStatusCodes.java create mode 100644 play-services-location-api/src/main/java/com/google/android/gms/location/internal/ParcelableGeofence.java diff --git a/play-services-location-api/src/main/aidl/com/google/android/gms/location/Geofence.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/Geofence.aidl deleted file mode 100644 index 4fc554eb..00000000 --- a/play-services-location-api/src/main/aidl/com/google/android/gms/location/Geofence.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.google.android.gms.location; - -parcelable Geofence; \ No newline at end of file diff --git a/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl index 123a0952..605bbf1d 100644 --- a/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl +++ b/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/IGoogleLocationManagerService.aidl @@ -10,6 +10,7 @@ import com.google.android.gms.location.places.internal.IPlacesCallbacks; import com.google.android.gms.location.internal.ISettingsCallbacks; import com.google.android.gms.location.internal.LocationRequestInternal; import com.google.android.gms.location.internal.LocationRequestUpdateData; +import com.google.android.gms.location.internal.ParcelableGeofence; import com.google.android.gms.location.places.NearbyAlertRequest; import com.google.android.gms.location.places.PlaceFilter; import com.google.android.gms.location.places.PlaceRequest; @@ -18,7 +19,6 @@ import com.google.android.gms.location.places.internal.PlacesParams; import com.google.android.gms.location.places.UserAddedPlace; import com.google.android.gms.location.places.UserDataType; import com.google.android.gms.location.ActivityRecognitionResult; -import com.google.android.gms.location.Geofence; import com.google.android.gms.location.GeofencingRequest; import com.google.android.gms.location.GestureRequest; import com.google.android.gms.location.LocationAvailability; @@ -31,7 +31,7 @@ import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.LatLngBounds; interface IGoogleLocationManagerService { - void addGeofencesList(in List geofences, in PendingIntent pendingIntent, IGeofencerCallbacks callbacks, String packageName) = 0; + void addGeofencesList(in List geofences, in PendingIntent pendingIntent, IGeofencerCallbacks callbacks, String packageName) = 0; void addGeofences(in GeofencingRequest geofencingRequest, in PendingIntent pendingIntent, IGeofencerCallbacks callbacks) = 56; void removeGeofencesByIntent(in PendingIntent pendingIntent, IGeofencerCallbacks callbacks, String packageName) = 1; void removeGeofencesById(in String[] geofenceRequestIds, IGeofencerCallbacks callbacks, String packageName) = 2; diff --git a/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/ParcelableGeofence.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/ParcelableGeofence.aidl new file mode 100644 index 00000000..d4d69547 --- /dev/null +++ b/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/ParcelableGeofence.aidl @@ -0,0 +1,3 @@ +package com.google.android.gms.location.internal; + +parcelable ParcelableGeofence; \ No newline at end of file diff --git a/play-services-location-api/src/main/java/com/google/android/gms/location/ActivityRecognitionResult.java b/play-services-location-api/src/main/java/com/google/android/gms/location/ActivityRecognitionResult.java index 497cfdb8..af6c7887 100644 --- a/play-services-location-api/src/main/java/com/google/android/gms/location/ActivityRecognitionResult.java +++ b/play-services-location-api/src/main/java/com/google/android/gms/location/ActivityRecognitionResult.java @@ -16,8 +16,177 @@ package com.google.android.gms.location; -import org.microg.safeparcel.AutoSafeParcelable; +import android.content.Intent; +import android.os.Bundle; +import org.microg.gms.common.PublicApi; +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParcelUtil; +import org.microg.safeparcel.SafeParceled; + +import java.util.Collections; +import java.util.List; + +/** + * Result of an activity recognition. + *

+ * It contains a list of activities that a user may have been doing at a particular time. The + * activities are sorted by the most probable activity first. A confidence is associated with each + * activity which indicates how likely that activity is. + *

+ * {@link #getMostProbableActivity()} will return the most probable activity of the user at the time + * that activity recognition was run. + */ +@PublicApi public class ActivityRecognitionResult extends AutoSafeParcelable { + + @PublicApi(exclude = true) + public static final String EXTRA_ACTIVITY_RESULT = "com.google.android.location.internal.EXTRA_ACTIVITY_RESULT"; + @PublicApi(exclude = true) + public static final String EXTRA_ACTIVITY_RESULT_LIST = "com.google.android.location.internal.EXTRA_ACTIVITY_RESULT_LIST"; + + @SafeParceled(1000) + private int versionCode = 2; + + @SafeParceled(value = 1, subClass = DetectedActivity.class) + private List probableActivities; + + @SafeParceled(2) + private long time; + + @SafeParceled(3) + private long elapsedRealtimeMillis; + + @SafeParceled(5) + private Bundle extras; + + /** + * Constructs an ActivityRecognitionResult. + * + * @param probableActivities the activities that where detected, sorted by confidence (most probable first). + * @param time the UTC time of this detection, in milliseconds since January 1, 1970. + * @param elapsedRealtimeMillis milliseconds since boot + */ + public ActivityRecognitionResult(List probableActivities, long time, long elapsedRealtimeMillis) { + this(probableActivities, time, elapsedRealtimeMillis, null); + } + + /** + * Constructs an ActivityRecognitionResult from a single activity. + * + * @param activity the most probable activity of the device. + * @param time the UTC time of this detection, in milliseconds since January 1, 1970. + * @param elapsedRealtimeMillis milliseconds since boot + */ + public ActivityRecognitionResult(DetectedActivity activity, long time, long elapsedRealtimeMillis) { + this(Collections.singletonList(activity), time, elapsedRealtimeMillis); + } + + private ActivityRecognitionResult(List probableActivities, long time, long elapsedRealtimeMillis, Bundle extras) { + if (probableActivities == null || probableActivities.isEmpty()) + throw new IllegalArgumentException("Must have at least 1 detected activity"); + if (time <= 0 || elapsedRealtimeMillis <= 0) + throw new IllegalArgumentException("Must set times"); + this.probableActivities = probableActivities; + this.time = time; + this.elapsedRealtimeMillis = elapsedRealtimeMillis; + this.extras = extras; + } + + /** + * Extracts the ActivityRecognitionResult from an Intent. + *

+ * This is a utility function which extracts the ActivityRecognitionResult from the extras of + * an Intent that was sent from the activity detection service. + * + * @return an ActivityRecognitionResult, or {@code null} if the intent doesn't contain an + * ActivityRecognitionResult. + */ + public static ActivityRecognitionResult extractResult(Intent intent) { + if (intent.hasExtra(EXTRA_ACTIVITY_RESULT_LIST)) { + intent.setExtrasClassLoader(ActivityRecognitionResult.class.getClassLoader()); + List list = intent.getParcelableArrayListExtra(EXTRA_ACTIVITY_RESULT_LIST); + if (list != null && !list.isEmpty()) + return list.get(list.size() - 1); + } + if (intent.hasExtra(EXTRA_ACTIVITY_RESULT)) { + Bundle extras = intent.getExtras(); + extras.setClassLoader(ActivityRecognitionResult.class.getClassLoader()); + Object res = extras.get(EXTRA_ACTIVITY_RESULT); + if (res instanceof ActivityRecognitionResult) + return (ActivityRecognitionResult) res; + if (res instanceof byte[]) + return SafeParcelUtil.fromByteArray((byte[]) res, CREATOR); + } + return null; + } + + /** + * Returns the confidence of the given activity type. + */ + public int getActivityConfidence(int activityType) { + for (DetectedActivity activity : probableActivities) { + if (activity.getType() == activityType) + return activity.getConfidence(); + } + return 0; + } + + /** + * Returns the elapsed real time of this detection in milliseconds since boot, including time + * spent in sleep as obtained by SystemClock.elapsedRealtime(). + */ + public long getElapsedRealtimeMillis() { + return elapsedRealtimeMillis; + } + + /** + * Returns the most probable activity of the user. + */ + public DetectedActivity getMostProbableActivity() { + return probableActivities.get(0); + } + + /** + * Returns the list of activities that where detected with the confidence value associated with + * each activity. The activities are sorted by most probable activity first. + *

+ * The sum of the confidences of all detected activities this method returns does not have to + * be <= 100 since some activities are not mutually exclusive (for example, you can be walking + * while in a bus) and some activities are hierarchical (ON_FOOT is a generalization of WALKING + * and RUNNING). + */ + public List getProbableActivities() { + return probableActivities; + } + + /** + * Returns the UTC time of this detection, in milliseconds since January 1, 1970. + */ + public long getTime() { + return time; + } + + /** + * Returns true if an Intent contains an ActivityRecognitionResult. + *

+ * This is a utility function that can be called from inside an intent receiver to make sure + * the received intent is from activity recognition. + * + * @return true if the intent contains an ActivityRecognitionResult, false otherwise or the given intent is null + */ + public static boolean hasResult(Intent intent) { + if (intent == null) return false; + if (intent.hasExtra(EXTRA_ACTIVITY_RESULT)) return true; + intent.setExtrasClassLoader(ActivityRecognitionResult.class.getClassLoader()); + List list = intent.getParcelableArrayListExtra(EXTRA_ACTIVITY_RESULT_LIST); + return list != null && !list.isEmpty(); + } + + @Override + public String toString() { + return "ActivityRecognitionResult [probableActivities=" + probableActivities + ", timeMillis" + time + ", elapsedRealtimeMillis=" + elapsedRealtimeMillis + "]"; + } + public static final Creator CREATOR = new AutoCreator(ActivityRecognitionResult.class); } diff --git a/play-services-location-api/src/main/java/com/google/android/gms/location/DetectedActivity.java b/play-services-location-api/src/main/java/com/google/android/gms/location/DetectedActivity.java new file mode 100644 index 00000000..36744730 --- /dev/null +++ b/play-services-location-api/src/main/java/com/google/android/gms/location/DetectedActivity.java @@ -0,0 +1,154 @@ +/* + * Copyright (C) 2017 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location; + +import org.microg.gms.common.PublicApi; +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +/** + * The detected activity of the device with an an associated confidence. See ActivityRecognitionApi + * for details on how to obtain a DetectedActivity. + */ +@PublicApi +public class DetectedActivity extends AutoSafeParcelable { + + /** + * The device is in a vehicle, such as a car. + */ + public static final int IN_VEHICLE = 0; + + /** + * The device is on a bicycle. + */ + public static final int ON_BICYCLE = 1; + + /** + * The device is on a user who is walking or running. + */ + public static final int ON_FOOT = 2; + + /** + * The device is on a user who is running. This is a sub-activity of ON_FOOT. + */ + public static final int RUNNING = 8; + + /** + * The device is still (not moving). + */ + public static final int STILL = 3; + + /** + * The device angle relative to gravity changed significantly. This often occurs when a device + * is picked up from a desk or a user who is sitting stands up. + */ + public static final int TILTING = 5; + + /** + * Unable to detect the current activity. + */ + public static final int UNKNOWN = 4; + + /** + * The device is on a user who is walking. This is a sub-activity of ON_FOOT. + */ + public static final int WALKING = 7; + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + private int type; + + @SafeParceled(2) + private int confidence; + + private DetectedActivity() { + } + + + /** + * Constructs a DetectedActivity. + * + * @param activityType the activity that was detected. + * @param confidence value from 0 to 100 indicating how likely it is that the user is performing this activity. + */ + public DetectedActivity(int activityType, int confidence) { + this.type = activityType; + this.confidence = confidence; + } + + /** + * Returns a value from 0 to 100 indicating the likelihood that the user is performing this + * activity. + *

+ * The larger the value, the more consistent the data used to perform the classification is + * with the detected activity. + *

+ * This value will be <= 100. It means that larger values indicate that it's likely that the + * detected activity is correct, while a value of <= 50 indicates that there may be another + * activity that is just as or more likely. + *

+ * Multiple activities may have high confidence values. For example, the ON_FOOT may have a + * confidence of 100 while the RUNNING activity may have a confidence of 95. The sum of the + * confidences of all detected activities for a classification does not have to be <= 100 since + * some activities are not mutually exclusive (for example, you can be walking while in a bus) + * and some activities are hierarchical (ON_FOOT is a generalization of WALKING and RUNNING). + */ + public int getConfidence() { + return confidence; + } + + /** + * Returns the type of activity that was detected. + */ + public int getType() { + return type; + } + + @Override + public String toString() { + return "DetectedActivity [type=" + typeToString(getType()) + ", confidence=" + getConfidence() + "]"; + } + + @PublicApi(exclude = true) + public static String typeToString(int type) { + switch (type) { + case 0: + return "IN_VEHICLE"; + case 1: + return "ON_BICYCLE"; + case 2: + return "ON_FOOT"; + case 3: + return "STILL"; + case 4: + return "UNKNOWN"; + case 5: + return "TILTING"; + case 6: + default: + return Integer.toString(type); + case 7: + return "WALKING"; + case 8: + return "RUNNING"; + } + } + + public static final Creator CREATOR = new AutoCreator(DetectedActivity.class); +} diff --git a/play-services-location-api/src/main/java/com/google/android/gms/location/Geofence.java b/play-services-location-api/src/main/java/com/google/android/gms/location/Geofence.java index c48aef56..9f588789 100644 --- a/play-services-location-api/src/main/java/com/google/android/gms/location/Geofence.java +++ b/play-services-location-api/src/main/java/com/google/android/gms/location/Geofence.java @@ -16,9 +16,157 @@ package com.google.android.gms.location; -import org.microg.safeparcel.AutoSafeParcelable; +import android.os.SystemClock; -public class Geofence extends AutoSafeParcelable { +import com.google.android.gms.location.internal.ParcelableGeofence; - public static Creator CREATOR = new AutoCreator(Geofence.class); +/** + * Represents a geographical region, also known as a geofence. Geofences can be monitored by + * geofencer service. And when the user crosses the boundary of a geofence, an alert will be + * generated. + */ +public interface Geofence { + int GEOFENCE_TRANSITION_DWELL = 4; + + /** + * The transition type indicating that the user enters the geofence(s). + */ + int GEOFENCE_TRANSITION_ENTER = 1; + + /** + * The transition type indicating that the user exits the geofence(s). + */ + int GEOFENCE_TRANSITION_EXIT = 2; + + /** + * Expiration value that indicates the geofence should never expire. + */ + long NEVER_EXPIRE = -1L; + + /** + * Returns the request ID of this geofence. The request ID is a string to identify this geofence + * inside your application. When two geofences with the same requestId are monitored, the new + * one will replace the old one regardless the geographical region these two geofences + * represent. + */ + String getRequestId(); + + /** + * A builder that builds {@link Geofence}. + */ + class Builder { + private int regionType = -1; + private double latitude; + private double longitude; + private float radius; + private long expirationTime = Long.MIN_VALUE; + private int loiteringDelay = -1; + private int notificationResponsiveness; + private String requestId; + private int transitionTypes; + + /** + * Creates a geofence object. + * + * @throws IllegalArgumentException if any parameters are not set or out of range + */ + public Geofence build() throws IllegalArgumentException { + if (requestId == null) { + throw new IllegalArgumentException("Request ID not set."); + } else if (transitionTypes == 0) { + throw new IllegalArgumentException("Transition types not set."); + } else if ((transitionTypes & GEOFENCE_TRANSITION_DWELL) > 0 && loiteringDelay < 0) { + throw new IllegalArgumentException("Non-negative loitering delay needs to be set when transition types include GEOFENCE_TRANSITION_DWELLING."); + } else if (expirationTime == Long.MIN_VALUE) { + throw new IllegalArgumentException("Expiration not set."); + } else if (regionType == -1) { + throw new IllegalArgumentException("Geofence region not set."); + } else if (notificationResponsiveness < 0) { + throw new IllegalArgumentException("Notification responsiveness should be nonnegative."); + } else { + return new ParcelableGeofence(requestId, expirationTime, regionType, latitude, longitude, radius, transitionTypes, notificationResponsiveness, loiteringDelay); + } + } + + /** + * Sets the region of this geofence. The geofence represents a circular area on a flat, horizontal plane. + * + * @param latitude latitude in degrees, between -90 and +90 inclusive + * @param longitude longitude in degrees, between -180 and +180 inclusive + * @param radius radius in meters + */ + public Builder setCircularRegion(double latitude, double longitude, float radius) { + this.regionType = 1; + this.latitude = latitude; + this.longitude = longitude; + this.radius = radius; + return this; + } + + /** + * Sets the expiration duration of geofence. This geofence will be removed automatically + * after this period of time. + * + * @param durationMillis time for this proximity alert, in milliseconds, or {@link #NEVER_EXPIRE} + * to indicate no expiration. When positive, this geofence will be + * removed automatically after this amount of time. + */ + public Builder setExpirationDuration(long durationMillis) { + if (durationMillis < 0) { + expirationTime = -1; + } else { + expirationTime = SystemClock.elapsedRealtime() + durationMillis; + } + return this; + } + + public Builder setLoiteringDelay(int loiteringDelayMs) { + this.loiteringDelay = loiteringDelayMs; + return this; + } + + /** + * Sets the best-effort notification responsiveness of the geofence. Defaults to 0. Setting + * a big responsiveness value, for example 5 minutes, can save power significantly. However, + * setting a very small responsiveness value, for example 5 seconds, doesn't necessarily + * mean you will get notified right after the user enters or exits a geofence: internally, + * the geofence might adjust the responsiveness value to save power when needed. + * + * @param notificationResponsivenessMs notificationResponsivenessMs (milliseconds) defines + * the best-effort description of how soon should the + * callback be called when the transition associated + * with the Geofence is triggered. For instance, if set + * to 300000 milliseconds the callback will be called 5 + * minutes within entering or exiting the geofence. + */ + public Builder setNotificationResponsiveness(int notificationResponsivenessMs) { + this.notificationResponsiveness = notificationResponsivenessMs; + return this; + } + + /** + * Sets the request ID of the geofence. Request ID is a string to identify this geofence + * inside your application. When two geofences with the same requestId are monitored, the + * new one will replace the old one regardless the geographical region these two geofences + * represent. + * + * @param requestId the request ID. The length of the string can be up to 100 characters. + */ + public Builder setRequestId(String requestId) { + this.requestId = requestId; + return this; + } + + /** + * Sets the transition types of interest. Alerts are only generated for the given transition + * types. + * + * @param transitionTypes geofence transition types of interest, as a bitwise-OR of + * GEOFENCE_TRANSITION_ flags. + */ + public Builder setTransitionTypes(int transitionTypes) { + this.transitionTypes = transitionTypes; + return this; + } + } } diff --git a/play-services-location-api/src/main/java/com/google/android/gms/location/GeofenceStatusCodes.java b/play-services-location-api/src/main/java/com/google/android/gms/location/GeofenceStatusCodes.java new file mode 100644 index 00000000..8733e4cb --- /dev/null +++ b/play-services-location-api/src/main/java/com/google/android/gms/location/GeofenceStatusCodes.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2017 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location; + +import com.google.android.gms.common.api.CommonStatusCodes; + +public class GeofenceStatusCodes extends CommonStatusCodes { + /** + * Geofence service is not available now. Typically this is because the user turned off + * location access in settings > location access. + */ + public static final int GEOFENCE_NOT_AVAILABLE = 1000; + + /** + * Your app has registered more than 100 geofences. Remove unused ones before adding new + * geofences. + */ + public static final int GEOFENCE_TOO_MANY_GEOFENCES = 1001; + + /** + * You have provided more than 5 different PendingIntents to the addGeofences(GoogleApiClient, + * GeofencingRequest, PendingIntent) call. + */ + public static final int GEOFENCE_TOO_MANY_PENDING_INTENTS = 1002; + + /** + * Returns an untranslated debug (not user-friendly!) string based on the current status code. + */ + public static String getStatusCodeString(int statusCode) { + switch (statusCode) { + case GEOFENCE_NOT_AVAILABLE: + return "GEOFENCE_NOT_AVAILABLE"; + case GEOFENCE_TOO_MANY_GEOFENCES: + return "GEOFENCE_TOO_MANY_GEOFENCES"; + case GEOFENCE_TOO_MANY_PENDING_INTENTS: + return "GEOFENCE_TOO_MANY_PENDING_INTENTS"; + default: + return CommonStatusCodes.getStatusCodeString(statusCode); + } + } +} diff --git a/play-services-location-api/src/main/java/com/google/android/gms/location/LocationAvailability.java b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationAvailability.java index f2f70201..79ea84f8 100644 --- a/play-services-location-api/src/main/java/com/google/android/gms/location/LocationAvailability.java +++ b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationAvailability.java @@ -27,9 +27,9 @@ import java.util.Arrays; /** * Status on the availability of location data. *

- * Delivered from {@link LocationCallback} registered via {@link FusedLocationProviderApi#requestLocationUpdates(com.google.android.gms.common.api.GoogleApiClient, LocationRequest, LocationCallback, android.os.Looper) - * or from a PendingIntent registered via {@link FusedLocationProviderApi#requestLocationUpdates(com.google.android.gms.common.api.GoogleApiClient, LocationRequest, android.app.PendingIntent)}. - * It is also available on demand via {@link FusedLocationProviderApi#getLocationAvailability(com.google.android.gms.common.api.GoogleApiClient)}. + * Delivered from LocationCallback registered via FusedLocationProviderApi#requestLocationUpdates(GoogleApiClient, LocationRequest, LocationCallback, Looper) + * or from a PendingIntent registered via FusedLocationProviderApi#requestLocationUpdates(GoogleApiClient, LocationRequest, PendingIntent). + * It is also available on demand via FusedLocationProviderApi#getLocationAvailability(GoogleApiClient). */ @PublicApi public class LocationAvailability extends AutoSafeParcelable { diff --git a/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java index 3d5aa5a9..3f8823a5 100644 --- a/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java +++ b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsRequest.java @@ -20,6 +20,8 @@ import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; +import java.util.ArrayList; +import java.util.Collection; import java.util.List; @PublicApi @@ -38,5 +40,70 @@ public class LocationSettingsRequest extends AutoSafeParcelable { @PublicApi(exclude = true) public boolean needBle; + private LocationSettingsRequest() { + } + + private LocationSettingsRequest(List requests, boolean alwaysShow, boolean needBle) { + this.requests = requests; + this.alwaysShow = alwaysShow; + this.needBle = needBle; + } + + /** + * A builder that builds {@link LocationSettingsRequest}. + */ + public static class Builder { + private List requests = new ArrayList(); + private boolean alwaysShow = false; + private boolean needBle = false; + + /** + * Adds a collection of {@link LocationRequest}s that the client is interested in. Settings + * will be checked for optimal performance of all {@link LocationRequest}s. + */ + public Builder addAllLocationRequests(Collection requests) { + this.requests.addAll(requests); + return this; + } + + /** + * Adds one {@link LocationRequest} that the client is interested in. Settings will be + * checked for optimal performance of all {@link LocationRequest}s. + */ + public Builder addLocationRequest(LocationRequest request) { + requests.add(request); + return this; + } + + /** + * Creates a LocationSettingsRequest that can be used with SettingsApi. + */ + public LocationSettingsRequest build() { + return new LocationSettingsRequest(requests, alwaysShow, needBle); + } + + /** + * Whether or not location is required by the calling app in order to continue. Set this to + * true if location is required to continue and false if having location provides better + * results, but is not required. This changes the wording/appearance of the dialog + * accordingly. + */ + public Builder setAlwaysShow(boolean show) { + alwaysShow = show; + return this; + } + + /** + * Sets whether the client wants BLE scan to be enabled. When this flag is set to true, if + * the platform supports BLE scan mode and Bluetooth is off, the dialog will prompt the + * user to enable BLE scan. If the platform doesn't support BLE scan mode, the dialog will + * prompt to enable Bluetooth. + */ + public Builder setNeedBle(boolean needBle) { + this.needBle = needBle; + return this; + } + } + public static final Creator CREATOR = new AutoCreator(LocationSettingsRequest.class); } diff --git a/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsResult.java b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsResult.java index 1ca160ea..d49fc209 100644 --- a/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsResult.java +++ b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsResult.java @@ -23,6 +23,15 @@ import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; +/** + * Result of checking settings via checkLocationSettings(GoogleApiClient, LocationSettingsRequest), + * indicates whether a dialog should be shown to ask the user's consent to change their settings. + * The method getStatus() can be be used to confirm if the request was successful. If the current + * location settings don't satisfy the app's requirements and the user has permission to change the + * settings, the app could use startResolutionForResult(Activity, int) to start an intent to show a + * dialog, asking for user's consent to change the settings. The current location settings states + * can be accessed via getLocationSettingsStates(). See LocationSettingsResult for more details. + */ @PublicApi public class LocationSettingsResult extends AutoSafeParcelable implements Result { @@ -36,6 +45,9 @@ public class LocationSettingsResult extends AutoSafeParcelable implements Result private LocationSettingsStates settings; + /** + * Retrieves the location settings states. + */ public LocationSettingsStates getLocationSettingsStates() { return settings; } diff --git a/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java index 5d9305d3..b592a257 100644 --- a/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java +++ b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsStates.java @@ -20,6 +20,9 @@ import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.SafeParceled; +/** + * Stores the current states of all location-related settings. + */ @PublicApi public class LocationSettingsStates extends AutoSafeParcelable { diff --git a/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsStatusCodes.java b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsStatusCodes.java new file mode 100644 index 00000000..028de68c --- /dev/null +++ b/play-services-location-api/src/main/java/com/google/android/gms/location/LocationSettingsStatusCodes.java @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2017 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location; + +import com.google.android.gms.common.api.CommonStatusCodes; +import com.google.android.gms.common.api.Status; + +import org.microg.gms.common.PublicApi; + +/** + * Location settings specific status codes, for use in {@link Status#getStatusCode()} + */ +@PublicApi +public class LocationSettingsStatusCodes extends CommonStatusCodes { + /** + * Location settings can't be changed to meet the requirements, no dialog pops up + */ + public static final int SETTINGS_CHANGE_UNAVAILABLE = 8502; +} diff --git a/play-services-location-api/src/main/java/com/google/android/gms/location/internal/ParcelableGeofence.java b/play-services-location-api/src/main/java/com/google/android/gms/location/internal/ParcelableGeofence.java new file mode 100644 index 00000000..3abc611c --- /dev/null +++ b/play-services-location-api/src/main/java/com/google/android/gms/location/internal/ParcelableGeofence.java @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2017 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location.internal; + +import com.google.android.gms.location.Geofence; + +import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; + +public class ParcelableGeofence extends AutoSafeParcelable implements Geofence { + + @SafeParceled(1000) + private int versionCode = 1; + + @SafeParceled(1) + public String requestId; + + @SafeParceled(2) + public long expirationTime; + + @SafeParceled(3) + public int regionType; + + @SafeParceled(4) + public double latitude; + + @SafeParceled(5) + public double longitude; + + @SafeParceled(6) + public float radius; + + @SafeParceled(7) + public int transitionType; + + @SafeParceled(8) + public int notificationResponsiveness; + + @SafeParceled(9) + public int loiteringDelay; + + private ParcelableGeofence() { + } + + public ParcelableGeofence(String requestId, long expirationTime, int regionType, double latitude, double longitude, float radius, int transitionType, int notificationResponsiveness, int loiteringDelay) { + this.requestId = requestId; + this.expirationTime = expirationTime; + this.regionType = regionType; + this.latitude = latitude; + this.longitude = longitude; + this.radius = radius; + this.transitionType = transitionType; + this.notificationResponsiveness = notificationResponsiveness; + this.loiteringDelay = loiteringDelay; + } + + @Override + public String getRequestId() { + return requestId; + } + + public static final Creator CREATOR = new AutoCreator(ParcelableGeofence.class); +} From c61a147de29456270bce1203c9f6700268b068c5 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sat, 11 Feb 2017 00:29:25 +0100 Subject: [PATCH 127/170] Properly implement status details --- .../gms/common/api/CommonStatusCodes.java | 51 ++++++++ .../google/android/gms/common/api/Status.java | 111 +++++++++++++++--- 2 files changed, 147 insertions(+), 15 deletions(-) diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java index aee720c4..8a3fbf2c 100644 --- a/play-services-basement/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java +++ b/play-services-basement/src/main/java/com/google/android/gms/common/api/CommonStatusCodes.java @@ -16,14 +16,19 @@ package com.google.android.gms.common.api; +import android.support.annotation.NonNull; + import org.microg.gms.common.PublicApi; @PublicApi public class CommonStatusCodes { public static final int SUCCESS_CACHE = -1; public static final int SUCCESS = 0; + @Deprecated public static final int SERVICE_MISSING = 1; + @Deprecated public static final int SERVICE_VERSION_UPDATE_REQUIRED = 2; + @Deprecated public static final int SERVICE_DISABLED = 3; public static final int SIGN_IN_REQUIRED = 4; public static final int INVALID_ACCOUNT = 5; @@ -37,4 +42,50 @@ public class CommonStatusCodes { public static final int INTERRUPTED = 14; public static final int TIMEOUT = 15; public static final int CANCELED = 16; + public static final int API_NOT_CONNECTED = 17; + public static final int DEAD_CLIENT = 18; + + @NonNull + public static String getStatusCodeString(int statusCode) { + switch (statusCode) { + case SUCCESS_CACHE: + return "SUCCESS_CACHE"; + case SUCCESS: + return "SUCCESS"; + case SERVICE_VERSION_UPDATE_REQUIRED: + return "SERVICE_VERSION_UPDATE_REQUIRED"; + case SERVICE_DISABLED: + return "SERVICE_DISABLED"; + case SIGN_IN_REQUIRED: + return "SIGN_IN_REQUIRED"; + case INVALID_ACCOUNT: + return "INVALID_ACCOUNT"; + case RESOLUTION_REQUIRED: + return "RESOLUTION_REQUIRED"; + case NETWORK_ERROR: + return "NETWORK_ERROR"; + case INTERNAL_ERROR: + return "INTERNAL_ERROR"; + case SERVICE_INVALID: + return "SERVICE_INVALID"; + case DEVELOPER_ERROR: + return "DEVELOPER_ERROR"; + case LICENSE_CHECK_FAILED: + return "LICENSE_CHECK_FAILED"; + case ERROR: + return "ERROR"; + case INTERRUPTED: + return "INTERRUPTED"; + case TIMEOUT: + return "TIMEOUT"; + case CANCELED: + return "CANCELED"; + case API_NOT_CONNECTED: + return "API_NOT_CONNECTED"; + case DEAD_CLIENT: + return "DEAD_CLIENT"; + default: + return "unknown status code: " + statusCode; + } + } } diff --git a/play-services-basement/src/main/java/com/google/android/gms/common/api/Status.java b/play-services-basement/src/main/java/com/google/android/gms/common/api/Status.java index 7c225820..1d9930da 100644 --- a/play-services-basement/src/main/java/com/google/android/gms/common/api/Status.java +++ b/play-services-basement/src/main/java/com/google/android/gms/common/api/Status.java @@ -16,30 +16,38 @@ package com.google.android.gms.common.api; +import android.app.Activity; import android.app.PendingIntent; +import android.content.Intent; +import android.content.IntentSender; +import android.content.IntentSender.SendIntentException; import org.microg.gms.common.PublicApi; import org.microg.safeparcel.AutoSafeParcelable; +import org.microg.safeparcel.SafeParceled; /** * Represents the results of work. - *

- * TODO: Docs */ @PublicApi public final class Status extends AutoSafeParcelable implements Result { - private static final int STATUS_CODE_INTERNAL_ERROR = 8; - private static final int STATUS_CODE_INTERRUPTED = 14; - private static final int STATUS_CODE_CANCELED = 16; - - public static final Status INTERNAL_ERROR = new Status(STATUS_CODE_INTERNAL_ERROR); - public static final Status INTERRUPTED = new Status(STATUS_CODE_INTERRUPTED); - public static final Status CANCELED = new Status(STATUS_CODE_CANCELED); - public static final Status SUCCESS = new Status(0); + @PublicApi(exclude = true) + public static final Status INTERNAL_ERROR = new Status(CommonStatusCodes.INTERNAL_ERROR); + @PublicApi(exclude = true) + public static final Status CANCELED = new Status(CommonStatusCodes.CANCELED); + @PublicApi(exclude = true) + public static final Status SUCCESS = new Status(CommonStatusCodes.SUCCESS); + @SafeParceled(1000) private int versionCode = 1; + + @SafeParceled(1) private final int statusCode; + + @SafeParceled(2) private final String statusMessage; + + @SafeParceled(3) private final PendingIntent resolution; private Status() { @@ -48,24 +56,67 @@ public final class Status extends AutoSafeParcelable implements Result { resolution = null; } + /** + * Creates a representation of the status resulting from a GoogleApiClient operation. + * + * @param statusCode The status code. + */ public Status(int statusCode) { this(statusCode, null); } + /** + * Creates a representation of the status resulting from a GoogleApiClient operation. + * + * @param statusCode The status code. + * @param statusMessage The message associated with this status, or null. + */ public Status(int statusCode, String statusMessage) { this(statusCode, statusMessage, null); } + /** + * Creates a representation of the status resulting from a GoogleApiClient operation. + * + * @param statusCode The status code. + * @param statusMessage The message associated with this status, or null. + * @param resolution A pending intent that will resolve the issue when started, or null. + */ public Status(int statusCode, String statusMessage, PendingIntent resolution) { this.statusCode = statusCode; this.statusMessage = statusMessage; this.resolution = resolution; } + /** + * A pending intent to resolve the failure. This intent can be started with + * {@link Activity#startIntentSenderForResult(IntentSender, int, Intent, int, int, int)} to + * present UI to solve the issue. + * + * @return The pending intent to resolve the failure. + */ public PendingIntent getResolution() { return resolution; } + /** + * Returns the status of this result. Use {@link #isSuccess()} to determine whether the call + * was successful, and {@link #getStatusCode()} to determine what the error cause was. + *

+ * Certain errors are due to failures that can be resolved by launching a particular intent. + * The resolution intent is available via {@link #getResolution()}. + */ + @Override + public Status getStatus() { + return this; + } + + /** + * Indicates the status of the operation. + * + * @return Status code resulting from the operation. The value is one of the constants in + * {@link CommonStatusCodes} or specific to the APIs added to the GoogleApiClient. + */ public int getStatusCode() { return statusCode; } @@ -74,25 +125,55 @@ public final class Status extends AutoSafeParcelable implements Result { return statusMessage; } + /** + * Returns true if calling {@link #startResolutionForResult(Activity, int)} will start any + * intents requiring user interaction. + * + * @return true if there is a resolution that can be started. + */ public boolean hasResolution() { return resolution != null; } + /** + * Returns true if the operation was canceled. + */ public boolean isCanceled() { - return statusCode == STATUS_CODE_CANCELED; + return statusCode == CommonStatusCodes.CANCELED; } + /** + * Returns true if the operation was interrupted. + */ public boolean isInterrupted() { - return statusCode == STATUS_CODE_INTERRUPTED; + return statusCode == CommonStatusCodes.INTERRUPTED; } + /** + * Returns true if the operation was successful. + * + * @return true if the operation was successful, false if there was an error. + */ public boolean isSuccess() { return statusCode <= 0; } - @Override - public Status getStatus() { - return this; + /** + * Resolves an error by starting any intents requiring user interaction. See + * {@link CommonStatusCodes#SIGN_IN_REQUIRED}, and {@link CommonStatusCodes#RESOLUTION_REQUIRED}. + * + * @param activity An Activity context to use to resolve the issue. The activity's + * onActivityResult method will be invoked after the user is done. If the + * resultCode is {@link Activity#RESULT_OK}, the application should try to + * connect again. + * @param requestCode The request code to pass to onActivityResult. + * @throws SendIntentException If the resolution intent has been canceled or is no longer able + * to execute the request. + */ + public void startResolutionForResult(Activity activity, int requestCode) throws SendIntentException { + if (hasResolution()) { + activity.startIntentSenderForResult(resolution.getIntentSender(), requestCode, null, 0, 0, 0); + } } public static final Creator CREATOR = new AutoCreator(Status.class); From 3f1fa81390d67053d3aa50b0bc3537953396bcf6 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sat, 11 Feb 2017 02:13:42 +0100 Subject: [PATCH 128/170] Add Geofencing API details --- .../internal/IGeofencerCallbacks.aidl | 5 + .../gms/location/DetectedActivity.java | 12 ++ .../android/gms/location/GeofencingEvent.java | 132 ++++++++++++++++++ 3 files changed, 149 insertions(+) create mode 100644 play-services-location-api/src/main/java/com/google/android/gms/location/GeofencingEvent.java diff --git a/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl b/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl index b8e03066..ac3950f5 100644 --- a/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl +++ b/play-services-location-api/src/main/aidl/com/google/android/gms/location/internal/IGeofencerCallbacks.aidl @@ -1,4 +1,9 @@ package com.google.android.gms.location.internal; +import android.app.PendingIntent; + interface IGeofencerCallbacks { + void onAddGeofenceResult(int statusCode, in String[] requestIds) = 0; + void onRemoveGeofencesByRequestIdsResult(int statusCode, in String[] requestIds) = 1; + void onRemoveGeofencesByPendingIntentResult(int statusCode, in PendingIntent pendingIntent) = 2; } diff --git a/play-services-location-api/src/main/java/com/google/android/gms/location/DetectedActivity.java b/play-services-location-api/src/main/java/com/google/android/gms/location/DetectedActivity.java index 36744730..4a75a4d2 100644 --- a/play-services-location-api/src/main/java/com/google/android/gms/location/DetectedActivity.java +++ b/play-services-location-api/src/main/java/com/google/android/gms/location/DetectedActivity.java @@ -92,6 +92,13 @@ public class DetectedActivity extends AutoSafeParcelable { this.confidence = confidence; } + @PublicApi(exclude = true) + public DetectedActivity(int versionCode, int type, int confidence) { + this.versionCode = versionCode; + this.type = type; + this.confidence = confidence; + } + /** * Returns a value from 0 to 100 indicating the likelihood that the user is performing this * activity. @@ -120,6 +127,11 @@ public class DetectedActivity extends AutoSafeParcelable { return type; } + @PublicApi(exclude = true) + public int getVersionCode() { + return versionCode; + } + @Override public String toString() { return "DetectedActivity [type=" + typeToString(getType()) + ", confidence=" + getConfidence() + "]"; diff --git a/play-services-location-api/src/main/java/com/google/android/gms/location/GeofencingEvent.java b/play-services-location-api/src/main/java/com/google/android/gms/location/GeofencingEvent.java new file mode 100644 index 00000000..82b3a107 --- /dev/null +++ b/play-services-location-api/src/main/java/com/google/android/gms/location/GeofencingEvent.java @@ -0,0 +1,132 @@ +/* + * Copyright (C) 2017 microG Project Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.gms.location; + +import android.content.Intent; +import android.location.Location; + +import com.google.android.gms.location.internal.ParcelableGeofence; + +import org.microg.gms.common.PublicApi; +import org.microg.safeparcel.SafeParcelUtil; + +import java.util.ArrayList; +import java.util.List; + +/** + * Represents an event from the GeofencingApi API. The event can be + *

+ * A geofence triggering event generated when a geofence transition happens. + * An error happens after geofences are registered and being monitored. + */ +@PublicApi +public class GeofencingEvent { + @PublicApi(exclude = true) + public static final String EXTRA_ERROR_CODE = "gms_error_code"; + @PublicApi(exclude = true) + public static final String EXTRA_TRIGGERING_LOCATION = "com.google.android.location.intent.extra.triggering_location"; + @PublicApi(exclude = true) + public static final String EXTRA_TRANSITION = "com.google.android.location.intent.extra.transition"; + @PublicApi(exclude = true) + public static final String EXTRA_GEOFENCE_LIST = "com.google.android.location.intent.extra.geofence_list"; + + private int errorCode; + private int geofenceTransition; + private List triggeringGeofences; + private Location triggeringLocation; + + /** + * Creates a {@link GeofencingEvent} object from the given intent. + * + * @param intent the intent to extract the geofencing event data from + * @return a {@link GeofencingEvent} object or {@code null} if the given intent is {@code null} + */ + public static GeofencingEvent fromIntent(Intent intent) { + if (intent == null) { + return null; + } + GeofencingEvent event = new GeofencingEvent(); + event.errorCode = intent.getIntExtra(EXTRA_ERROR_CODE, -1); + event.geofenceTransition = intent.getIntExtra(EXTRA_TRANSITION, -1); + if (event.geofenceTransition != 1 && event.geofenceTransition != 2 && event.geofenceTransition != 4) + event.geofenceTransition = -1; + ArrayList parceledGeofences = (ArrayList) intent.getSerializableExtra(EXTRA_GEOFENCE_LIST); + if (parceledGeofences != null) { + event.triggeringGeofences = new ArrayList(); + for (byte[] parceledGeofence : parceledGeofences) { + event.triggeringGeofences.add(SafeParcelUtil.fromByteArray(parceledGeofence, ParcelableGeofence.CREATOR)); + } + } + event.triggeringLocation = intent.getParcelableExtra(EXTRA_TRIGGERING_LOCATION); + return event; + } + + /** + * Returns the error code that explains the error that triggered the intent specified in + * {@link #fromIntent(Intent)}. + * + * @return the error code specified in {@link GeofenceStatusCodes} or {@code -1} if + * {@link #hasError()} returns false. + */ + public int getErrorCode() { + return errorCode; + } + + /** + * Returns the transition type of the geofence transition alert. + * + * @return -1 if the intent specified in {@link #fromIntent(Intent)} is not generated for a + * transition alert; Otherwise returns the GEOFENCE_TRANSITION_ flags value defined in + * {@link Geofence}. + */ + public int getGeofenceTransition() { + return geofenceTransition; + } + + + /** + * Returns a list of geofences that triggered this geofence transition alert. + * + * @return a list of geofences that triggered this geofence transition alert or {@code null} if + * the intent specified in {@link #fromIntent(Intent)} is not generated for a geofence + * transition alert + */ + public List getTriggeringGeofences() { + return triggeringGeofences; + } + + /** + * Gets the location that triggered the geofence transition. Triggering location is only + * available if the calling app links against Google Play services 5.0 SDK. + * + * @return the location that triggered this geofence alert or {@code null} if it's not included + * in the intent specified in {@link #fromIntent(Intent)} + */ + public Location getTriggeringLocation() { + return triggeringLocation; + } + + /** + * Whether an error triggered this intent. + * + * @return {@code true} if an error triggered the intent specified in + * {@link #fromIntent(Intent)}, otherwise {@code false} + */ + public boolean hasError() { + return errorCode != -1; + } +} From 05c12cab6d65444b0c5d9882f8df6224168ff7aa Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sat, 11 Feb 2017 21:41:35 +0100 Subject: [PATCH 129/170] Update ISafetyNetService.aidl --- .../android/gms/safetynet/internal/ISafetyNetService.aidl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/play-services-api/src/main/aidl/com/google/android/gms/safetynet/internal/ISafetyNetService.aidl b/play-services-api/src/main/aidl/com/google/android/gms/safetynet/internal/ISafetyNetService.aidl index 9e23438a..7dfc749b 100644 --- a/play-services-api/src/main/aidl/com/google/android/gms/safetynet/internal/ISafetyNetService.aidl +++ b/play-services-api/src/main/aidl/com/google/android/gms/safetynet/internal/ISafetyNetService.aidl @@ -4,8 +4,9 @@ import com.google.android.gms.safetynet.internal.ISafetyNetCallbacks; interface ISafetyNetService { void attest(ISafetyNetCallbacks callbacks, in byte[] nonce) = 0; + void attestWithApiKey(ISafetyNetCallbacks callbacks, in byte[] nonce, String apiKey) = 6; void getSharedUuid(ISafetyNetCallbacks callbacks) = 1; void lookupUri(ISafetyNetCallbacks callbacks, String s1, in int[] threatTypes, int i, String s2) = 2; void init(ISafetyNetCallbacks callbacks) = 3; - void unknown4(ISafetyNetCallbacks callbacks) = 4; + void getHarmfulAppsList(ISafetyNetCallbacks callbacks) = 4; } \ No newline at end of file From 3933ac65c7079f253154c0527ad36fc6d2fd9f89 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Tue, 21 Mar 2017 19:07:15 +0100 Subject: [PATCH 130/170] Increase version code --- .../src/main/java/org/microg/gms/common/Constants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-services-basement/src/main/java/org/microg/gms/common/Constants.java b/play-services-basement/src/main/java/org/microg/gms/common/Constants.java index 9fadb62b..f21ed222 100644 --- a/play-services-basement/src/main/java/org/microg/gms/common/Constants.java +++ b/play-services-basement/src/main/java/org/microg/gms/common/Constants.java @@ -17,7 +17,7 @@ package org.microg.gms.common; public class Constants { - public static final int MAX_REFERENCE_VERSION = 10084000; + public static final int MAX_REFERENCE_VERSION = 10542000; public static final String GMS_PACKAGE_NAME = "com.google.android.gms"; public static final String GSF_PACKAGE_NAME = "com.google.android.gsf"; public static final String GMS_PACKAGE_SIGNATURE_SHA1 = "38918a453d07199354f8b19af05ec6562ced5788"; From e2fc0bd8284d276f85c863bf723d8133a5c6fe13 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Mon, 1 May 2017 12:32:33 +0200 Subject: [PATCH 131/170] Update gradle --- .travis.yml | 4 ++-- build.gradle | 6 +++--- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 612507ec..8d79a24e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,8 +12,8 @@ script: android: components: - tools - - build-tools-24.0.3 - - android-24 + - build-tools-25.0.2 + - android-25 - extra-android-m2repository before_cache: - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock diff --git a/build.gradle b/build.gradle index c02fd47b..829524c0 100644 --- a/build.gradle +++ b/build.gradle @@ -19,17 +19,17 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.2' + classpath 'com.android.tools.build:gradle:2.3.1' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' } } allprojects { apply plugin: 'idea' - ext.androidBuildVersionTools = "24.0.3" + ext.androidBuildVersionTools = "25.0.2" } -def androidCompileSdk() { return 24 } +def androidCompileSdk() { return 25 } def androidTargetSdk() { return 24 } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 06df1f78..e6e14d99 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Jan 14 11:55:04 CET 2015 +#Sat Apr 22 15:09:21 CEST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip From d47ab8f248dd782a9f554cc007f41e97f79be680 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Mon, 1 May 2017 13:17:31 +0200 Subject: [PATCH 132/170] Update support lib --- play-services-basement/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-services-basement/build.gradle b/play-services-basement/build.gradle index d916c320..e3bdf102 100644 --- a/play-services-basement/build.gradle +++ b/play-services-basement/build.gradle @@ -49,6 +49,6 @@ android { } dependencies { - compile 'com.android.support:support-v4:24.2.1' + compile 'com.android.support:support-v4:25.3.1' compile 'org.microg:safe-parcel:1.4.0' } From b25ca17225de59fef635f1b9d6ba3abc1144e17a Mon Sep 17 00:00:00 2001 From: Marvin W Date: Tue, 13 Jun 2017 00:11:15 +0200 Subject: [PATCH 133/170] Update Copyright header --- play-services-api/src/main/AndroidManifest.xml | 2 +- .../java/com/google/android/gms/appdatasearch/CorpusStatus.java | 2 +- .../java/com/google/android/gms/appdatasearch/PIMEUpdate.java | 2 +- .../google/android/gms/appdatasearch/PIMEUpdateResponse.java | 2 +- .../google/android/gms/appdatasearch/QuerySpecification.java | 2 +- .../android/gms/appdatasearch/RequestIndexingSpecification.java | 2 +- .../com/google/android/gms/appdatasearch/SearchResults.java | 2 +- .../google/android/gms/appdatasearch/SuggestSpecification.java | 2 +- .../com/google/android/gms/appdatasearch/SuggestionResults.java | 2 +- .../java/com/google/android/gms/appdatasearch/UsageInfo.java | 2 +- .../java/com/google/android/gms/auth/AccountChangeEvent.java | 2 +- .../com/google/android/gms/auth/AccountChangeEventsRequest.java | 2 +- .../google/android/gms/auth/AccountChangeEventsResponse.java | 2 +- .../src/main/java/com/google/android/gms/auth/TokenData.java | 2 +- .../com/google/android/gms/auth/api/credentials/Credential.java | 2 +- .../gms/auth/api/credentials/CredentialPickerConfig.java | 2 +- .../android/gms/auth/api/credentials/CredentialRequest.java | 2 +- .../com/google/android/gms/auth/api/credentials/IdToken.java | 2 +- .../gms/auth/api/credentials/internal/DeleteRequest.java | 2 +- .../auth/api/credentials/internal/GeneratePasswordRequest.java | 2 +- .../android/gms/auth/api/credentials/internal/SaveRequest.java | 2 +- .../firstparty/dataservice/AccountRecoveryGuidanceRequest.java | 2 +- .../gms/auth/firstparty/dataservice/AccountRemovalRequest.java | 2 +- .../auth/firstparty/dataservice/ConfirmCredentialsRequest.java | 2 +- .../android/gms/auth/firstparty/dataservice/TokenRequest.java | 2 +- .../android/gms/auth/firstparty/dataservice/TokenResponse.java | 2 +- .../firstparty/delegate/ConfirmCredentialsWorkflowRequest.java | 2 +- .../android/gms/auth/firstparty/proximity/data/Permit.java | 2 +- .../android/gms/auth/firstparty/shared/AccountCredentials.java | 2 +- .../android/gms/auth/firstparty/shared/AppDescription.java | 2 +- .../android/gms/auth/firstparty/shared/CaptchaSolution.java | 2 +- .../com/google/android/gms/clearcut/LogEventParcelable.java | 2 +- .../android/gms/drive/internal/AddEventListenerRequest.java | 2 +- .../google/android/gms/drive/internal/AddPermissionRequest.java | 2 +- .../android/gms/drive/internal/AuthorizeAccessRequest.java | 2 +- .../android/gms/drive/internal/CancelPendingActionsRequest.java | 2 +- .../gms/drive/internal/ChangeResourceParentsRequest.java | 2 +- .../google/android/gms/drive/internal/ChangeSequenceNumber.java | 2 +- .../com/google/android/gms/drive/internal/ChangesResponse.java | 2 +- .../gms/drive/internal/CheckResourceIdsExistRequest.java | 2 +- .../drive/internal/CloseContentsAndUpdateMetadataRequest.java | 2 +- .../google/android/gms/drive/internal/CloseContentsRequest.java | 2 +- .../com/google/android/gms/drive/internal/ContentsResponse.java | 2 +- .../android/gms/drive/internal/ControlProgressRequest.java | 2 +- .../android/gms/drive/internal/CreateContentsRequest.java | 2 +- .../gms/drive/internal/CreateFileIntentSenderRequest.java | 2 +- .../google/android/gms/drive/internal/CreateFileRequest.java | 2 +- .../google/android/gms/drive/internal/CreateFolderRequest.java | 2 +- .../android/gms/drive/internal/DeleteResourceRequest.java | 2 +- .../gms/drive/internal/DeviceUsagePreferenceResponse.java | 2 +- .../google/android/gms/drive/internal/DisconnectRequest.java | 2 +- .../android/gms/drive/internal/DownloadProgressResponse.java | 2 +- .../com/google/android/gms/drive/internal/DriveIdResponse.java | 2 +- .../android/gms/drive/internal/DrivePreferencesResponse.java | 2 +- .../google/android/gms/drive/internal/DriveServiceResponse.java | 2 +- .../com/google/android/gms/drive/internal/EventResponse.java | 2 +- .../android/gms/drive/internal/FetchThumbnailRequest.java | 2 +- .../android/gms/drive/internal/FetchThumbnailResponse.java | 2 +- .../google/android/gms/drive/internal/GetChangesRequest.java | 2 +- .../gms/drive/internal/GetDriveIdFromUniqueIdRequest.java | 2 +- .../google/android/gms/drive/internal/GetMetadataRequest.java | 2 +- .../android/gms/drive/internal/GetPermissionsRequest.java | 2 +- .../android/gms/drive/internal/GetPermissionsResponse.java | 2 +- .../google/android/gms/drive/internal/ListEntriesResponse.java | 2 +- .../google/android/gms/drive/internal/ListParentsRequest.java | 2 +- .../google/android/gms/drive/internal/ListParentsResponse.java | 2 +- .../google/android/gms/drive/internal/LoadRealtimeRequest.java | 2 +- .../google/android/gms/drive/internal/LoadRealtimeResponse.java | 2 +- .../com/google/android/gms/drive/internal/MetadataResponse.java | 2 +- .../google/android/gms/drive/internal/OpenContentsRequest.java | 2 +- .../android/gms/drive/internal/OpenFileIntentSenderRequest.java | 2 +- .../android/gms/drive/internal/RealtimeDocumentSyncRequest.java | 2 +- .../android/gms/drive/internal/RemoveEventListenerRequest.java | 2 +- .../android/gms/drive/internal/RemovePermissionRequest.java | 2 +- .../android/gms/drive/internal/ResourceIdSetResponse.java | 2 +- .../android/gms/drive/internal/SetDrivePreferencesRequest.java | 2 +- .../gms/drive/internal/SetFileUploadPreferencesRequest.java | 2 +- .../android/gms/drive/internal/SetResourceParentsRequest.java | 2 +- .../google/android/gms/drive/internal/StartStreamSession.java | 2 +- .../android/gms/drive/internal/StreamContentsRequest.java | 2 +- .../google/android/gms/drive/internal/StringListResponse.java | 2 +- .../com/google/android/gms/drive/internal/SyncMoreResponse.java | 2 +- .../google/android/gms/drive/internal/TrashResourceRequest.java | 2 +- .../android/gms/drive/internal/UnsubscribeResourceRequest.java | 2 +- .../android/gms/drive/internal/UntrashResourceRequest.java | 2 +- .../android/gms/drive/internal/UpdateMetadataRequest.java | 2 +- .../android/gms/drive/internal/UpdatePermissionRequest.java | 2 +- .../android/gms/drive/metadata/internal/MetadataBundle.java | 2 +- .../java/com/google/android/gms/fitness/data/DataPoint.java | 2 +- .../main/java/com/google/android/gms/fitness/data/Device.java | 2 +- .../main/java/com/google/android/gms/fitness/data/Field.java | 2 +- .../main/java/com/google/android/gms/fitness/data/Value.java | 2 +- .../google/android/gms/identity/accounts/api/AccountData.java | 2 +- .../gms/identity/intents/model/CountrySpecification.java | 2 +- .../google/android/gms/identity/intents/model/UserAddress.java | 2 +- .../main/java/com/google/android/gms/maps/GoogleMapOptions.java | 2 +- .../com/google/android/gms/maps/StreetViewPanoramaOptions.java | 2 +- .../main/java/com/google/android/gms/maps/internal/Point.java | 2 +- .../com/google/android/gms/maps/model/BitmapDescriptor.java | 2 +- .../java/com/google/android/gms/maps/model/CameraPosition.java | 2 +- .../java/com/google/android/gms/maps/model/CircleOptions.java | 2 +- .../com/google/android/gms/maps/model/GroundOverlayOptions.java | 2 +- .../java/com/google/android/gms/maps/model/MarkerOptions.java | 2 +- .../java/com/google/android/gms/maps/model/PolygonOptions.java | 2 +- .../java/com/google/android/gms/maps/model/PolylineOptions.java | 2 +- .../google/android/gms/maps/model/StreetViewPanoramaCamera.java | 2 +- .../google/android/gms/maps/model/StreetViewPanoramaLink.java | 2 +- .../android/gms/maps/model/StreetViewPanoramaLocation.java | 2 +- .../android/gms/maps/model/StreetViewPanoramaOrientation.java | 2 +- .../src/main/java/com/google/android/gms/maps/model/Tile.java | 2 +- .../com/google/android/gms/maps/model/TileOverlayOptions.java | 2 +- .../java/com/google/android/gms/maps/model/TileProvider.java | 2 +- .../java/com/google/android/gms/maps/model/VisibleRegion.java | 2 +- .../java/com/google/android/gms/maps/model/package-info.java | 2 +- .../android/gms/people/internal/ParcelableLoadImageOptions.java | 2 +- .../com/google/android/gms/people/model/AccountMetadata.java | 2 +- .../com/google/android/gms/people/model/AvatarReference.java | 2 +- .../java/com/google/android/gms/playlog/internal/LogEvent.java | 2 +- .../google/android/gms/playlog/internal/PlayLoggerContext.java | 2 +- .../com/google/android/gms/plus/internal/PlusCommonExtras.java | 2 +- .../java/com/google/android/gms/plus/internal/PlusSession.java | 2 +- .../gms/plus/internal/model/smart_profile/CardsRequest.java | 2 +- .../gms/plus/internal/model/smart_profile/CardsResponse.java | 2 +- .../internal/model/smart_profile/PeopleForProfilesRequest.java | 2 +- .../internal/model/smart_profile/PeopleForProfilesResponse.java | 2 +- .../java/com/google/android/gms/plus/model/posts/Comment.java | 2 +- .../main/java/com/google/android/gms/plus/model/posts/Post.java | 2 +- .../java/com/google/android/gms/plus/model/posts/Settings.java | 2 +- .../java/com/google/android/gms/reminders/AccountState.java | 2 +- .../android/gms/reminders/CreateReminderOptionsInternal.java | 2 +- .../com/google/android/gms/reminders/LoadRemindersOptions.java | 2 +- .../google/android/gms/reminders/ReindexDueDatesOptions.java | 2 +- .../google/android/gms/reminders/UpdateRecurrenceOptions.java | 2 +- .../gms/reminders/model/CustomizedSnoozePresetEntity.java | 2 +- .../java/com/google/android/gms/reminders/model/TaskEntity.java | 2 +- .../com/google/android/gms/reminders/model/TaskIdEntity.java | 2 +- .../java/com/google/android/gms/safetynet/AttestationData.java | 2 +- .../java/com/google/android/gms/safetynet/HarmfulAppsData.java | 2 +- .../java/com/google/android/gms/safetynet/SafeBrowsingData.java | 2 +- .../google/android/gms/search/corpora/ClearCorpusRequest.java | 2 +- .../google/android/gms/search/corpora/GetCorpusInfoRequest.java | 2 +- .../android/gms/search/corpora/GetCorpusStatusRequest.java | 2 +- .../android/gms/search/corpora/GetCorpusStatusResponse.java | 2 +- .../android/gms/search/corpora/RequestIndexingRequest.java | 2 +- .../android/gms/search/corpora/RequestIndexingResponse.java | 2 +- .../gms/search/global/GetCurrentExperimentIdsRequest.java | 2 +- .../gms/search/global/GetCurrentExperimentIdsResponse.java | 2 +- .../gms/search/global/GetGlobalSearchSourcesRequest.java | 2 +- .../gms/search/global/GetGlobalSearchSourcesResponse.java | 2 +- .../gms/search/global/GetPendingExperimentIdsRequest.java | 2 +- .../gms/search/global/GetPendingExperimentIdsResponse.java | 2 +- .../android/gms/search/global/SetExperimentIdsRequest.java | 2 +- .../android/gms/search/global/SetExperimentIdsResponse.java | 2 +- .../gms/search/global/SetIncludeInGlobalSearchRequest.java | 2 +- .../gms/search/global/SetIncludeInGlobalSearchResponse.java | 2 +- .../com/google/android/gms/search/queries/QueryRequest.java | 2 +- .../com/google/android/gms/search/queries/QueryResponse.java | 2 +- .../database/connection/idl/CompoundHashParcelable.java | 2 +- .../firebase/database/connection/idl/ConnectionConfig.java | 2 +- .../firebase/database/connection/idl/RangeParcelable.java | 2 +- .../src/main/java/org/microg/gms/maps/MapsConstants.java | 2 +- play-services-basement/src/main/AndroidManifest.xml | 2 +- .../java/com/google/android/gms/common/ConnectionResult.java | 2 +- .../src/main/java/com/google/android/gms/common/Scopes.java | 2 +- .../com/google/android/gms/common/api/CommonStatusCodes.java | 2 +- .../main/java/com/google/android/gms/common/api/Releasable.java | 2 +- .../src/main/java/com/google/android/gms/common/api/Result.java | 2 +- .../java/com/google/android/gms/common/api/ResultCallback.java | 2 +- .../src/main/java/com/google/android/gms/common/api/Scope.java | 2 +- .../src/main/java/com/google/android/gms/common/api/Status.java | 2 +- .../java/com/google/android/gms/common/data/DataHolder.java | 2 +- .../main/java/com/google/android/gms/common/data/Freezable.java | 2 +- .../java/com/google/android/gms/common/images/WebImage.java | 2 +- .../com/google/android/gms/common/internal/BinderWrapper.java | 2 +- .../google/android/gms/common/internal/GetServiceRequest.java | 2 +- .../android/gms/common/internal/ValidateAccountRequest.java | 2 +- .../google/android/gms/common/server/FavaDiagnosticsEntity.java | 2 +- .../main/java/com/google/android/gms/dynamic/ObjectWrapper.java | 2 +- .../src/main/java/org/microg/gms/auth/AuthConstants.java | 2 +- .../src/main/java/org/microg/gms/common/Constants.java | 2 +- .../src/main/java/org/microg/gms/common/GmsService.java | 2 +- .../src/main/java/org/microg/gms/common/PublicApi.java | 2 +- .../src/main/java/org/microg/gms/gcm/GcmConstants.java | 2 +- play-services-cast-api/src/main/AndroidManifest.xml | 2 +- .../java/com/google/android/gms/cast/ApplicationMetadata.java | 2 +- .../src/main/java/com/google/android/gms/cast/CastDevice.java | 2 +- .../com/google/android/gms/cast/CastMediaControlIntent.java | 2 +- .../main/java/com/google/android/gms/cast/CastStatusCodes.java | 2 +- .../main/java/com/google/android/gms/cast/LaunchOptions.java | 2 +- play-services-cast-framework-api/src/main/AndroidManifest.xml | 2 +- .../java/com/google/android/gms/cast/framework/CastOptions.java | 2 +- .../android/gms/cast/framework/media/CastMediaOptions.java | 2 +- play-services-iid-api/src/main/AndroidManifest.xml | 2 +- .../main/java/com/google/android/gms/iid/MessengerCompat.java | 2 +- play-services-location-api/src/main/AndroidManifest.xml | 2 +- .../google/android/gms/location/ActivityRecognitionResult.java | 2 +- .../src/main/java/com/google/android/gms/location/Geofence.java | 2 +- .../java/com/google/android/gms/location/GeofencingRequest.java | 2 +- .../java/com/google/android/gms/location/GestureRequest.java | 2 +- .../com/google/android/gms/location/LocationAvailability.java | 2 +- .../java/com/google/android/gms/location/LocationRequest.java | 2 +- .../java/com/google/android/gms/location/LocationResult.java | 2 +- .../google/android/gms/location/LocationSettingsRequest.java | 2 +- .../com/google/android/gms/location/LocationSettingsResult.java | 2 +- .../com/google/android/gms/location/LocationSettingsStates.java | 2 +- .../java/com/google/android/gms/location/LocationStatus.java | 2 +- .../google/android/gms/location/internal/ClientIdentity.java | 2 +- .../gms/location/internal/FusedLocationProviderResult.java | 2 +- .../android/gms/location/internal/LocationRequestInternal.java | 2 +- .../gms/location/internal/LocationRequestUpdateData.java | 2 +- .../google/android/gms/location/places/AutocompleteFilter.java | 2 +- .../google/android/gms/location/places/NearbyAlertRequest.java | 2 +- .../main/java/com/google/android/gms/location/places/Place.java | 2 +- .../com/google/android/gms/location/places/PlaceFilter.java | 2 +- .../com/google/android/gms/location/places/PlaceReport.java | 2 +- .../com/google/android/gms/location/places/PlaceRequest.java | 2 +- .../com/google/android/gms/location/places/UserAddedPlace.java | 2 +- .../com/google/android/gms/location/places/UserDataType.java | 2 +- .../google/android/gms/location/places/internal/PlaceImpl.java | 2 +- .../android/gms/location/places/internal/PlacesParams.java | 2 +- .../google/android/gms/location/reporting/ReportingState.java | 2 +- .../google/android/gms/location/reporting/UploadRequest.java | 2 +- .../android/gms/location/reporting/UploadRequestResult.java | 2 +- .../src/main/java/com/google/android/gms/maps/model/LatLng.java | 2 +- .../java/com/google/android/gms/maps/model/LatLngBounds.java | 2 +- .../main/java/org/microg/gms/location/LocationConstants.java | 2 +- play-services-wearable-api/src/main/AndroidManifest.xml | 2 +- .../java/com/google/android/gms/wearable/AmsEntityUpdate.java | 2 +- .../java/com/google/android/gms/wearable/AncsNotification.java | 2 +- .../src/main/java/com/google/android/gms/wearable/Asset.java | 2 +- .../java/com/google/android/gms/wearable/CapabilityInfo.java | 2 +- .../google/android/gms/wearable/ConnectionConfiguration.java | 2 +- .../src/main/java/com/google/android/gms/wearable/DataItem.java | 2 +- .../java/com/google/android/gms/wearable/DataItemAsset.java | 2 +- .../main/java/com/google/android/gms/wearable/MessageEvent.java | 2 +- .../src/main/java/com/google/android/gms/wearable/Node.java | 2 +- .../com/google/android/gms/wearable/WearableStatusCodes.java | 2 +- .../android/gms/wearable/internal/AddListenerRequest.java | 2 +- .../gms/wearable/internal/AmsEntityUpdateParcelable.java | 2 +- .../gms/wearable/internal/AncsNotificationParcelable.java | 2 +- .../android/gms/wearable/internal/CapabilityInfoParcelable.java | 2 +- .../android/gms/wearable/internal/ChannelEventParcelable.java | 2 +- .../google/android/gms/wearable/internal/ChannelParcelable.java | 2 +- .../android/gms/wearable/internal/DataItemAssetParcelable.java | 2 +- .../android/gms/wearable/internal/DataItemParcelable.java | 2 +- .../android/gms/wearable/internal/DeleteDataItemsResponse.java | 2 +- .../gms/wearable/internal/GetCloudSyncSettingResponse.java | 2 +- .../google/android/gms/wearable/internal/GetConfigResponse.java | 2 +- .../android/gms/wearable/internal/GetConfigsResponse.java | 2 +- .../gms/wearable/internal/GetConnectedNodesResponse.java | 2 +- .../android/gms/wearable/internal/GetDataItemResponse.java | 2 +- .../android/gms/wearable/internal/GetFdForAssetResponse.java | 2 +- .../android/gms/wearable/internal/GetLocalNodeResponse.java | 2 +- .../android/gms/wearable/internal/MessageEventParcelable.java | 2 +- .../google/android/gms/wearable/internal/NodeParcelable.java | 2 +- .../google/android/gms/wearable/internal/PutDataRequest.java | 2 +- .../google/android/gms/wearable/internal/PutDataResponse.java | 2 +- .../android/gms/wearable/internal/RemoveListenerRequest.java | 2 +- .../android/gms/wearable/internal/SendMessageResponse.java | 2 +- .../android/gms/wearable/internal/StorageInfoResponse.java | 2 +- 260 files changed, 260 insertions(+), 260 deletions(-) diff --git a/play-services-api/src/main/AndroidManifest.xml b/play-services-api/src/main/AndroidManifest.xml index 2dd201aa..d4a4d07a 100644 --- a/play-services-api/src/main/AndroidManifest.xml +++ b/play-services-api/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@