mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 10:49:06 +01:00
Implement UI for unpairing the mailbox
This commit is contained in:
@@ -12,7 +12,6 @@ import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.briarproject.bramble.api.mailbox.MailboxStatus;
|
||||
import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
|
||||
@@ -25,6 +24,7 @@ import androidx.annotation.ColorRes;
|
||||
import androidx.annotation.DrawableRes;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.UiThread;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
@@ -57,6 +57,8 @@ public class MailboxStatusFragment extends Fragment {
|
||||
private ImageView imageView;
|
||||
private TextView statusTitleView;
|
||||
private TextView statusInfoView;
|
||||
private Button unlinkButton;
|
||||
private ProgressBar unlinkProgress;
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
@@ -101,10 +103,9 @@ public class MailboxStatusFragment extends Fragment {
|
||||
|
||||
// TODO
|
||||
// * Implement UI for warning user when mailbox is unreachable #2175
|
||||
// * add "Unlink" button confirmation dialog and functionality #2173
|
||||
Button unlinkButton = v.findViewById(R.id.unlinkButton);
|
||||
unlinkButton.setOnClickListener(view -> Toast.makeText(requireContext(),
|
||||
"NOT IMPLEMENTED", Toast.LENGTH_SHORT).show());
|
||||
unlinkButton = v.findViewById(R.id.unlinkButton);
|
||||
unlinkProgress = v.findViewById(R.id.unlinkProgress);
|
||||
unlinkButton.setOnClickListener(view -> onUnlinkButtonClicked());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -167,4 +168,21 @@ public class MailboxStatusFragment extends Fragment {
|
||||
}
|
||||
}
|
||||
|
||||
private void onUnlinkButtonClicked() {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(requireContext(),
|
||||
R.style.BriarDialogTheme);
|
||||
builder.setTitle(R.string.mailbox_status_unlink_dialog_title);
|
||||
builder.setMessage(R.string.mailbox_status_unlink_dialog_message);
|
||||
builder.setPositiveButton(R.string.cancel,
|
||||
(dialog, which) -> dialog.cancel());
|
||||
builder.setNegativeButton(R.string.mailbox_status_unlink_button,
|
||||
(dialog, which) -> {
|
||||
beginDelayedTransition((ViewGroup) requireView());
|
||||
unlinkButton.setVisibility(INVISIBLE);
|
||||
unlinkProgress.setVisibility(VISIBLE);
|
||||
viewModel.unlink();
|
||||
});
|
||||
builder.show();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.google.zxing.Result;
|
||||
|
||||
import org.briarproject.bramble.api.Consumer;
|
||||
import org.briarproject.bramble.api.db.DatabaseExecutor;
|
||||
import org.briarproject.bramble.api.db.DbException;
|
||||
import org.briarproject.bramble.api.db.TransactionManager;
|
||||
import org.briarproject.bramble.api.event.Event;
|
||||
import org.briarproject.bramble.api.event.EventBus;
|
||||
@@ -220,6 +221,18 @@ class MailboxViewModel extends DbViewModel
|
||||
return liveData;
|
||||
}
|
||||
|
||||
@UiThread
|
||||
void unlink() {
|
||||
ioExecutor.execute(() -> {
|
||||
try {
|
||||
mailboxManager.unPair();
|
||||
pairingState.postEvent(new MailboxState.NotSetup());
|
||||
} catch (DbException e) {
|
||||
handleException(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@UiThread
|
||||
LiveEvent<MailboxState> getPairingState() {
|
||||
return pairingState;
|
||||
|
||||
@@ -83,4 +83,15 @@
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/unlinkProgress"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="invisible"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/unlinkButton"
|
||||
app:layout_constraintEnd_toEndOf="@+id/unlinkButton"
|
||||
app:layout_constraintStart_toStartOf="@+id/unlinkButton"
|
||||
app:layout_constraintTop_toTopOf="@+id/unlinkButton"
|
||||
tools:visibility="visible" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -651,6 +651,8 @@
|
||||
<!-- Indicates that there never was a connection to the mailbox. Last connection: Never -->
|
||||
<string name="mailbox_status_connected_never">Never</string>
|
||||
<string name="mailbox_status_unlink_button">Unlink</string>
|
||||
<string name="mailbox_status_unlink_dialog_title">Unlink mailbox?</string>
|
||||
<string name="mailbox_status_unlink_dialog_message">Unlinking a working Mailbox will result in message delivery issues, even when relinking it later again.</string>
|
||||
|
||||
<!-- Conversation Settings -->
|
||||
<string name="disappearing_messages_title">Disappearing messages</string>
|
||||
|
||||
Reference in New Issue
Block a user