AbstractDrawingPreview.java revision cf915ddc878699909365dd599a0e154552e244e2
1d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi/* 2d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * Copyright (C) 2012 The Android Open Source Project 3d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * 48aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * Licensed under the Apache License, Version 2.0 (the "License"); 58aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * you may not use this file except in compliance with the License. 68aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * You may obtain a copy of the License at 7d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * 88aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * http://www.apache.org/licenses/LICENSE-2.0 9d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * 10d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * Unless required by applicable law or agreed to in writing, software 118aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * distributed under the License is distributed on an "AS IS" BASIS, 128aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * See the License for the specific language governing permissions and 148aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * limitations under the License. 15d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi */ 16d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 17d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bipackage com.android.inputmethod.keyboard.internal; 18d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 19d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Biimport android.graphics.Canvas; 204987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaokaimport android.view.View; 21d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 22d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Biimport com.android.inputmethod.keyboard.PointerTracker; 23d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 24d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi/** 25cf915ddc878699909365dd599a0e154552e244e2Tadashi G. Takaoka * Abstract base class for previews that are drawn on DrawingPreviewPlacerView, e.g., 26cf915ddc878699909365dd599a0e154552e244e2Tadashi G. Takaoka * GestureFloatingTextDrawingPreview, GestureTrailsDrawingPreview, and 27cf915ddc878699909365dd599a0e154552e244e2Tadashi G. Takaoka * SlidingKeyInputDrawingPreview. 28d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi */ 29d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bipublic abstract class AbstractDrawingPreview { 304987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka private final View mDrawingView; 31d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi private boolean mPreviewEnabled; 32d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 334987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka protected AbstractDrawingPreview(final View drawingView) { 344987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka mDrawingView = drawingView; 354987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka } 364987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka 374987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka public final View getDrawingView() { 384987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka return mDrawingView; 394987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka } 404987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka 414987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka public final void setPreviewEnabled(final boolean enabled) { 42d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi mPreviewEnabled = enabled; 43d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi } 44d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 45d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi public boolean isPreviewEnabled() { 46d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi return mPreviewEnabled; 47d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi } 48d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 494987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka public void setKeyboardGeometry(final int[] originCoords, final int width, final int height) { 504987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka // Default implementation is empty. 514987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka } 524987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka 534987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka public void onDetachFromWindow() { 544987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka // Default implementation is empty. 554987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka } 564987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka 57d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi /** 58d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * Draws the preview 59d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * @param canvas The canvas where the preview is drawn. 60d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi */ 612ecbfe8e93f8d8fce0adc47659b5d2f52cb68849Tadashi G. Takaoka public abstract void drawPreview(final Canvas canvas); 62d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 63d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi /** 64d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * Set the position of the preview. 654987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka * @param tracker The new location of the preview is based on the points in PointerTracker. 66d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi */ 674987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka public abstract void setPreviewPosition(final PointerTracker tracker); 68d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi} 69