Skip to content

Commit 863246e

Browse files
committed
Updated Hide Dock so that it shows and hides based on the menu hits consistently. Icon state is not stored over quits.
1 parent 46998a7 commit 863246e

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

Statusfy/SFYAppDelegate.m

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111

1212
static NSString * const SFYPlayerStatePreferenceKey = @"ShowPlayerState";
13-
static NSString * const SFYPlayerDockIconPreferenceKey = @"ShowDockIcon";
13+
static NSString * const SFYPlayerDockIconPreferenceKey = @"YES";
1414

1515
@interface SFYAppDelegate ()
1616

@@ -24,14 +24,17 @@ @implementation SFYAppDelegate
2424

2525
- (void)applicationDidFinishLaunching:(NSNotification * __unused)aNotification
2626
{
27+
//Initialize the variable the getDockIconVisibility method checks
28+
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:SFYPlayerDockIconPreferenceKey];
29+
2730
self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
2831
self.statusItem.highlightMode = YES;
2932

3033
NSMenu *menu = [[NSMenu alloc] initWithTitle:@""];
3134

3235
self.playerStateMenuItem = [[NSMenuItem alloc] initWithTitle:[self determinePlayerStateMenuItemTitle] action:@selector(togglePlayerStateVisibility) keyEquivalent:@""];
3336

34-
self.dockIconMenuItem = [[NSMenuItem alloc] initWithTitle:[self determineDockIconMenuItemTitle] action:@selector(toggleDockIconVisibility) keyEquivalent:@""];
37+
self.dockIconMenuItem = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Hide Dock Icon", nil) action:@selector(toggleDockIconVisibility) keyEquivalent:@""];
3538

3639
[menu addItem:self.playerStateMenuItem];
3740
[menu addItem:self.dockIconMenuItem];
@@ -43,7 +46,6 @@ - (void)applicationDidFinishLaunching:(NSNotification * __unused)aNotification
4346
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(setStatusItemTitle) userInfo:nil repeats:YES];
4447
}
4548

46-
4749
#pragma mark - Setting title text
4850

4951
- (void)setStatusItemTitle
@@ -70,7 +72,6 @@ - (void)setStatusItemTitle
7072
}
7173
}
7274

73-
7475
#pragma mark - Executing AppleScript
7576

7677
- (NSAppleEventDescriptor *)executeAppleScript:(NSString *)command
@@ -81,7 +82,6 @@ - (NSAppleEventDescriptor *)executeAppleScript:(NSString *)command
8182
return eventDescriptor;
8283
}
8384

84-
8585
#pragma mark - Player state
8686

8787
- (BOOL)getPlayerStateVisibility
@@ -132,20 +132,23 @@ - (BOOL)getDockIconVisibility
132132

133133
- (void)setDockIconVisibility:(BOOL)visible
134134
{
135-
[[NSUserDefaults standardUserDefaults] setBool:visible forKey:SFYPlayerDockIconPreferenceKey];
135+
[[NSUserDefaults standardUserDefaults] setBool:visible forKey:SFYPlayerDockIconPreferenceKey];
136136
}
137137

138138
- (void)toggleDockIconVisibility
139139
{
140140
[self setDockIconVisibility:![self getDockIconVisibility]];
141141
self.dockIconMenuItem.title = [self determineDockIconMenuItemTitle];
142142

143-
if([_dockIconMenuItem.title isEqual: @"Show Dock Icon"])
143+
if(![self getDockIconVisibility])
144144
{
145+
//Apple recommended method to show and hide dock icon
146+
//hide icon
145147
[NSApp setActivationPolicy: NSApplicationActivationPolicyAccessory];
146148
}
147149
else
148150
{
151+
//show icon
149152
[NSApp setActivationPolicy: NSApplicationActivationPolicyRegular];
150153
}
151154
}
@@ -162,6 +165,4 @@ - (void)quit
162165
[[NSApplication sharedApplication] terminate:self];
163166
}
164167

165-
@end
166-
167-
168+
@end

0 commit comments

Comments
 (0)