aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.kt
diff options
context:
space:
mode:
authorHarsh Shandilya <msfjarvis@gmail.com>2019-10-01 22:14:28 +0530
committerGitHub <noreply@github.com>2019-10-01 22:14:28 +0530
commit073346c157ec34b750d175c8543f346e6eae94de (patch)
treea55d24ef43563f3a2d03d7938a1e96c1f5cd1caf /app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.kt
parentc9dc4034f12b62f4470f92fb13ecd72871f4a5b7 (diff)
downloadHardenedPass-073346c157ec34b750d175c8543f346e6eae94de.tar.gz
HardenedPass-073346c157ec34b750d175c8543f346e6eae94de.zip
Redesign UI and introduce dark theme (#519)
Caveats: - The openpgp preference had to be removed because the open-intents developers are too lazy to update their libraries. Over the coming weeks I will be reimplementing a local solution for this instead. - The autofill dialog is broken but I since it is being worked on in #410 already I'm not going to bother fixing it.
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.kt')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.kt25
1 files changed, 17 insertions, 8 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.kt b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.kt
index d01ccdc8..04b8d7ef 100644
--- a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.kt
@@ -6,6 +6,7 @@ import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.content.pm.PackageManager
+import android.net.Uri
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
@@ -15,21 +16,23 @@ import android.widget.EditText
import android.widget.ListView
import android.widget.RadioButton
import android.widget.RadioGroup
-import android.widget.TextView
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
-import androidx.core.content.ContextCompat
+import androidx.appcompat.widget.AppCompatTextView
import androidx.fragment.app.DialogFragment
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.zeapo.pwdstore.PasswordStore
import com.zeapo.pwdstore.R
+import com.zeapo.pwdstore.utils.resolveAttribute
import com.zeapo.pwdstore.utils.splitLines
+
class AutofillFragment : DialogFragment() {
private var adapter: ArrayAdapter<String>? = null
private var isWeb: Boolean = false
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
- val builder = AlertDialog.Builder(requireContext())
+ val builder = MaterialAlertDialogBuilder(requireContext())
// this fragment is only created from the settings page (AutofillPreferenceActivity)
// need to interact with the recyclerAdapter which is a member of activity
val callingActivity = requireActivity() as AutofillPreferenceActivity
@@ -51,9 +54,13 @@ class AutofillFragment : DialogFragment() {
builder.setTitle(appName)
view.findViewById<View>(R.id.webURL).visibility = View.GONE
} else {
- iconPackageName = "com.android.browser"
+ val browserIntent = Intent("android.intent.action.VIEW", Uri.parse("http://"))
+ val resolveInfo = requireContext().packageManager
+ .resolveActivity(browserIntent, PackageManager.MATCH_DEFAULT_ONLY)
+ iconPackageName = resolveInfo?.activityInfo?.packageName
builder.setTitle("Website")
- (view.findViewById<View>(R.id.webURL) as EditText).setText(packageName)
+ (view.findViewById<View>(R.id.webURL) as EditText).setText(packageName
+ ?: "com.android.browser")
}
try {
builder.setIcon(callingActivity.packageManager.getApplicationIcon(iconPackageName))
@@ -65,15 +72,17 @@ class AutofillFragment : DialogFragment() {
adapter = object : ArrayAdapter<String>(requireContext(), android.R.layout.simple_list_item_1, android.R.id.text1) {
// set text color to black because default is white...
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
- val textView = super.getView(position, convertView, parent) as TextView
- textView.setTextColor(ContextCompat.getColor(context, R.color.grey_black_1000))
+ val textView = super.getView(position, convertView, parent) as AppCompatTextView
+ textView.setTextColor(requireContext().resolveAttribute(android.R.attr.textColor))
return textView
}
}
(view.findViewById<View>(R.id.matched) as ListView).adapter = adapter
// delete items by clicking them
(view.findViewById<View>(R.id.matched) as ListView).onItemClickListener =
- AdapterView.OnItemClickListener { _, _, position, _ -> adapter!!.remove(adapter!!.getItem(position)) }
+ AdapterView.OnItemClickListener { _, _, position, _ ->
+ adapter!!.remove(adapter!!.getItem(position))
+ }
// set the existing preference, if any
val prefs: SharedPreferences = if (!isWeb) {