From fb8027bdf5e28664f237941d475402cc02858f1c Mon Sep 17 00:00:00 2001 From: dante ruiz Date: Mon, 1 Jul 2019 19:01:13 -0700 Subject: [PATCH] inital progress indicator work --- launchers/darwin/nib/ProcessScreen.xib | 11 ++++++--- launchers/darwin/src/DownloadDomainContent.h | 4 ++- launchers/darwin/src/DownloadDomainContent.m | 9 +++++++ launchers/darwin/src/DownloadInterface.h | 3 +++ launchers/darwin/src/DownloadInterface.m | 9 +++++++ launchers/darwin/src/Launcher.h | 4 +++ launchers/darwin/src/Launcher.m | 26 ++++++++++++++++++++ launchers/darwin/src/ProcessScreen.m | 12 ++++++--- launchers/darwin/src/main.mm | 2 +- 9 files changed, 72 insertions(+), 8 deletions(-) diff --git a/launchers/darwin/nib/ProcessScreen.xib b/launchers/darwin/nib/ProcessScreen.xib index d6a1da91c9..cb65f8ea7e 100644 --- a/launchers/darwin/nib/ProcessScreen.xib +++ b/launchers/darwin/nib/ProcessScreen.xib @@ -22,12 +22,12 @@ - + - + @@ -36,7 +36,7 @@ - + @@ -49,6 +49,10 @@ + + + + @@ -56,6 +60,7 @@ + diff --git a/launchers/darwin/src/DownloadDomainContent.h b/launchers/darwin/src/DownloadDomainContent.h index c35c8b8f09..64671373e2 100644 --- a/launchers/darwin/src/DownloadDomainContent.h +++ b/launchers/darwin/src/DownloadDomainContent.h @@ -2,7 +2,9 @@ @interface DownloadDomainContent : NSObject { } - +@property (nonatomic, assign) double progressPercentage; - (void) downloadDomainContent:(NSString*) domainContentUrl; +- (double) getProgressPercentage; + @end diff --git a/launchers/darwin/src/DownloadDomainContent.m b/launchers/darwin/src/DownloadDomainContent.m index 170ee1d43b..31582b4d4c 100644 --- a/launchers/darwin/src/DownloadDomainContent.m +++ b/launchers/darwin/src/DownloadDomainContent.m @@ -3,8 +3,14 @@ @implementation DownloadDomainContent +- (double) getProgressPercentage +{ + return self.progressPercentage; +} + - (void) downloadDomainContent:(NSString *)domainContentUrl { + self.progressPercentage = 0.0; NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:domainContentUrl] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; @@ -19,6 +25,9 @@ CGFloat prog = (float)totalBytesWritten/totalBytesExpectedToWrite; NSLog(@"domain content downloaded %d%%", (int)(100.0*prog)); + self.progressPercentage = (100.0 * prog); + [[Launcher sharedLauncher] updateProgressIndicator]; + } -(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didResumeAtOffset:(int64_t)fileOffset expectedTotalBytes:(int64_t)expectedTotalBytes { diff --git a/launchers/darwin/src/DownloadInterface.h b/launchers/darwin/src/DownloadInterface.h index 08968f19f0..3eec43159b 100644 --- a/launchers/darwin/src/DownloadInterface.h +++ b/launchers/darwin/src/DownloadInterface.h @@ -3,6 +3,9 @@ @interface DownloadInterface : NSObject { } @property (nonatomic, assign) NSString* finalFilePath; +@property (nonatomic, assign) double progressPercentage; - (void) downloadInterface:(NSString*) downloadUrl; + +- (double) getProgressPercentage; @end diff --git a/launchers/darwin/src/DownloadInterface.m b/launchers/darwin/src/DownloadInterface.m index 28980310c5..f80c2ac3d9 100644 --- a/launchers/darwin/src/DownloadInterface.m +++ b/launchers/darwin/src/DownloadInterface.m @@ -6,6 +6,7 @@ - (void) downloadInterface:(NSString*) downloadUrl { + self.progressPercentage = 0.0; NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:downloadUrl] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; @@ -21,6 +22,14 @@ CGFloat prog = (float)totalBytesWritten/totalBytesExpectedToWrite; NSLog(@"interface downloaded %d%%", (int)(100.0*prog)); + self.progressPercentage = (100.0 * prog); + [[Launcher sharedLauncher] updateProgressIndicator]; + +} + +- (double) getProgressPercentage +{ + return self.progressPercentage; } -(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didResumeAtOffset:(int64_t)fileOffset expectedTotalBytes:(int64_t)expectedTotalBytes { diff --git a/launchers/darwin/src/Launcher.h b/launchers/darwin/src/Launcher.h index 9eb1cbf3b5..129542676c 100644 --- a/launchers/darwin/src/Launcher.h +++ b/launchers/darwin/src/Launcher.h @@ -46,7 +46,10 @@ typedef enum LoginErrorTypes @property (nonatomic) BOOL waitingForInterfaceToTerminate; @property (nonatomic, assign, readwrite) ProcessState processState; @property (nonatomic, assign, readwrite) LoginError loginError; +@property (nonatomic, assign) NSProgressIndicator* progressIndicator; +- (NSProgressIndicator*) getProgressView; +- (void) setProgressView:(NSProgressIndicator*) aProgressIndicator; - (void) displayNameEntered:(NSString*)aDisplayName; - (void) credentialsEntered:(NSString*)aOrginization :(NSString*)aUsername :(NSString*)aPassword; - (void) credentialsAccepted:(BOOL) aCredentialsAccepted; @@ -78,6 +81,7 @@ typedef enum LoginErrorTypes - (NSString*) getDownloadFilename; - (BOOL) isLoadedIn; - (NSString*) getAppPath; +- (void) updateProgressIndicator; + (id) sharedLauncher; @end diff --git a/launchers/darwin/src/Launcher.m b/launchers/darwin/src/Launcher.m index 209060d90d..bf78384e1f 100644 --- a/launchers/darwin/src/Launcher.m +++ b/launchers/darwin/src/Launcher.m @@ -17,6 +17,7 @@ static BOOL const DELETE_ZIP_FILES = TRUE; @implementation Launcher + + (id) sharedLauncher { static Launcher* sharedLauncher = nil; static dispatch_once_t onceToken; @@ -40,6 +41,7 @@ static BOOL const DELETE_ZIP_FILES = TRUE; self.waitingForCredentialReponse = FALSE; self.waitingForInterfaceToTerminate = FALSE; self.userToken = nil; + self.progressIndicator = nil; self.processState = DOWNLOADING_INTERFACE; } return self; @@ -79,6 +81,18 @@ static BOOL const DELETE_ZIP_FILES = TRUE; return [[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/Contents/MacOS/"]; } +- (void) updateProgressIndicator +{ + NSProgressIndicator* progressIndicator = [self getProgressView]; + //double oldValue = progressIndicator.doubleValue; + double contentPercentage = [self.downloadDomainContent getProgressPercentage]; + double interfacePercentage = [self.downloadInterface getProgressPercentage]; + //double currentTotalPercentage = (contentPercentage * 0.5) + (interfacePercentage * 0.5); + + //[progressIndicator incrementBy: (currentTotalPercentage - oldValue)]; + progressIndicator.doubleValue = (contentPercentage * 0.4) + (interfacePercentage * 0.4); +} + - (BOOL) extractZipFileAtDestination:(NSString *)destination :(NSString*)file { NSTask* task = [[NSTask alloc] init]; @@ -101,6 +115,18 @@ static BOOL const DELETE_ZIP_FILES = TRUE; return TRUE; } +-(void) setProgressView:(NSProgressIndicator*) aProgressIndicator +{ + NSLog(@"Setting progressIndicator %@", aProgressIndicator); + self.progressIndicator = aProgressIndicator; +} + +-(NSProgressIndicator*) getProgressView +{ + NSLog(@"Getting progressIndicator %@", self.progressIndicator); + return self.progressIndicator; +} + - (void) displayErrorPage { ErrorViewController* errorPage = [[ErrorViewController alloc] initWithNibName:@"ErrorScreen" bundle:nil]; diff --git a/launchers/darwin/src/ProcessScreen.m b/launchers/darwin/src/ProcessScreen.m index 4aeb8abda1..68a8ae8c7e 100644 --- a/launchers/darwin/src/ProcessScreen.m +++ b/launchers/darwin/src/ProcessScreen.m @@ -8,6 +8,7 @@ @property (nonatomic, assign) IBOutlet NSImageView* voxelImage; @property (nonatomic, assign) IBOutlet NSTextField* boldStatus; @property (nonatomic, assign) IBOutlet NSTextField* smallStatus; +@property (nonatomic, assign) IBOutlet NSProgressIndicator* progressView; @end @implementation ProcessScreen @@ -20,6 +21,7 @@ [self.smallStatus setStringValue:@"Set up may take several minutes."]; break; case RUNNING_INTERFACE_AFTER_DOWNLOAD: + [self.progressView setHidden: YES]; [self.boldStatus setStringValue:@"Your new HQ is all setup"]; [self.smallStatus setStringValue:@"Thanks for being patient."]; break; @@ -28,6 +30,7 @@ [self.smallStatus setStringValue:@"We're getting the latest and greatest for you, one sec."]; break; case RUNNING_INTERFACE_AFTER_UPDATE: + [self.progressView setHidden: YES]; [self.boldStatus setStringValue:@"You're good to go!"]; [self.smallStatus setStringValue:@"Thanks for being patient."]; break; @@ -37,10 +40,13 @@ [self.background setImage: [NSImage imageNamed:hifiBackgroundFilename]]; [self.smallLogo setImage: [NSImage imageNamed:hifiSmallLogoFilename]]; [self.voxelImage setImage: [NSImage imageNamed:hifiVoxelFilename]]; - + //[sharedLauncher setProgressIndicator: self.progressView]; + //sharedLauncher.progressIndicator = self.progressView; + if (self.progressView != nil) { + NSLog(@"Progress view: %@", self.progressView); + [sharedLauncher setProgressView: self.progressView]; + } self.imageRotation = 0; - //[self.voxelImage setFrameCenterRotation:90]; - [NSTimer scheduledTimerWithTimeInterval:0.016 target:self selector:@selector(rotateView:) diff --git a/launchers/darwin/src/main.mm b/launchers/darwin/src/main.mm index b6555aad87..4d66d15549 100644 --- a/launchers/darwin/src/main.mm +++ b/launchers/darwin/src/main.mm @@ -17,7 +17,7 @@ void redirectLogToDocuments() int main(int argc, const char* argv[]) { //NSApp.appearance = [NSAppearance appearanceNamed: NSAppearanceNameAqua]; - redirectLogToDocuments(); + //redirectLogToDocuments(); NSArray* apps = [NSRunningApplication runningApplicationsWithBundleIdentifier:@"com.highfidelity.launcher"]; if ([apps count] > 1) { NSLog(@"launcher is already running");