Skip to content
Snippets Groups Projects
Verified Commit 4112257c authored by Julian Dehm's avatar Julian Dehm
Browse files

mockup ui for pairing

parent af5173ac
No related branches found
No related tags found
No related merge requests found
......@@ -40,6 +40,7 @@ import org.briarproject.briar.android.login.PasswordActivity;
import org.briarproject.briar.android.login.PasswordFragment;
import org.briarproject.briar.android.login.SetupActivity;
import org.briarproject.briar.android.login.UnlockActivity;
import org.briarproject.briar.android.mailbox.MailboxFragment;
import org.briarproject.briar.android.navdrawer.NavDrawerActivity;
import org.briarproject.briar.android.panic.PanicPreferencesActivity;
import org.briarproject.briar.android.panic.PanicResponderActivity;
......@@ -217,4 +218,6 @@ public interface ActivityComponent {
void inject(ScreenFilterDialogFragment fragment);
void inject(ContactExchangeErrorFragment fragment);
void inject(MailboxFragment mailboxFragment);
}
package org.briarproject.briar.android.mailbox;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import org.briarproject.bramble.api.contact.ContactManager;
import org.briarproject.bramble.api.contact.PrivateMailbox;
import org.briarproject.bramble.api.contact.event.ContactRemovedEvent;
import org.briarproject.bramble.api.contact.event.ContactStatusChangedEvent;
import org.briarproject.bramble.api.db.DbException;
import org.briarproject.bramble.api.event.Event;
import org.briarproject.bramble.api.event.EventBus;
import org.briarproject.bramble.api.event.EventListener;
import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
import org.briarproject.bramble.api.plugin.ConnectionRegistry;
import org.briarproject.bramble.api.plugin.event.ContactConnectedEvent;
import org.briarproject.bramble.api.plugin.event.ContactDisconnectedEvent;
import org.briarproject.briar.R;
import org.briarproject.briar.android.activity.ActivityComponent;
import org.briarproject.briar.android.fragment.BaseFragment;
import org.briarproject.briar.android.keyagreement.MailboxExchangeActivity;
import java.util.logging.Logger;
import javax.annotation.Nullable;
import javax.inject.Inject;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static java.util.logging.Level.WARNING;
import static org.briarproject.bramble.util.LogUtils.logException;
@MethodsNotNullByDefault
@ParametersNotNullByDefault
public class MailboxFragment extends BaseFragment implements EventListener {
public static final String TAG = MailboxFragment.class.getName();
private static final Logger LOG = Logger.getLogger(TAG);
@Inject
ContactManager contactManager;
@Inject
ConnectionRegistry connectionRegistry;
@Inject
EventBus eventBus;
private TextView mailboxStatus;
private Button deleteMailbox;
public static MailboxFragment newInstance() {
Bundle args = new Bundle();
MailboxFragment fragment = new MailboxFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public String getUniqueTag() {
return TAG;
}
@Override
public void injectFragment(ActivityComponent component) {
component.inject(this);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
getActivity().setTitle(R.string.mailbox);
View contentView =
inflater.inflate(R.layout.fragment_mailbox, container, false);
mailboxStatus = contentView.findViewById(R.id.mailboxStatus);
deleteMailbox = contentView.findViewById(R.id.deleteButton);
return contentView;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.contact_list_actions, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_add_contact:
Intent intent =
new Intent(getContext(), MailboxExchangeActivity.class);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public void onStart() {
super.onStart();
eventBus.addListener(this);
loadPrivateMailbox();
}
@Override
public void onStop() {
super.onStop();
eventBus.removeListener(this);
}
private void loadPrivateMailbox() {
listener.runOnDbThread(() -> {
try {
PrivateMailbox privateMailbox =
contactManager.getPrivateMailbox();
runOnUiThreadUnlessDestroyed(() -> {
if (privateMailbox == null) {
mailboxStatus.setText(R.string.mailbox_unpaired);
deleteMailbox.setVisibility(GONE);
} else {
deleteMailbox.setVisibility(VISIBLE);
boolean connected =
connectionRegistry
.isConnected(privateMailbox.getId());
if (connected)
mailboxStatus.setText(R.string.mailbox_connected);
else
mailboxStatus
.setText(R.string.mailbox_disconnected);
}
});
} catch (DbException e) {
logException(LOG, WARNING, e);
}
});
}
@Override
public void eventOccurred(Event e) {
if (e instanceof ContactStatusChangedEvent) {
ContactStatusChangedEvent c = (ContactStatusChangedEvent) e;
if (c.isActive()) {
LOG.info("Contact activated, reloading");
} else {
LOG.info("Contact deactivated, removing item");
}
} else if (e instanceof ContactConnectedEvent) {
} else if (e instanceof ContactDisconnectedEvent) {
} else if (e instanceof ContactRemovedEvent) {
LOG.info("Contact removed, removing item");
}
}
}
......@@ -39,6 +39,7 @@ import org.briarproject.briar.android.forum.ForumListFragment;
import org.briarproject.briar.android.fragment.BaseFragment;
import org.briarproject.briar.android.fragment.BaseFragment.BaseFragmentListener;
import org.briarproject.briar.android.logout.SignOutFragment;
import org.briarproject.briar.android.mailbox.MailboxFragment;
import org.briarproject.briar.android.navdrawer.NavDrawerController.ExpiryWarning;
import org.briarproject.briar.android.privategroup.list.GroupListFragment;
import org.briarproject.briar.android.settings.SettingsActivity;
......@@ -204,6 +205,9 @@ public class NavDrawerActivity extends BriarActivity implements
case R.id.nav_btn_blogs:
startFragment(FeedFragment.newInstance());
break;
case R.id.nav_btn_mailbox:
startFragment(MailboxFragment.newInstance());
break;
case R.id.nav_btn_settings:
startActivity(new Intent(this, SettingsActivity.class));
break;
......
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@+id/deleteButton">
<TextView
android:id="@+id/mailboxStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:gravity="center_horizontal"
android:padding="@dimen/margin_large"
android:text="@string/mailbox_unpaired"
android:textColor="@color/briar_text_primary"
android:textSize="@dimen/text_size_large"/>
</ScrollView>
<Button
android:id="@+id/deleteButton"
style="@style/BriarButton.Negative"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/delete"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
</android.support.constraint.ConstraintLayout>
\ No newline at end of file
......@@ -22,6 +22,10 @@
</group>
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_btn_mailbox"
android:icon="@drawable/ic_emoji_food_drink"
android:title="@string/mailbox"/>
<item
android:id="@+id/nav_btn_settings"
android:icon="@drawable/ic_settings_black_24dp"
......
......@@ -484,4 +484,8 @@
<string name="mailbox_paired">Successfully paired with mailbox</string>
<string name="mailbox_already_paired">Already paired with this mailbox</string>
<string name="mailbox_info">Show mailbox</string>
<string name="briar_unpaired">Briar is not paired with a mailbox</string>
<string name="mailbox_unpaired">Your Briar account is not paired with a mailbox.\n Press + to pair with your Mailbox.</string>
<string name="mailbox_connected">You are connected to to your mailbox.</string>
<string name="mailbox_disconnected">You are not connected to your private Mailbox</string>
</resources>
......@@ -42,6 +42,10 @@
<item name="android:textColor">@color/button_text</item>
</style>
<style name="BriarButton.Negative" parent="BriarButton">
<item name="android:textColor">@color/briar_button_text_negative</item>
</style>
<style name="BriarButtonFlat.Negative" parent="Widget.AppCompat.Button.Borderless">
<item name="android:textColor">@color/briar_button_text_negative</item>
<item name="android:textSize">@dimen/text_size_medium</item>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment