Back to project page U-Mote.
The source code is released under:
Apache License
If you think the Android project U-Mote listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* * Copyright (C) 2009 The Android Open Source Project */* www . j ava2s . co m*/ * 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.example.u_mote; import java.io.File; import android.app.Activity; import android.content.SharedPreferences; import android.gesture.Gesture; import android.gesture.GestureLibrary; import android.gesture.GestureOverlayView; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class CreateGestureActivity extends Activity { private static final float LENGTH_THRESHOLD = 120.0f; public static final String MAPPING_FILE = "command_map"; 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); } } @SuppressWarnings({"UnusedDeclaration"}) 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) { Toast.makeText(this, R.string.error_missing_name, Toast.LENGTH_SHORT).show(); return; } final TextView command_input = (TextView) findViewById(R.id.gesture_command); final CharSequence command = command_input.getText(); if (command.length() == 0) { Toast.makeText(this, R.string.error_missing_command, Toast.LENGTH_SHORT).show(); return; } final GestureLibrary store = MainActivity.getStore(); store.addGesture(name.toString(), mGesture); store.save(); SharedPreferences command_storage = getSharedPreferences(MAPPING_FILE, 0); SharedPreferences.Editor editor = command_storage.edit(); editor.putString(name.toString(), command.toString()); editor.commit(); setResult(RESULT_OK); final String path = new File(getApplicationContext().getFilesDir(), "gestures").getAbsolutePath(); Toast.makeText(this, getString(R.string.save_success, path), Toast.LENGTH_LONG).show(); } else { setResult(RESULT_CANCELED); } finish(); } @SuppressWarnings({"UnusedDeclaration"}) 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) { } } }