From c2badb0447accaa39e4f7b3d8ebb43601f2f5d8f Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 7 May 2014 02:30:27 -0400 Subject: Start implementing modifiers, for a great reduction in code size. --- src/us/minak/IMEView.java | 88 +++++------------------------------------------ 1 file changed, 9 insertions(+), 79 deletions(-) (limited to 'src/us/minak/IMEView.java') diff --git a/src/us/minak/IMEView.java b/src/us/minak/IMEView.java index a992011..dd2fb69 100644 --- a/src/us/minak/IMEView.java +++ b/src/us/minak/IMEView.java @@ -1,54 +1,14 @@ -/* - ******************************************************************************** - * 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.RelativeLayout; +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 mSymbolsQueue = new LinkedList(); - - 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 +16,15 @@ public class IMEView extends RelativeLayout { @Override protected void onFinishInflate() { IMEGestureOverlayView gestureOverlayView = (IMEGestureOverlayView) findViewById(R.id.drawing_space); - gestureOverlayView.setOnGestureRecognizedListener(new StringReciever() { - @Override - public void putString(String character) { - enterCharacter(character); - } - }); - } - - public void setOnCharacterEnteredListener(StringReciever onCharacterEnteredListener) { - mOnCharacterEnteredListener = onCharacterEnteredListener; + gestureOverlayView.setInputConnectionGetter(this); } - public Queue getSymbolsQueue() { - return mSymbolsQueue; + private InputConnectionGetter icGetter = new InputConnectionGetter.NullGetter(); + public void setInputConnectionGetter(InputConnectionGetter icGetter) { + this.icGetter = icGetter; } - - 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); + @Override + public InputConnection getCurrentInputConnection() { + return icGetter.getCurrentInputConnection(); } } -- cgit v1.2.3 From 58aa0ea407aedde32cbde69b2dbb6cf4ae9e31a5 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 7 May 2014 04:29:37 -0400 Subject: implement backspace --- src/us/minak/IMEView.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/us/minak/IMEView.java') diff --git a/src/us/minak/IMEView.java b/src/us/minak/IMEView.java index dd2fb69..31ce553 100644 --- a/src/us/minak/IMEView.java +++ b/src/us/minak/IMEView.java @@ -2,7 +2,9 @@ package us.minak; import android.content.Context; import android.util.AttributeSet; +import android.widget.Button; import android.widget.RelativeLayout; +import android.view.View; import android.view.inputmethod.InputConnection; /** @@ -17,6 +19,12 @@ public class IMEView extends RelativeLayout implements InputConnectionGetter { protected void onFinishInflate() { IMEGestureOverlayView gestureOverlayView = (IMEGestureOverlayView) findViewById(R.id.drawing_space); gestureOverlayView.setInputConnectionGetter(this); + + final Button backspaceButton = (Button) findViewById(R.id.backspace_btn); + backspaceButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { backspace(); } + }); } private InputConnectionGetter icGetter = new InputConnectionGetter.NullGetter(); @@ -27,4 +35,10 @@ public class IMEView extends RelativeLayout implements InputConnectionGetter { public InputConnection getCurrentInputConnection() { return icGetter.getCurrentInputConnection(); } + + private void backspace() { + InputConnection ic = getCurrentInputConnection(); + if (ic != null) + ic.deleteSurroundingText(1, 0); + } } -- cgit v1.2.3