fedilab-Android-App/app/src/playstore/java/app/fedilab/android/helper/PushHelper.java

52 lines
1.9 KiB
Java
Raw Normal View History

2021-03-01 12:15:30 +01:00
package app.fedilab.android.helper;
import android.app.Activity;
2021-03-01 18:19:08 +01:00
import android.content.BroadcastReceiver;
2021-03-01 12:15:30 +01:00
import android.content.Context;
2021-03-01 18:19:08 +01:00
import android.content.Intent;
import android.content.IntentFilter;
2021-03-01 12:15:30 +01:00
import android.database.sqlite.SQLiteDatabase;
2021-03-01 18:19:08 +01:00
import android.util.Log;
2021-03-01 12:15:30 +01:00
2021-03-01 18:19:08 +01:00
import org.unifiedpush.android.connector_fcm_added.RegistrationFCM;
2021-03-01 12:15:30 +01:00
import java.util.List;
import app.fedilab.android.client.Entities.Account;
import app.fedilab.android.jobs.ApplicationJob;
import app.fedilab.android.jobs.NotificationsSyncJob;
import app.fedilab.android.sqlite.AccountDAO;
import app.fedilab.android.sqlite.Sqlite;
import static app.fedilab.android.helper.BaseHelper.NOTIF_NONE;
import static app.fedilab.android.helper.BaseHelper.NOTIF_PUSH;
import static app.fedilab.android.helper.BaseHelper.liveNotifType;
2021-03-01 18:19:08 +01:00
2021-03-01 12:15:30 +01:00
public class PushHelper {
2021-03-01 18:19:08 +01:00
2021-03-01 12:15:30 +01:00
public static void startStreaming(Context context) {
int liveNotifications = liveNotifType(context);
ApplicationJob.cancelAllJob(NotificationsSyncJob.NOTIFICATION_REFRESH);
NotificationsSyncJob.schedule(false);
switch (liveNotifications) {
case NOTIF_PUSH:
new Thread(() -> {
SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
List<Account> accounts = new AccountDAO(context, db).getPushNotificationAccounts();
((Activity) context).runOnUiThread(() -> {
2021-03-01 18:19:08 +01:00
RegistrationFCM registration = new RegistrationFCM();
2021-03-01 12:15:30 +01:00
for (Account account : accounts) {
2021-03-01 18:19:08 +01:00
registration.registerAppWithDialog(context, account.getUsername() + "@" + account.getInstance());
2021-03-01 12:15:30 +01:00
}
});
}).start();
break;
case NOTIF_NONE:
2021-03-01 18:19:08 +01:00
new RegistrationFCM().unregisterApp(context);
2021-03-01 12:15:30 +01:00
break;
}
}
}