minor refactoring

- extract method to register device at proxy
- rename method
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2022-01-12 20:26:29 +01:00
parent 0880a792a8
commit bd4208f709
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B
2 changed files with 81 additions and 73 deletions

View File

@ -283,8 +283,8 @@ public interface NcApi {
@FormUrlEncoded
@POST
Observable<Void> registerDeviceForNotificationsWithProxy(@Url String url,
@FieldMap Map<String, String> fields);
Observable<Void> registerDeviceForNotificationsWithPushProxy(@Url String url,
@FieldMap Map<String, String> fields);
/*

View File

@ -284,77 +284,7 @@ public class PushUtils {
proxyMap.put("userPublicKey", pushRegistrationOverall.getOcs()
.getData().getPublicKey());
ncApi.registerDeviceForNotificationsWithProxy(
ApiUtils.getUrlPushProxy(), proxyMap)
.subscribeOn(Schedulers.io())
.subscribe(new Observer<Void>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
// unused atm
}
@Override
public void onNext(@NonNull Void aVoid) {
PushConfigurationState pushConfigurationState =
new PushConfigurationState();
pushConfigurationState.setPushToken(token);
pushConfigurationState.setDeviceIdentifier(
pushRegistrationOverall.getOcs()
.getData().getDeviceIdentifier());
pushConfigurationState.setDeviceIdentifierSignature(
pushRegistrationOverall
.getOcs().getData().getSignature());
pushConfigurationState.setUserPublicKey(
pushRegistrationOverall.getOcs()
.getData().getPublicKey());
pushConfigurationState.setUsesRegularPass(false);
try {
userUtils.createOrUpdateUser(null,
null, null,
userEntity.getDisplayName(),
LoganSquare.serialize(pushConfigurationState), null,
null, userEntity.getId(), null, null, null)
.subscribe(new Observer<UserEntity>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
// unused atm
}
@Override
public void onNext(@NonNull UserEntity userEntity) {
eventBus.post(new EventStatus(userEntity.getId(), EventStatus.EventType.PUSH_REGISTRATION, true));
}
@Override
public void onError(@NonNull Throwable e) {
eventBus.post(new EventStatus
(userEntity.getId(),
EventStatus.EventType
.PUSH_REGISTRATION, false));
}
@Override
public void onComplete() {
// unused atm
}
});
} catch (IOException e) {
Log.e(TAG, "IOException while updating user", e);
}
}
@Override
public void onError(@NonNull Throwable e) {
eventBus.post(new EventStatus(userEntity.getId(),
EventStatus.EventType.PUSH_REGISTRATION, false));
}
@Override
public void onComplete() {
// unused atm
}
});
registerDeviceWithPushProxy(pushRegistrationOverall, proxyMap, token, userEntity);
}
@Override
@ -375,6 +305,84 @@ public class PushUtils {
}
}
private void registerDeviceWithPushProxy(
@androidx.annotation.NonNull PushRegistrationOverall pushRegistrationOverall,
Map<String, String> proxyMap,
String token,
UserEntity userEntity) {
ncApi.registerDeviceForNotificationsWithPushProxy(
ApiUtils.getUrlPushProxy(), proxyMap)
.subscribeOn(Schedulers.io())
.subscribe(new Observer<Void>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
// unused atm
}
@Override
public void onNext(@NonNull Void aVoid) {
PushConfigurationState pushConfigurationState =
new PushConfigurationState();
pushConfigurationState.setPushToken(token);
pushConfigurationState.setDeviceIdentifier(
pushRegistrationOverall.getOcs()
.getData().getDeviceIdentifier());
pushConfigurationState.setDeviceIdentifierSignature(
pushRegistrationOverall
.getOcs().getData().getSignature());
pushConfigurationState.setUserPublicKey(
pushRegistrationOverall.getOcs()
.getData().getPublicKey());
pushConfigurationState.setUsesRegularPass(false);
try {
userUtils.createOrUpdateUser(null,
null, null,
userEntity.getDisplayName(),
LoganSquare.serialize(pushConfigurationState), null,
null, userEntity.getId(), null, null, null)
.subscribe(new Observer<UserEntity>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
// unused atm
}
@Override
public void onNext(@NonNull UserEntity userEntity) {
eventBus.post(new EventStatus(userEntity.getId(), EventStatus.EventType.PUSH_REGISTRATION, true));
}
@Override
public void onError(@NonNull Throwable e) {
eventBus.post(new EventStatus
(userEntity.getId(),
EventStatus.EventType
.PUSH_REGISTRATION, false));
}
@Override
public void onComplete() {
// unused atm
}
});
} catch (IOException e) {
Log.e(TAG, "IOException while updating user", e);
}
}
@Override
public void onError(@NonNull Throwable e) {
eventBus.post(new EventStatus(userEntity.getId(),
EventStatus.EventType.PUSH_REGISTRATION, false));
}
@Override
public void onComplete() {
// unused atm
}
});
}
private Key readKeyFromString(boolean readPublicKey, String keyString) {
if (readPublicKey) {
keyString = keyString.replaceAll("\\n", "").replace("-----BEGIN PUBLIC KEY-----",