From fb8027bdf5e28664f237941d475402cc02858f1c Mon Sep 17 00:00:00 2001 From: dante ruiz Date: Mon, 1 Jul 2019 19:01:13 -0700 Subject: [PATCH 1/7] 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"); From f210be32dc73ad12d032af52019bbd476631f733 Mon Sep 17 00:00:00 2001 From: dante ruiz Date: Tue, 2 Jul 2019 20:56:49 -0700 Subject: [PATCH 2/7] updating progress indicator work --- launchers/darwin/src/DownloadDomainContent.h | 1 + launchers/darwin/src/DownloadDomainContent.m | 20 ++++++++++++++++++-- launchers/darwin/src/DownloadInterface.h | 3 ++- launchers/darwin/src/DownloadInterface.m | 18 +++++++++++++++++- launchers/darwin/src/Launcher.m | 13 ++++++++++--- 5 files changed, 48 insertions(+), 7 deletions(-) diff --git a/launchers/darwin/src/DownloadDomainContent.h b/launchers/darwin/src/DownloadDomainContent.h index 64671373e2..80d03fd1c8 100644 --- a/launchers/darwin/src/DownloadDomainContent.h +++ b/launchers/darwin/src/DownloadDomainContent.h @@ -3,6 +3,7 @@ @interface DownloadDomainContent : NSObject { } @property (nonatomic, assign) double progressPercentage; +@property (nonatomic, assign) double taskProgressPercentage; - (void) downloadDomainContent:(NSString*) domainContentUrl; - (double) getProgressPercentage; diff --git a/launchers/darwin/src/DownloadDomainContent.m b/launchers/darwin/src/DownloadDomainContent.m index 31582b4d4c..6f66d6af20 100644 --- a/launchers/darwin/src/DownloadDomainContent.m +++ b/launchers/darwin/src/DownloadDomainContent.m @@ -5,12 +5,13 @@ - (double) getProgressPercentage { - return self.progressPercentage; + return (self.progressPercentage * .90) + (self.taskProgressPercentage * .10); } - (void) downloadDomainContent:(NSString *)domainContentUrl { self.progressPercentage = 0.0; + self.taskProgressPercentage = 0.0; NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:domainContentUrl] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; @@ -36,6 +37,11 @@ -(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location { NSLog(@"Did finish downloading to url"); + NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval: 0.1 + target: self + selector: @selector(updatePercentage:) + userInfo:nil + repeats: YES]; NSError *error = nil; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *destinationFileName = downloadTask.originalRequest.URL.lastPathComponent; @@ -56,6 +62,7 @@ if (error) { NSLog(@"DownlodDomainContent: failed to move file to destintation -> error: %@", error); + [timer invalidate]; [sharedLauncher displayErrorPage]; return; } @@ -64,18 +71,27 @@ BOOL extractionSuccessful = [sharedLauncher extractZipFileAtDestination:[[sharedLauncher getDownloadPathForContentAndScripts] stringByAppendingString:@"content"] :[[sharedLauncher getDownloadPathForContentAndScripts] stringByAppendingString:[sharedLauncher getDownloadContentFilename]]]; if (!extractionSuccessful) { + [timer invalidate]; [sharedLauncher displayErrorPage]; return; } NSLog(@"finished extracting content file"); + [timer invalidate]; + self.taskProgressPercentage = 100.0; + [sharedLauncher updateProgressIndicator]; [sharedLauncher domainContentDownloadFinished]; } --(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error { +- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error { NSLog(@"completed; error: %@", error); if (error) { [[Launcher sharedLauncher] displayErrorPage]; } } +- (void) updatePercentage:(NSTimer*) timer { + self.taskProgressPercentage += 3.0; + [[Launcher sharedLauncher] updateProgressIndicator]; +} + @end diff --git a/launchers/darwin/src/DownloadInterface.h b/launchers/darwin/src/DownloadInterface.h index 3eec43159b..9d90688654 100644 --- a/launchers/darwin/src/DownloadInterface.h +++ b/launchers/darwin/src/DownloadInterface.h @@ -4,8 +4,9 @@ } @property (nonatomic, assign) NSString* finalFilePath; @property (nonatomic, assign) double progressPercentage; +@property (nonatomic, assign) double taskProgressPercentage; - (void) downloadInterface:(NSString*) downloadUrl; -- (double) getProgressPercentage; +- (double) getProgressPercentage; @end diff --git a/launchers/darwin/src/DownloadInterface.m b/launchers/darwin/src/DownloadInterface.m index f80c2ac3d9..2e9f7dc697 100644 --- a/launchers/darwin/src/DownloadInterface.m +++ b/launchers/darwin/src/DownloadInterface.m @@ -7,6 +7,7 @@ - (void) downloadInterface:(NSString*) downloadUrl { self.progressPercentage = 0.0; + self.taskProgressPercentage = 0.0; NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:downloadUrl] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; @@ -29,7 +30,7 @@ - (double) getProgressPercentage { - return self.progressPercentage; + return (self.progressPercentage * 0.90) + (self.taskProgressPercentage * 0.10); } -(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didResumeAtOffset:(int64_t)fileOffset expectedTotalBytes:(int64_t)expectedTotalBytes { @@ -38,6 +39,11 @@ -(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location { NSLog(@"Did finish downloading to url"); + NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval: 0.1 + target: self + selector: @selector(updateTaskPercentage:) + userInfo:nil + repeats: YES]; NSError *error = nil; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *destinationFileName = downloadTask.originalRequest.URL.lastPathComponent; @@ -53,6 +59,7 @@ if (error) { NSLog(@"Download Interface: failed to move file to destination -> error: %@", error); + [timer invalidate]; [sharedLauncher displayErrorPage]; return; } @@ -63,6 +70,7 @@ NSLog(@"extract interface zip"); BOOL success = [sharedLauncher extractZipFileAtDestination:appPath :[appPath stringByAppendingString:downloadFileName]]; if (!success) { + [timer invalidate]; [sharedLauncher displayErrorPage]; return; } @@ -80,6 +88,9 @@ NSString* launcherPath = [appPath stringByAppendingString:@"Launcher"]; [[Settings sharedSettings] setLauncherPath:launcherPath]; + [timer invalidate]; + self.taskProgressPercentage = 100.0; + [sharedLauncher updateProgressIndicator]; [sharedLauncher interfaceFinishedDownloading]; } @@ -90,5 +101,10 @@ } } +- (void) updateTaskPercentage:(NSTimer*) timer { + self.taskProgressPercentage += 3.0; + [[Launcher sharedLauncher] updateProgressIndicator]; +} + @end diff --git a/launchers/darwin/src/Launcher.m b/launchers/darwin/src/Launcher.m index bf78384e1f..6ce7c1477a 100644 --- a/launchers/darwin/src/Launcher.m +++ b/launchers/darwin/src/Launcher.m @@ -84,13 +84,20 @@ static BOOL const DELETE_ZIP_FILES = TRUE; - (void) updateProgressIndicator { NSProgressIndicator* progressIndicator = [self getProgressView]; - //double oldValue = progressIndicator.doubleValue; + double oldValue = progressIndicator.doubleValue; double contentPercentage = [self.downloadDomainContent getProgressPercentage]; double interfacePercentage = [self.downloadInterface getProgressPercentage]; - //double currentTotalPercentage = (contentPercentage * 0.5) + (interfacePercentage * 0.5); + double currentTotalPercentage = (contentPercentage * 0.5) + (interfacePercentage * 0.5); //[progressIndicator incrementBy: (currentTotalPercentage - oldValue)]; - progressIndicator.doubleValue = (contentPercentage * 0.4) + (interfacePercentage * 0.4); + progressIndicator.doubleValue = [self lerp:oldValue :currentTotalPercentage :0.7]; +} + +- (double) lerp:(double) pointA :(double) pointB :(double) interp +{ + double lerpValue = pointA + interp * (pointB - pointA); + NSLog(@"----> lerp value: %f", lerpValue); + return lerpValue; } - (BOOL) extractZipFileAtDestination:(NSString *)destination :(NSString*)file From a5f9283bdecb24c6ca9419f445d4d3a13d9aa093 Mon Sep 17 00:00:00 2001 From: dante ruiz Date: Sat, 6 Jul 2019 11:46:40 -0700 Subject: [PATCH 3/7] almost done --- launchers/darwin/src/DownloadDomainContent.m | 8 +- launchers/darwin/src/LatestBuildRequest.m | 6 +- launchers/darwin/src/Launcher.h | 9 ++ launchers/darwin/src/Launcher.m | 116 ++++++++++++++----- 4 files changed, 105 insertions(+), 34 deletions(-) diff --git a/launchers/darwin/src/DownloadDomainContent.m b/launchers/darwin/src/DownloadDomainContent.m index 6f66d6af20..42a8f5c4f0 100644 --- a/launchers/darwin/src/DownloadDomainContent.m +++ b/launchers/darwin/src/DownloadDomainContent.m @@ -5,7 +5,7 @@ - (double) getProgressPercentage { - return (self.progressPercentage * .90) + (self.taskProgressPercentage * .10); + return (self.progressPercentage * 0.50) + (self.taskProgressPercentage * 0.50); } - (void) downloadDomainContent:(NSString *)domainContentUrl @@ -24,9 +24,9 @@ -(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite { CGFloat prog = (float)totalBytesWritten/totalBytesExpectedToWrite; - NSLog(@"domain content downloaded %d%%", (int)(100.0*prog)); + NSLog(@"domain content downloaded %f", (100.0*prog)); - self.progressPercentage = (100.0 * prog); + self.progressPercentage = (int)(100.0 * prog); [[Launcher sharedLauncher] updateProgressIndicator]; } @@ -90,7 +90,7 @@ } - (void) updatePercentage:(NSTimer*) timer { - self.taskProgressPercentage += 3.0; + self.taskProgressPercentage += 4.0; [[Launcher sharedLauncher] updateProgressIndicator]; } diff --git a/launchers/darwin/src/LatestBuildRequest.m b/launchers/darwin/src/LatestBuildRequest.m index 767c67eea1..6ae8bfeba5 100644 --- a/launchers/darwin/src/LatestBuildRequest.m +++ b/launchers/darwin/src/LatestBuildRequest.m @@ -6,7 +6,7 @@ @implementation LatestBuildRequest - (NSInteger) getCurrentVersion { - NSInteger currentVersion; + /*NSInteger currentVersion; @try { NSString* interfaceAppPath = [[Launcher.sharedLauncher getAppPath] stringByAppendingString:@"interface.app"]; NSError * error = nil; @@ -19,8 +19,8 @@ } @catch (NSException *exception) { NSLog(@"an exception was thrown: %@", exception); currentVersion = [Settings.sharedSettings latestBuildVersion]; - } - return currentVersion; + }*/ + return [Settings.sharedSettings latestBuildVersion];//currentVersion; } - (void) requestLatestBuildInfo { diff --git a/launchers/darwin/src/Launcher.h b/launchers/darwin/src/Launcher.h index 129542676c..c51117be01 100644 --- a/launchers/darwin/src/Launcher.h +++ b/launchers/darwin/src/Launcher.h @@ -34,6 +34,7 @@ typedef enum LoginErrorTypes @property (nonatomic, retain) NSString* domainURL; @property (nonatomic, retain) NSString* domainContentUrl; @property (nonatomic, retain) NSString* domainScriptsUrl; +@property (nonatomic, retain) NSString* interfaceDownloadUrl; @property (nonatomic, retain) DownloadInterface* downloadInterface; @property (nonatomic, retain) CredentialsRequest* credentialsRequest; @property (nonatomic, retain) DownloadDomainContent* downloadDomainContent; @@ -44,9 +45,13 @@ typedef enum LoginErrorTypes @property (nonatomic) BOOL waitingForCredentialReponse; @property (nonatomic) BOOL gotCredentialResponse; @property (nonatomic) BOOL waitingForInterfaceToTerminate; +@property (nonatomic) BOOL shouldDownloadInterface; +@property (nonatomic) BOOL latestBuildRequestFinished; +@property (nonatomic, assign) NSTimer* updateProgressIndicatorTimer; @property (nonatomic, assign, readwrite) ProcessState processState; @property (nonatomic, assign, readwrite) LoginError loginError; @property (nonatomic, assign) NSProgressIndicator* progressIndicator; +@property (nonatomic) double progressTarget; - (NSProgressIndicator*) getProgressView; - (void) setProgressView:(NSProgressIndicator*) aProgressIndicator; @@ -79,9 +84,13 @@ typedef enum LoginErrorTypes - (NSString*) getDownloadContentFilename; - (NSString*) getDownloadScriptsFilename; - (NSString*) getDownloadFilename; +- (void) startUpdateProgressIndicatorTimer; +- (void) endUpdateProgressIndicatorTimer; - (BOOL) isLoadedIn; - (NSString*) getAppPath; - (void) updateProgressIndicator; +- (void) setShouldDownloadInterface:(BOOL) shouldDownlaod; +- (BOOL) getShouldDownloadInterface; + (id) sharedLauncher; @end diff --git a/launchers/darwin/src/Launcher.m b/launchers/darwin/src/Launcher.m index 6ce7c1477a..8a55b83ed1 100644 --- a/launchers/darwin/src/Launcher.m +++ b/launchers/darwin/src/Launcher.m @@ -40,6 +40,7 @@ static BOOL const DELETE_ZIP_FILES = TRUE; self.gotCredentialResponse = FALSE; self.waitingForCredentialReponse = FALSE; self.waitingForInterfaceToTerminate = FALSE; + self.latestBuildRequestFinished = FALSE; self.userToken = nil; self.progressIndicator = nil; self.processState = DOWNLOADING_INTERFACE; @@ -87,16 +88,23 @@ static BOOL const DELETE_ZIP_FILES = TRUE; double oldValue = progressIndicator.doubleValue; double contentPercentage = [self.downloadDomainContent getProgressPercentage]; double interfacePercentage = [self.downloadInterface getProgressPercentage]; - double currentTotalPercentage = (contentPercentage * 0.5) + (interfacePercentage * 0.5); + double currentTotalPercentage = self.progressTarget; + if (self.shouldDownloadInterface) { + currentTotalPercentage = (contentPercentage * 0.5) + (interfacePercentage * 0.5); + } else { + currentTotalPercentage = contentPercentage; + } + self.progressTarget = currentTotalPercentage; //[progressIndicator incrementBy: (currentTotalPercentage - oldValue)]; - progressIndicator.doubleValue = [self lerp:oldValue :currentTotalPercentage :0.7]; + //progressIndicator.doubleValue = [self lerp:oldValue :currentTotalPercentage :0.7]; } - (double) lerp:(double) pointA :(double) pointB :(double) interp { + //NSLog(@"PointA: %f PointB: %f interp: %f", pointA, pointB, interp); double lerpValue = pointA + interp * (pointB - pointA); - NSLog(@"----> lerp value: %f", lerpValue); + //NSLog(@"----> lerp value: %f", lerpValue); return lerpValue; } @@ -130,7 +138,7 @@ static BOOL const DELETE_ZIP_FILES = TRUE; -(NSProgressIndicator*) getProgressView { - NSLog(@"Getting progressIndicator %@", self.progressIndicator); + //NSLog(@"Getting progressIndicator %@", self.progressIndicator); return self.progressIndicator; } @@ -142,19 +150,12 @@ static BOOL const DELETE_ZIP_FILES = TRUE; - (void) checkLoginStatus { - if ([self isLoadedIn]) { - Launcher* sharedLauncher = [Launcher sharedLauncher]; - [sharedLauncher setCurrentProcessState:CHECKING_UPDATE]; - ProcessScreen* processScreen = [[ProcessScreen alloc] initWithNibName:@"ProcessScreen" bundle:nil]; - [[[[NSApplication sharedApplication] windows] objectAtIndex:0] setContentViewController: processScreen]; - [self.latestBuildRequest requestLatestBuildInfo]; - } else { - [NSTimer scheduledTimerWithTimeInterval:2.0 - target:self - selector:@selector(onSplashScreenTimerFinished:) - userInfo:nil - repeats:NO]; - } + [self.latestBuildRequest requestLatestBuildInfo]; + [NSTimer scheduledTimerWithTimeInterval:2.0 + target:self + selector:@selector(onSplashScreenTimerFinished:) + userInfo:nil + repeats:NO]; [[NSApplication sharedApplication] activateIgnoringOtherApps:TRUE]; } @@ -178,6 +179,31 @@ static BOOL const DELETE_ZIP_FILES = TRUE; return self.scriptsFilename; } +- (void) startUpdateProgressIndicatorTimer +{ + self.progressTarget = 0.0; + self.updateProgressIndicatorTimer = [NSTimer scheduledTimerWithTimeInterval: 0.0016 + target: self + selector: @selector(updateIndicator:) + userInfo:nil + repeats: YES]; + + [[NSRunLoop mainRunLoop] addTimer:self.updateProgressIndicatorTimer forMode:NSRunLoopCommonModes]; +} + +- (void) endUpdateProgressIndicatorTimer +{ + [self.updateProgressIndicatorTimer invalidate]; + self.updateProgressIndicatorTimer = nil; +} + +- (void) updateIndicator:(NSTimer*) timer +{ + NSProgressIndicator* progressIndicator = [self getProgressView]; + double oldValue = progressIndicator.doubleValue; + progressIndicator.doubleValue = [self lerp:oldValue :self.progressTarget :0.3]; +} + - (void)didTerminateApp:(NSNotification *)notification { if (self.waitingForInterfaceToTerminate) { NSString* appName = [notification.userInfo valueForKey:@"NSApplicationName"]; @@ -232,6 +258,7 @@ static BOOL const DELETE_ZIP_FILES = TRUE; - (void) displayNameEntered:(NSString*)aDiplayName { self.processState = DOWNLOADING_INTERFACE; + [self startUpdateProgressIndicatorTimer]; ProcessScreen* processScreen = [[ProcessScreen alloc] initWithNibName:@"ProcessScreen" bundle:nil]; [[[[NSApplication sharedApplication] windows] objectAtIndex:0] setContentViewController: processScreen]; [self.downloadDomainContent downloadDomainContent:self.domainContentUrl]; @@ -240,8 +267,12 @@ static BOOL const DELETE_ZIP_FILES = TRUE; - (void) domainContentDownloadFinished { - //.[self.downloadScripts downloadScripts:self.domainScriptsUrl]; - [self.latestBuildRequest requestLatestBuildInfo]; + if (self.shouldDownloadInterface) { + [self.downloadInterface downloadInterface: self.interfaceDownloadUrl]; + return; + } + [self interfaceFinishedDownloading]; + //[self.latestBuildRequest requestLatestBuildInfo]; } - (void) domainScriptsDownloadFinished @@ -268,10 +299,14 @@ static BOOL const DELETE_ZIP_FILES = TRUE; - (void) interfaceFinishedDownloading { - if (self.processState == DOWNLOADING_INTERFACE) { - self.processState = RUNNING_INTERFACE_AFTER_DOWNLOAD; + [self endUpdateProgressIndicatorTimer]; + NSProgressIndicator* progressIndicator = [self getProgressView]; + progressIndicator.doubleValue = self.progressTarget; + Launcher* sharedLauncher = [Launcher sharedLauncher]; + if ([sharedLauncher currentProccessState] == DOWNLOADING_INTERFACE) { + [sharedLauncher setCurrentProcessState: RUNNING_INTERFACE_AFTER_DOWNLOAD]; } else { - self.processState = RUNNING_INTERFACE_AFTER_UPDATE; + [sharedLauncher setCurrentProcessState: RUNNING_INTERFACE_AFTER_UPDATE]; } ProcessScreen* processScreen = [[ProcessScreen alloc] initWithNibName:@"ProcessScreen" bundle:nil]; [[[[NSApplication sharedApplication] windows] objectAtIndex:0] setContentViewController: processScreen]; @@ -310,17 +345,34 @@ static BOOL const DELETE_ZIP_FILES = TRUE; - (void) shouldDownloadLatestBuild:(BOOL) shouldDownload :(NSString*) downloadUrl { - if (shouldDownload) { + self.shouldDownloadInterface = shouldDownload; + self.interfaceDownloadUrl = downloadUrl; + self.latestBuildRequestFinished = TRUE; + NSLog(@"------> FINISHED ->>>>>>>>"); + /*if (shouldDownload) { [self.downloadInterface downloadInterface: downloadUrl]; return; } - [self launchInterface]; + [self launchInterface];*/ } -(void)onSplashScreenTimerFinished:(NSTimer *)timer { - [[NSApplication sharedApplication] activateIgnoringOtherApps:TRUE]; - [self showLoginScreen]; + if ([self isLoadedIn]) { + Launcher* sharedLauncher = [Launcher sharedLauncher]; + [sharedLauncher setCurrentProcessState:CHECKING_UPDATE]; + NSLog(@"Should Downlaod: %@", self.shouldDownloadInterface ? @"True" : @"False"); + if (self.shouldDownloadInterface) { + ProcessScreen* processScreen = [[ProcessScreen alloc] initWithNibName:@"ProcessScreen" bundle:nil]; + [[[[NSApplication sharedApplication] windows] objectAtIndex:0] setContentViewController: processScreen]; + [self.downloadInterface downloadInterface: self.interfaceDownloadUrl]; + return; + } + [self interfaceFinishedDownloading]; + } else { + [[NSApplication sharedApplication] activateIgnoringOtherApps:TRUE]; + [self showLoginScreen]; + } } -(void)setCurrentProcessState:(ProcessState)aProcessState @@ -402,7 +454,11 @@ static BOOL const DELETE_ZIP_FILES = TRUE; } [workspace launchApplicationAtURL:url options:NSWorkspaceLaunchNewInstance configuration:[NSDictionary dictionaryWithObject:arguments forKey:NSWorkspaceLaunchConfigurationArguments] error:&error]; - [NSApp terminate:self]; + NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval: 3.0 + target: self + selector: @selector(exitLauncher:) + userInfo:nil + repeats: NO]; } - (ProcessState) currentProccessState @@ -410,4 +466,10 @@ static BOOL const DELETE_ZIP_FILES = TRUE; return self.processState; } + +- (void) exitLauncher:(NSTimer*) timer +{ + [NSApp terminate:self]; +} + @end From 15cc7a0e6cf04be29b1c3f77b3e88a739de9c7a1 Mon Sep 17 00:00:00 2001 From: dante ruiz Date: Tue, 9 Jul 2019 10:43:46 -0700 Subject: [PATCH 4/7] finished work --- launchers/darwin/src/DownloadDomainContent.m | 10 ++- launchers/darwin/src/DownloadInterface.m | 11 ++- launchers/darwin/src/Launcher.h | 11 ++- launchers/darwin/src/Launcher.m | 78 ++++++++++++-------- launchers/darwin/src/main.mm | 2 +- 5 files changed, 75 insertions(+), 37 deletions(-) diff --git a/launchers/darwin/src/DownloadDomainContent.m b/launchers/darwin/src/DownloadDomainContent.m index 42a8f5c4f0..f95ae39fc8 100644 --- a/launchers/darwin/src/DownloadDomainContent.m +++ b/launchers/darwin/src/DownloadDomainContent.m @@ -5,7 +5,7 @@ - (double) getProgressPercentage { - return (self.progressPercentage * 0.50) + (self.taskProgressPercentage * 0.50); + return (self.progressPercentage * 0.70) + (self.taskProgressPercentage * 0.30); } - (void) downloadDomainContent:(NSString *)domainContentUrl @@ -90,7 +90,13 @@ } - (void) updatePercentage:(NSTimer*) timer { - self.taskProgressPercentage += 4.0; + if (self.taskProgressPercentage < 100.0) { + self.taskProgressPercentage += 1.5; + + if (self.taskProgressPercentage > 100.0) { + self.taskProgressPercentage = 100.0; + } + } [[Launcher sharedLauncher] updateProgressIndicator]; } diff --git a/launchers/darwin/src/DownloadInterface.m b/launchers/darwin/src/DownloadInterface.m index 2e9f7dc697..200a723821 100644 --- a/launchers/darwin/src/DownloadInterface.m +++ b/launchers/darwin/src/DownloadInterface.m @@ -6,6 +6,7 @@ - (void) downloadInterface:(NSString*) downloadUrl { + NSLog(@"-----------------> %@", downloadUrl); self.progressPercentage = 0.0; self.taskProgressPercentage = 0.0; NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:downloadUrl] @@ -30,7 +31,7 @@ - (double) getProgressPercentage { - return (self.progressPercentage * 0.90) + (self.taskProgressPercentage * 0.10); + return (self.progressPercentage * 0.70) + (self.taskProgressPercentage * 0.30); } -(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didResumeAtOffset:(int64_t)fileOffset expectedTotalBytes:(int64_t)expectedTotalBytes { @@ -102,7 +103,13 @@ } - (void) updateTaskPercentage:(NSTimer*) timer { - self.taskProgressPercentage += 3.0; + if (self.taskProgressPercentage < 100.0) { + self.taskProgressPercentage += 1.5; + + if (self.taskProgressPercentage > 100.0) { + self.taskProgressPercentage = 100.0; + } + } [[Launcher sharedLauncher] updateProgressIndicator]; } diff --git a/launchers/darwin/src/Launcher.h b/launchers/darwin/src/Launcher.h index c51117be01..d82824b50e 100644 --- a/launchers/darwin/src/Launcher.h +++ b/launchers/darwin/src/Launcher.h @@ -21,6 +21,12 @@ typedef enum LoginErrorTypes CREDENTIALS } LoginError; +struct LatestBuildInfo { + NSString* downloadURL; + BOOL shouldDownload; + BOOL requestBuildFinished; +}; + @interface Launcher : NSObject { } @property (nonatomic, retain) NSString* password; @@ -52,6 +58,7 @@ typedef enum LoginErrorTypes @property (nonatomic, assign, readwrite) LoginError loginError; @property (nonatomic, assign) NSProgressIndicator* progressIndicator; @property (nonatomic) double progressTarget; +@property (nonatomic) struct LatestBuildInfo buildInfo; - (NSProgressIndicator*) getProgressView; - (void) setProgressView:(NSProgressIndicator*) aProgressIndicator; @@ -89,8 +96,8 @@ typedef enum LoginErrorTypes - (BOOL) isLoadedIn; - (NSString*) getAppPath; - (void) updateProgressIndicator; -- (void) setShouldDownloadInterface:(BOOL) shouldDownlaod; -- (BOOL) getShouldDownloadInterface; +- (void) setLatestBuildInfo:(struct LatestBuildInfo) latestBuildInfo; +- (struct LatestBuildInfo) getLatestBuildInfo; + (id) sharedLauncher; @end diff --git a/launchers/darwin/src/Launcher.m b/launchers/darwin/src/Launcher.m index 8a55b83ed1..9658d8641e 100644 --- a/launchers/darwin/src/Launcher.m +++ b/launchers/darwin/src/Launcher.m @@ -36,6 +36,11 @@ static BOOL const DELETE_ZIP_FILES = TRUE; self.latestBuildRequest = [LatestBuildRequest alloc]; self.organizationRequest = [OrganizationRequest alloc]; self.downloadScripts = [DownloadScripts alloc]; + struct LatestBuildInfo latestBuildInfo; + latestBuildInfo.downloadURL = nil; + latestBuildInfo.shouldDownload = FALSE; + latestBuildInfo.requestBuildFinished = FALSE; + self.buildInfo = latestBuildInfo; self.credentialsAccepted = TRUE; self.gotCredentialResponse = FALSE; self.waitingForCredentialReponse = FALSE; @@ -89,22 +94,21 @@ static BOOL const DELETE_ZIP_FILES = TRUE; double contentPercentage = [self.downloadDomainContent getProgressPercentage]; double interfacePercentage = [self.downloadInterface getProgressPercentage]; double currentTotalPercentage = self.progressTarget; - if (self.shouldDownloadInterface) { - currentTotalPercentage = (contentPercentage * 0.5) + (interfacePercentage * 0.5); + if (self.processState == DOWNLOADING_INTERFACE) { + if (self.shouldDownloadInterface) { + currentTotalPercentage = (contentPercentage * 0.5) + (interfacePercentage * 0.5); + } else { + currentTotalPercentage = contentPercentage; + } } else { - currentTotalPercentage = contentPercentage; + currentTotalPercentage = interfacePercentage; } self.progressTarget = currentTotalPercentage; - - //[progressIndicator incrementBy: (currentTotalPercentage - oldValue)]; - //progressIndicator.doubleValue = [self lerp:oldValue :currentTotalPercentage :0.7]; } - (double) lerp:(double) pointA :(double) pointB :(double) interp { - //NSLog(@"PointA: %f PointB: %f interp: %f", pointA, pointB, interp); double lerpValue = pointA + interp * (pointB - pointA); - //NSLog(@"----> lerp value: %f", lerpValue); return lerpValue; } @@ -150,7 +154,6 @@ static BOOL const DELETE_ZIP_FILES = TRUE; - (void) checkLoginStatus { - [self.latestBuildRequest requestLatestBuildInfo]; [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(onSplashScreenTimerFinished:) @@ -308,9 +311,12 @@ static BOOL const DELETE_ZIP_FILES = TRUE; } else { [sharedLauncher setCurrentProcessState: RUNNING_INTERFACE_AFTER_UPDATE]; } - ProcessScreen* processScreen = [[ProcessScreen alloc] initWithNibName:@"ProcessScreen" bundle:nil]; - [[[[NSApplication sharedApplication] windows] objectAtIndex:0] setContentViewController: processScreen]; - [self launchInterface]; + + [NSTimer scheduledTimerWithTimeInterval: 0.2 + target: self + selector: @selector(callLaunchInterface:) + userInfo:nil + repeats: NO]; } - (void) credentialsEntered:(NSString*)aOrginization :(NSString*)aUsername :(NSString*)aPassword @@ -337,6 +343,16 @@ static BOOL const DELETE_ZIP_FILES = TRUE; return YES; } +- (struct LatestBuildInfo) getLatestBuildInfo +{ + return self.buildInfo; +} + +- (void) setLatestBuildInfo:(struct LatestBuildInfo) latestBuildInfo +{ + self.buildInfo = latestBuildInfo; +} + -(void) showLoginScreen { LoginScreen* loginScreen = [[LoginScreen alloc] initWithNibName:@"LoginScreen" bundle:nil]; @@ -348,24 +364,14 @@ static BOOL const DELETE_ZIP_FILES = TRUE; self.shouldDownloadInterface = shouldDownload; self.interfaceDownloadUrl = downloadUrl; self.latestBuildRequestFinished = TRUE; - NSLog(@"------> FINISHED ->>>>>>>>"); - /*if (shouldDownload) { - [self.downloadInterface downloadInterface: downloadUrl]; - return; - } - [self launchInterface];*/ -} - --(void)onSplashScreenTimerFinished:(NSTimer *)timer -{ if ([self isLoadedIn]) { Launcher* sharedLauncher = [Launcher sharedLauncher]; [sharedLauncher setCurrentProcessState:CHECKING_UPDATE]; - NSLog(@"Should Downlaod: %@", self.shouldDownloadInterface ? @"True" : @"False"); - if (self.shouldDownloadInterface) { + if (shouldDownload) { ProcessScreen* processScreen = [[ProcessScreen alloc] initWithNibName:@"ProcessScreen" bundle:nil]; [[[[NSApplication sharedApplication] windows] objectAtIndex:0] setContentViewController: processScreen]; - [self.downloadInterface downloadInterface: self.interfaceDownloadUrl]; + [self startUpdateProgressIndicatorTimer]; + [self.downloadInterface downloadInterface: downloadUrl]; return; } [self interfaceFinishedDownloading]; @@ -375,6 +381,11 @@ static BOOL const DELETE_ZIP_FILES = TRUE; } } +-(void)onSplashScreenTimerFinished:(NSTimer *)timer +{ + [self.latestBuildRequest requestLatestBuildInfo]; +} + -(void)setCurrentProcessState:(ProcessState)aProcessState { self.processState = aProcessState; @@ -454,11 +465,11 @@ static BOOL const DELETE_ZIP_FILES = TRUE; } [workspace launchApplicationAtURL:url options:NSWorkspaceLaunchNewInstance configuration:[NSDictionary dictionaryWithObject:arguments forKey:NSWorkspaceLaunchConfigurationArguments] error:&error]; - NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval: 3.0 - target: self - selector: @selector(exitLauncher:) - userInfo:nil - repeats: NO]; + [NSTimer scheduledTimerWithTimeInterval: 3.0 + target: self + selector: @selector(exitLauncher:) + userInfo:nil + repeats: NO]; } - (ProcessState) currentProccessState @@ -466,6 +477,13 @@ static BOOL const DELETE_ZIP_FILES = TRUE; return self.processState; } +- (void) callLaunchInterface:(NSTimer*) timer +{ + ProcessScreen* processScreen = [[ProcessScreen alloc] initWithNibName:@"ProcessScreen" bundle:nil]; + [[[[NSApplication sharedApplication] windows] objectAtIndex:0] setContentViewController: processScreen]; + [self launchInterface]; +} + - (void) exitLauncher:(NSTimer*) timer { diff --git a/launchers/darwin/src/main.mm b/launchers/darwin/src/main.mm index 4d66d15549..b6555aad87 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"); From 8819a3771298eb0904cd5f7abd048a5f8590cfac Mon Sep 17 00:00:00 2001 From: dante ruiz Date: Tue, 9 Jul 2019 14:44:40 -0700 Subject: [PATCH 5/7] making updates --- launchers/darwin/nib/ProcessScreen.xib | 2 +- launchers/darwin/src/CustomUI.h | 2 +- launchers/darwin/src/CustomUI.m | 26 +++++++++++----------- launchers/darwin/src/ErrorViewController.m | 2 +- launchers/darwin/src/LatestBuildRequest.m | 15 ++++++++----- launchers/darwin/src/Launcher.h | 1 + launchers/darwin/src/Launcher.m | 14 +++++++----- launchers/darwin/src/LoginScreen.m | 14 ++++++------ launchers/darwin/src/ProcessScreen.m | 4 +--- 9 files changed, 44 insertions(+), 36 deletions(-) diff --git a/launchers/darwin/nib/ProcessScreen.xib b/launchers/darwin/nib/ProcessScreen.xib index cb65f8ea7e..d16d71e5fa 100644 --- a/launchers/darwin/nib/ProcessScreen.xib +++ b/launchers/darwin/nib/ProcessScreen.xib @@ -60,7 +60,7 @@ - + diff --git a/launchers/darwin/src/CustomUI.h b/launchers/darwin/src/CustomUI.h index a9d93d03c7..a5e27f5c1b 100644 --- a/launchers/darwin/src/CustomUI.h +++ b/launchers/darwin/src/CustomUI.h @@ -25,6 +25,6 @@ extern NSString* hifiBackgroundFilename; @end @interface Hyperlink : NSTextField { - + } @end diff --git a/launchers/darwin/src/CustomUI.m b/launchers/darwin/src/CustomUI.m index 156efe04d5..61f92fe51f 100644 --- a/launchers/darwin/src/CustomUI.m +++ b/launchers/darwin/src/CustomUI.m @@ -24,19 +24,19 @@ NSString* hifiBackgroundFilename = @"hifi_window"; [NSApp sendAction:(NSSelectorFromString(@"paste:")) to:nil from:self]; return TRUE; } - + if ([[event charactersIgnoringModifiers] isEqualToString:@"c"]) { [NSApp sendAction:(NSSelectorFromString(@"copy:")) to:nil from:self]; return TRUE; } - + if ([[event charactersIgnoringModifiers] isEqualToString:@"a"]) { [NSApp sendAction:(NSSelectorFromString(@"selectAll:")) to:nil from:self]; return TRUE; } } } - + return [super performKeyEquivalent:event]; } @@ -46,7 +46,7 @@ NSString* hifiBackgroundFilename = @"hifi_window"; NSTextView *fieldEditor = (NSTextView*)[self.window fieldEditor:YES forObject:self]; fieldEditor.insertionPointColor = insertionPointColor; - + } -(BOOL)becomeFirstResponder @@ -75,7 +75,7 @@ NSString* hifiBackgroundFilename = @"hifi_window"; NSTextView *fieldEditor = (NSTextView*)[self.window fieldEditor:YES forObject:self]; fieldEditor.insertionPointColor = insertionPointColor; - + } @@ -97,19 +97,19 @@ NSString* hifiBackgroundFilename = @"hifi_window"; [NSApp sendAction:(NSSelectorFromString(@"paste:")) to:nil from:self]; return TRUE; } - + if ([[event charactersIgnoringModifiers] isEqualToString:@"c"]) { [NSApp sendAction:(NSSelectorFromString(@"copy:")) to:nil from:self]; return TRUE; } - + if ([[event charactersIgnoringModifiers] isEqualToString:@"a"]) { [NSApp sendAction:(NSSelectorFromString(@"selectAll:")) to:nil from:self]; return TRUE; } } } - + return [super performKeyEquivalent:event]; } @end @@ -126,7 +126,7 @@ NSString* hifiBackgroundFilename = @"hifi_window"; - (void)awakeFromNib { [super awakeFromNib]; - + self.wantsLayer = YES; self.layer.backgroundColor = [NSColor blackColor].CGColor; self.layer.borderColor = [NSColor whiteColor].CGColor; @@ -134,16 +134,16 @@ NSString* hifiBackgroundFilename = @"hifi_window"; self.layer.masksToBounds = YES; _titleLayer = [[CATextLayer alloc] init]; - + CGSize buttonSize = self.frame.size; CGSize titleSize = [self.title sizeWithAttributes:@{NSFontAttributeName: self.font}]; CGFloat x = (buttonSize.width - titleSize.width) / 2.0; // Title's origin x CGFloat y = (buttonSize.height - titleSize.height) / 2.0; // Title's origin y - + self.titleLayer.frame = NSMakeRect(round(x), round(y), ceil(titleSize.width), ceil(titleSize.height)); self.titleLayer.string = self.title; self.titleLayer.foregroundColor = [NSColor whiteColor].CGColor; - + // TODO(huffman) Fix this to be dynamic based on screen? self.titleLayer.contentsScale = 2.0; @@ -151,7 +151,7 @@ NSString* hifiBackgroundFilename = @"hifi_window"; self.titleLayer.fontSize = self.font.pointSize; //self.titleLayer.allowsEdgeAntialiasing = YES; //self.titleLayer.allowsFontSubpixelQuantization = YES; - + [self.layer addSublayer:self.titleLayer]; } diff --git a/launchers/darwin/src/ErrorViewController.m b/launchers/darwin/src/ErrorViewController.m index 0ae321763f..84dee95678 100644 --- a/launchers/darwin/src/ErrorViewController.m +++ b/launchers/darwin/src/ErrorViewController.m @@ -20,7 +20,7 @@ -(IBAction)resartLauncher:(id)sender { - [[Launcher sharedLauncher] showLoginScreen]; + [[Launcher sharedLauncher] restart]; } @end diff --git a/launchers/darwin/src/LatestBuildRequest.m b/launchers/darwin/src/LatestBuildRequest.m index 6ae8bfeba5..deb6d9795b 100644 --- a/launchers/darwin/src/LatestBuildRequest.m +++ b/launchers/darwin/src/LatestBuildRequest.m @@ -6,7 +6,7 @@ @implementation LatestBuildRequest - (NSInteger) getCurrentVersion { - /*NSInteger currentVersion; + NSInteger currentVersion; @try { NSString* interfaceAppPath = [[Launcher.sharedLauncher getAppPath] stringByAppendingString:@"interface.app"]; NSError * error = nil; @@ -19,8 +19,8 @@ } @catch (NSException *exception) { NSLog(@"an exception was thrown: %@", exception); currentVersion = [Settings.sharedSettings latestBuildVersion]; - }*/ - return [Settings.sharedSettings latestBuildVersion];//currentVersion; + } + return currentVersion; } - (void) requestLatestBuildInfo { @@ -32,13 +32,18 @@ // We're using an ephermeral session here to ensure the tags api response is never cached. NSURLSession * session = [NSURLSession sessionWithConfiguration:NSURLSessionConfiguration.ephemeralSessionConfiguration]; NSURLSessionDataTask* dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - - NSLog(@"Latest Build Request error: %@", error); NSLog(@"Latest Build Request Data: %@", data); NSHTTPURLResponse *ne = (NSHTTPURLResponse *)response; NSLog(@"Latest Build Request Response: %ld", [ne statusCode]); Launcher* sharedLauncher = [Launcher sharedLauncher]; + + if ([ne statusCode] == 500) { + dispatch_async(dispatch_get_main_queue(), ^{ + [sharedLauncher displayErrorPage]; + }); + return; + } NSMutableData* webData = [NSMutableData data]; [webData appendData:data]; NSString* jsonString = [[NSString alloc] initWithBytes: [webData mutableBytes] length:[data length] encoding:NSUTF8StringEncoding]; diff --git a/launchers/darwin/src/Launcher.h b/launchers/darwin/src/Launcher.h index d82824b50e..de67850bfe 100644 --- a/launchers/darwin/src/Launcher.h +++ b/launchers/darwin/src/Launcher.h @@ -72,6 +72,7 @@ struct LatestBuildInfo { - (BOOL) loginShouldSetErrorState; - (void) displayErrorPage; - (void) showLoginScreen; +- (void) restart; - (NSString*) getLauncherPath; - (ProcessState) currentProccessState; - (void) setCurrentProcessState:(ProcessState) aProcessState; diff --git a/launchers/darwin/src/Launcher.m b/launchers/darwin/src/Launcher.m index 9658d8641e..4661bd7ad6 100644 --- a/launchers/darwin/src/Launcher.m +++ b/launchers/darwin/src/Launcher.m @@ -89,8 +89,6 @@ static BOOL const DELETE_ZIP_FILES = TRUE; - (void) updateProgressIndicator { - NSProgressIndicator* progressIndicator = [self getProgressView]; - double oldValue = progressIndicator.doubleValue; double contentPercentage = [self.downloadDomainContent getProgressPercentage]; double interfacePercentage = [self.downloadInterface getProgressPercentage]; double currentTotalPercentage = self.progressTarget; @@ -136,16 +134,22 @@ static BOOL const DELETE_ZIP_FILES = TRUE; -(void) setProgressView:(NSProgressIndicator*) aProgressIndicator { - NSLog(@"Setting progressIndicator %@", aProgressIndicator); self.progressIndicator = aProgressIndicator; } -(NSProgressIndicator*) getProgressView { - //NSLog(@"Getting progressIndicator %@", self.progressIndicator); return self.progressIndicator; } +- (void) restart +{ + SplashScreen* splashScreen = [[SplashScreen alloc] initWithNibName:@"SplashScreen" bundle:nil]; + [[[[NSApplication sharedApplication] windows] objectAtIndex:0] setContentViewController: splashScreen]; + + [self checkLoginStatus]; +} + - (void) displayErrorPage { ErrorViewController* errorPage = [[ErrorViewController alloc] initWithNibName:@"ErrorScreen" bundle:nil]; @@ -154,7 +158,7 @@ static BOOL const DELETE_ZIP_FILES = TRUE; - (void) checkLoginStatus { - [NSTimer scheduledTimerWithTimeInterval:2.0 + [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(onSplashScreenTimerFinished:) userInfo:nil diff --git a/launchers/darwin/src/LoginScreen.m b/launchers/darwin/src/LoginScreen.m index 4c83558160..d654a14f1b 100644 --- a/launchers/darwin/src/LoginScreen.m +++ b/launchers/darwin/src/LoginScreen.m @@ -38,25 +38,25 @@ [self.backgroundImage setImage:[NSImage imageNamed:hifiBackgroundFilename]]; [self.smallLogo setImage:[NSImage imageNamed:hifiSmallLogoFilename]]; - + NSMutableAttributedString* usernameString = [[NSMutableAttributedString alloc] initWithString:@"Username"]; - + [usernameString addAttribute:NSForegroundColorAttributeName value:[NSColor grayColor] range:NSMakeRange(0,8)]; [usernameString addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:18] range:NSMakeRange(0,8)]; - + NSMutableAttributedString* orgName = [[NSMutableAttributedString alloc] initWithString:@"Organization Name"]; [orgName addAttribute:NSForegroundColorAttributeName value:[NSColor grayColor] range:NSMakeRange(0,17)]; [orgName addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:18] range:NSMakeRange(0,17)]; - + NSMutableAttributedString* passwordString = [[NSMutableAttributedString alloc] initWithString:@"Password"]; - + [passwordString addAttribute:NSForegroundColorAttributeName value:[NSColor grayColor] range:NSMakeRange(0,8)]; [passwordString addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:18] range:NSMakeRange(0,8)]; - + [self.username setPlaceholderAttributedString:usernameString]; [self.orginization setPlaceholderAttributedString:orgName]; [self.password setPlaceholderAttributedString:passwordString]; - + [self.password setTarget:self]; [self.password setAction:@selector(goToLogin:)]; } diff --git a/launchers/darwin/src/ProcessScreen.m b/launchers/darwin/src/ProcessScreen.m index 68a8ae8c7e..85ec5c8d5b 100644 --- a/launchers/darwin/src/ProcessScreen.m +++ b/launchers/darwin/src/ProcessScreen.m @@ -40,12 +40,10 @@ [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; [NSTimer scheduledTimerWithTimeInterval:0.016 target:self From 1741b9a91b3af15d907a1ab40cfbe2a030d7288b Mon Sep 17 00:00:00 2001 From: dante ruiz Date: Tue, 9 Jul 2019 14:49:08 -0700 Subject: [PATCH 6/7] remove prints --- launchers/darwin/src/DownloadInterface.m | 1 - 1 file changed, 1 deletion(-) diff --git a/launchers/darwin/src/DownloadInterface.m b/launchers/darwin/src/DownloadInterface.m index 200a723821..f0bdb645da 100644 --- a/launchers/darwin/src/DownloadInterface.m +++ b/launchers/darwin/src/DownloadInterface.m @@ -6,7 +6,6 @@ - (void) downloadInterface:(NSString*) downloadUrl { - NSLog(@"-----------------> %@", downloadUrl); self.progressPercentage = 0.0; self.taskProgressPercentage = 0.0; NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:downloadUrl] From 996a2f088898662e0a9e7cef8b0104c99f514fce Mon Sep 17 00:00:00 2001 From: dante ruiz Date: Tue, 9 Jul 2019 15:47:05 -0700 Subject: [PATCH 7/7] remove comment --- launchers/darwin/src/Launcher.m | 1 - 1 file changed, 1 deletion(-) diff --git a/launchers/darwin/src/Launcher.m b/launchers/darwin/src/Launcher.m index 4661bd7ad6..71eb7828e9 100644 --- a/launchers/darwin/src/Launcher.m +++ b/launchers/darwin/src/Launcher.m @@ -279,7 +279,6 @@ static BOOL const DELETE_ZIP_FILES = TRUE; return; } [self interfaceFinishedDownloading]; - //[self.latestBuildRequest requestLatestBuildInfo]; } - (void) domainScriptsDownloadFinished