aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/sshkeygen/ShowSshKeyFragment.kt
diff options
context:
space:
mode:
authorAditya Wasan <adityawasan55@gmail.com>2019-11-13 00:55:56 +0530
committerHarsh Shandilya <msfjarvis@gmail.com>2019-11-13 00:55:56 +0530
commit9acad2abf68b64d3ca70b5263a72dfe3d5ff0081 (patch)
treeaa84fe70cc5fc4906db89e42bb90e6463ad6c2ec /app/src/main/java/com/zeapo/pwdstore/sshkeygen/ShowSshKeyFragment.kt
parent5749c97d7c597b01ecfc483ad5d387fc025e4653 (diff)
downloadHardenedPass-9acad2abf68b64d3ca70b5263a72dfe3d5ff0081.tar.gz
HardenedPass-9acad2abf68b64d3ca70b5263a72dfe3d5ff0081.zip
Convert java files to kotlin (#570)
* Break SshKeyGen into multiple files * Use tinted material button * Convert PasswordStore to kotlin * Remove SshKeyGen * Remove explicit imports and other tweaks Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/sshkeygen/ShowSshKeyFragment.kt')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/sshkeygen/ShowSshKeyFragment.kt69
1 files changed, 69 insertions, 0 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/sshkeygen/ShowSshKeyFragment.kt b/app/src/main/java/com/zeapo/pwdstore/sshkeygen/ShowSshKeyFragment.kt
new file mode 100644
index 00000000..5f27090f
--- /dev/null
+++ b/app/src/main/java/com/zeapo/pwdstore/sshkeygen/ShowSshKeyFragment.kt
@@ -0,0 +1,69 @@
+/*
+ * Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+package com.zeapo.pwdstore.sshkeygen
+
+import android.annotation.SuppressLint
+import android.app.Dialog
+import android.content.ClipData
+import android.content.ClipboardManager
+import android.content.Context
+import android.os.Bundle
+import android.view.View
+import android.widget.TextView
+import androidx.appcompat.app.AlertDialog
+import androidx.fragment.app.DialogFragment
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
+import com.zeapo.pwdstore.R
+import java.io.File
+import java.nio.charset.StandardCharsets
+import org.apache.commons.io.FileUtils
+
+class ShowSshKeyFragment : DialogFragment() {
+
+ private lateinit var activity: SshKeyGenActivity
+ private lateinit var builder: MaterialAlertDialogBuilder
+ private lateinit var publicKey: TextView
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ activity = requireActivity() as SshKeyGenActivity
+ builder = MaterialAlertDialogBuilder(activity)
+ }
+
+ @SuppressLint("InflateParams")
+ override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+ val view = activity.layoutInflater.inflate(R.layout.fragment_show_ssh_key, null)
+ publicKey = view.findViewById(R.id.public_key)
+ readKeyFromFile()
+ createMaterialDialog(view)
+ val ad = builder.create()
+ ad.setOnShowListener {
+ val b = ad.getButton(AlertDialog.BUTTON_NEUTRAL)
+ b.setOnClickListener {
+ val clipboard = activity.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
+ val clip = ClipData.newPlainText("public key", publicKey.text.toString())
+ clipboard.setPrimaryClip(clip)
+ }
+ }
+ return ad
+ }
+
+ private fun createMaterialDialog(view: View) {
+ builder.setView(view)
+ builder.setTitle(getString(R.string.your_public_key))
+ builder.setPositiveButton(getString(R.string.dialog_ok)) { _, _ -> activity.finish() }
+ builder.setNegativeButton(getString(R.string.dialog_cancel), null)
+ builder.setNeutralButton(resources.getString(R.string.ssh_keygen_copy), null)
+ }
+
+ private fun readKeyFromFile() {
+ val file = File(activity.filesDir.toString() + "/.ssh_key.pub")
+ try {
+ publicKey.text = FileUtils.readFileToString(file, StandardCharsets.UTF_8)
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+}