package app.fedilab.android.helper; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.database.sqlite.SQLiteDatabase; import android.util.Log; import org.unifiedpush.android.connector_fcm_added.RegistrationFCM; 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; public class PushHelper { 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 accounts = new AccountDAO(context, db).getPushNotificationAccounts(); ((Activity) context).runOnUiThread(() -> { RegistrationFCM registration = new RegistrationFCM(); for (Account account : accounts) { registration.registerAppWithDialog(context, account.getUsername() + "@" + account.getInstance()); } }); }).start(); break; case NOTIF_NONE: new RegistrationFCM().unregisterApp(context); break; } } }