Android Open Source - ZShaolin Latin Keyboard






From Project

Back to project page ZShaolin.

License

The source code is released under:

GNU General Public License

If you think the Android project ZShaolin listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2008-2009 Google Inc.//from www . j  av  a  2  s  . 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.spartacusrex.spartacuside.keyboard;

import android.content.Context;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.inputmethodservice.Keyboard;
import android.inputmethodservice.Keyboard.Key;
import android.inputmethodservice.Keyboard.Row;
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import org.dyne.zshaolin.R;

public class LatinKeyboard extends Keyboard {

    private static int[] NORMAL_ENTER = {-743};
    private static int[] TERMINAL_ENTER = {13};

    private Key mEnterKey;
    private Key mCtrlKey;
    private Key mALTKey;
    private Key mShiftKeyLeft;
    private Key mShiftKeyRight;
    private Key mFNKey;
    
    public LatinKeyboard(Context context, int xmlLayoutResId) {
        super(context, xmlLayoutResId);
    }

    public LatinKeyboard(Context context, int layoutTemplateResId, 
            CharSequence characters, int columns, int horizontalPadding) {
        super(context, layoutTemplateResId, characters, columns, horizontalPadding);
    }

    boolean mKeysPositionSet = false;
    public boolean hasKeysSet(){
        return mKeysPositionSet;
    }
    public void KeysSet(){
        mKeysPositionSet = true;
    }

    @Override
    protected Key createKeyFromXml(Resources res, Row parent, int x, int y, XmlResourceParser parser) {
        Key key = new LatinKey(res, parent, x, y, parser);

        if (key.codes[0] == 13) {
            mEnterKey = key;
        }else if (key.codes[0] == TerminalKeyboard.CTRL_KEY) {
            mCtrlKey = key;
        }else if (key.codes[0] == TerminalKeyboard.ALT_KEY) {
            mALTKey = key;
        }else if (key.codes[0] == -1) {
            mShiftKeyLeft = key;
        }else if (key.codes[0] == -999) {
            mShiftKeyRight = key;
        }else if (key.codes[0] == -2) {
            mFNKey = key;
        }

        return key;
    }
    
    private Key getCTRLKey(){
        return mCtrlKey;
    }

    private Key getALTKey(){
        return mALTKey;
    }

    public Key getShiftKeyLeft(){
        return mShiftKeyLeft;
    }

    public Key getShiftKeyRight(){
        return mShiftKeyRight;
    }

    private Key getFNKey(){
        return mFNKey;
    }

    public boolean setALTKeyState(boolean zOn){
        Key key = getALTKey();
        if(key != null){
           key.on = zOn;
           return true;
        }
        return false;
    }

    public boolean setCTRLKeyState(boolean zOn){
        Key key = getCTRLKey();
        if(key != null){
           key.on = zOn;
           return true;
        }
        return false;
    }

    public boolean setFNKeyState(boolean zOn){
        Key key = getFNKey();
        if(key != null){
           key.on = zOn;
           return true;
        }
        return false;
    }

//    public boolean setSHIFTKeyState(boolean zOn){
//        Key key = getShiftKey();
//        if(key != null){
//           key.on = zOn;
//           return true;
//        }
//        return false;
//    }
    /**
     * This looks at the ime options given by the current editor, to set the
     * appropriate label on the keyboard's enter key (if it has one).
     */
    void setImeOptions(Resources res, int options) {
        if (mEnterKey == null) {
            return;
        }
        
        int valnorm = KeyEvent.KEYCODE_ENTER;

        switch (options&(EditorInfo.IME_MASK_ACTION|EditorInfo.IME_FLAG_NO_ENTER_ACTION)) {
            case EditorInfo.IME_ACTION_GO:
                mEnterKey.iconPreview = null;
                mEnterKey.icon  = null;
                mEnterKey.codes = NORMAL_ENTER;
                mEnterKey.label = res.getText(R.string.label_go_key);
                break;
            case EditorInfo.IME_ACTION_NEXT:
                mEnterKey.iconPreview = null;
                mEnterKey.icon = null;
                mEnterKey.codes = NORMAL_ENTER;
                mEnterKey.label = res.getText(R.string.label_next_key);
                break;
            case EditorInfo.IME_ACTION_SEARCH:
                mEnterKey.icon = res.getDrawable(R.drawable.sym_keyboard_search);
                mEnterKey.codes = NORMAL_ENTER;
                mEnterKey.label = null;
                break;
            case EditorInfo.IME_ACTION_SEND:
                mEnterKey.iconPreview = null;
                mEnterKey.icon = null;
                mEnterKey.codes = NORMAL_ENTER;
                mEnterKey.label = res.getText(R.string.label_send_key);
                break;
            default:
                mEnterKey.icon = res.getDrawable(R.drawable.sym_keyboard_return);
                mEnterKey.label = null;
                mEnterKey.codes = TERMINAL_ENTER;
                break;
        }
    }
    
    static class LatinKey extends Keyboard.Key {
        
        public LatinKey(Resources res, Keyboard.Row parent, int x, int y, XmlResourceParser parser) {
            super(res, parent, x, y, parser);
        }
        
        /**
         * Overriding this method so that we can reduce the target area for the key that
         * closes the keyboard. 
         */
//        @Override
//        public boolean isInside(int x, int y) {
//            return super.isInside(x, codes[0] == KEYCODE_CANCEL ? y - 10 : y);
//        }
    }

}




Java Source Code List

com.spartacusrex.spartacuside.EmulatorView.java
com.spartacusrex.spartacuside.Exec.java
com.spartacusrex.spartacuside.TermDebug.java
com.spartacusrex.spartacuside.TermPreferences.java
com.spartacusrex.spartacuside.TermService.java
com.spartacusrex.spartacuside.TermViewFlipper.java
com.spartacusrex.spartacuside.Term.java
com.spartacusrex.spartacuside.WindowList.java
com.spartacusrex.spartacuside.keyboard.CandidateView.java
com.spartacusrex.spartacuside.keyboard.KeyboardPrefs.java
com.spartacusrex.spartacuside.keyboard.KeyboardSwitcher.java
com.spartacusrex.spartacuside.keyboard.LatinKeyboardView.java
com.spartacusrex.spartacuside.keyboard.LatinKeyboard.java
com.spartacusrex.spartacuside.keyboard.MyKeyboardView.java
com.spartacusrex.spartacuside.keyboard.TerminalKeyboard.java
com.spartacusrex.spartacuside.model.Screen.java
com.spartacusrex.spartacuside.model.TextRenderer.java
com.spartacusrex.spartacuside.model.UpdateCallback.java
com.spartacusrex.spartacuside.session.TermSession.java
com.spartacusrex.spartacuside.session.TerminalEmulator.java
com.spartacusrex.spartacuside.session.TranscriptScreen.java
com.spartacusrex.spartacuside.util.ByteQueue.java
com.spartacusrex.spartacuside.util.ServiceForegroundCompat.java
com.spartacusrex.spartacuside.util.TermSettings.java
com.spartacusrex.spartacuside.util.dialogpref.java
com.spartacusrex.spartacuside.util.hardkeymappings.java
com.spartacusrex.spartacuside.util.keydata.java
com.spartacusrex.spartacuside.web.sockethandler.java
com.spartacusrex.spartacuside.web.webserver.java
org.dyne.zshaolin.Start.java
org.dyne.zshaolin.startup.TerminalIDEPrefs.java
org.dyne.zshaolin.startup.setup.assetextract.java
org.dyne.zshaolin.startup.setup.filemanager.java
org.dyne.zshaolin.startup.installer.java
org.dyne.zshaolin.startup.introscreen.java