1e62c1185bee05facc25d1d725434f517261d308bChris Lattner/* 23da94aec4d429b2ba0f65fa040c33650cade196bMisha Brukman * Copyright (C) 2012 Google Inc. 301d45827a1e512f3b19ba857772bf02baa3c0c4eJohn Criswell * 401d45827a1e512f3b19ba857772bf02baa3c0c4eJohn Criswell * Licensed under the Apache License, Version 2.0 (the "License"); you may not 53060910e290949a9ac5eda8726d030790c4d60ffChris Lattner * use this file except in compliance with the License. You may obtain a copy of 63060910e290949a9ac5eda8726d030790c4d60ffChris Lattner * the License at 73da94aec4d429b2ba0f65fa040c33650cade196bMisha Brukman * 801d45827a1e512f3b19ba857772bf02baa3c0c4eJohn Criswell * http://www.apache.org/licenses/LICENSE-2.0 9e62c1185bee05facc25d1d725434f517261d308bChris Lattner * 1014d7c59491347a2f8f29e120fd75a4cad42f68e7Chris Lattner * Unless required by applicable law or agreed to in writing, software 1114d7c59491347a2f8f29e120fd75a4cad42f68e7Chris Lattner * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12e62c1185bee05facc25d1d725434f517261d308bChris Lattner * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13e62c1185bee05facc25d1d725434f517261d308bChris Lattner * License for the specific language governing permissions and limitations under 14e62c1185bee05facc25d1d725434f517261d308bChris Lattner * the License. 15e62c1185bee05facc25d1d725434f517261d308bChris Lattner */ 16e62c1185bee05facc25d1d725434f517261d308bChris Lattner 17e62c1185bee05facc25d1d725434f517261d308bChris Lattnerpackage com.googlecode.eyesfree.braille.display; 187b9ffe4a6db2e59c18510aac4ba30902653e13ebChris Lattner 19bb9d18c7d5dea146b2810de0a9bc3d21a1766a60Argyrios Kyrtzidisimport android.os.Parcel; 20e62c1185bee05facc25d1d725434f517261d308bChris Lattnerimport android.os.Parcelable; 21f5da13367f88f06e3b585dc2263ab6e9ca6c4bf8Bill Wendling 22028936ada14335bb04f377d46a6261dc4c66dafdJohn Criswell/** 23d0fde30ce850b78371fd1386338350591f9ff494Brian Gaeke * Represents a binding between a combination of braille device keys and a 247b9ffe4a6db2e59c18510aac4ba30902653e13ebChris Lattner * command as declared in {@link BrailleInputEvent}. 257dda395004eb962cef1c1554b1e8b2ad069760e0Chris Lattner */ 267cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattnerpublic class BrailleKeyBinding implements Parcelable { 277cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner private int mCommand; 287cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner private String[] mKeyNames; 297cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner 307cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner public BrailleKeyBinding() { 317cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner } 3240f71134b9fef0ca06c516f033cc9403394a913cChris Lattner 337cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner public BrailleKeyBinding(int command, String[] keyNames) { 347cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner mCommand = command; 357dda395004eb962cef1c1554b1e8b2ad069760e0Chris Lattner mKeyNames = keyNames; 361fca5ff62bb2ecb5bfc8974f4dbfc56e9d3ca721Chris Lattner } 37e62c1185bee05facc25d1d725434f517261d308bChris Lattner 38e62c1185bee05facc25d1d725434f517261d308bChris Lattner /** 39e62c1185bee05facc25d1d725434f517261d308bChris Lattner * Sets the command for this binding. 40e62c1185bee05facc25d1d725434f517261d308bChris Lattner */ 41e62c1185bee05facc25d1d725434f517261d308bChris Lattner public BrailleKeyBinding setCommand(int command) { 42e3a1d054483d6e2551a43232f2c968fc7ce523f2Chris Lattner mCommand = command; 43e62c1185bee05facc25d1d725434f517261d308bChris Lattner return this; 44e6c27de069225e1122c78385ad22a2ff656db8e6David Greene } 45711e5d96aa648ebe96b09483d0775f3b16283e3dChris Lattner 464afc509b7ffe2c4ea234dfd7af5105feb21685d9David Greene /** 47e62c1185bee05facc25d1d725434f517261d308bChris Lattner * Sets the key names for this binding. 488e9a9774eb12b5242f74b8ac5b20e0a938ec9c53Chris Lattner */ 49b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner public BrailleKeyBinding setKeyNames(String[] keyNames) { 50b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner mKeyNames = keyNames; 51a1651900e1772b05afd2280308e9acc5a58cefb8Chris Lattner return this; 52b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner } 531dba7abdd77e19c230f0426825a5ae4879471dccChris Lattner 547cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner /** 557dda395004eb962cef1c1554b1e8b2ad069760e0Chris Lattner * Returns the command for this key binding. 56e62c1185bee05facc25d1d725434f517261d308bChris Lattner * @see {@link BrailleInputEvent}. 577dda395004eb962cef1c1554b1e8b2ad069760e0Chris Lattner */ 58293b13350c2fbae8a64b0b0beb440cb859968c8cBob Wilson public int getCommand() { 59e62c1185bee05facc25d1d725434f517261d308bChris Lattner return mCommand; 60e62c1185bee05facc25d1d725434f517261d308bChris Lattner } 61e62c1185bee05facc25d1d725434f517261d308bChris Lattner 62e62c1185bee05facc25d1d725434f517261d308bChris Lattner /** 63e62c1185bee05facc25d1d725434f517261d308bChris Lattner * Returns the list of device-specific keys that, when pressed 64e62c1185bee05facc25d1d725434f517261d308bChris Lattner * at the same time, will yield the command of this key binding. 65e62c1185bee05facc25d1d725434f517261d308bChris Lattner */ 66e62c1185bee05facc25d1d725434f517261d308bChris Lattner public String[] getKeyNames() { 6799ba1f7b8deaf2a296c98600dbf593754cbd43a2Chris Lattner return mKeyNames; 68bf8644ca1fb960e94d14428adbab8277679e2a9dChris Lattner } 697cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner 707cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner // For Parcelable support. 717cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner 727cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner public static final Parcelable.Creator<BrailleKeyBinding> CREATOR = 737cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner new Parcelable.Creator<BrailleKeyBinding>() { 747cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner @Override 757cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner public BrailleKeyBinding createFromParcel(Parcel in) { 76e62c1185bee05facc25d1d725434f517261d308bChris Lattner return new BrailleKeyBinding(in); 77e62c1185bee05facc25d1d725434f517261d308bChris Lattner } 78e62c1185bee05facc25d1d725434f517261d308bChris Lattner 79e62c1185bee05facc25d1d725434f517261d308bChris Lattner @Override 80e62c1185bee05facc25d1d725434f517261d308bChris Lattner public BrailleKeyBinding[] newArray(int size) { 81e62c1185bee05facc25d1d725434f517261d308bChris Lattner return new BrailleKeyBinding[size]; 82e6c27de069225e1122c78385ad22a2ff656db8e6David Greene } 83e6c27de069225e1122c78385ad22a2ff656db8e6David Greene }; 84e6c27de069225e1122c78385ad22a2ff656db8e6David Greene 85e8cf21e8e3db64dd49777d6bf6c867d47e9f5407David Greene @Override 86e8cf21e8e3db64dd49777d6bf6c867d47e9f5407David Greene public int describeContents() { 87e8cf21e8e3db64dd49777d6bf6c867d47e9f5407David Greene return 0; 884afc509b7ffe2c4ea234dfd7af5105feb21685d9David Greene } 894afc509b7ffe2c4ea234dfd7af5105feb21685d9David Greene 904afc509b7ffe2c4ea234dfd7af5105feb21685d9David Greene @Override 91e3a1d054483d6e2551a43232f2c968fc7ce523f2Chris Lattner public void writeToParcel(Parcel out, int flags) { 92e62c1185bee05facc25d1d725434f517261d308bChris Lattner out.writeInt(mCommand); 93e62c1185bee05facc25d1d725434f517261d308bChris Lattner out.writeStringArray(mKeyNames); 948e9a9774eb12b5242f74b8ac5b20e0a938ec9c53Chris Lattner } 95b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner 96b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner private BrailleKeyBinding(Parcel in) { 97b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner mCommand = in.readInt(); 98b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner mKeyNames = in.createStringArray(); 99b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner } 100b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner} 101b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner