diff --git a/play-services-core/src/main/AndroidManifest.xml b/play-services-core/src/main/AndroidManifest.xml index a17d7f03ef..e0dd96b9b6 100644 --- a/play-services-core/src/main/AndroidManifest.xml +++ b/play-services-core/src/main/AndroidManifest.xml @@ -469,7 +469,11 @@ + android:configChanges="screenSize|orientation|keyboardHidden" + android:excludeFromRecents="true" + android:exported="true" + android:noHistory="true" + android:theme="@style/Theme.App.Translucent"> diff --git a/play-services-core/src/main/kotlin/com/google/android/gms/wearable/consent/TermsOfServiceActivity.kt b/play-services-core/src/main/kotlin/com/google/android/gms/wearable/consent/TermsOfServiceActivity.kt index 83246ba405..8cf9d52613 100644 --- a/play-services-core/src/main/kotlin/com/google/android/gms/wearable/consent/TermsOfServiceActivity.kt +++ b/play-services-core/src/main/kotlin/com/google/android/gms/wearable/consent/TermsOfServiceActivity.kt @@ -5,6 +5,7 @@ package com.google.android.gms.wearable.consent +import android.content.Intent import android.os.Bundle import androidx.appcompat.app.AppCompatActivity @@ -12,7 +13,7 @@ class TermsOfServiceActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setResult(RESULT_CANCELED) + setResult(RESULT_OK, Intent()) finish() } -} \ No newline at end of file +} diff --git a/play-services-wearable/core/src/main/java/org/microg/gms/wearable/WearableServiceImpl.java b/play-services-wearable/core/src/main/java/org/microg/gms/wearable/WearableServiceImpl.java index 1fb2c589eb..891fea474a 100644 --- a/play-services-wearable/core/src/main/java/org/microg/gms/wearable/WearableServiceImpl.java +++ b/play-services-wearable/core/src/main/java/org/microg/gms/wearable/WearableServiceImpl.java @@ -37,6 +37,8 @@ public class WearableServiceImpl extends IWearableService.Stub { private static final String TAG = "GmsWearSvcImpl"; + private static final String PREFS_NAME = "wearable"; + private static final String PREF_CLOUD_SYNC_ENABLED = "cloud_sync_enabled"; private final Context context; private final String packageName; @@ -228,28 +230,30 @@ public void getFdForAsset(IWearableCallbacks callbacks, final Asset asset) throw @Override public void optInCloudSync(IWearableCallbacks callbacks, boolean enable) throws RemoteException { + setCloudSyncEnabled(enable); callbacks.onStatus(Status.SUCCESS); } @Override @Deprecated public void getCloudSyncOptInDone(IWearableCallbacks callbacks) throws RemoteException { - Log.d(TAG, "unimplemented Method: getCloudSyncOptInDone"); + callbacks.onGetCloudSyncOptInOutDoneResponse(new GetCloudSyncOptInOutDoneResponse()); } @Override public void setCloudSyncSetting(IWearableCallbacks callbacks, boolean enable) throws RemoteException { - Log.d(TAG, "unimplemented Method: setCloudSyncSetting"); + setCloudSyncEnabled(enable); + callbacks.onStatus(Status.SUCCESS); } @Override public void getCloudSyncSetting(IWearableCallbacks callbacks) throws RemoteException { - callbacks.onGetCloudSyncSettingResponse(new GetCloudSyncSettingResponse(0, false)); + callbacks.onGetCloudSyncSettingResponse(new GetCloudSyncSettingResponse(0, getCloudSyncEnabled())); } @Override public void getCloudSyncOptInStatus(IWearableCallbacks callbacks) throws RemoteException { - Log.d(TAG, "unimplemented Method: getCloudSyncOptInStatus"); + callbacks.onGetCloudSyncOptInStatusResponse(new GetCloudSyncOptInStatusResponse()); } @Override @@ -476,6 +480,14 @@ public boolean onTransact(int code, Parcel data, Parcel reply, int flags) throws return false; } + private boolean getCloudSyncEnabled() { + return context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE).getBoolean(PREF_CLOUD_SYNC_ENABLED, false); + } + + private void setCloudSyncEnabled(boolean enabled) { + context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE).edit().putBoolean(PREF_CLOUD_SYNC_ENABLED, enabled).apply(); + } + public abstract class CallbackRunnable implements Runnable { private IWearableCallbacks callbacks;