thomasgaubert / zephyr Goto Github PK
View Code? Open in Web Editor NEWMirror Android notifications to VR
Home Page: https://gaubert.io/zephyr/
License: MIT License
Mirror Android notifications to VR
Home Page: https://gaubert.io/zephyr/
License: MIT License
Add ability to create and display announcements within the Android and desktop apps. Each application would check an endpoint for the latest announcements and display if needed. Some things which this endpoint would provide include:
Announcements would be used to notify users of breaking changes (for example, if a new API version is rolled out), major product announcements, etc.
Because the event is fired on swipe notification removal, this causes a duplicate notification to be sent when the user goes to swipe away a notification on the phone. This seems to be isolated to Google Hangouts notifications as Gmail and Messenger (Google) did not do this. Not sure if it's a big enough deal to fix, but opening up the issue anyways. On debug, I did noticed that the notification that comes from the removal swipe has a notification.flag = 16 instead of the usual 17 that comes from when a Hangout notification appears.
Generate an UUID for metrics tracking a new UUID should be generated on a fresh install.
The UUID is anonymous, but allows for metrics events to be strung together for debugging, flow tracking, etc.
Add ability to restart overlay if it dies or fails to start via the desktop interface.
Currently requires a restart of Zephyr.
Analytics could be cleaned up, so let's do that. For example, create a BaseActivity which contains the Firebase Analytics instance.
The socket logic and message creation could be cleaned up, so let's do this.
Impose notification length limit for both title and text. If either are too long, replace remaining message with an ellipsis.
Distribute beta keys to users to ensure installation and operation works as expected.
See the Version 2.0 beta milestone for items required for the beta release.
Register the overlay with OpenVR so users can have it automatically launch when starting OpenVR.
When being started by OpenVR, the overlay will need to start the desktop client minimized (see #31).
Look into switching to a Unity based overlay. Presumably this would make development much easier (and able to happen on other operating systems).
Add analytics to desktop so different events can be tracked.
Wiki documentation references the https://github.com/ThomasGaubert/zephyr/wiki/WebSocket-API page as the recommended way to interact with the API, but the page does not seem to exist.
Try to be smart about attempting to connect to the server. For example, we shouldn't try connecting on a mobile network and we should exponentially back off if the server is offline.
Ideally this behavior would be toggleable in Settings.
Add beta disclaimer and changelog to clients for the duration of the beta.
Options include:
Me and several people have been having trouble with this, connects fine, says test notification has been received and displayed but nothing in the headset.
It would be useful to add Origin headers to the responses from the RESTful API so that JS clients making requests from external resources can send notifications to the overlay, instead of having the cross-origin requests blocked by the browser:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:3753/. (Reason: CORS header 'Access-Control-Allow-Origin' missing).
I'm not super familiar with Socket.IO, cpp, or JS, but looking at the socketio docs, this looks pretty trivial. I'll take a stab at it once I have a development env set up. Thanks for this useful tool!
The Steam build will (naturally) be using Steam to distribute updates, so we need to add a way to disable auto-updates. This can be in the form of a command line argument, config file, checking if the executable is within the Steam installation directory, etc.
Create and link to privacy policy from clients.
Zephyr currently minimizes to the tray when closing the main window. This can get confusing when updating or leaving the window closed for a long time. Additionally, an unhelpful error message appears if two Zephyr instances are running.
Solution:
The overlay executable requires VS 2015 Redistributables (x86). Instead of requiring users to install this themselves, include it as part of the desktop client.
Sidenote: Future Steam distribution should take care of this for us, too.
Releases pre-2.0 (pre-Steam) should be marked as deprecated.
The overlay Qt project has gotten messy, so we should clean it up by removing references to OpenVR Notifications, etc.
Ensure Steam client assets are up to date with latest.
Ensure product name is "Zephyr Beta" or "Zephyr β" for the duration of the beta test.
If there are unread Android notifications, when a new Android notification comes in, all the previous unread notifications show again inside the HMD one-by-one. There should be a mechanism to prevent previous notifications from showing again which each new message.
Publish Steam store page for pre-release. Release date should be TDB.
Really needed this, so thanks for that :)
I tested a few times and got 5 device entries in the Desktop App, so receiving the same message 5 times.
After dis- and reconnecting with the mobile app, it seems I always get 2 device entries, so receiving the message 2 times.
At first start, I opened the Desktop App before starting SteamVR, the dashboard app appeared and notification worked when I started it the other way around.
Otherwise, great work!
The VR overlay still uses "OpenVR Notifications". Rebrand to Zephyr.
Currently blocked due to lack of Windows dev environment.
Create updated screenshots, descriptions, etc. for Play Store.
This project almost "just works" on Linux. I've done this:
ChristophHaag@5f6fd48
Adding submodules for the required projects and some other small fixes should be self explanatory.
I threw out the openvr libraries and header, because in my experience, only the actual OpenVR 1.0.6 interface works on Linux.
Some info on how to compile and run this stuff would be good. Like tl;dr:
npm install
, with having electron installed run electron .
Only the overlay settings screen is just rendering garbage. Maybe that is because it's not been properly updated for the most recent OpenVR API? After all I had to replace vr::API_OpenGL
with vr::TextureType_OpenGL
, maybe other stuff needs to be changed too.
Travis is currently failing, so let's fix it.
Do a first pass on documentation to cover core scenarios, FAQs, downloads, etc.
This also includes getting the project's READMEs into decent shape.
Investigate and implement automatic migration for notification preferences from v1 to v2.
Update OpenVR to latest SDK and verify functionality.
im running docker, zephyr displays that its only bound to this. manually choosing ip address of server on correct interface and it will connect.
Zephyr should track when the application is updated and note as such in the log.
With Zephyr's release on Steam, the AppVeyor CI and Heroku update server are no longer required and can be disabled.
The update server should stay up for ~1 month before being disabled to allow final updates (#36) to roll out to users.
If we get an address from Firebase, save it to local storage for future use.
The website should be updated as needed in anticipation of v2 and the Steam launch.
New download links, detail v2 changes, etc.
Ensure both desktop and Android clients have sufficient logging that is able to be pulled in the event of crashes, etc.
Investigate (and implement) the ability to have a separate build for Steam distribution. This build might have different links, Steamworks integration, disabled auto-updates (handled by Steam), etc.
The overlay should be able to start the desktop client if it isn't already running (or if started by OpenVR, see #30). We'll want to have the option to stop the desktop client from launching another overlay and for the desktop client to start out minimized.
While the Windows taskbar is on a side instead of the bottom, the login window appears halfway off the screen. It appears normally if I move the taskbar to the bottom of my screen. (Version 1.1.5)
Relatively low priority, but it'd be nice to have a set of tests which ensure things aren't broken.
Add settings to manage anonymous telemetry collection.
Note: Telemetry should not be able to be disabled for beta builds (this should be noted in the disclaimer from #45).
Looks like Zephyr gets thrown off by other network devices, such as any virtual device installed by VirtualBox. Right now local IP address is grabbed naively (first non-internal address), but there might be a better way?
Received reports of notifications showing up as empty in VR even though they display fine in the desktop client.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.