Mercurial > 510Connectbot
comparison src/com/five_ten_sg/connectbot/util/StringPickerDialog.java @ 308:42b15aaa7ac7 ganymed
merge
author | Carl Byington <carl@five-ten-sg.com> |
---|---|
date | Wed, 30 Jul 2014 14:21:50 -0700 |
parents | 071eccdff8ea |
children |
comparison
equal
deleted
inserted
replaced
306:90e47d99ea54 | 308:42b15aaa7ac7 |
---|---|
36 | 36 |
37 /** | 37 /** |
38 * Dialog for choosing accented characters related to a base character. | 38 * Dialog for choosing accented characters related to a base character. |
39 */ | 39 */ |
40 public class StringPickerDialog extends Dialog | 40 public class StringPickerDialog extends Dialog |
41 implements OnItemClickListener, OnClickListener { | 41 implements OnItemClickListener, OnClickListener { |
42 private View mView; | 42 private View mView; |
43 private Editable mText; | 43 private Editable mText; |
44 private String []mOptions; | 44 private String []mOptions; |
45 private boolean mInsert; | 45 private boolean mInsert; |
46 private LayoutInflater mInflater; | 46 private LayoutInflater mInflater; |
50 * Creates a new StringPickerDialog that presents the specified | 50 * Creates a new StringPickerDialog that presents the specified |
51 * <code>options</code> for insertion or replacement (depending on | 51 * <code>options</code> for insertion or replacement (depending on |
52 * the sense of <code>insert</code>) into <code>text</code>. | 52 * the sense of <code>insert</code>) into <code>text</code>. |
53 */ | 53 */ |
54 public StringPickerDialog(Context context, View view, | 54 public StringPickerDialog(Context context, View view, |
55 Editable text, String []options, | 55 Editable text, String []options, |
56 boolean insert) { | 56 boolean insert) { |
57 //super(context, com.android.internal.R.style.Theme_Panel); | 57 //super(context, com.android.internal.R.style.Theme_Panel); |
58 | |
59 //Resources res = Resources.getSystem(); | 58 //Resources res = Resources.getSystem(); |
60 //int id = res.getIdentifier("Theme_Panel", "style", "android"); | 59 //int id = res.getIdentifier("Theme_Panel", "style", "android"); |
61 //int id = android.R.style.Theme_Panel; | 60 //int id = android.R.style.Theme_Panel; |
62 super(context, android.R.style.Theme_Panel); | 61 super(context, android.R.style.Theme_Panel); |
63 mView = view; | 62 mView = view; |
68 } | 67 } |
69 | 68 |
70 @Override | 69 @Override |
71 protected void onCreate(Bundle savedInstanceState) { | 70 protected void onCreate(Bundle savedInstanceState) { |
72 super.onCreate(savedInstanceState); | 71 super.onCreate(savedInstanceState); |
73 | |
74 WindowManager.LayoutParams params = getWindow().getAttributes(); | 72 WindowManager.LayoutParams params = getWindow().getAttributes(); |
75 params.token = mView.getApplicationWindowToken(); | 73 params.token = mView.getApplicationWindowToken(); |
76 params.type = params.TYPE_APPLICATION_ATTACHED_DIALOG; | 74 params.type = params.TYPE_APPLICATION_ATTACHED_DIALOG; |
77 params.flags = params.flags | Window.FEATURE_NO_TITLE; | 75 params.flags = params.flags | Window.FEATURE_NO_TITLE; |
78 | |
79 setContentView(R.layout.string_picker); | 76 setContentView(R.layout.string_picker); |
80 | |
81 GridView grid = (GridView) findViewById(R.id.stringPicker); | 77 GridView grid = (GridView) findViewById(R.id.stringPicker); |
82 grid.setAdapter(new OptionsAdapter(getContext())); | 78 grid.setAdapter(new OptionsAdapter(getContext())); |
83 grid.setOnItemClickListener(this); | 79 grid.setOnItemClickListener(this); |
84 | |
85 mCancelButton = (Button) findViewById(R.id.cancel); | 80 mCancelButton = (Button) findViewById(R.id.cancel); |
86 mCancelButton.setOnClickListener(this); | 81 mCancelButton.setOnClickListener(this); |
87 } | 82 } |
88 | 83 |
89 /** | 84 /** |
94 replaceCharacterAndClose(result); | 89 replaceCharacterAndClose(result); |
95 } | 90 } |
96 | 91 |
97 private void replaceCharacterAndClose(CharSequence replace) { | 92 private void replaceCharacterAndClose(CharSequence replace) { |
98 int selEnd = Selection.getSelectionEnd(mText); | 93 int selEnd = Selection.getSelectionEnd(mText); |
94 | |
99 if (mInsert || selEnd == 0) { | 95 if (mInsert || selEnd == 0) { |
100 mText.insert(selEnd, replace); | 96 mText.insert(selEnd, replace); |
101 } else { | 97 } |
98 else { | |
102 mText.replace(selEnd - 1, selEnd, replace); | 99 mText.replace(selEnd - 1, selEnd, replace); |
103 } | 100 } |
104 | 101 |
105 dismiss(); | 102 dismiss(); |
106 } | 103 } |
109 * Handles clicks on the Cancel button. | 106 * Handles clicks on the Cancel button. |
110 */ | 107 */ |
111 public void onClick(View v) { | 108 public void onClick(View v) { |
112 if (v == mCancelButton) { | 109 if (v == mCancelButton) { |
113 dismiss(); | 110 dismiss(); |
114 } else if (v instanceof Button) { | 111 } |
112 else if (v instanceof Button) { | |
115 CharSequence result = ((Button) v).getText(); | 113 CharSequence result = ((Button) v).getText(); |
116 replaceCharacterAndClose(result); | 114 replaceCharacterAndClose(result); |
117 } | 115 } |
118 } | 116 } |
119 | 117 |
123 super(); | 121 super(); |
124 } | 122 } |
125 | 123 |
126 public View getView(int position, View convertView, ViewGroup parent) { | 124 public View getView(int position, View convertView, ViewGroup parent) { |
127 Button b = (Button) | 125 Button b = (Button) |
128 mInflater.inflate(R.layout.string_picker_button, null); | 126 mInflater.inflate(R.layout.string_picker_button, null); |
129 b.setText(mOptions[position]); | 127 b.setText(mOptions[position]); |
130 b.setOnClickListener(StringPickerDialog.this); | 128 b.setOnClickListener(StringPickerDialog.this); |
131 return b; | 129 return b; |
132 } | 130 } |
133 | 131 |