com.mobisci_lab.virtualkeyboard.softkeyboard.LatinKeyboardView.java Source code

Java tutorial

Introduction

Here is the source code for com.mobisci_lab.virtualkeyboard.softkeyboard.LatinKeyboardView.java

Source

/*
 * Copyright (C) 2008-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 com.mobisci_lab.virtualkeyboard.softkeyboard;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Typeface;
import android.inputmethodservice.Keyboard;
import android.inputmethodservice.Keyboard.Key;
import android.inputmethodservice.KeyboardView;
import android.support.v4.content.ContextCompat;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.util.Log;
import android.view.inputmethod.InputMethodSubtype;

import com.mobisci_lab.virtualkeyboard.R;

import java.util.List;

public class LatinKeyboardView extends KeyboardView {

    static final int KEYCODE_OPTIONS = -100;
    // TODO: Move this into android.inputmethodservice.Keyboard
    static final int KEYCODE_LANGUAGE_SWITCH = -101;
    private static final String TAG1 = "LatinKeyboardView";

    public LatinKeyboardView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public LatinKeyboardView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected boolean onLongPress(Key key) {
        if (key.codes[0] == Keyboard.KEYCODE_CANCEL) {
            getOnKeyboardActionListener().onKey(KEYCODE_OPTIONS, null);
            return true;
        } else {
            return super.onLongPress(key);
        }
    }

    void setSubtypeOnSpaceKey(final InputMethodSubtype subtype) {
        //        final LatinKeyboard keyboard = (LatinKeyboard)getKeyboard();
        //        keyboard.setSpaceIcon(getResources().getDrawable(subtype.getIconResId()));
        //        invalidateAllKeys();
    }

    @Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        TextPaint paint = new TextPaint();
        paint.setAntiAlias(true);
        paint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));
        paint.setTextSize(11 * getResources().getDisplayMetrics().density);
        paint.setColor(ContextCompat.getColor(this.getContext(), R.color.candidate_other));

        List<Key> keys = getKeyboard().getKeys();
        for (Key key : keys) {
            float x = key.x + key.width / 2 + key.width / 5;
            float y = key.y + key.width / 2;
            String text = "";
            switch (key.codes[0]) {
            case 113:
                text = "1";
                break;
            case 119:
                text = "2";
                break;
            case 101:
                text = "3";
                break;
            case 114:
                text = "4";
                break;
            case 116:
                text = "5";
                break;
            case 121:
                text = "6";
                break;
            case 117:
                text = "7";
                break;
            case 105:
                text = "8";
                break;
            case 111:
                text = "9";
                break;
            case 112:
                text = "0";
                break;

            }
            canvas.drawText(text, x, y, paint);
        }
    }
}