aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java
diff options
context:
space:
mode:
authorMatthew Wong <wongma@protonmail.ch>2015-08-13 15:18:47 -0400
committerMatthew Wong <wongma@protonmail.ch>2015-08-14 17:36:52 -0400
commitec07e1eea69a69e9579ddfb44fdbee3535bcf6ad (patch)
tree216b48cfe0460064b9a42bde130ea3e13a3a07d5 /app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java
parent29b92f4a6d1dacac3e0a1154972e2659b3a536be (diff)
downloadHardenedPass-ec07e1eea69a69e9579ddfb44fdbee3535bcf6ad.tar.gz
HardenedPass-ec07e1eea69a69e9579ddfb44fdbee3535bcf6ad.zip
Preference activity overhaul
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java31
1 files changed, 20 insertions, 11 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java
index ea4b0a2f..c2a30ffe 100644
--- a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java
+++ b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java
@@ -3,7 +3,7 @@ package com.zeapo.pwdstore.autofill;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
-import android.preference.PreferenceManager;
+import android.content.pm.PackageManager;
import android.support.v7.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
@@ -40,15 +40,20 @@ public class AutofillFragment extends DialogFragment {
String appName = getArguments().getString("appName");
builder.setTitle(appName);
+ try {
+ // since we can't (easily?) pass the drawable as an argument
+ builder.setIcon(callingActivity.getPackageManager().getApplicationIcon(packageName));
+ } catch (PackageManager.NameNotFoundException e) {
+ e.printStackTrace();
+ }
- // when an app is added for the first time, the radio button selection should reflect
- // the autofill_default setting: hence, defValue
- SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(callingActivity);
- String defValue = settings.getBoolean("autofill_default", true) ? "first" : "never";
SharedPreferences prefs
= getActivity().getApplicationContext().getSharedPreferences("autofill", Context.MODE_PRIVATE);
- String preference = prefs.getString(packageName, defValue);
+ String preference = prefs.getString(packageName, "");
switch (preference) {
+ case "":
+ ((RadioButton) view.findViewById(R.id.use_default)).toggle();
+ break;
case "first":
((RadioButton) view.findViewById(R.id.first)).toggle();
break;
@@ -77,6 +82,9 @@ public class AutofillFragment extends DialogFragment {
public void onClick(DialogInterface dialog, int which) {
RadioGroup radioGroup = (RadioGroup) view.findViewById(R.id.autofill_radiogroup);
switch (radioGroup.getCheckedRadioButtonId()) {
+ case R.id.use_default:
+ editor.remove(packageName);
+ break;
case R.id.first:
editor.putString(packageName, "first");
break;
@@ -90,10 +98,10 @@ public class AutofillFragment extends DialogFragment {
}
editor.apply();
int position = getArguments().getInt("position");
- if (position == -1) {
- callingActivity.recyclerAdapter.add(packageName);
- } else {
- callingActivity.recyclerAdapter.notifyItemChanged(position);
+ callingActivity.recyclerAdapter.notifyItemChanged(position);
+
+ if (getArguments().getBoolean("finish")) {
+ callingActivity.finish();
}
}
});
@@ -105,7 +113,8 @@ public class AutofillFragment extends DialogFragment {
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
((EditText) getDialog().findViewById(R.id.matched)).setText(data.getStringExtra("path"));
+ } else {
+ ((RadioButton) getDialog().findViewById(R.id.use_default)).toggle();
}
-
}
}