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