blob: c1d75acd825e600ec6ccbc622dc481f8c1b69f9f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
package com.zeapo.pwdstore.autofill;
import android.content.DialogInterface;
import android.content.Intent;
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.PasswordStore;
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);
}
View.OnClickListener matchPassword = new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO figure out UI for this
Intent intent = new Intent(getActivity(), PasswordStore.class);
startActivity(intent);
}
};
view.findViewById(R.id.match).setOnClickListener(matchPassword);
view.findViewById(R.id.matched).setOnClickListener(matchPassword);
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();
}
}
|