From 9687f94878bde0111bbd46cee299f14ff1af29af Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Wed, 14 Apr 2021 14:09:32 +0200 Subject: [PATCH] Longclick to copy backup code to clipboard --- .../login/IkeyBackupCreationFragment.java | 16 ++++++++++++++++ .../res/layout/fragment_ikey_backup_creation.xml | 3 ++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mercury_im/messenger/android/ui/account/login/IkeyBackupCreationFragment.java b/app/src/main/java/org/mercury_im/messenger/android/ui/account/login/IkeyBackupCreationFragment.java index d2addce..63f4f55 100644 --- a/app/src/main/java/org/mercury_im/messenger/android/ui/account/login/IkeyBackupCreationFragment.java +++ b/app/src/main/java/org/mercury_im/messenger/android/ui/account/login/IkeyBackupCreationFragment.java @@ -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; + } + }); } } diff --git a/app/src/main/res/layout/fragment_ikey_backup_creation.xml b/app/src/main/res/layout/fragment_ikey_backup_creation.xml index f2f8154..3d74cfe 100644 --- a/app/src/main/res/layout/fragment_ikey_backup_creation.xml +++ b/app/src/main/res/layout/fragment_ikey_backup_creation.xml @@ -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"