Skip to content

Commit 1a10890

Browse files
committed
Extensive rewrite of core classes
Changed project structure to support Gradle Added support for methods of async nature in GazeManager Added support for debug mode via GazeManagerCore.IS_DEBUG_MODE Added calibration evaluation class CalibUtils Added JavaFX calibration example Added Unit Tests
1 parent f107af5 commit 1a10890

76 files changed

Lines changed: 7858 additions & 3578 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.classpath

Lines changed: 0 additions & 7 deletions
This file was deleted.

.gitignore

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1-
bin/
2-
.mylyn/
3-
.metadata/
1+
*.class
2+
*.jar
3+
build/
4+
demcopile/
5+
.gradle/
6+
.idea/
7+
*.iml
8+
.git/
9+
.DS_Store/

.project

Lines changed: 0 additions & 17 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Change Log #
2+
---
3+
4+
Version 0.9.60 (2015-11-18)
5+
---
6+
- Extensive rewrite of core classes
7+
- Changed project structure to support Gradle
8+
- Added support for methods of async nature in GazeManager
9+
- Added support for debug mode via GazeManagerCore.IS\_DEBUG\_MODE
10+
- Added calibration evaluation class CalibUtils
11+
- Added JavaFX calibration example
12+
- Added Unit Tests
13+
14+
Version 0.9.56 (2015-03-18)
15+
---
16+
17+
- Added *hashCode()* implementation for all public data types
18+
- Fixing bugs associated to *CalibrationPoint* resampling
19+
- Clearing *Listener* types now requires explicit call to *GazeManager.deactivate()*
20+
- Minimizing object allocation
21+
- Fixed network initialization and deinitialization bugs
22+
- Updated Gson to 2.3.1
23+
24+
Version 0.9.49 (2014-12-09)
25+
---
26+
27+
- Ensured callback order of listener types during activation
28+
- Ensured thread safety in singletons
29+
- Refactored internal blocking queues
30+
- More consistent stacktrace output on callback errors
31+
- Unified constructors and operators for all data types
32+
- Added utility methods to GazeData class
33+
- Updated Gson to 2.3
34+
35+
Version Version 0.9.35 (2014-05-20)
36+
---
37+
38+
- Updated license
39+
- Fixed bug related to ICalibrationResultListener
40+
41+
Version 0.9.34 (2014-05-09)
42+
---
43+
44+
- Improved documentation
45+
- Fixed bug related to initialization lock
46+
- Fixed bug related to broadcasting calibration updates
47+
48+
Version 0.9.33 (2014-04-15)
49+
---
50+
51+
- Added support for listening to EyeTribe Server conneciton state (IConnectionStateListener)
52+
- Minor API timestamp change
53+
- Minor refactoring and formatting
54+
- Generel bug fixing and optimization
55+
56+
Version 0.9.27 (2014-02-12)
57+
---
58+
59+
- Fixed tab/space formatting
60+
- New methods to GazeUtils
61+
- Minor internal refactoring
62+
63+
Version 0.9.26 (2014-01-30)
64+
---
65+
66+
- Initial release

README.md

Lines changed: 38 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,68 @@
1-
Java SDK for the EyeTribe Dev Kit
1+
![The Eye Tribe](tet_logo.png)
2+
3+
<p>
4+
EyeTribe Java SDK for the EyeTribe Dev Kit
25
====
36
<p>
47

5-
Introduction
6-
----
78

