remove unused comments; remember running mode when switched off, remove alert which sucks

This commit is contained in:
clowwindy
2014-07-10 10:22:57 +08:00
parent c1fd5ba7dc
commit 2cd766cc6b
4 changed files with 50 additions and 72 deletions

View File

@@ -45,9 +45,11 @@
"Shadowsocks: Off" = "Shadowsocks: 关闭";
"Turn Shadowsocks On" = "打开 Shadowsocks";
"Turn Shadowsocks Off" = "关闭 Shadowsocks";
"Auto Proxy Mode" = "自动代理模式";
"Global Mode" = "全局模式";
"Open Server Preferences..." = "打开服务器设定...";
"Please fill in the blanks." = "请填写以下内容。";
"Show Logs..." = "显示日志...";
"Edit PAC..." = "编辑 PAC...";
"Edit PAC for Auto Proxy Mode..." = "编辑自动模式的 PAC...";
"Quit" = "退出";
"https://github.com/shadowsocks/shadowsocks-iOS/wiki/Shadowsocks-for-OSX-Help" = "https://github.com/shadowsocks/shadowsocks-iOS/wiki/Shadowsocks-for-OSX-%E5%B8%AE%E5%8A%A9";

View File

@@ -13,6 +13,7 @@
#import "ShadowsocksRunner.h"
#define kShadowsocksIsRunningKey @"ShadowsocksIsRunning"
#define kShadowsocksRunningModeKey @"ShadowsocksMode"
#define kShadowsocksHelper @"/Library/Application Support/ShadowsocksX/shadowsocks_sysconf"
#define kSysconfVersion @"1.0.0"
@@ -58,11 +59,11 @@ static SWBAppDelegate *appDelegate;
statusMenuItem = [[NSMenuItem alloc] initWithTitle:_L(Shadowsocks Off) action:nil keyEquivalent:@""];
enableMenuItem = [[NSMenuItem alloc] initWithTitle:_L(Turn Shadowsocks Off) action:@selector(enableProxy) keyEquivalent:@""];
enableMenuItem = [[NSMenuItem alloc] initWithTitle:_L(Turn Shadowsocks Off) action:@selector(toggleRunning) keyEquivalent:@""];
// [statusMenuItem setEnabled:NO];
autoMenuItem = [[NSMenuItem alloc] initWithTitle:_L(Use Shadowsocks Auto Proxy Mode) action:@selector(enableAutoProxy) keyEquivalent:@""];
autoMenuItem = [[NSMenuItem alloc] initWithTitle:_L(Auto Proxy Mode) action:@selector(enableAutoProxy) keyEquivalent:@""];
// [enableMenuItem setState:1];
globalMenuItem = [[NSMenuItem alloc] initWithTitle:_L(Use Shadowsocks Global Mode) action:@selector(enableGlobal)
globalMenuItem = [[NSMenuItem alloc] initWithTitle:_L(Global Mode) action:@selector(enableGlobal)
keyEquivalent:@""];
[menu addItem:statusMenuItem];
@@ -73,7 +74,7 @@ static SWBAppDelegate *appDelegate;
[menu addItem:[NSMenuItem separatorItem]];
[menu addItemWithTitle:_L(Open Server Preferences...) action:@selector(showConfigWindow) keyEquivalent:@""];
[menu addItemWithTitle:_L(Edit PAC...) action:@selector(editPAC) keyEquivalent:@""];
[menu addItemWithTitle:_L(Edit PAC for Auto Proxy Mode...) action:@selector(editPAC) keyEquivalent:@""];
[menu addItemWithTitle:_L(Show Logs...) action:@selector(showLogs) keyEquivalent:@""];
[menu addItemWithTitle:_L(Help) action:@selector(showHelp) keyEquivalent:@""];
[menu addItem:[NSMenuItem separatorItem]];
@@ -100,60 +101,39 @@ static SWBAppDelegate *appDelegate;
}
}
- (void)enableProxy {
if (isRunning) {
runningMode = @"off";
} else {
runningMode = @"auto";
}
isRunning = !isRunning;
[self toggleSystemProxy:runningMode];
[[NSUserDefaults standardUserDefaults] setObject:runningMode forKey:kShadowsocksIsRunningKey];
[self updateMenu];
}
- (void)enableAutoProxy {
isRunning = YES;
runningMode = @"auto";
[self toggleSystemProxy:@"auto"];
[[NSUserDefaults standardUserDefaults] setValue:runningMode forKey:kShadowsocksIsRunningKey];
[[NSUserDefaults standardUserDefaults] setValue:runningMode forKey:kShadowsocksRunningModeKey];
[self updateMenu];
[self reloadSystemProxy];
}
- (void)enableGlobal {
isRunning = YES;
runningMode = @"global";
[self toggleSystemProxy:@"global"];
[[NSUserDefaults standardUserDefaults] setValue:runningMode forKey:kShadowsocksIsRunningKey];
[[NSUserDefaults standardUserDefaults] setValue:runningMode forKey:kShadowsocksRunningModeKey];
[self updateMenu];
[self reloadSystemProxy];
}
- (void)updateMenu {
if (isRunning) {
statusMenuItem.title = _L(Shadowsocks: On);
enableMenuItem.title = _L(Turn Shadowsocks Off);
if ([runningMode isEqualToString:@"auto"]) {
self.item.image = [NSImage imageNamed:@"menu_icon"];
[autoMenuItem setState:1];
[globalMenuItem setState:0];
} else {
self.item.image = [NSImage imageNamed:@"menu_icon_global"];
[autoMenuItem setState:0];
[globalMenuItem setState:1];
}
self.item.image = [NSImage imageNamed:@"menu_icon"];
} else {
statusMenuItem.title = _L(Shadowsocks: Off);
enableMenuItem.title = _L(Turn Shadowsocks On);
[autoMenuItem setState: 0];
[globalMenuItem setState: 0];
self.item.image = [NSImage imageNamed:@"menu_icon_disabled"];
// [enableMenuItem setState:0];
}
if ([runningMode isEqualToString:@"auto"]) {
[autoMenuItem setState:1];
[globalMenuItem setState:0];
} else if([runningMode isEqualToString:@"global"]) {
[autoMenuItem setState:0];
[globalMenuItem setState:1];
}
}
void onPACChange(
@@ -164,13 +144,13 @@ void onPACChange(
const FSEventStreamEventFlags eventFlags[],
const FSEventStreamEventId eventIds[])
{
[appDelegate reloadPAC];
[appDelegate reloadSystemProxy];
}
- (void)reloadPAC {
- (void)reloadSystemProxy {
if (isRunning) {
[self toggleSystemProxy:@"off"];
[self toggleSystemProxy:runningMode];
[self toggleSystemProxy:NO];
[self toggleSystemProxy:YES];
}
}
@@ -227,7 +207,7 @@ void onPACChange(
- (void)applicationWillTerminate:(NSNotification *)notification {
NSLog(@"terminating");
if (isRunning) {
[self toggleSystemProxy:@"off"];
[self toggleSystemProxy:NO];
}
}
@@ -287,10 +267,6 @@ void onPACChange(
str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
if (![str isEqualToString:kSysconfVersion]) {
NSAlert *alert = [[NSAlert alloc] init];
[alert addButtonWithTitle:@"OK"];
[alert setMessageText:@"shadowsocks helper need to be updated"];
[alert runModal];
return NO;
}
return YES;
@@ -307,23 +283,38 @@ void onPACChange(
[self updateMenu];
}
- (void)toggleSystemProxy:(NSString*)mode {
isRunning = ([mode isEqualToString:@"auto"] || [mode isEqualToString:@"global"]);
- (void)toggleRunning {
[self toggleSystemProxy:!isRunning];
[[NSUserDefaults standardUserDefaults] setBool:isRunning forKey:kShadowsocksIsRunningKey];
[self updateMenu];
}
- (NSString *)runningMode {
NSString *mode = [[NSUserDefaults standardUserDefaults] stringForKey:kShadowsocksRunningModeKey];
if (mode) {
return mode;
}
return @"auto";
}
- (void)toggleSystemProxy:(BOOL)useProxy {
isRunning = useProxy;
NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath:kShadowsocksHelper];
/*
NSString *param;
if (useProxy) {
param = @"on";
param = [self runningMode];
} else {
param = @"off";
}*/
}
// this log is very important
NSLog(@"run shadowsocks helper: %@", kShadowsocksHelper);
NSArray *arguments;
//NSLog(@"run shadowsocks helper: %@", kShadowsocksHelper);
arguments = [NSArray arrayWithObjects:mode, nil];
arguments = [NSArray arrayWithObjects:param, nil];
[task setArguments:arguments];
NSPipe *stdoutpipe;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -30,16 +30,7 @@ int main(int argc, const char * argv[])
printf("%s", [VERSION UTF8String]);
return 0;
}
/*
BOOL on;
if (strcmp(argv[1], "on") == 0) {
on = YES;
} else if (strcmp(argv[1], "off") == 0) {
on = NO;
} else {
printf("usage: shadowsocks_sysconf on/off\n");
return 1;
}*/
static AuthorizationRef authRef;
static AuthorizationFlags authFlags;
authFlags = kAuthorizationFlagDefaults
@@ -98,13 +89,7 @@ int main(int argc, const char * argv[])
SCPreferencesSynchronize(prefRef);
}
/*
if (on) {
printf("pac proxy set to on\n");
} else {
printf("pac proxy set to off\n");
}
*/
printf("pac proxy set to %s", [mode UTF8String]);
}