Commit a15164c3 authored by Leonardo Aramaki's avatar Leonardo Aramaki

Independently of a new registration token being generated or not just send the...

Independently of a new registration token being generated or not just send the current if available at every connect
parent b5db7b51
...@@ -13,6 +13,7 @@ import chat.rocket.android.R; ...@@ -13,6 +13,7 @@ import chat.rocket.android.R;
import chat.rocket.android.RocketChatCache; import chat.rocket.android.RocketChatCache;
import chat.rocket.android.api.RaixPushHelper; import chat.rocket.android.api.RaixPushHelper;
import chat.rocket.android.helper.LogIfError; import chat.rocket.android.helper.LogIfError;
import chat.rocket.android.push.gcm.GcmPushHelper;
import chat.rocket.core.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.persistence.realm.models.ddp.RealmUser; import chat.rocket.persistence.realm.models.ddp.RealmUser;
...@@ -24,6 +25,7 @@ import io.realm.RealmResults; ...@@ -24,6 +25,7 @@ import io.realm.RealmResults;
* call raix:push-update if needed. * call raix:push-update if needed.
*/ */
public class GcmPushRegistrationObserver extends AbstractModelObserver<GcmPushRegistration> { public class GcmPushRegistrationObserver extends AbstractModelObserver<GcmPushRegistration> {
public GcmPushRegistrationObserver(Context context, String hostname, public GcmPushRegistrationObserver(Context context, String hostname,
RealmHelper realmHelper) { RealmHelper realmHelper) {
super(context, hostname, realmHelper); super(context, hostname, realmHelper);
...@@ -39,11 +41,19 @@ public class GcmPushRegistrationObserver extends AbstractModelObserver<GcmPushRe ...@@ -39,11 +41,19 @@ public class GcmPushRegistrationObserver extends AbstractModelObserver<GcmPushRe
@Override @Override
public void onUpdateResults(List<GcmPushRegistration> results) { public void onUpdateResults(List<GcmPushRegistration> results) {
if (results.isEmpty()) { String gcmToken = GcmPushHelper.INSTANCE.getGcmToken();
return; if (gcmToken != null && !gcmToken.isEmpty()) {
// We already have gcm token, so try to register it.
try {
tryToRegisterToken();
} catch (Exception e) {
e.printStackTrace();
}
}
} }
realmHelper.executeTransaction(realm -> { private Task<Void> tryToRegisterToken() {
return realmHelper.executeTransaction(realm -> {
GcmPushRegistration.queryDefault(realm).findFirst().setSyncState(SyncState.SYNCING); GcmPushRegistration.queryDefault(realm).findFirst().setSyncState(SyncState.SYNCING);
return null; return null;
}).onSuccessTask(_task -> registerGcmTokenForServer() }).onSuccessTask(_task -> registerGcmTokenForServer()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment