aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/settings/LogSignaturePreference.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/settings/LogSignaturePreference.java')
-rw-r--r--main/src/cgeo/geocaching/settings/LogSignaturePreference.java60
1 files changed, 60 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/settings/LogSignaturePreference.java b/main/src/cgeo/geocaching/settings/LogSignaturePreference.java
new file mode 100644
index 0000000..d0c9739
--- /dev/null
+++ b/main/src/cgeo/geocaching/settings/LogSignaturePreference.java
@@ -0,0 +1,60 @@
+package cgeo.geocaching.settings;
+
+import cgeo.geocaching.R;
+
+import android.content.Context;
+import android.preference.DialogPreference;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+
+public class LogSignaturePreference extends DialogPreference {
+
+ private SettingsActivity settingsActivity;
+ private EditText editText;
+
+ public LogSignaturePreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public LogSignaturePreference(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ init();
+ }
+
+ private void init() {
+ setDialogLayoutResource(R.layout.log_signature_preference_dialog);
+ }
+
+ @Override
+ protected void onBindDialogView(View view) {
+ settingsActivity = (SettingsActivity) this.getContext();
+
+ editText = (EditText) view.findViewById(R.id.signature_dialog_text);
+ editText.setText(getPersistedString(""));
+ settingsActivity.setSignatureTextView(editText);
+
+ Button templates = (Button) view.findViewById(R.id.signature_templates);
+ settingsActivity.registerForContextMenu(templates);
+ templates.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View templates) {
+ settingsActivity.openContextMenu(templates);
+ }
+ });
+
+ super.onBindDialogView(view);
+ }
+
+ @Override
+ protected void onDialogClosed(boolean positiveResult) {
+ if (positiveResult) {
+ String text = editText.getText().toString();
+ persistString(text);
+ callChangeListener(text);
+ }
+ super.onDialogClosed(positiveResult);
+ }
+}