-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Expand file tree
/
Copy pathPushUtils.java
More file actions
72 lines (60 loc) · 2.56 KB
/
PushUtils.java
File metadata and controls
72 lines (60 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
* Nextcloud - Android Client
*
* SPDX-FileCopyrightText: 2019 Chris Narkiewicz <hello@ezaquarii.com>
* SPDX-FileCopyrightText: 2017 Mario Danic <mario@lovelyhq.com>
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
*/
package com.owncloud.android.utils;
import android.content.Context;
import android.accounts.Account;
import android.text.TextUtils;
import com.google.gson.Gson;
import com.nextcloud.client.account.UserAccountManager;
import com.nextcloud.client.preferences.AppPreferencesImpl;
import com.owncloud.android.MainApp;
import com.owncloud.android.datamodel.ArbitraryDataProviderImpl;
import com.owncloud.android.datamodel.PushConfigurationState;
import com.owncloud.android.datamodel.SignatureVerification;
import com.nextcloud.unifiedpush.UnifiedPush;
import com.owncloud.android.ui.activity.DrawerActivity;
import java.security.Key;
public final class PushUtils {
public static final String KEY_PUSH = "push";
private PushUtils() {
}
public static void updateRegistrationsWithServer(
final DrawerActivity activity,
final UserAccountManager accountManager,
final String pushToken) {
for (Account account : accountManager.getAccounts()) {
String providerValue = new ArbitraryDataProviderImpl(MainApp.getAppContext()).getValue(account.name, KEY_PUSH);
PushConfigurationState accountPushData = new Gson().fromJson(providerValue, PushConfigurationState.class);
if ((accountPushData != null) && accountPushData.isShouldBeDeleted()) {
// unregister push notifications
UnifiedPush.Companion.unregisterForPushMessaging(MainApp.getAppContext(), account.name);
} else {
// else, (re-)register for push notifications
if (activity != null) {
UnifiedPush.Companion.registerForPushMessaging(
activity,
account.name,
((accountPushData == null) || TextUtils.isEmpty(accountPushData.getPushToken())));
}
}
}
}
public static void reinitKeys(UserAccountManager accountManager) {
AppPreferencesImpl.fromContext(MainApp.getAppContext()).setKeysReInitEnabled();
}
public static Key readKeyFromFile(boolean readPublicKey) {
return null;
}
public static SignatureVerification verifySignature(
final Context context,
final UserAccountManager accountManager,
final byte[] signatureBytes,
final byte[] subjectBytes) {
return null;
}
}