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");