52 lines
1.9 KiB
Java
52 lines
1.9 KiB
Java
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<Account> 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;
|
|
}
|
|
}
|
|
}
|