1313 * other in this repository, all of which is reserved by Essential.
1414 */
1515
16- use crate :: download:: download_java;
1716use crate :: file:: extract_java_task;
1817use crate :: installer:: { run_installer_task} ;
19- use crate :: java:: get_java_executable_in_downloaded_jre;
18+ use crate :: java:: { fetch_java_url_task , get_java_executable_in_downloaded_jre} ;
2019use crate :: logging:: get_logging_file_from_temp_directory;
2120use crate :: { fonts, WrapperInfo , BRAND } ;
2221use arboard:: Clipboard ;
@@ -30,12 +29,12 @@ use iced::window::Mode;
3029use iced:: {
3130 color,
3231 widget:: { progress_bar, text} ,
33- window, Alignment , Background , Border , Color , Element , Length , Padding , Pixels , Shadow , Size ,
34- Subscription , Task , Vector ,
32+ window, Alignment , Background , Border , Color , Element , Length , Padding , Pixels , Shadow , Size , Task , Vector ,
3533} ;
3634use log:: { debug, error, warn} ;
3735use std:: fs:: read_to_string;
3836use std:: path:: PathBuf ;
37+ use crate :: download:: download_java_task;
3938
4039pub fn start_app ( app : WrapperApp , decorations : bool ) {
4140 iced:: application (
@@ -56,7 +55,6 @@ pub fn start_app(app: WrapperApp, decorations: bool) {
5655 . ok ( ) ,
5756 ..Default :: default ( )
5857 } )
59- . subscription ( WrapperApp :: subscription)
6058 . theme ( move |_| AppTheme :: default ( ) )
6159 . run_with ( || WrapperApp :: new ( app) )
6260 . unwrap ( ) ;
@@ -72,6 +70,8 @@ pub struct WrapperApp {
7270pub enum AppState {
7371 #[ default]
7472 Nothing ,
73+ FetchingURL ,
74+ StartDownloading ( String ) ,
7575 Downloading ( String , f32 ) ,
7676 DownloadFinished ( PathBuf ) ,
7777 ExtractingJava ( PathBuf ) ,
@@ -94,7 +94,7 @@ static BODY_TEXT_SIZE: Pixels = Pixels(16.);
9494
9595impl WrapperApp {
9696 fn new ( flags : WrapperApp ) -> ( WrapperApp , Task < AppMessage > ) {
97- ( flags, fonts:: load_fonts ( ) )
97+ ( flags, Task :: batch ( vec ! [ fonts:: load_fonts( ) , fetch_java_url_task ( ) ] ) )
9898 }
9999
100100 fn update ( & mut self , message : AppMessage ) -> Task < AppMessage > {
@@ -164,6 +164,10 @@ impl WrapperApp {
164164 let state = self . app_state . clone ( ) ;
165165 window:: get_oldest ( ) . and_then ( move |id| match & state {
166166 AppState :: Downloading ( _, _) => window:: change_mode ( id, Mode :: Windowed ) ,
167+ AppState :: StartDownloading ( url) => Task :: batch ( vec ! [
168+ window:: change_mode( id, Mode :: Windowed ) ,
169+ download_java_task( url. clone( ) , cache_dir. clone( ) ) ,
170+ ] ) ,
167171 AppState :: ExtractingJava ( download_path) => Task :: batch ( vec ! [
168172 window:: change_mode( id, Mode :: Windowed ) ,
169173 extract_java_task( cache_dir. clone( ) , download_path. clone( ) ) ,
@@ -286,15 +290,6 @@ impl WrapperApp {
286290 . into ( )
287291 }
288292
289- fn subscription ( & self ) -> Subscription < AppMessage > {
290- debug ! ( "Getting subscription {}" , self . app_state) ;
291- match & self . app_state {
292- AppState :: Downloading ( url, _) => {
293- download_java ( url. clone ( ) , self . wrapper_info . cache_dir . clone ( ) )
294- }
295- _ => Subscription :: none ( ) ,
296- }
297- }
298293}
299294
300295// Visual stuff
0 commit comments