Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 2ca8aa5
Showing
51 changed files
with
6,760 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<classpath> | ||
<classpathentry kind="src" path="src"/> | ||
<classpathentry kind="src" path="gen"/> | ||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> | ||
<classpathentry kind="src" path="netlib_src"/> | ||
<classpathentry kind="src" path="motelib_src"/> | ||
<classpathentry kind="src" path="xmlfoo_src"/> | ||
<classpathentry kind="output" path="bin"/> | ||
</classpath> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
bin/ | ||
gen/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<projectDescription> | ||
<name>valence</name> | ||
<comment></comment> | ||
<projects> | ||
</projects> | ||
<buildSpec> | ||
<buildCommand> | ||
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
<buildCommand> | ||
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
<buildCommand> | ||
<name>org.eclipse.jdt.core.javabuilder</name> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
<buildCommand> | ||
<name>com.android.ide.eclipse.adt.ApkBuilder</name> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
</buildSpec> | ||
<natures> | ||
<nature>com.android.ide.eclipse.adt.AndroidNature</nature> | ||
<nature>org.eclipse.jdt.core.javanature</nature> | ||
</natures> | ||
<linkedResources> | ||
<link> | ||
<name>motelib_src</name> | ||
<type>2</type> | ||
<locationURI>_android_motelib_4a035a12/src</locationURI> | ||
</link> | ||
<link> | ||
<name>netlib_src</name> | ||
<type>2</type> | ||
<locationURI>_android_netlib_c17ab7c8/src</locationURI> | ||
</link> | ||
<link> | ||
<name>xmlfoo_src</name> | ||
<type>2</type> | ||
<locationURI>_android_xmlfoo_d2f8314f/src</locationURI> | ||
</link> | ||
</linkedResources> | ||
</projectDescription> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
package="com.cafbit.valence" | ||
android:versionCode="3" | ||
android:versionName="1.2"> | ||
<uses-sdk android:minSdkVersion="7" /> | ||
|
||
<application android:name=".ValenceApplication" android:icon="@drawable/icon" android:label="@string/app_name"> | ||
<activity android:name=".SelectionActivity" android:label="@string/app_name"> | ||
<intent-filter> | ||
<action android:name="android.intent.action.MAIN" /> | ||
<category android:name="android.intent.category.LAUNCHER" /> | ||
</intent-filter> | ||
</activity> | ||
<activity android:name="ValenceActivity" | ||
android:label="@string/app_name" | ||
android:windowSoftInputMode="stateUnchanged|adjustResize"> | ||
> | ||
</activity> | ||
<activity android:name="com.cafbit.motelib.settings.AddDeviceActivity" android:label="Add a new VNC profile..."> | ||
</activity> | ||
<activity android:name="com.cafbit.motelib.discovery.DiscoveryActivity" android:label="Discover VNC servers..."> | ||
</activity> | ||
<activity android:name="com.cafbit.valence.HelpActivity" android:label="Valence Help"> | ||
</activity> | ||
|
||
|
||
</application> | ||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> | ||
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"></uses-permission> | ||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> | ||
<uses-permission android:name="android.permission.INTERNET"></uses-permission> | ||
</manifest> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
/* | ||
* Copyright 2011 David Simmons | ||
* http://cafbit.com/entry/testing_multicast_support_on_android | ||
* | ||
* 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. | ||
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,186 @@ | ||
<html> | ||
<head> | ||
<title>Valence</title> | ||
</head> | ||
<body> | ||
<img src="file:///android_res/drawable/icon.png"></img> | ||
<h1>Valence</h1> | ||
|
||
<p>Version 1.1, released August 27, 2011</p> | ||
<p>© 2011 David Simmons</p> | ||
<p><tt><a href="http://cafbit.com/">http://cafbit.com/</a></tt></p> | ||
|
||
<ul> | ||
<li><a href="#introduction">Introduction</a></li> | ||
<li><a href="#installing">Installing a VNC server on your computer</a></li> | ||
<li><a href="#configuring">Configuring <em>Valence</em></a></li> | ||
<li><a href="#using">Using <em>Valence</em></a></li> | ||
<li><a href="#security">Security considerations</a></li> | ||
<li><a href="#misc">Miscellaneous comments</a></li> | ||
</ul> | ||
|
||
<a name="introduction"></a> | ||
<h2>Introduction</h2> | ||
|
||
<p> | ||
<em>Valence</em> turns your Android phone or tablet into a remote | ||
keyboard and mouse for any computer. The inspiration for <em>Valence</em> | ||
was a need to control a home theater PC from the couch, but it can be | ||
useful in any situation where a computer doesn't have a keyboard and | ||
mouse handy. Your computer must be reachable over the network from | ||
your Android device, and be running a VNC server. | ||
</p> | ||
|
||
<p> | ||
Most computer remote control apps require that the controlled computer | ||
be running special software, unique to the app, that relays mouse and | ||
keyboard events to the operating system. Not only does this add yet | ||
another single-purpose ever-running program to your computer, but the | ||
author may not have support for your operating system yet. To solve | ||
this problem, <em>Valence</em> uses the industry standard | ||
<a href="http://en.wikipedia.org/wiki/Virtual_Network_Computing">VNC</a> | ||
system and its <a href="http://en.wikipedia.org/wiki/RFB_protocol">RFB</a> | ||
(remote framebuffer) protocol. Many operating systems come with VNC | ||
built-in, and many people may already have VNC installed and enabled. | ||
Instead of using VNC to see the screen of a remote computer, <em>Valence</em> | ||
uses VNC in a strictly one-way fashion—input events are | ||
transmitted from the Android handset to the VNC server, but video | ||
frames are never sent from the server to the handset. | ||
</p> | ||
|
||
<a name="installing"></a> | ||
<h2>Installing a VNC server on your computer</h2> | ||
|
||
<p> | ||
To use <em>Valence</em>, make sure you have VNC server software installed on | ||
your computer, and configured to allow connections: | ||
</p> | ||
|
||
<ul> | ||
<li> | ||
<em>Mac OS</em>. Macs have built-in VNC software, so no additional | ||
software needs to be installed. In "System Preferences," go to the | ||
"Sharing" tab and make sure "Remote Management" is selected. Then click | ||
"Computer Settings..." and make sure "VNC viewers may control screen | ||
with password" is selected, and provide a password. | ||
NOTE: Apple has been fiddling with their VNC support lately. | ||
An update pushed to Snow Leopard in July 2011 breaks right-click support, | ||
and Valence is likely to not work with Lion at all. I'll try to work around | ||
these problems in future releases. | ||
</li> | ||
<li> | ||
<em>Ubuntu Linux</em>. Ubuntu Linux has built-in VNC software, so no | ||
additional software needs to be installed. In the System menu, select | ||
Preferences then Remote Desktop. Check "Allow other users to view your | ||
desktop" and "Allow other users to control your desktop," uncheck "You | ||
must confirm each access to this machine," and check "Require the user | ||
to enter this password." Assign a password. | ||
</li> | ||
<li> | ||
<em>Windows</em>. Windows does not have a built-in VNC server, so | ||
you'll need to install one. I recommend downloading the latest version | ||
of <a href="http://www.tightvnc.com/">TightVNC</a>. On TightVNC's | ||
<a href="http://www.tightvnc.com/download.php">download page</a>, | ||
click the "download" link next to "Self-installing package for Windows." | ||
Open the downloaded package, click "Run," and proceed through the setup | ||
wizard. (Just keep hitting "Next" and "I agree".) | ||
Enter a password when prompted in the "Service Configuration" dialog, | ||
click "Install," and complete the installation. | ||
</li> | ||
</ul> | ||
|
||
<a name="configuring"></a> | ||
<h2>Configuring <em>Valence</em></h2> | ||
|
||
<p> | ||
Before using <em>Valence</em>, you must configure the app with information | ||
about the computer you wish to control. There are two ways to do this. | ||
When you first launch <em>Valence</em>, you will be presented with a list | ||
of configured VNC servers, the option to manually add a new server, and the | ||
option to automatically discover VNC servers. | ||
</p> | ||
|
||
<ul> | ||
<li> | ||
<em>Manually add a VNC server</em>. Select "Add a new VNC server...". Enter | ||
the IP address or hostname of your VNC server and the password, then click | ||
"Connect." The server will then be configured in <em>Valence</em>. | ||
</li> | ||
<li> | ||
<em>Discover a VNC server</em>. Select "Discover VNC servers...". VNC servers | ||
that are capable of advertising themselves on the network will appear in a | ||
list. (Note: Not all VNC servers support this feature—in particular, | ||
TightVNC does not. Also, some Android handsets such as the HTC EVO 4G have | ||
trouble performing discovery.) Select the desired server from the list, and | ||
you will be presented with a server configuration screen. Enter your password, | ||
click "Connect," and the server will be configured in <em>Valence</em>. | ||
</li> | ||
</ul> | ||
|
||
<a name="using"></a> | ||
<h2>Using <em>Valence</em></h2> | ||
|
||
<p> | ||
To control a computer, select its name from the list which appears when you | ||
launch <em>Valence</em>. After connecting, you will see a large touchpad | ||
area on the screen. You can use this touchpad to move the mouse pointer of | ||
the computer in much the same way you use a touchpad on a laptop—swipe | ||
your finger in the direction you want the pointer to move. To click the | ||
mouse, quickly tap your finger anywhere in the touchpad area. To perform | ||
a right-click, tap on the touchpad with two fingers at the same time. To | ||
scroll, swipe two fingers up and down. | ||
</p> | ||
|
||
<p> | ||
If your Android device has a physical keyboard, you can use it to type on | ||
the remote computer. Otherwise, pressing the keyboard icon will present the | ||
soft keyboard which can be used for typing. | ||
</p> | ||
|
||
<p> | ||
When finished, press your device's back key. | ||
</p> | ||
|
||
<a name="security"></a> | ||
<h2>Security considerations</h2> | ||
|
||
The VNC protocol (RFB) performs authentication using a DES-based | ||
challenge-response system, so your VNC password is never transmitted in | ||
the clear. However, security-conscious users should note the following: | ||
<ul> | ||
<li> | ||
Keys and mouse movements <em>are</em> transmitted in the clear. | ||
Therefore, if you type a password on your computer via a VNC session, | ||
that password will be sent in the clear. If you only use <em>Valence</em> | ||
on your home network with a WPA-secured wireless access point, this | ||
is probably acceptable since everything is being encrypted by your | ||
wireless network. | ||
</li> | ||
<li> | ||
<em>Valence</em> stores your VNC passwords on your Android device in | ||
an encrypted format. However, since it is necessary for <em>Valence</em> | ||
itself to possess the means to decrypt these passwords, this | ||
is only a deterrent to the most casual snooping. A determined and | ||
skilled criminal with physical access to your phone could still | ||
uncover your stored VNC passwords. | ||
</li> | ||
</ul> | ||
|
||
<a name="misc"></a> | ||
<h2>Miscellaneous comments</h2> | ||
|
||
<p>What does the name <em>Valence</em> mean?</p> | ||
|
||
<p> | ||
The name <em>Valence</em> has the letters V, N, and C, so it seemed like | ||
an appropriate name for a VNC client. In chemistry, | ||
"<a href="http://en.wikipedia.org/wiki/Valence_(chemistry)">valence</a>" | ||
refers to an atom's capacity for joining with other atoms to form | ||
compounds by sharing electrons. This connection of atoms using their | ||
<em>valence electrons</em> is called a <em>covalent bond</em>. | ||
In much the same way that valence helps hold the universe together, | ||
I hope that <em>Valence</em> helps bring your home electronics together. | ||
</p> | ||
|
||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# This file is automatically generated by Android Tools. | ||
# Do not modify this file -- YOUR CHANGES WILL BE ERASED! | ||
# | ||
# This file must be checked in Version Control Systems. | ||
# | ||
# To customize properties used by the Ant build system use, | ||
# "build.properties", and override values to adapt the script to your | ||
# project structure. | ||
|
||
# Project target. | ||
target=android-7 | ||
android.library.reference.1=../xmlfoo | ||
android.library.reference.2=../netlib | ||
android.library.reference.3=../motelib |
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:id="@+id/layout_root" | ||
android:orientation="vertical" | ||
android:layout_width="fill_parent" | ||
android:layout_height="fill_parent" | ||
android:padding="0dp" | ||
> | ||
<ScrollView | ||
android:id="@+id/about_scroll_view" | ||
android:layout_width="fill_parent" | ||
android:layout_height="fill_parent" | ||
> | ||
<LinearLayout | ||
android:orientation="vertical" | ||
android:layout_width="fill_parent" | ||
android:layout_height="fill_parent" | ||
android:padding="10dp" | ||
> | ||
<TextView android:id="@+id/about_name" | ||
android:layout_width="wrap_content" | ||
android:layout_height="wrap_content" | ||
android:textColor="#FFF" | ||
android:text="@string/app_name" | ||
android:layout_gravity="center_horizontal" | ||
android:textSize="24sp" | ||
android:paddingBottom="5sp" | ||
/> | ||
<TextView android:id="@+id/about_version" | ||
android:layout_width="wrap_content" | ||
android:layout_height="wrap_content" | ||
android:textColor="#FFF" | ||
android:typeface="monospace" | ||
android:textSize="12sp" | ||
android:text="@string/about_version" | ||
android:layout_gravity="center_horizontal" | ||
android:paddingBottom="5sp" | ||
/> | ||
<TextView android:id="@+id/about_build" | ||
android:layout_width="wrap_content" | ||
android:layout_height="wrap_content" | ||
android:textColor="#FFF" | ||
android:typeface="monospace" | ||
android:textSize="12sp" | ||
android:text="@string/about_build_date" | ||
android:layout_gravity="center_horizontal" | ||
android:paddingBottom="5sp" | ||
/> | ||
<TextView android:id="@+id/about_copyright" | ||
android:layout_width="wrap_content" | ||
android:layout_height="wrap_content" | ||
android:textColor="#FFF" | ||
android:text="@string/about_copyright" | ||
android:layout_gravity="center_horizontal" | ||
android:textSize="16sp" | ||
android:paddingBottom="5sp" | ||
/> | ||
<TextView android:id="@+id/about_url" | ||
android:layout_width="wrap_content" | ||
android:layout_height="wrap_content" | ||
android:textColor="#FFF" | ||
android:text="@string/about_url" | ||
android:layout_gravity="center_horizontal" | ||
android:textSize="16sp" | ||
android:paddingBottom="10sp" | ||
/> | ||
<TextView android:id="@+id/about_description" | ||
android:layout_width="fill_parent" | ||
android:layout_height="wrap_content" | ||
android:textColor="#FFF" | ||
android:text="@string/about_description" | ||
android:layout_gravity="center_horizontal" | ||
/> | ||
</LinearLayout> | ||
</ScrollView> | ||
</LinearLayout> |
Oops, something went wrong.