mirror of
https://github.com/nextcloud/android.git
synced 2024-11-22 05:05:31 +03:00
Bump to latest firebase messaging
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
This commit is contained in:
parent
ac6bcb1320
commit
271e163c30
5 changed files with 45 additions and 78 deletions
|
@ -1,3 +1,3 @@
|
|||
dependencies {
|
||||
implementation "com.google.firebase:firebase-messaging:17.3.0"
|
||||
implementation "com.google.firebase:firebase-messaging:20.1.3"
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue