fedilab-Android-App/app/src/main/java/app/fedilab/android/helper/PushNotifications.java

68 lines
2.3 KiB
Java

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<Account> accountPush = new AccountDAO(context, db).getPushNotificationAccounts();
for (Account account : accountPush) {
new PostSubscriptionAsyncTask(context, account, endpoint, this);
}
}
public static void getDistributors(Context context) {
List<String> 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<Account> accountPush = new AccountDAO(context, db).getPushNotificationAccounts();
List<byte[]> 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
}
}