-
Notifications
You must be signed in to change notification settings - Fork 219
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Splash Screen (#1416) #1420
Splash Screen (#1416) #1420
Conversation
Very cool, thank you @tc-wleite! |
Just tried this, very good! I only need to think more about the logo... |
@lfcnassif, commited an alternative design, using the search icon already used in the application. Also added a command line option to set the splash screen custom message. |
Thanks @tc-wleite. We also have this in PR #1341, maybe we could use a similar icon:
To be shown when opening reports? I liked the idea! A similar thing was asked a long ago by some users. |
Cool! I only avoid put the IPED "full name", as it is in Portuguese and may sound/look odd for foreign users. |
We could remove text from logo image and translate in runtime. |
Or try to change logo to a "no text" version.. |
Reports or any processed case. |
Added a third design option, using an image derived from the logo used in PR #1341. |
Thank you @tc-wleite! I improved it a bit further. I'm rolling an internal poll. Let's also vote here between this: |
Users are also welcome to vote! |
Replaced the CD by an Internet icon, as @abdalla-mar suggested and made minor visual adjustments (ticker icon lines, better text alignment). |
This one is winning the internal poll by 10 votes against 4 (actually its previous version with CD icon). |
An advantage of the first option is that the magnifier image could be reused as the new application icon, reinforcing the software visual identity. |
This won an internal poll by 11 against 4 votes. |
@tc-wleite I pushed some changes to also display the splash screen when processing a case. The following message was being printed on Console when running iped.exe:
I tried 2 alternative implementations for StartUpControl class, but I didn't manage to make them work properly. So I simply commented out the code to get the number of loaded classes from the first bootstrap process and adjusted the min/max progress values. Seems to be working fine to me. I just need to test this on a non Screen Linux environment to check if the splash screen pop up would break processing on that scenario. |
I didn't see that error here, but I am not sure if I tested using the console.
Ok, that seems fine!
I was expecting that |
I also thought this, thank you for the fix! I'm also concerned if the application may abort early before entering its main() method or if the JVM will ignore the new manifest entry... |
Just tested, worked fine! Without using the --nogui option an expected exception is thrown:
Using it, processing finished fine. |
PS: Exception thrown is not related to the Splash but to JFrame creation, and it happens after the splash is shown, so the JVM ignores the splash screen. |
Just a final observation about this noticed by @arisjr, when running with --nogui option on an environment with a screen device, the splash is shown. I don't know if it is possible to workaround this, but I don't think it is a real problem anyway. |
Forgot to reply this... |
As discussed in #1416, I implemented a simple splash screen to be presented while IPED's analysis UI is starting up.
The third option mentioned in the issue (setting a static image in the application JAR manifest) worked fine, as it is presented before the JVM starts, so the splash screen is shown fast enough, even when opening cases from a very slow location.
The default behavior is to close the splash screen when the application opens a window. In this case, this doesn't work as there are 2 processes. The splash belongs to the main one (so it is presented quickly), but the analysis UI is created by a second process (child of the first one).
I implemented a simple communication between the two processes through a temporary file (that uses the second process pid as an unique identifier).
That communication allowed not only informing about the end of the start up phase (main window was created), but also providing some feedback about the progress of the process initialization.
About the progress, instead of placing in several parts of initialization code some call to update the progress, I used an heuristic that counted the number of loaded classes. That gave a rough estimate of the progress, without adding a burden to future changes in initialization related code.
I added an option, through a configuration file, to show an optional custom message in the splash window. That could be used to show the organization name or the case identification.
Finally, the UI design used in the splash screen is an initial version.
Things like colors, fonts, sizes, positions, shadows, and the image that was included are personal choices.
I tried to keep a somewhat clean design, as used in MS Office and other common Windows applications nowadays.
@lfcnassif, please feel free to suggest visual improvements or a completely new design.