8-
This is the Java library implementation for the EyeTribe Dev Kit. This reference implementation provides a simple Java interface for communicating with the EyeTribe Server through our open [TET API](http://dev.theeyetribe.com/api/). This should allow developers to get started quickly to focus their efforts on creating truly immersive and innovative apps using our eye tracking technology.
9+
This is the Java library implementation for the [EyeTribe Dev Kit](https://theeyetribe.com/products/). This reference implementation provides a Java interface for communicating with the EyeTribe Server through the open [EyeTribe API](http://dev.theeyetribe.com/api/). The library allow developers to get started quickly and focus their efforts on creating truly immersive and innovative apps using our eye tracking technology.
910

10-
This version is to be considered **_beta_**. Feedback and bug fix submissions are welcome.
1111

12-
Please visit our [developer website](http://dev.theeyetribe.com) for documentation and tutorials. Please use our [public forum](http://theeyetribe.com/forum) for questions and support.
1312

1413

15-
Dependencies
14+
Documentation
1615
----
17-
18-
The implementation is Java 6 compliant for backwards compatibility and [Android OS](http://developer.android.com) support. The library uses [google-gson](http://code.google.com/p/google-gson/) for JSON parsing.
16+
Find documentation of this library at [EyeTribe Java SDK Doc](http://eyetribe.github.io/tet-java-client). The EyeTribe API reference is found at [Eye Tribe Developer Website](http://dev.theeyetribe.com/api/).
1917

2018

21-
Build
19+
Samples
2220
----
21+
An essential part of using the [EyeTribe Dev Kit](https://theeyetribe.com/products/) is 'calibrating the system'. Doing so involves creating a UI that supports this library and guides the user through a series of mandatory steps.
2322

24-
1. Install [Java JDK](http://www.oracle.com/technetwork/java/javase/downloads) (and optionally [Eclipse for Java](http://www.eclipse.org/downloads/))
25-
2. To build, either import and build from Eclipse IDE (Eclipse project files included) or use Apache Ant to run included *build.xml* configuration.
26-
3. Alternatively, import source code into your favorite Java IDE and build from there.
23+
![Steps of the JavaFX calibration samples](jfx_sample.png)
2724

25+
This library holds a sample implementation of a Calibration UI using [JavaFX](docs.oracle.com/javase/8/javafx/get-started-tutorial/jfx-overview.htm). Find this under [./javafx-sample](https://github.com/EyeTribe/tet-java-client/tree/master/javafx-sample). This sample runs on all platforms supported by the [EyeTribe Dev Kit](https://theeyetribe.com/products/) that have Java 8 version 65 or higher installed.
2826

29-
Tutorials
27+
28+
Building (optional)
3029
----
30+
You can use the prebuilt version of this library though Maven. Should you wish to build it yourself, please follow the below instructions:
3131

32-
A simple guide to using this Java SDK is found in the [tutorials section](http://dev.theeyetribe.com/java/) of our developer website. More tutorials will be provided in the near future.
32+
Prerequisites:
3333

34+
- Download & install [Java JDK 6](http://www.oracle.com/technetwork/java/javase/downloads). Set environment variable 'JAVA6_HOME' to '${your.jdk6.path}'.
35+
- Download & install [Java JDK 8](http://www.oracle.com/technetwork/java/javase/downloads). Set environment variable 'JAVA\_HOME' and 'JAVA8\_HOME' to '${your.jdk8.path}'.
36+
- Download & install [InjelliJ IDEA](https://www.jetbrains.com/idea/) or [Gradle](http://gradle.org/).
3437

35-
Samples
36-
----
38+
To build:
3739

38-
There are currently no samples available for the Java SDK, but they will be added as they become available. For now, consult our [C# samples on GitHub](https://github.com/eyetribe) for inspiration as the C# reference implementation is very similar to Java.
40+
- Import Gradle project to [InjelliJ IDEA](https://www.jetbrains.com/idea/).
41+
- Set project language level to 8 in 'Module Setting -> Project'
42+
- Run gradle task 'sdk:jar'
43+
- Alternatively run task 'sdk:jar' using [Gradle](http://gradle.org/) from the commandline.
3944

4045

41-
Documentation
46+
Proguard
4247
----
43-
Find documentation of this library at [EyeTribe Java SDK Doc](http://eyetribe.github.io/tet-java-client).
48+
If you choose to build yourself and are using [Proguard](http://proguard.sourceforge.net/) for obfuscation, be sure to add the following options.
4449

50+
-keepattributes Signature, *Annotation*
51+
-keep class sun.misc.Unsafe { *; }
52+
-keep class com.theeyetribe.clientsdk.response.* { *; }
53+
-keep class com.theeyetribe.clientsdk.request.* { *; }
54+
-keep class com.theeyetribe.clientsdk.data.* { *; }
55+
-dontwarn java.lang.invoke.*
56+
-dontwarn com.google.**
4557

46-
API Reference
58+
Getting Help
4759
----
4860

49-
The complete API specification used by the Java SDK to communicate with the server is available on our [developer website](http://dev.theeyetribe.com/api/).
50-
61+
- **Have questions or need support?** Visit our [developer forum](http://theeyetribe.com/forum/), to find answers to your questions and share your experiences with others developers.
62+
- **Have a bug to report?** Open a [new issue](https://github.com/EyeTribe/tet-java-client/issues) and tell us what you are experiencing. Please add library version and full log if possible.
63+
- **Have a feature request?** Either open a [new issue](https://github.com/EyeTribe/tet-java-client/issues) or post in our [developer forum](http://theeyetribe.com/forum/). Tell us what feature you are missing and what it should do.
5164

52-
Changelog
65+
Feedback
5366
----
54-
0.9.56 (2015-03-18)
55-
56-
- Added *hashCode()* implementation for all public data types
57-
- Fixing bugs associated to *CalibrationPoint* resampling
58-
- Clearing *Listener* types now requires explicit call to *GazeManager.deactivate()*
59-
- Minimizing object allocation
60-
- Fixed network initialization and deinitialization bugs
61-
- Updated Gson to 2.3.1
62-
63-
0.9.49 (2014-12-09)
64-
65-
- Ensured callback order of listener types during activation
66-
- Ensured thread safety in singletons
67-
- Refactored internal blocking queues
68-
- More consistent stacktrace output on callback errors
69-
- Unified constructors and operators for all data types
70-
- Added utility methods to GazeData class
71-
- Updated Gson to 2.3
72-
73-
0.9.35 (2014-05-20)
74-
75-
- Updated license
76-
- Fixed bug related to ICalibrationResultListener
77-
78-
0.9.34 (2014-05-09)
79-
80-
- Improved documentation
81-
- Fixed bug related to initialization lock
82-
- Fixed bug related to broadcasting calibration updates
83-
84-
0.9.33 (2014-04-15)
85-
86-
- Added support for listening to EyeTribe Server conneciton state (IConnectionStateListener)
87-
- Minor API timestamp change
88-
- Minor refactoring and formatting
89-
- Generel bug fixing and optimization
90-
91-
0.9.27 (2014-02-12)
92-
93-
- Fixed tab/space formatting
94-
- New methods to GazeUtils
95-
- Minor internal refactoring
96-
97-
0.9.26 (2014-01-30)
9867

99-
- Initial release
68+
If you like using this library, please consider sending out a tweet mentioning [@TheEyeTribe](twitter.com/theeyetribe), announce your app in our [developer forum](http://theeyetribe.com/forum/), or email [support@theeyetribe.com](mailto:support@theeyetribe.com) to let us know.

build.gradle

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Top-level build file where you can add configuration options common to all sub-projects/modules.
2+
3+
buildscript {
4+
repositories {
5+
jcenter()
6+
}
7+
}
8+
9+
allprojects {
10+
repositories {
11+
jcenter()
12+
}
13+
}

build.xml

Lines changed: 0 additions & 107 deletions
This file was deleted.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#Sun Nov 15 14:37:41 CET 2015
2+
distributionBase=GRADLE_USER_HOME
3+
distributionPath=wrapper/dists
4+
zipStoreBase=GRADLE_USER_HOME
5+
zipStorePath=wrapper/dists
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip

0 commit comments

Comments
 (0)