Currently, when the IDE is opened and the plugin loads, it shows the homepage for https://mobti.me. The user can enter a URL here, which will then direct them to that mobtimer. (i.e. the user types "abc123" and the mobtimer at https://mobti.me/abc123 will be displayed). We want to allow the user to switch to a different timer as they wish.
AC:
Add a textbox at the top to allow the user to enter a different mobtime URL.
There is plenty of opportunity to make this thing shine. The popup factory accepts html content so we can likely get a bit creative here. The current balloon notification is very easily missed when mobbing, so we can make it a bit more flashy (nothing too over-the-top though :) )
The "timer up" notification is being displayed based on what feels like a really hacky solution. Right now, the code constantly responds to the webpage title changing, and assesses the state of the app. If it's the first time we've changed from "Mob Timer" to "4:59 - mobtimer", we know the timer has started. Consequently, when the title switches from "0:00 - mobtime" to "mobtime", we can assume the timer has ended, and send the notification here. There are many many downfalls to this logic, the biggest complaint being if the functionality of the app ever changes and the titles are updated differently, this stands to break. This could be fixed by listening for the actual notifications being sent by the app and passing them along to the IDE.
AC:
Using some sort of listener to handle the actual browser notifications being sent, relay these notifications to the user through the IDE notification system
Notes:
The code listens to the title through a CefDisplayHandler, which requires an onTitleChange handler. I wasn't able to find a handler within the Java-wrapped chromium framework that listens for notification events. If this exists somewhere, it would be perfect for what we need to do.
Junit is installed and there is a test file in the project. However, they don't do anything. We need to make them do something.
There are a few decent links on this topic from the Intellij documentation (java documentation usually sucks though):