diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle index 44c2d884..259c6337 100644 --- a/play-services-api/build.gradle +++ b/play-services-api/build.gradle @@ -34,6 +34,7 @@ android { dependencies { api project(':play-services-basement') + api project(':play-services-appinvite-api') api project(':play-services-cast-api') api project(':play-services-cast-framework-api') api project(':play-services-iid-api') diff --git a/play-services-core/build.gradle b/play-services-core/build.gradle index bc3d697a..2c446d07 100644 --- a/play-services-core/build.gradle +++ b/play-services-core/build.gradle @@ -37,6 +37,7 @@ dependencies { api "org.slf4j:slf4j-api:1.7.25" api "uk.uuid.slf4j:slf4j-android:1.7.25-1" + implementation project(':firebase-dynamic-links-api') implementation project(':play-services-base-core') implementation project(':play-services-location-core') implementation project(':play-services-core:microg-ui-tools') // deprecated diff --git a/play-services-core/src/main/AndroidManifest.xml b/play-services-core/src/main/AndroidManifest.xml index 74fbd245..ef0b723c 100644 --- a/play-services-core/src/main/AndroidManifest.xml +++ b/play-services-core/src/main/AndroidManifest.xml @@ -622,6 +622,18 @@ + + + + + + + + + + + + diff --git a/play-services-core/src/main/java/org/microg/gms/appinvite/AppInviteService.java b/play-services-core/src/main/java/org/microg/gms/appinvite/AppInviteService.java new file mode 100644 index 00000000..8270f78a --- /dev/null +++ b/play-services-core/src/main/java/org/microg/gms/appinvite/AppInviteService.java @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2019 e Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES 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.appinvite; + +import android.app.Service; +import android.content.Intent; +import android.os.IBinder; +import android.util.Log; +import android.os.RemoteException; + +import com.google.android.gms.common.api.CommonStatusCodes; +import com.google.android.gms.common.internal.GetServiceRequest; +import com.google.android.gms.common.internal.IGmsCallbacks; + +import org.microg.gms.BaseService; +import org.microg.gms.common.GmsService; +import org.microg.gms.common.PackageUtils; + +import org.microg.gms.appinvite.AppInviteServiceImpl; + +public class AppInviteService extends BaseService { + private static final String TAG = "GmsAppInviteService"; + + public AppInviteService() { + super("GmsAppInviteSvc", GmsService.APP_INVITE); + } + + @Override + public void handleServiceRequest(IGmsCallbacks callback, GetServiceRequest request, GmsService service) throws RemoteException { + PackageUtils.getAndCheckCallingPackage(this, request.packageName); + Log.d(TAG, "callb: " + callback + " ; req: " + request + " ; serv: " + service); + + callback.onPostInitComplete(0, new AppInviteServiceImpl(this, request.packageName, request.extras), null); + } +} diff --git a/play-services-core/src/main/java/org/microg/gms/appinvite/AppInviteServiceImpl.java b/play-services-core/src/main/java/org/microg/gms/appinvite/AppInviteServiceImpl.java new file mode 100644 index 00000000..e3bfe6d3 --- /dev/null +++ b/play-services-core/src/main/java/org/microg/gms/appinvite/AppInviteServiceImpl.java @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2019 e Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES 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.appinvite; + +import android.os.Parcel; +import android.os.RemoteException; +import android.os.Bundle; +import android.app.Activity; +import android.util.Log; +import android.content.Context; +import android.content.Intent; + +import com.google.android.gms.common.api.Status; + +import com.google.android.gms.dynamic.IObjectWrapper; +import com.google.android.gms.dynamic.ObjectWrapper; + +import com.google.android.gms.appinvite.internal.IAppInviteService; +import com.google.android.gms.appinvite.internal.IAppInviteCallbacks; + + +public class AppInviteServiceImpl extends IAppInviteService.Stub { + private static final String TAG = "GmsAppInviteServImpl"; + + public AppInviteServiceImpl(Context context, String packageName, Bundle extras) { + } + + + @Override + public void updateInvitationOnInstall(IAppInviteCallbacks callback, String invitationId) throws RemoteException { + callback.onStatus(Status.SUCCESS); + } + + @Override + public void convertInvitation(IAppInviteCallbacks callback, String invitationId) throws RemoteException { + callback.onStatus(Status.SUCCESS); + } + + @Override + public void getInvitation(IAppInviteCallbacks callback) throws RemoteException { + callback.onStatusIntent(new Status(Activity.RESULT_CANCELED), null); + } + + + @Override + public boolean onTransact(int code, Parcel data, Parcel reply, int flags) throws RemoteException { + if (super.onTransact(code, data, reply, flags)) { + return true; + } + + Log.d(TAG, "onTransact [unknown]: " + code + ", " + data + ", " + flags); + return false; + } +} diff --git a/play-services-core/src/main/java/org/microg/gms/firebase/dynamiclinks/DynamicLinksService.java b/play-services-core/src/main/java/org/microg/gms/firebase/dynamiclinks/DynamicLinksService.java new file mode 100644 index 00000000..064d7ead --- /dev/null +++ b/play-services-core/src/main/java/org/microg/gms/firebase/dynamiclinks/DynamicLinksService.java @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2019 e Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES 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.firebase.dynamiclinks; + +import android.app.Service; +import android.content.Intent; +import android.os.IBinder; +import android.util.Log; +import android.os.RemoteException; + +import com.google.android.gms.common.api.CommonStatusCodes; +import com.google.android.gms.common.internal.GetServiceRequest; +import com.google.android.gms.common.internal.IGmsCallbacks; + +import org.microg.gms.BaseService; +import org.microg.gms.common.GmsService; +import org.microg.gms.common.PackageUtils; + +import org.microg.gms.firebase.dynamiclinks.DynamicLinksServiceImpl; + +public class DynamicLinksService extends BaseService { + private static final String TAG = "GmsDynamicLinksService"; + + public DynamicLinksService() { + super("GmsDynamicLinksSvc", GmsService.DYNAMIC_LINKS); + } + + @Override + public void handleServiceRequest(IGmsCallbacks callback, GetServiceRequest request, GmsService service) throws RemoteException { + PackageUtils.getAndCheckCallingPackage(this, request.packageName); + Log.d(TAG, "callb: " + callback + " ; req: " + request + " ; serv: " + service); + + callback.onPostInitComplete(0, new DynamicLinksServiceImpl(this, request.packageName, request.extras), null); + } +} diff --git a/play-services-core/src/main/java/org/microg/gms/firebase/dynamiclinks/DynamicLinksServiceImpl.java b/play-services-core/src/main/java/org/microg/gms/firebase/dynamiclinks/DynamicLinksServiceImpl.java new file mode 100644 index 00000000..a9f970b5 --- /dev/null +++ b/play-services-core/src/main/java/org/microg/gms/firebase/dynamiclinks/DynamicLinksServiceImpl.java @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2019 e Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES 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.firebase.dynamiclinks; + +import android.os.Parcel; +import android.os.RemoteException; +import android.os.Bundle; +import android.util.Log; +import android.content.Context; +import android.content.Intent; + +import com.google.android.gms.common.api.Status; +import com.google.android.gms.common.api.CommonStatusCodes; + +import com.google.firebase.dynamiclinks.internal.IDynamicLinksService; +import com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks; +import com.google.firebase.dynamiclinks.internal.DynamicLinkData; +import com.google.firebase.dynamiclinks.internal.ShortDynamicLink; + + +public class DynamicLinksServiceImpl extends IDynamicLinksService.Stub { + private static final String TAG = "GmsDynamicLinksServImpl"; + + public DynamicLinksServiceImpl(Context context, String packageName, Bundle extras) { + } + + + @Override + public void getInitialLink(IDynamicLinksCallbacks callback, String var2) throws RemoteException { + callback.onStatusDynamicLinkData(Status.SUCCESS, new DynamicLinkData()); + } + + + @Override + public void func2(IDynamicLinksCallbacks callback, Bundle var2) throws RemoteException { + Log.d(TAG, "func2: " + callback + ", " + var2); + callback.onStatusShortDynamicLink(Status.SUCCESS, new ShortDynamicLink()); + } + + + @Override + public boolean onTransact(int code, Parcel data, Parcel reply, int flags) throws RemoteException { + if (super.onTransact(code, data, reply, flags)) { + return true; + } + + Log.d(TAG, "onTransact [unknown]: " + code + ", " + data + ", " + flags); + return false; + } +}