Bump to latest firebase messaging

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
This commit is contained in:
tobiasKaminsky 2020-03-23 07:17:28 +01:00
parent ac6bcb1320
commit 271e163c30
No known key found for this signature in database
GPG key ID: 0E00D4D47D0C5AF7
5 changed files with 45 additions and 78 deletions

View file

@ -1,3 +1,3 @@
dependencies {
implementation "com.google.firebase:firebase-messaging:17.3.0"
implementation "com.google.firebase:firebase-messaging:20.1.3"
}

View file

@ -66,13 +66,6 @@
</intent-filter>
</service>
<service
android:name=".services.firebase.NCFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
<service
android:name="com.evernote.android.job.gcm.PlatformGcmService"
android:enabled="true"

View file

@ -20,14 +20,15 @@
package com.nextcloud.client.di;
import com.owncloud.android.authentication.ModifiedAuthenticatorActivity;
import com.owncloud.android.services.firebase.NCFirebaseInstanceIDService;
import com.owncloud.android.services.firebase.NCFirebaseMessagingService;
import dagger.Module;
import dagger.android.ContributesAndroidInjector;
@Module
abstract class VariantComponentsModule {
@ContributesAndroidInjector abstract NCFirebaseInstanceIDService ncFirebaseInstanceIDService();
@ContributesAndroidInjector
abstract NCFirebaseMessagingService nCFirebaseMessagingService();
@ContributesAndroidInjector
abstract ModifiedAuthenticatorActivity modifiedAuthenticatorActivity();

View file

@ -1,55 +0,0 @@
/**
* Nextcloud Android client application
*
* @author Mario Danic
* Copyright (C) 2017 Mario Danic
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.owncloud.android.services.firebase;
import android.text.TextUtils;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.FirebaseInstanceIdService;
import com.nextcloud.client.account.UserAccountManager;
import com.nextcloud.client.preferences.AppPreferences;
import com.owncloud.android.R;
import com.owncloud.android.utils.PushUtils;
import javax.inject.Inject;
import dagger.android.AndroidInjection;
public class NCFirebaseInstanceIDService extends FirebaseInstanceIdService {
@Inject AppPreferences preferences;
@Inject UserAccountManager accountManager;
@Override
public void onCreate() {
super.onCreate();
AndroidInjection.inject(this);
}
@Override
public void onTokenRefresh() {
//You can implement this method to store the token on your server
if (!TextUtils.isEmpty(getResources().getString(R.string.push_server_url))) {
preferences.setPushToken(FirebaseInstanceId.getInstance().getToken());
PushUtils.pushRegistrationToServer(accountManager, preferences.getPushToken());
}
}
}

View file

@ -19,28 +19,56 @@
*/
package com.owncloud.android.services.firebase;
import android.text.TextUtils;
import com.evernote.android.job.JobRequest;
import com.evernote.android.job.util.support.PersistableBundleCompat;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
import com.nextcloud.client.account.UserAccountManager;
import com.nextcloud.client.preferences.AppPreferences;
import com.owncloud.android.R;
import com.owncloud.android.jobs.NotificationJob;
import com.owncloud.android.utils.PushUtils;
import javax.inject.Inject;
import androidx.annotation.NonNull;
import dagger.android.AndroidInjection;
public class NCFirebaseMessagingService extends FirebaseMessagingService {
@Inject AppPreferences preferences;
@Inject UserAccountManager accountManager;
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (remoteMessage != null && remoteMessage.getData() != null) {
PersistableBundleCompat persistableBundleCompat = new PersistableBundleCompat();
persistableBundleCompat.putString(NotificationJob.KEY_NOTIFICATION_SUBJECT, remoteMessage.getData().get
(NotificationJob.KEY_NOTIFICATION_SUBJECT));
persistableBundleCompat.putString(NotificationJob.KEY_NOTIFICATION_SIGNATURE, remoteMessage.getData().get
(NotificationJob.KEY_NOTIFICATION_SIGNATURE));
new JobRequest.Builder(NotificationJob.TAG)
.addExtras(persistableBundleCompat)
.setUpdateCurrent(false)
.startNow()
.build()
.schedule();
public void onCreate() {
super.onCreate();
AndroidInjection.inject(this);
}
@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
remoteMessage.getData();
PersistableBundleCompat persistableBundleCompat = new PersistableBundleCompat();
persistableBundleCompat.putString(NotificationJob.KEY_NOTIFICATION_SUBJECT, remoteMessage.getData().get
(NotificationJob.KEY_NOTIFICATION_SUBJECT));
persistableBundleCompat.putString(NotificationJob.KEY_NOTIFICATION_SIGNATURE, remoteMessage.getData().get
(NotificationJob.KEY_NOTIFICATION_SIGNATURE));
new JobRequest.Builder(NotificationJob.TAG)
.addExtras(persistableBundleCompat)
.setUpdateCurrent(false)
.startNow()
.build()
.schedule();
}
@Override
public void onNewToken(@NonNull String newToken) {
super.onNewToken(newToken);
if (!TextUtils.isEmpty(getResources().getString(R.string.push_server_url))) {
preferences.setPushToken(newToken);
PushUtils.pushRegistrationToServer(accountManager, preferences.getPushToken());
}
}
}