diff --git a/apk-webview/app/src/main/java/ru/ua1zbe/bus127/Bus127App.java b/apk-webview/app/src/main/java/ru/ua1zbe/bus127/Bus127App.java new file mode 100644 index 0000000..9cf740b --- /dev/null +++ b/apk-webview/app/src/main/java/ru/ua1zbe/bus127/Bus127App.java @@ -0,0 +1,60 @@ +package ru.ua1zbe.bus127; + +import android.app.Application; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.util.Log; + +import ru.rustore.sdk.pushclient.RuStorePushClient; +import ru.ua1zbe.bus127.push.PushStore; + +/** + * Инициализация RuStore Push SDK. + * + * project_id и topic берутся из консоли RuStore (Push-уведомления > Проекты). + * Сервисный токен в приложении не хранится — он нужен только серверу + * для вызова https://vkpns.rustore.ru/v1/projects/{project_id}/messages:send + */ +public class Bus127App extends Application { + + public static final String CHANNEL_ID = "bus127_push"; + + @Override + public void onCreate() { + super.onCreate(); + createPushChannel(); + initRuStorePush(); + } + + private void createPushChannel() { + NotificationManager nm = getSystemService(NotificationManager.class); + nm.createNotificationChannel(new NotificationChannel( + CHANNEL_ID, + getString(R.string.push_channel_name), + NotificationManager.IMPORTANCE_HIGH)); + } + + private void initRuStorePush() { + try { + RuStorePushClient.INSTANCE.init(this, RUSTORE_PROJECT_ID); + RuStorePushClient.INSTANCE.getToken() + .addOnSuccessListener(token -> { + Log.i(TAG, "push token: " + token); + PushStore.setToken(this, token); + RuStorePushClient.INSTANCE.subscribeToTopic(PUSH_TOPIC) + .addOnSuccessListener(v -> + Log.i(TAG, "subscribed to " + PUSH_TOPIC)) + .addOnFailureListener(e -> + Log.w(TAG, "subscribe to " + PUSH_TOPIC + " failed", e)); + }) + .addOnFailureListener(e -> + Log.w(TAG, "getToken failed", e)); + } catch (Exception e) { + Log.w(TAG, "init failed", e); + } + } + + private static final String TAG = "RuStorePush"; + private static final String RUSTORE_PROJECT_ID = "upSEOtZyXP96tskl4hf-442AqciCUTxs"; + private static final String PUSH_TOPIC = "bus127"; +}