v0.1.0 - turn the phone to glass of your smart device
Get more information about this project on the official website carton.mobi
Either you start a new app or you adapt an existing one, there are few easy steps to do in order to fully enjoy a CARTON Viewer.
1 - Add the library to your gradle app file
dependencies {
...
compile 'mobi.carton:library:0.1.0'
}
2 - Update your manifest: set the orientation of your activity (all of them) to landscape
, add a category to make your launcher (only) activity compatible, finally, add a simple description.
<application
...
android:description="@string/app_description">
<activity
...
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
...
<category android:name="mobi.carton.intent.category.COMPATIBLE"/>
</intent-filter>
</activity>
</application>
3 - Extend your activity with CartonActivity
public class MyActivity extends CartonActivity {
...
In order to fully use the Carton viewer, everything on the screen needs to be horizontally reversed, the brightness set the maximum, and the size and margin has to be set to respectively 60x35mm and 10x10mm (from top left).
Carton SDK make it easy by extending CartonActivity
class instead of Activity
.
public class MainActivity extends CartonActivity {
...
The default launcher provide help to the user to place the mobile phone into the Carton viewer.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startDefaultLauncher();
...
}
This library is here to help head gesture recognition when using Carton. Three kinds of gestures are available : tilting
, nodding
, and shaking
.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
HeadRecognition headRecognition = new HeadRecognition(this);
headRecognition.setOnHeadGestureListener(new HeadRecognition.OnHeadGestureListener() {
@Override
public void onTilt(int direction) {
switch (direction) {
case HeadRecognition.TILT_RIGHT:
// do whatever
break;
case HeadRecognition.TILT_LEFT:
// do whatever
break;
}
}
@Override
public void onNod(int direction) {
switch (direction) {
case HeadRecognition.NOD_DOWN:
// do whatever
break;
case HeadRecognition._NOD_UP:
// do whatever
break;
}
}
@Override
public void onShake() {
// ... do whatever
}
});
}
// ...
@Override
protected void onResume() {
super.onResume();
mHeadRecognition.start();
}
@Override
protected void onPause() {
super.onPause();
mHeadRecognition.stop();
}
compile 'mobi.carton:library:0.1.0'
If you would like to contribute code, you can do so through GitHub by forking the repository and sending a pull request. When submitting code, please make every effort to follow existing conventions and style in order to keep the code as readable as possible.
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.
It is an open-source and open-design project, everyone is welcome or encouraged to contribute. Besides, this project is funded and supported by Natural Sciences and Engineering Research Council of Canada and 44 screens.