package app.fedilab.android.helper; import android.content.Context; import android.content.SharedPreferences; import android.database.sqlite.SQLiteDatabase; import android.util.Base64; import android.util.Log; import org.unifiedpush.android.connector.Registration; import java.util.ArrayList; import java.util.List; import java.util.Random; import app.fedilab.android.activities.BaseMainActivity; import app.fedilab.android.asynctasks.PostSubscriptionAsyncTask; import app.fedilab.android.client.APIResponse; import app.fedilab.android.client.Entities.Account; import app.fedilab.android.interfaces.OnPostSubscription; import app.fedilab.android.sqlite.AccountDAO; import app.fedilab.android.sqlite.Sqlite; import static android.content.Context.MODE_PRIVATE; public class PushNotifications implements OnPostSubscription { private Context context; public void registerPushNotifications(Context context, String endpoint) { this.context = context; SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List accountPush = new AccountDAO(context, db).getPushNotificationAccounts(); for (Account account : accountPush) { new PostSubscriptionAsyncTask(context, account, endpoint, this); } } public static void getDistributors(Context context) { List distributors = new Registration().getDistributors(context); if (distributors.isEmpty()) { } else { } } public void displayNotification(Context context, String ciphered) { ECDH ecdh = new ECDH(); SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List accountPush = new AccountDAO(context, db).getPushNotificationAccounts(); List trousseau = new ArrayList<>(); for (Account account : accountPush) { byte[] secret = ecdh.getSecret(context, account); } //process with the event // https://openacs.org/webpush-demo/report.html // decrypt using AES 128 GCM } @Override public void onSubscription(APIResponse apiResponse) { //TODO je ne sais pas si c'est toujours utile } }