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-09 16:04:09 -0400
committerMatthew Wong <wongma@protonmail.ch>2015-08-14 17:36:48 -0400
commitad173d9d05c29790d6f647df641e5de28e32fd58 (patch)
tree4cbf4579d39392c2d647459eec10ff7f95466a7e /app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java
parent51a05087e5a349afa3f4e0febdc3a339179e9bbd (diff)
downloadHardenedPass-ad173d9d05c29790d6f647df641e5de28e32fd58.tar.gz
HardenedPass-ad173d9d05c29790d6f647df641e5de28e32fd58.zip
Autofill per-app settings dialog opens on click on suggestion or on existing app
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.java82
1 files changed, 82 insertions, 0 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
new file mode 100644
index 00000000..e9aa86f0
--- /dev/null
+++ b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java
@@ -0,0 +1,82 @@
+package com.zeapo.pwdstore.autofill;
+
+import android.content.DialogInterface;
+import android.support.v7.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
+
+import com.zeapo.pwdstore.R;
+
+public class AutofillFragment extends DialogFragment {
+
+ public AutofillFragment() {
+ }
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ // this fragment is only created from the settings page (AutofillActivity)
+ // need to interact with the recyclerAdapter which is a member of activity
+ final AutofillActivity callingActivity = (AutofillActivity) getActivity();
+ LayoutInflater inflater = callingActivity.getLayoutInflater();
+ final View view = inflater.inflate(R.layout.fragment_autofill, null);
+
+ builder.setView(view);
+
+ final String packageName = getArguments().getString("packageName");
+ String appName = getArguments().getString("appName");
+
+ builder.setTitle(appName);
+ SharedPreferences prefs
+ = getActivity().getApplicationContext().getSharedPreferences("autofill", Context.MODE_PRIVATE);
+ String preference = prefs.getString(packageName, "first");
+ switch (preference) {
+ case "first":
+ ((RadioButton) view.findViewById(R.id.first)).toggle();
+ break;
+ case "never":
+ ((RadioButton) view.findViewById(R.id.never)).toggle();
+ break;
+ default:
+ ((RadioButton) view.findViewById(R.id.match)).toggle();
+ ((EditText) view.findViewById(R.id.matched)).setText(preference);
+ }
+
+ final SharedPreferences.Editor editor = prefs.edit();
+ builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ RadioGroup radioGroup = (RadioGroup) view.findViewById(R.id.autofill_radiogroup);
+ switch (radioGroup.getCheckedRadioButtonId()) {
+ case R.id.first:
+ editor.putString(packageName, "first");
+ break;
+ case R.id.never:
+ editor.putString(packageName, "never");
+ break;
+ default:
+ EditText matched = (EditText) view.findViewById(R.id.matched);
+ String path = matched.getText().toString();
+ editor.putString(packageName, path);
+ }
+ editor.apply();
+ int position = getArguments().getInt("position");
+ if (position == -1) {
+ callingActivity.recyclerAdapter.add(packageName);
+ } else {
+ callingActivity.recyclerAdapter.notifyItemChanged(position);
+ }
+ }
+ });
+ builder.setNegativeButton("Cancel", null);
+ return builder.create();
+ }
+}