diff --git a/play-services-core/src/main/AndroidManifest.xml b/play-services-core/src/main/AndroidManifest.xml index 6f593efdf8..8e4affa4f4 100644 --- a/play-services-core/src/main/AndroidManifest.xml +++ b/play-services-core/src/main/AndroidManifest.xml @@ -368,7 +368,7 @@ android:exported="false" android:process=":persistent"> - + diff --git a/play-services-core/src/main/java/org/microg/gms/gcm/McsService.java b/play-services-core/src/main/java/org/microg/gms/gcm/McsService.java index 5c298ae418..7bce08dbd3 100644 --- a/play-services-core/src/main/java/org/microg/gms/gcm/McsService.java +++ b/play-services-core/src/main/java/org/microg/gms/gcm/McsService.java @@ -81,8 +81,8 @@ import static android.app.AlarmManager.ELAPSED_REALTIME_WAKEUP; import static android.os.Build.VERSION.SDK_INT; import static org.microg.gms.common.PackageUtils.warnIfNotPersistentProcess; +import static org.microg.gms.gcm.ExtensionsKt.ACTION_GCM_CONNECTED; import static org.microg.gms.gcm.GcmConstants.*; -import static org.microg.gms.gcm.ExtensionsKt.ACTION_GCM_REGISTERED; import static org.microg.gms.gcm.McsConstants.*; @ForegroundServiceInfo(value = "Cloud messaging", resName = "service_name_mcs", resPackage = "com.google.android.gms") @@ -497,15 +497,15 @@ private void handleLoginResponse(LoginResponse loginResponse) { if (loginResponse.error == null) { GcmPrefs.clearLastPersistedId(this); logd(this, "Logged in"); - notifyGcmRegistered(); + notifyGcmConnected(); wakeLock.release(); } else { throw new RuntimeException("Could not login: " + loginResponse.error); } } - private void notifyGcmRegistered() { - Intent intent = new Intent(ACTION_GCM_REGISTERED); + private void notifyGcmConnected() { + Intent intent = new Intent(ACTION_GCM_CONNECTED); intent.setPackage(Constants.GMS_PACKAGE_NAME); sendBroadcast(intent); } diff --git a/play-services-core/src/main/kotlin/org/microg/gms/gcm/GcmInGmsService.kt b/play-services-core/src/main/kotlin/org/microg/gms/gcm/GcmInGmsService.kt index 8304c24463..36b0c36994 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/gcm/GcmInGmsService.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/gcm/GcmInGmsService.kt @@ -155,7 +155,8 @@ class GcmInGmsService : LifecycleService() { Log.d(TAG, "start handle gcm message") intent.extras?.let { notifyVerificationInfo(it) } } - ACTION_GCM_REGISTERED -> { + ACTION_GCM_REGISTER_ALL_ACCOUNTS, + ACTION_GCM_CONNECTED -> { updateLocalAccountGroups() } ACTION_GCM_REGISTER_ACCOUNT -> { @@ -370,6 +371,10 @@ class GcmInGmsService : LifecycleService() { completeRegisterRequest(context, gcmDatabase, request).getString(GcmConstants.EXTRA_REGISTRATION_ID) } Log.d(TAG, "GCM IN GMS regId: $regId") + if (regId == null) { + Log.w(TAG, "registerGcmInGms reg id is null") + return + } val sharedPreferencesEditor = sp?.edit() sharedPreferencesEditor?.putLong(KEY_GCM_ANDROID_ID, LastCheckinInfo.read(context).androidId) sharedPreferencesEditor?.putString(KEY_GCM_REG_ID, regId) @@ -510,4 +515,4 @@ class GcmRegistrationReceiver : WakefulBroadcastReceiver() { } ForegroundServiceContext(context).startService(callIntent) } -} \ No newline at end of file +} diff --git a/play-services-core/src/main/kotlin/org/microg/gms/gcm/extensions.kt b/play-services-core/src/main/kotlin/org/microg/gms/gcm/extensions.kt index 428a9bdd7a..8491604554 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/gcm/extensions.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/gcm/extensions.kt @@ -12,8 +12,9 @@ import okhttp3.OkHttpClient import okhttp3.Response const val ACTION_GCM_RECONNECT = "org.microg.gms.gcm.RECONNECT" -const val ACTION_GCM_REGISTERED = "org.microg.gms.gcm.REGISTERED" +const val ACTION_GCM_CONNECTED = "org.microg.gms.gcm.CONNECTED" const val ACTION_GCM_REGISTER_ACCOUNT = "org.microg.gms.gcm.REGISTER_ACCOUNT" +const val ACTION_GCM_REGISTER_ALL_ACCOUNTS = "org.microg.gms.gcm.REGISTER_ALL_ACCOUNTS" const val ACTION_GCM_NOTIFY_COMPLETE = "org.microg.gms.gcm.NOTIFY_COMPLETE" const val KEY_GCM_REGISTER_ACCOUNT_NAME = "register_account_name" const val EXTRA_NOTIFICATION_ACCOUNT = "notification_account" @@ -44,4 +45,4 @@ inline fun createGrpcClient( .minMessageToCompress(minMessageToCompress) .build() return grpcClient.create(S::class) -} \ No newline at end of file +} diff --git a/play-services-core/src/main/kotlin/org/microg/gms/ui/AccountsFragment.kt b/play-services-core/src/main/kotlin/org/microg/gms/ui/AccountsFragment.kt index 4102e2c1c7..2be044bd99 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/ui/AccountsFragment.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/ui/AccountsFragment.kt @@ -26,7 +26,8 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import org.microg.gms.auth.AuthConstants import org.microg.gms.common.Constants -import org.microg.gms.gcm.ACTION_GCM_REGISTERED +import org.microg.gms.gcm.ACTION_GCM_CONNECTED +import org.microg.gms.gcm.ACTION_GCM_REGISTER_ALL_ACCOUNTS import org.microg.gms.people.DatabaseHelper import org.microg.gms.people.PeopleManager import org.microg.gms.settings.SettingsContract @@ -65,7 +66,7 @@ class AccountsFragment : PreferenceFragmentCompat() { }).also { it.isCircular = true } else null private fun registerGcmInGms() { - Intent(ACTION_GCM_REGISTERED).apply { + Intent(ACTION_GCM_REGISTER_ALL_ACCOUNTS).apply { `package` = Constants.GMS_PACKAGE_NAME }.let { requireContext().sendBroadcast(it) } }