mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-20 22:59:54 +01:00
Add remote wipe display fragment to show details of an existing setup
This commit is contained in:
@@ -65,6 +65,7 @@ import org.briarproject.briar.android.privategroup.memberlist.GroupMemberModule;
|
|||||||
import org.briarproject.briar.android.privategroup.reveal.GroupRevealModule;
|
import org.briarproject.briar.android.privategroup.reveal.GroupRevealModule;
|
||||||
import org.briarproject.briar.android.privategroup.reveal.RevealContactsActivity;
|
import org.briarproject.briar.android.privategroup.reveal.RevealContactsActivity;
|
||||||
import org.briarproject.briar.android.privategroup.reveal.RevealContactsFragment;
|
import org.briarproject.briar.android.privategroup.reveal.RevealContactsFragment;
|
||||||
|
import org.briarproject.briar.android.remotewipe.RemoteWipeDisplayFragment;
|
||||||
import org.briarproject.briar.android.remotewipe.RemoteWipeSetupActivity;
|
import org.briarproject.briar.android.remotewipe.RemoteWipeSetupActivity;
|
||||||
import org.briarproject.briar.android.remotewipe.WiperSelectorFragment;
|
import org.briarproject.briar.android.remotewipe.WiperSelectorFragment;
|
||||||
import org.briarproject.briar.android.reporting.CrashFragment;
|
import org.briarproject.briar.android.reporting.CrashFragment;
|
||||||
@@ -312,4 +313,6 @@ public interface ActivityComponent {
|
|||||||
void inject(CustodianReturnShardErrorFragment custodianReturnShardErrorFragment);
|
void inject(CustodianReturnShardErrorFragment custodianReturnShardErrorFragment);
|
||||||
|
|
||||||
void inject(WiperSelectorFragment wiperSelectorFragment);
|
void inject(WiperSelectorFragment wiperSelectorFragment);
|
||||||
|
|
||||||
|
void inject(RemoteWipeDisplayFragment remoteWipeDisplayFragment);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
package org.briarproject.briar.android.remotewipe;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import org.briarproject.briar.R;
|
||||||
|
import org.briarproject.briar.android.activity.ActivityComponent;
|
||||||
|
import org.briarproject.briar.android.fragment.BaseFragment;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
|
|
||||||
|
public class RemoteWipeDisplayFragment extends
|
||||||
|
BaseFragment {
|
||||||
|
|
||||||
|
public static final String TAG = RemoteWipeDisplayFragment.class.getName();
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
ViewModelProvider.Factory viewModelFactory;
|
||||||
|
|
||||||
|
private RemoteWipeSetupViewModel viewModel;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void injectFragment(ActivityComponent component) {
|
||||||
|
component.inject(this);
|
||||||
|
viewModel = new ViewModelProvider(requireActivity(), viewModelFactory)
|
||||||
|
.get(RemoteWipeSetupViewModel.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public View onCreateView(@NonNull LayoutInflater inflater,
|
||||||
|
@Nullable ViewGroup container,
|
||||||
|
@Nullable Bundle savedInstanceState) {
|
||||||
|
View view = inflater.inflate(R.layout.fragment_display_remote_wipe,
|
||||||
|
container, false);
|
||||||
|
List<String> wiperNames = viewModel.getWiperNames();
|
||||||
|
String custodianNamesString = "";
|
||||||
|
for (String custodianName : wiperNames) {
|
||||||
|
custodianNamesString += custodianName + ", ";
|
||||||
|
}
|
||||||
|
TextView textViewThreshold = view.findViewById(R.id.textViewWipers);
|
||||||
|
textViewThreshold.setText(custodianNamesString);
|
||||||
|
// Button button = view.findViewById(R.id.button);
|
||||||
|
// button.setOnClickListener(e -> viewModel.onErrorTryAgain());
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getUniqueTag() {
|
||||||
|
return TAG;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,8 +7,10 @@ import org.briarproject.bramble.api.FormatException;
|
|||||||
import org.briarproject.bramble.api.contact.ContactId;
|
import org.briarproject.bramble.api.contact.ContactId;
|
||||||
import org.briarproject.bramble.api.db.DatabaseComponent;
|
import org.briarproject.bramble.api.db.DatabaseComponent;
|
||||||
import org.briarproject.bramble.api.db.DbException;
|
import org.briarproject.bramble.api.db.DbException;
|
||||||
|
import org.briarproject.bramble.api.identity.Author;
|
||||||
import org.briarproject.briar.api.remotewipe.RemoteWipeManager;
|
import org.briarproject.briar.api.remotewipe.RemoteWipeManager;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -42,6 +44,23 @@ public class RemoteWipeSetupViewModel extends AndroidViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<String> getWiperNames() {
|
||||||
|
ArrayList wiperNames = new ArrayList();
|
||||||
|
try {
|
||||||
|
List<Author> wipers = db.transactionWithResult(true,
|
||||||
|
txn -> remoteWipeManager.getWipers(txn));
|
||||||
|
for (Author wiper : wipers) {
|
||||||
|
wiperNames.add(wiper.getName());
|
||||||
|
}
|
||||||
|
return wiperNames;
|
||||||
|
} catch (DbException ignored) {
|
||||||
|
// Will return an empty list
|
||||||
|
}
|
||||||
|
return wiperNames;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void setupRemoteWipe(Collection<ContactId> wipers)
|
public void setupRemoteWipe(Collection<ContactId> wipers)
|
||||||
throws DbException, FormatException {
|
throws DbException, FormatException {
|
||||||
db.transaction(false, txn -> {
|
db.transaction(false, txn -> {
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
|
||||||
|
android:paddingLeft="@dimen/margin_large"
|
||||||
|
android:paddingTop="@dimen/margin_large"
|
||||||
|
android:paddingRight="@dimen/margin_large"
|
||||||
|
android:paddingBottom="@dimen/margin_medium"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/textViewThreshold"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="placeholder threshold"
|
||||||
|
android:textSize="16sp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/textViewWipers"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/backup_done_info"
|
||||||
|
android:textSize="16sp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/textViewThreshold" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
Reference in New Issue
Block a user