diff options
author | Bob Badour <bbadour@google.com> | 2020-05-06 14:54:04 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-05-06 14:54:04 +0000 |
commit | d58f8ba3b1869530926bd5f167103dfa161787a1 (patch) | |
tree | fd845444b59dfc72656b7781596e0b1a0662c4c7 /apps/NotificationStudio/src/com/android/notificationstudio/editor/TextEditor.java | |
parent | e36f051d414b814cf80b289770c1f7e58f6655ea (diff) | |
parent | d3c69fa48e25645a343d97ac392300583e38b30a (diff) | |
download | sdk-d58f8ba3b1869530926bd5f167103dfa161787a1.tar.gz |
Merge "Revert "Remove unused project."" am: fc7cda06f5 am: d3c69fa48e
Change-Id: I2920d1fca1593e86805ec8a728121cf2513e2bc5
Diffstat (limited to 'apps/NotificationStudio/src/com/android/notificationstudio/editor/TextEditor.java')
-rw-r--r-- | apps/NotificationStudio/src/com/android/notificationstudio/editor/TextEditor.java | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/apps/NotificationStudio/src/com/android/notificationstudio/editor/TextEditor.java b/apps/NotificationStudio/src/com/android/notificationstudio/editor/TextEditor.java new file mode 100644 index 000000000..aa38eec34 --- /dev/null +++ b/apps/NotificationStudio/src/com/android/notificationstudio/editor/TextEditor.java @@ -0,0 +1,73 @@ +/* + * Copyright 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.notificationstudio.editor; + +import android.text.Editable; +import android.text.InputType; +import android.text.TextWatcher; +import android.view.View; +import android.widget.EditText; + +import com.android.notificationstudio.R; +import com.android.notificationstudio.editor.Editors.Editor; +import com.android.notificationstudio.model.EditableItem; + +public class TextEditor implements Editor { + + public Runnable bindEditor(View v, final EditableItem item, final Runnable afterChange) { + final EditText textEditor = (EditText) v.findViewById(R.id.text_editor); + textEditor.setVisibility(View.VISIBLE); + textEditor.setInputType(getInputType()); + Runnable updateEditText = new Runnable() { + public void run() { + textEditor.setText(item.getValue() == null ? "" : item.getValue().toString()); + }}; + if (item.hasValue()) + updateEditText.run(); + textEditor.addTextChangedListener(new TextWatcher() { + public void afterTextChanged(Editable s) { + Object newVal = parseValue(s.length() == 0 ? null : s.toString()); + if (equal(newVal, item.getValue())) + return; + item.setValue(newVal); + afterChange.run(); + } + + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + // noop + } + + public void onTextChanged(CharSequence s, int start, int before, int count) { + // noop + } + }); + return updateEditText; + } + + protected int getInputType() { + return InputType.TYPE_CLASS_TEXT; + } + + protected Object parseValue(String str) { + return str; + } + + private static boolean equal(Object a, Object b) { + return a == b || (a != null && a.equals(b)); + } + +}
\ No newline at end of file |