Skip to content

Commit 45b4618

Browse files
authored
Merge branch 'master' into passkey_scan_code
2 parents c8c03a2 + de94027 commit 45b4618

File tree

4 files changed

+68
-1
lines changed

4 files changed

+68
-1
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2026 microG Project Team
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package com.google.android.gms.common.internal.service;
7+
8+
interface ICommonCallbacks {
9+
void onClearDefaultAccountResult(int statusCode);
10+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2026 microG Project Team
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package com.google.android.gms.common.internal.service;
7+
8+
import com.google.android.gms.common.internal.service.ICommonCallbacks;
9+
10+
interface ICommonService {
11+
void clearDefaultAccount(in ICommonCallbacks callbacks) = 0;
12+
}

play-services-core/src/main/AndroidManifest.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1164,6 +1164,12 @@
11641164
</intent-filter>
11651165
</service>
11661166

1167+
<service android:name="org.microg.gms.common.GmsCommonService">
1168+
<intent-filter>
1169+
<action android:name="com.google.android.gms.common.service.START" />
1170+
</intent-filter>
1171+
</service>
1172+
11671173
<activity
11681174
android:name="org.microg.gms.mlkit.BarcodeScanningActivity"
11691175
android:exported="true"
@@ -1216,7 +1222,6 @@
12161222
<action android:name="com.google.android.gms.cast.remote_display.service.START" />
12171223
<action android:name="com.google.android.gms.chromesync.service.START" />
12181224
<action android:name="com.google.android.gms.common.download.START" />
1219-
<action android:name="com.google.android.gms.common.service.START" />
12201225
<action android:name="com.google.android.gms.config.START" />
12211226
<action android:name="com.google.android.gms.constellation.service.START" />
12221227
<action android:name="com.google.android.gms.deviceconnection.service.START" />
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2026 microG Project Team
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package org.microg.gms.common
7+
8+
import android.content.Context
9+
import android.util.Log
10+
import androidx.lifecycle.Lifecycle
11+
import androidx.lifecycle.LifecycleOwner
12+
import androidx.lifecycle.lifecycleScope
13+
import com.google.android.gms.common.ConnectionResult
14+
import com.google.android.gms.common.internal.GetServiceRequest
15+
import com.google.android.gms.common.internal.IGmsCallbacks
16+
import com.google.android.gms.common.internal.service.ICommonCallbacks
17+
import com.google.android.gms.common.internal.service.ICommonService
18+
import org.microg.gms.BaseService
19+
import org.microg.gms.auth.signin.SignInConfigurationService
20+
21+
private const val TAG = "GmsCommonService"
22+
23+
class GmsCommonService : BaseService(TAG, GmsService.COMMON) {
24+
override fun handleServiceRequest(callback: IGmsCallbacks?, request: GetServiceRequest, service: GmsService?) {
25+
val packageName = PackageUtils.getAndCheckCallingPackage(this, request.packageName) ?: throw IllegalArgumentException("Missing package name")
26+
Log.d(TAG, "handleServiceRequest: start: $packageName")
27+
callback?.onPostInitComplete(ConnectionResult.SUCCESS, GmsCommonServiceImpl(this, packageName, lifecycle).asBinder(), null)
28+
}
29+
}
30+
31+
class GmsCommonServiceImpl(val context: Context, val packageName: String, override val lifecycle: Lifecycle) : ICommonService.Stub(), LifecycleOwner {
32+
override fun clearDefaultAccount(callbacks: ICommonCallbacks?) {
33+
Log.d(TAG, "clearDefaultAccount: packageName: $packageName")
34+
lifecycleScope.launchWhenStarted {
35+
AccountUtils.get(context).removeSelectedAccount(packageName)
36+
SignInConfigurationService.setAuthInfo(context, packageName, null, null)
37+
runCatching { callbacks?.onClearDefaultAccountResult(0) }
38+
}
39+
}
40+
}

0 commit comments

Comments
 (0)