From 821fc55980ff7e3b0afe1baefce62515f9db6200 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 5 May 2014 03:07:05 -0400 Subject: stuff --- src/us/minak/CreateGestureActivity.java | 124 ------------------------ src/us/minak/DrawingSpaceView.java | 60 ------------ src/us/minak/IMEGestureOverlayView.java | 59 +++++++++++ src/us/minak/IMEService.java | 8 +- src/us/minak/IMEView.java | 21 ++-- src/us/minak/OnCharacterEnteredListener.java | 5 - src/us/minak/OnGestureRecognizedListener.java | 26 ----- src/us/minak/SettingsActivity.java | 2 +- src/us/minak/SettingsCreateGestureActivity.java | 124 ++++++++++++++++++++++++ src/us/minak/SettingsUtil.java | 6 +- src/us/minak/StringReciever.java | 5 + 11 files changed, 204 insertions(+), 236 deletions(-) delete mode 100644 src/us/minak/CreateGestureActivity.java delete mode 100644 src/us/minak/DrawingSpaceView.java create mode 100644 src/us/minak/IMEGestureOverlayView.java delete mode 100644 src/us/minak/OnCharacterEnteredListener.java delete mode 100644 src/us/minak/OnGestureRecognizedListener.java create mode 100644 src/us/minak/SettingsCreateGestureActivity.java create mode 100644 src/us/minak/StringReciever.java (limited to 'src/us') diff --git a/src/us/minak/CreateGestureActivity.java b/src/us/minak/CreateGestureActivity.java deleted file mode 100644 index c153ac3..0000000 --- a/src/us/minak/CreateGestureActivity.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2009 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 us.minak; - -import android.app.Activity; -import android.os.Bundle; -import android.view.View; -import android.view.MotionEvent; -import android.gesture.GestureOverlayView; -import android.gesture.Gesture; -import android.gesture.GestureLibrary; -import android.widget.TextView; -import android.widget.Toast; - -public class CreateGestureActivity extends Activity { - private static final float LENGTH_THRESHOLD = 120.0f; - - private Gesture mGesture; - private View mDoneButton; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - setContentView(R.layout.create_gesture); - - mDoneButton = findViewById(R.id.done); - - GestureOverlayView overlay = (GestureOverlayView) findViewById(R.id.gestures_overlay); - overlay.addOnGestureListener(new GesturesProcessor()); - } - - @Override - protected void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - - if (mGesture != null) { - outState.putParcelable("gesture", mGesture); - } - } - - @Override - protected void onRestoreInstanceState(Bundle savedInstanceState) { - super.onRestoreInstanceState(savedInstanceState); - - mGesture = savedInstanceState.getParcelable("gesture"); - if (mGesture != null) { - final GestureOverlayView overlay = - (GestureOverlayView) findViewById(R.id.gestures_overlay); - overlay.post(new Runnable() { - public void run() { - overlay.setGesture(mGesture); - } - }); - - mDoneButton.setEnabled(true); - } - } - - public void addGesture(View v) { - if (mGesture != null) { - final TextView input = (TextView) findViewById(R.id.gesture_name); - final CharSequence name = input.getText(); - if (name.length() == 0) { - input.setError(getString(R.string.error_missing_name)); - return; - } - - final GestureLibrary store = SettingsUtil.getGestureLibrary(this); - store.addGesture(name.toString(), mGesture); - store.save(); - - setResult(RESULT_OK); - - final String path = SettingsUtil.getGestureFile(this).getAbsolutePath(); - Toast.makeText(this, getString(R.string.save_success, path), Toast.LENGTH_LONG).show(); - } else { - setResult(RESULT_CANCELED); - } - - finish(); - - } - - public void cancelGesture(View v) { - setResult(RESULT_CANCELED); - finish(); - } - - private class GesturesProcessor implements GestureOverlayView.OnGestureListener { - public void onGestureStarted(GestureOverlayView overlay, MotionEvent event) { - mDoneButton.setEnabled(false); - mGesture = null; - } - - public void onGesture(GestureOverlayView overlay, MotionEvent event) { - } - - public void onGestureEnded(GestureOverlayView overlay, MotionEvent event) { - mGesture = overlay.getGesture(); - if (mGesture.getLength() < LENGTH_THRESHOLD) { - overlay.clear(false); - } - mDoneButton.setEnabled(true); - } - - public void onGestureCancelled(GestureOverlayView overlay, MotionEvent event) { - } - } -} diff --git a/src/us/minak/DrawingSpaceView.java b/src/us/minak/DrawingSpaceView.java deleted file mode 100644 index 7f9c3fa..0000000 --- a/src/us/minak/DrawingSpaceView.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - ******************************************************************************** - * 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.List; - -import android.content.Context; -import android.gesture.Gesture; -import android.gesture.GestureLibraries; -import android.gesture.GestureLibrary; -import android.gesture.GestureOverlayView; -import android.gesture.GestureOverlayView.OnGesturePerformedListener; -import android.gesture.Prediction; -import android.util.AttributeSet; - -/** - * Represent a space where drawing gestures are performed. - */ -public class DrawingSpaceView extends GestureOverlayView implements OnGesturePerformedListener { - private static final double SCORE_TRESHOLD = 3.0; - private final GestureLibrary mGestureLibrary; - private OnGestureRecognizedListener mOnGestureRecognizedListener; - - public DrawingSpaceView(Context context, AttributeSet attrs) { - super(context, attrs); - mGestureLibrary = GestureLibraries.fromRawResource(context, R.raw.gestures); - mGestureLibrary.load(); - addOnGesturePerformedListener(this); - } - - public void setOnGestureRecognizedListener(OnGestureRecognizedListener onGestureRecognizedListener) { - mOnGestureRecognizedListener = onGestureRecognizedListener; - } - - @Override - public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) { - final List predictions = mGestureLibrary.recognize(gesture); - Prediction bestPrediction = null; - if (!predictions.isEmpty()) { - bestPrediction = predictions.get(0); - } - if (mOnGestureRecognizedListener != null && bestPrediction != null) { - if (bestPrediction.score > SCORE_TRESHOLD) { - mOnGestureRecognizedListener.gestureRecognized(bestPrediction.name); - } else { - clear(false); - } - } - } -} diff --git a/src/us/minak/IMEGestureOverlayView.java b/src/us/minak/IMEGestureOverlayView.java new file mode 100644 index 0000000..fed2bf1 --- /dev/null +++ b/src/us/minak/IMEGestureOverlayView.java @@ -0,0 +1,59 @@ +/* + ******************************************************************************** + * 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.List; + +import android.content.Context; +import android.gesture.Gesture; +import android.gesture.GestureLibrary; +import android.gesture.GestureOverlayView; +import android.gesture.GestureOverlayView.OnGesturePerformedListener; +import android.gesture.Prediction; +import android.util.AttributeSet; + +/** + * Represent a space where drawing gestures are performed. + */ +public class IMEGestureOverlayView extends GestureOverlayView implements OnGesturePerformedListener { + private static final double SCORE_TRESHOLD = 3.0; + private final GestureLibrary mGestureLibrary; + private StringReciever mOutput; + + public IMEGestureOverlayView(Context context, AttributeSet attrs) { + super(context, attrs); + mGestureLibrary = SettingsUtil.getGestureLibrary(context); + mGestureLibrary.load(); + addOnGesturePerformedListener(this); + } + + public void setOutput(StringReciever output) { + mOutput = output; + } + + @Override + public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) { + final List predictions = mGestureLibrary.recognize(gesture); + Prediction bestPrediction = null; + if (!predictions.isEmpty()) { + bestPrediction = predictions.get(0); + } + if (mOutput != null && bestPrediction != null) { + if (bestPrediction.score > SCORE_TRESHOLD) { + mOutput.putString(bestPrediction.name); + } else { + clear(false); + } + } + } +} diff --git a/src/us/minak/IMEService.java b/src/us/minak/IMEService.java index 92aad05..fb260aa 100644 --- a/src/us/minak/IMEService.java +++ b/src/us/minak/IMEService.java @@ -5,7 +5,6 @@ import android.view.View; import android.view.inputmethod.EditorInfo; public class IMEService extends InputMethodService { - private IMEView imeView; /** * Loads the configuration. */ @@ -18,14 +17,13 @@ public class IMEService extends InputMethodService { public View onCreateInputView() { final IMEView view = (IMEView) getLayoutInflater().inflate(R.layout.ime, null); - view.setOnCharacterEnteredListener(new OnCharacterEnteredListener() { + view.setOutput(new StringReciever() { @Override - public void characterEntered(String character) { + public void putString(String character) { getCurrentInputConnection().commitText(character, 1); } }); - this.imeView = view; return view; } @@ -33,6 +31,6 @@ public class IMEService extends InputMethodService { * Called to inform the input method that text input has started in an editor. */ public void onStartInput(EditorInfo info, boolean restarting) { - // TODO: get characters from this.imeView, and pass them to getCurrentInputConnection().commitText(..., 1); + // TODO: I don't even know } } diff --git a/src/us/minak/IMEView.java b/src/us/minak/IMEView.java index d341ae5..03b3716 100644 --- a/src/us/minak/IMEView.java +++ b/src/us/minak/IMEView.java @@ -5,30 +5,27 @@ import android.util.AttributeSet; import android.widget.RelativeLayout; public class IMEView extends RelativeLayout{ - private final Context mContext; - private OnCharacterEnteredListener mOnCharacterEnteredListener; + private StringReciever mOutput; + public IMEView(Context context, AttributeSet attrs) { super(context, attrs); - mContext = context; } @Override protected void onFinishInflate() { - DrawingSpaceView drawingSpaceView = (DrawingSpaceView) findViewById(R.id.drawing_space); - drawingSpaceView.setOnGestureRecognizedListener(new OnGestureRecognizedListener() { + IMEGestureOverlayView drawingSpaceView = (IMEGestureOverlayView) findViewById(R.id.drawing_space); + drawingSpaceView.setOutput(new StringReciever() { @Override - public void gestureRecognized(String character) { - enterCharacter(character); - } - + public void putString(String character) { enterCharacter(character); } }); } - public void setOnCharacterEnteredListener(OnCharacterEnteredListener onCharacterEnteredListener) { - mOnCharacterEnteredListener = onCharacterEnteredListener; + public void setOutput(StringReciever output) { + mOutput = output; } private void enterCharacter(String character) { - mOnCharacterEnteredListener.characterEntered(character); + if (mOutput != null) + mOutput.putString(character); } } diff --git a/src/us/minak/OnCharacterEnteredListener.java b/src/us/minak/OnCharacterEnteredListener.java deleted file mode 100644 index 82226b6..0000000 --- a/src/us/minak/OnCharacterEnteredListener.java +++ /dev/null @@ -1,5 +0,0 @@ -package us.minak; - -public interface OnCharacterEnteredListener { - void characterEntered(String character); -} \ No newline at end of file diff --git a/src/us/minak/OnGestureRecognizedListener.java b/src/us/minak/OnGestureRecognizedListener.java deleted file mode 100644 index a30e8b8..0000000 --- a/src/us/minak/OnGestureRecognizedListener.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - ******************************************************************************** - * 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; - -/** - * A simple interface for handling recognizing a gesture. - */ -public interface OnGestureRecognizedListener { - /** - * Invoked when a gesture is recognized. - * - * @param character - * The character represented by the gesture. - */ - void gestureRecognized(String character); -} diff --git a/src/us/minak/SettingsActivity.java b/src/us/minak/SettingsActivity.java index cf3f635..c052e6c 100644 --- a/src/us/minak/SettingsActivity.java +++ b/src/us/minak/SettingsActivity.java @@ -119,7 +119,7 @@ public class SettingsActivity extends ListActivity { /** Called by onClick */ public void addGesture(View v) { - Intent intent = new Intent(this, CreateGestureActivity.class); + Intent intent = new Intent(this, SettingsCreateGestureActivity.class); startActivityForResult(intent, REQUEST_NEW_GESTURE); } diff --git a/src/us/minak/SettingsCreateGestureActivity.java b/src/us/minak/SettingsCreateGestureActivity.java new file mode 100644 index 0000000..64975e0 --- /dev/null +++ b/src/us/minak/SettingsCreateGestureActivity.java @@ -0,0 +1,124 @@ +/* + * Copyright (C) 2009 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 us.minak; + +import android.app.Activity; +import android.os.Bundle; +import android.view.View; +import android.view.MotionEvent; +import android.gesture.GestureOverlayView; +import android.gesture.Gesture; +import android.gesture.GestureLibrary; +import android.widget.TextView; +import android.widget.Toast; + +public class SettingsCreateGestureActivity extends Activity { + private static final float LENGTH_THRESHOLD = 120.0f; + + private Gesture mGesture; + private View mDoneButton; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.gesture_create); + + mDoneButton = findViewById(R.id.done); + + GestureOverlayView overlay = (GestureOverlayView) findViewById(R.id.gestures_overlay); + overlay.addOnGestureListener(new GesturesProcessor()); + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + + if (mGesture != null) { + outState.putParcelable("gesture", mGesture); + } + } + + @Override + protected void onRestoreInstanceState(Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + + mGesture = savedInstanceState.getParcelable("gesture"); + if (mGesture != null) { + final GestureOverlayView overlay = + (GestureOverlayView) findViewById(R.id.gestures_overlay); + overlay.post(new Runnable() { + public void run() { + overlay.setGesture(mGesture); + } + }); + + mDoneButton.setEnabled(true); + } + } + + public void addGesture(View v) { + if (mGesture != null) { + final TextView input = (TextView) findViewById(R.id.gesture_name); + final CharSequence name = input.getText(); + if (name.length() == 0) { + input.setError(getString(R.string.error_missing_name)); + return; + } + + final GestureLibrary store = SettingsUtil.getGestureLibrary(this); + store.addGesture(name.toString(), mGesture); + store.save(); + + setResult(RESULT_OK); + + final String path = SettingsUtil.getGestureFile(this).getAbsolutePath(); + Toast.makeText(this, getString(R.string.save_success, path), Toast.LENGTH_LONG).show(); + } else { + setResult(RESULT_CANCELED); + } + + finish(); + + } + + public void cancelGesture(View v) { + setResult(RESULT_CANCELED); + finish(); + } + + private class GesturesProcessor implements GestureOverlayView.OnGestureListener { + public void onGestureStarted(GestureOverlayView overlay, MotionEvent event) { + mDoneButton.setEnabled(false); + mGesture = null; + } + + public void onGesture(GestureOverlayView overlay, MotionEvent event) { + } + + public void onGestureEnded(GestureOverlayView overlay, MotionEvent event) { + mGesture = overlay.getGesture(); + if (mGesture.getLength() < LENGTH_THRESHOLD) { + overlay.clear(false); + } + mDoneButton.setEnabled(true); + } + + public void onGestureCancelled(GestureOverlayView overlay, MotionEvent event) { + } + } +} diff --git a/src/us/minak/SettingsUtil.java b/src/us/minak/SettingsUtil.java index 8fe710f..c043e0b 100644 --- a/src/us/minak/SettingsUtil.java +++ b/src/us/minak/SettingsUtil.java @@ -1,6 +1,6 @@ package us.minak; -import android.content.ContextWrapper; +import android.content.Context; import android.gesture.GestureLibrary; import android.gesture.GestureLibraries; @@ -13,7 +13,7 @@ public class SettingsUtil { private static File sGestureFile = null; private static GestureLibrary sGestureLibrary = null; - public static File getGestureFile(ContextWrapper context) { + public static File getGestureFile(Context context) { if (sGestureFile == null) sGestureFile = new File(context.getExternalFilesDir(null), "gestures.ttf"); // If the gestures file doesn't exist, copy the default gestures to it @@ -33,7 +33,7 @@ public class SettingsUtil { } return sGestureFile; } - public static GestureLibrary getGestureLibrary(ContextWrapper context) { + public static GestureLibrary getGestureLibrary(Context context) { if (sGestureLibrary == null) sGestureLibrary = GestureLibraries.fromFile(getGestureFile(context)); return sGestureLibrary; diff --git a/src/us/minak/StringReciever.java b/src/us/minak/StringReciever.java new file mode 100644 index 0000000..2b91da1 --- /dev/null +++ b/src/us/minak/StringReciever.java @@ -0,0 +1,5 @@ +package us.minak; + +public interface StringReciever { + void putString(String character); +} -- cgit v1.2.3