Do real check if mailbox is set up

This commit is contained in:
Torsten Grote
2022-02-10 08:17:43 -03:00
parent 2da8c19d3e
commit e4a7b1731a
3 changed files with 34 additions and 10 deletions

View File

@@ -3,7 +3,9 @@ package org.briarproject.briar.android.mailbox;
import android.os.Bundle;
import android.view.MenuItem;
import android.widget.ProgressBar;
import android.widget.Toast;
import org.briarproject.bramble.api.mailbox.MailboxStatus;
import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
import org.briarproject.briar.R;
@@ -57,6 +59,10 @@ public class MailboxActivity extends BriarActivity {
onQrCodeWrong();
} else if (state instanceof MailboxState.OfflineInSetup) {
onOffline();
} else if (state instanceof MailboxState.IsSetup) {
onIsSetup(((MailboxState.IsSetup) state).mailboxStatus);
} else {
throw new AssertionError("Unknown state: " + state);
}
});
}
@@ -107,4 +113,9 @@ public class MailboxActivity extends BriarActivity {
OfflineFragment.TAG);
}
private void onIsSetup(MailboxStatus mailboxStatus) {
// TODO
Toast.makeText(this, "NOT IMPLEMENTED", Toast.LENGTH_LONG).show();
}
}

View File

@@ -1,6 +1,7 @@
package org.briarproject.briar.android.mailbox;
import org.briarproject.bramble.api.mailbox.MailboxProperties;
import org.briarproject.bramble.api.mailbox.MailboxStatus;
class MailboxState {
@@ -21,6 +22,12 @@ class MailboxState {
}
}
// TODO add other states
static class IsSetup extends MailboxState {
final MailboxStatus mailboxStatus;
IsSetup(MailboxStatus mailboxStatus) {
this.mailboxStatus = mailboxStatus;
}
}
}

View File

@@ -12,6 +12,8 @@ import org.briarproject.bramble.api.lifecycle.IoExecutor;
import org.briarproject.bramble.api.lifecycle.LifecycleManager;
import org.briarproject.bramble.api.mailbox.MailboxAuthToken;
import org.briarproject.bramble.api.mailbox.MailboxProperties;
import org.briarproject.bramble.api.mailbox.MailboxSettingsManager;
import org.briarproject.bramble.api.mailbox.MailboxStatus;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.plugin.Plugin;
import org.briarproject.bramble.api.plugin.PluginManager;
@@ -51,6 +53,7 @@ class MailboxViewModel extends DbViewModel
private final CryptoComponent crypto;
private final QrCodeDecoder qrCodeDecoder;
private final PluginManager pluginManager;
private final MailboxSettingsManager mailboxSettingsManager;
private final MutableLiveData<MailboxState> state = new MutableLiveData<>();
@@ -63,25 +66,28 @@ class MailboxViewModel extends DbViewModel
AndroidExecutor androidExecutor,
@IoExecutor Executor ioExecutor,
CryptoComponent crypto,
PluginManager pluginManager) {
PluginManager pluginManager,
MailboxSettingsManager mailboxSettingsManager) {
super(app, dbExecutor, lifecycleManager, db, androidExecutor);
this.crypto = crypto;
this.pluginManager = pluginManager;
this.mailboxSettingsManager = mailboxSettingsManager;
qrCodeDecoder = new QrCodeDecoder(androidExecutor, ioExecutor, this);
checkIfSetup();
}
@UiThread
private void checkIfSetup() {
runOnDbThread(() -> {
// TODO really check if mailbox is setup/paired/linked
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
runOnDbThread(true, txn -> {
MailboxProperties props =
mailboxSettingsManager.getOwnMailboxProperties(txn);
if (props == null) state.postValue(new NotSetup());
else {
MailboxStatus mailboxStatus =
mailboxSettingsManager.getOwnMailboxStatus(txn);
state.postValue(new MailboxState.IsSetup(mailboxStatus));
}
state.postValue(new NotSetup());
});
}, this::handleException);
}
@Override