Longclick to copy backup code to clipboard

This commit is contained in:
Paul Schaub 2021-04-14 14:09:32 +02:00
parent 1dc84cf46a
commit 9687f94878
Signed by: vanitasvitae
GPG Key ID: 62BEE9264BF17311
2 changed files with 18 additions and 1 deletions

View File

@ -2,6 +2,9 @@ package org.mercury_im.messenger.android.ui.account.login;
import androidx.lifecycle.ViewModelProvider;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.os.Bundle;
import androidx.annotation.NonNull;
@ -14,6 +17,7 @@ import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import org.mercury_im.messenger.R;
import org.mercury_im.messenger.android.crypto.ikey.AndroidIkeyBackupCreationViewModel;
@ -65,6 +69,18 @@ public class IkeyBackupCreationFragment extends Fragment {
viewModel.getPassphrase().observe(getViewLifecycleOwner(), passphrase -> backupCode.setText(passphrase));
viewModel.getPassphraseAsQrCode().observe(getViewLifecycleOwner(), bitmap -> qrCode.setImageBitmap(bitmap));
doneButton.setOnClickListener(v -> getActivity().finish());
ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
backupCode.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
ClipData clip = ClipData.newPlainText(backupCode.getText(), backupCode.getText());
clipboard.setPrimaryClip(clip);
Toast.makeText(getContext(), "Copied to clipboard", Toast.LENGTH_SHORT).show();
return true;
}
});
}
}

View File

@ -41,7 +41,8 @@
android:id="@+id/backup_code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat"
android:textAppearance="@style/TextAppearance.AppCompat.Title"
android:onClick="copyToClipboard"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"