summaryrefslogtreecommitdiff
path: root/src/us/minak/IMEView.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/us/minak/IMEView.java')
-rw-r--r--src/us/minak/IMEView.java94
1 files changed, 19 insertions, 75 deletions
diff --git a/src/us/minak/IMEView.java b/src/us/minak/IMEView.java
index a992011..31ce553 100644
--- a/src/us/minak/IMEView.java
+++ b/src/us/minak/IMEView.java
@@ -1,54 +1,16 @@
-/*
- ********************************************************************************
- * Copyright (c) 2012 Samsung Electronics, Inc.
- * All rights reserved.
- *
- * This software is a confidential and proprietary information of Samsung
- * Electronics, Inc. ("Confidential Information"). You shall not disclose such
- * Confidential Information and shall use it only in accordance with the terms
- * of the license agreement you entered into with Samsung Electronics.
- ********************************************************************************
- */
-
package us.minak;
-import java.util.LinkedList;
-import java.util.Queue;
-
import android.content.Context;
import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.view.View;
+import android.widget.Button;
import android.widget.RelativeLayout;
+import android.view.View;
+import android.view.inputmethod.InputConnection;
/**
* Represents the container for the drawing space and the two side panels.
*/
-public class IMEView extends RelativeLayout {
- private StringReciever mOnCharacterEnteredListener;
- private final Queue<Character> mSymbolsQueue = new LinkedList<Character>();
-
- private float x;
- private float y;
- private boolean ongoingGesture = false;
-
- public boolean setTouchLocation(float x, float y) {
- if (!ongoingGesture) {
- this.x = x;
- this.y = y;
- return true;
- }
- return false;
- }
-
- public void setState(boolean state) {
- ongoingGesture = state;
- }
-
- public boolean getState() {
- return ongoingGesture;
- }
-
+public class IMEView extends RelativeLayout implements InputConnectionGetter {
public IMEView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@@ -56,45 +18,27 @@ public class IMEView extends RelativeLayout {
@Override
protected void onFinishInflate() {
IMEGestureOverlayView gestureOverlayView = (IMEGestureOverlayView) findViewById(R.id.drawing_space);
- gestureOverlayView.setOnGestureRecognizedListener(new StringReciever() {
+ gestureOverlayView.setInputConnectionGetter(this);
+
+ final Button backspaceButton = (Button) findViewById(R.id.backspace_btn);
+ backspaceButton.setOnClickListener(new OnClickListener() {
@Override
- public void putString(String character) {
- enterCharacter(character);
- }
+ public void onClick(View v) { backspace(); }
});
}
- public void setOnCharacterEnteredListener(StringReciever onCharacterEnteredListener) {
- mOnCharacterEnteredListener = onCharacterEnteredListener;
+ private InputConnectionGetter icGetter = new InputConnectionGetter.NullGetter();
+ public void setInputConnectionGetter(InputConnectionGetter icGetter) {
+ this.icGetter = icGetter;
}
-
- public Queue<Character> getSymbolsQueue() {
- return mSymbolsQueue;
+ @Override
+ public InputConnection getCurrentInputConnection() {
+ return icGetter.getCurrentInputConnection();
}
- private final OnTouchListener mOnTouchListener = new OnTouchListener() {
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- return setTouchLocation(event.getX(), event.getY());
- }
- };
-
- /**
- * Passes the given character to the input service.
- *
- * @param character
- * The character to enter
- */
- private void enterCharacter(String character) {
- /*
- for (MetaCircle circle : ((IMEGestureOverlayView) findViewById(R.id.drawing_space)).circles) {
- //go through circles and check if they are applicable
- if (circle.containsPoint(this.x, this.y) && circle.getMetaExpression().state != MetaExpression.State.OFF) {
- //TODO: apply the Meta-key here
- ;
- }
- }
- */
- mOnCharacterEnteredListener.putString(character);
+ private void backspace() {
+ InputConnection ic = getCurrentInputConnection();
+ if (ic != null)
+ ic.deleteSurroundingText(1, 0);
}
}