JXMySettingVc.m 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367
  1. //
  2. // JXMySettingVc.m
  3. // shiku_im
  4. //
  5. // Created by 123 on 2020/5/23.
  6. // Copyright © 2020 Reese. All rights reserved.
  7. //
  8. #import "JXMySettingVc.h"
  9. #import "forgetPwdVC.h"
  10. #import "JXAccountBindingVC.h"
  11. #import "JXSelThemeColorsVC.h"
  12. #import "JXMainLoginVc.h"
  13. #import "loginVC.h"
  14. #import "JXSettingsViewController.h"
  15. #import "JXMyFeedVc.h"
  16. #import "JXAcccountAnQuanVc.h"
  17. #import "JLMyBubbleVC.h"
  18. #import "SDImageCache.h"
  19. #import "JXSetChatTextFontVC.h"
  20. #import "JXMainLoginVc.h"
  21. #import "JXSetChatBackgroundVC.h"
  22. #import "JXSelThemeColorsVC.h"
  23. @interface JXMySettingVc ()
  24. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *accountsetViewConstH;
  25. @property (weak, nonatomic) IBOutlet UIView *accoutSetView;
  26. @property (weak, nonatomic) IBOutlet UIButton *clearMBtn;
  27. @property (weak, nonatomic) IBOutlet UISwitch *closeDongBtn;
  28. @property (weak, nonatomic) IBOutlet UISwitch *closeSoundBtn;
  29. @property (nonatomic ,assign) BOOL reLogin;
  30. /**皮肤设置*/
  31. @property (weak, nonatomic) IBOutlet UIView *headIMGView;
  32. /**推出登录*/
  33. @property (weak, nonatomic) IBOutlet UIView *gooutLoginView;
  34. @property (strong, nonatomic) NSDictionary * dataSorce;
  35. @property (weak, nonatomic) IBOutlet UISwitch *isLongSwitch;
  36. @property (weak, nonatomic) IBOutlet UILabel *labelMM;
  37. @end
  38. @implementation JXMySettingVc
  39. - (void)clearMBtnClick{
  40. [[SDImageCache sharedImageCache] clearMemory];;
  41. SDImageCache *sdImageCache = [SDImageCache sharedImageCache];
  42. [[SDImageCache sharedImageCache] clearDiskOnCompletion:^{ }];
  43. NSString *str = [NSString stringWithFormat:@"%luM", (unsigned long)[sdImageCache getSize]/1000/1000];
  44. _labelMM.text=[NSString stringWithFormat:@"%.2fkb?",[str floatValue]];;
  45. [SVProgressHUD showWithStatus:@"清除成功"];
  46. [SVProgressHUD dismissWithDelay:1.0];
  47. }
  48. - (void)viewDidLoad {
  49. [super viewDidLoad];
  50. //self.view.backgroundColor=kRGBColor246;
  51. _dataSorce=[NSDictionary dictionary];
  52. self.accountsetViewConstH.constant=JX_SCREEN_TOP+10;
  53. [self defineNavBar:@"账号与安全" andRinghtBtnImg:@""];
  54. self.clearMBtn.layer.cornerRadius=5;
  55. self.clearMBtn.layer.masksToBounds=YES;
  56. SDImageCache *sdImageCache = [SDImageCache sharedImageCache];
  57. NSString *str = [NSString stringWithFormat:@"%lu", (unsigned long)[sdImageCache getSize]/1000/1000];
  58. _labelMM.text=[NSString stringWithFormat:@"%.2fkb",[str floatValue]];;
  59. [self.clearMBtn addTarget:self action:@selector(clearMBtnClick) forControlEvents:UIControlEventTouchUpInside];
  60. [_accoutSetView addGestureRecognizer:[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(accountSetting)]];
  61. [_headIMGView addGestureRecognizer:[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(skipSetting)]];
  62. [_gooutLoginView addGestureRecognizer:[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(logoutView)]];
  63. [self.closeDongBtn addTarget:self action:@selector(closeDongBtnClick) forControlEvents:UIControlEventTouchUpInside];
  64. [self.closeSoundBtn addTarget:self action:@selector(closeSoundBtnClick) forControlEvents:UIControlEventTouchUpInside];
  65. [self.isLongSwitch addTarget:self action:@selector(isLongSwitchClick) forControlEvents:UIControlEventTouchUpInside];
  66. NSDictionary *isDict=[[NSUserDefaults standardUserDefaults] objectForKey:@"zhendong"];
  67. // if ([g_default boolForKey:kLongComePushIsFirstSetUp] != 1) { self.isLongSwitch.on = YES; } else { }
  68. if ([g_default boolForKey:kLongComePush] == 0) {
  69. self.isLongSwitch.on = YES;
  70. }else{
  71. self.isLongSwitch.on = NO;
  72. }
  73. if([[isDict objectForKey:@"isVibration"] integerValue] == 1)
  74. {
  75. self.closeDongBtn.on = YES;
  76. }else{
  77. self.closeDongBtn.on = NO;
  78. }
  79. if([g_default boolForKey:kMsgComeMute] == 1){
  80. self.closeSoundBtn.on = YES;
  81. }else{
  82. self.closeSoundBtn.on = NO;
  83. }
  84. }
  85. /** 是否屠龙推送 */
  86. - (void)isLongSwitchClick{
  87. BOOL isOpen = [g_default boolForKey:kLongComePush];
  88. if (isOpen==0) {
  89. [g_default setBool:1 forKey:kLongComePush];
  90. [g_default synchronize];
  91. }else{
  92. [g_default setBool:0 forKey:kLongComePush];
  93. [g_default synchronize];
  94. }
  95. return;
  96. // [g_server changeFriendSetting:nil allowAtt:nil allowGreet:nil key:@"isVibration" value:g_myself.isVibration toView:self];
  97. // 本地
  98. [g_default setBool:YES forKey:kLongComePushIsFirstSetUp];
  99. [g_default setBool:self.isLongSwitch.isOn forKey:kLongComePush];
  100. [g_default synchronize];
  101. }
  102. -(void)closeDongBtnClick{
  103. g_myself.isVibration = [NSString stringWithFormat:@"%@",self.closeDongBtn.isOn ? @"1" : @"0"];
  104. [g_server changeFriendSetting:nil allowAtt:nil allowGreet:nil key:@"isVibration" value:g_myself.isVibration toView:self];
  105. }
  106. -(void)closeSoundBtnClick{
  107. g_myself.isMute = [NSString stringWithFormat:@"%@",self.closeSoundBtn.isOn ? @"1" : @"0"];
  108. // 先不做网络同步
  109. // [g_server changeFriendSetting:nil allowAtt:nil allowGreet:nil key:@"isVibration" value:g_myself.isVibration toView:self];
  110. // 本地
  111. [g_default setBool:self.closeSoundBtn.isOn forKey:kMsgComeMute];
  112. [g_default synchronize];
  113. }
  114. /*
  115. * 账号设置
  116. */
  117. - (void)accountSetting{
  118. //
  119. JXAcccountAnQuanVc *bindVC = [[JXAcccountAnQuanVc alloc] init];
  120. [g_navigation pushViewController:bindVC animated:YES];
  121. return;
  122. JXAccountBindingVC *bindVCx = [[JXAccountBindingVC alloc] init];
  123. [g_navigation pushViewController:bindVC animated:YES];
  124. }
  125. /*
  126. * 皮肤设置
  127. */
  128. - (void)skipSetting{
  129. JXSetChatTextFontVC *vc = [[JXSetChatTextFontVC alloc] init];
  130. [g_navigation pushViewController:vc animated:YES];
  131. // JXSetChatBackgroundVC *vc = [[JXSetChatBackgroundVC alloc] init];
  132. // JLMyBubbleVC; JXSelThemeColorsVC;
  133. // JXSelThemeColorsVC *vc = [[JXSelThemeColorsVC alloc] init];
  134. // vc.title = Localized(@"JXTheme_choose");
  135. // vc.array = g_theme.skinNameList;
  136. // vc.selectIndex = g_theme.themeIndex;
  137. // [g_navigation pushViewController:vc animated:YES];
  138. }
  139. /*
  140. * 密码设置
  141. */
  142. - (void)pwdSetting{
  143. }
  144. /*
  145. * 推出登录
  146. */
  147. - (void)logoutView{
  148. [g_App showAlert:Localized(@"JXAlert_LoginOut") delegate:self];
  149. }
  150. - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
  151. if(buttonIndex==1){
  152. //保存未读消息条数
  153. // [g_notify postNotificationName:kSaveBadgeNotifaction object:nil];
  154. [g_server stopConnection:self];
  155. JXUserObject *user = [JXUserObject sharedInstance];
  156. [g_server logout:user.areaCode toView:self];
  157. }
  158. }
  159. -(void)doSwitch{
  160. [g_default removeObjectForKey:kMY_USER_PASSWORD];
  161. [g_default removeObjectForKey:kMY_USER_TOKEN];
  162. [g_notify postNotificationName:kSystemLogoutNotifaction object:nil];
  163. g_xmpp.isReconnect = NO;
  164. [[JXXMPP sharedInstance] logout];
  165. NSLog(@"XMPP ---- jxsettingVC doSwitch");
  166. // 退出登录到登陆界面 隐藏悬浮窗
  167. g_App.subWindow.hidden = YES;
  168. // loginVC* vc = [loginVC alloc];
  169. JXMainLoginVc* vc = [JXMainLoginVc alloc];
  170. vc.isAutoLogin = NO;
  171. vc.isSwitchUser= NO;
  172. vc = [vc init];
  173. [g_mainVC.view removeFromSuperview];
  174. g_mainVC = nil;
  175. [self.view removeFromSuperview];
  176. self.view = nil;
  177. g_navigation.rootViewController = vc;
  178. // g_navigation.lastVC = nil;
  179. // [g_navigation.subViews removeAllObjects];
  180. // [g_navigation pushViewController:vc];
  181. // g_App.window.rootViewController = vc;
  182. // [g_App.window makeKeyAndVisible];
  183. // loginVC* vc = [loginVC alloc];
  184. // vc.isAutoLogin = NO;
  185. // vc.isSwitchUser= YES;
  186. // vc = [vc init];
  187. // [g_navigation.subViews removeAllObjects];
  188. //// [g_window addSubview:vc.view];
  189. // [g_navigation pushViewController:vc];
  190. // [self actionQuit];
  191. // [_wait performSelector:@selector(stop) withObject:nil afterDelay:1];
  192. // [_wait stop];
  193. #if TAR_IM
  194. #ifdef Meeting_Version
  195. [g_meeting stopMeeting];
  196. #endif
  197. #endif
  198. }
  199. -(void)relogin{
  200. // [g_default removeObjectForKey:kMY_USER_PASSWORD];
  201. // [g_default setObject:nil forKey:kMY_USER_TOKEN];
  202. g_server.access_token = nil;
  203. [g_notify postNotificationName:kSystemLogoutNotifaction object:nil];
  204. [[JXXMPP sharedInstance] logout];
  205. NSLog(@"XMPP ---- jxsettingVC relogin");
  206. // loginVC* vc = [loginVC alloc];
  207. JXMainLoginVc* vc = [JXMainLoginVc alloc];
  208. vc.isAutogoLogin=NO;
  209. vc.isAutoLogin = NO;
  210. vc.isSwitchUser= NO;
  211. vc = [vc init];
  212. [g_mainVC.view removeFromSuperview];
  213. g_mainVC = nil;
  214. [self.view removeFromSuperview];
  215. self.view = nil;
  216. g_navigation.rootViewController = vc;
  217. // g_navigation.lastVC = nil;
  218. // [g_navigation.subViews removeAllObjects];
  219. // [g_navigation pushViewController:vc];
  220. // g_App.window.rootViewController = vc;
  221. // [g_App.window makeKeyAndVisible];
  222. // loginVC* vc = [loginVC alloc];
  223. // vc.isAutoLogin = NO;
  224. // vc.isSwitchUser= NO;
  225. // vc = [vc init];
  226. // [g_window addSubview:vc.view];
  227. // [self actionQuit];
  228. // [_wait performSelector:@selector(stop) withObject:nil afterDelay:1];
  229. #if TAR_IM
  230. #ifdef Meeting_Version
  231. [g_meeting stopMeeting];
  232. #endif
  233. #endif
  234. }
  235. -(void) didServerResultSucces:(JXConnection*)aDownload dict:(NSDictionary*)dict array:(NSArray*)array1{
  236. if ([aDownload.action isEqualToString:act_SettingsUpdate]) {//更改了好友验证
  237. self.dataSorce = [dict objectForKey:@"settings"];
  238. //[self changeSettingsNum];
  239. [[NSUserDefaults standardUserDefaults] setObject:[dict objectForKey:@"settings"] forKey:@"zhendong"];
  240. [[NSUserDefaults standardUserDefaults] synchronize];
  241. }
  242. if( [aDownload.action isEqualToString:act_UserLogout] ){
  243. [g_default setObject:nil forKey:kMY_USER_PrivateKey_DH];
  244. [g_default setObject:nil forKey:kMY_USER_PrivateKey_RSA];
  245. if (self.reLogin) {
  246. // [g_notify postNotificationName:kLogOutNotifaction object:nil];
  247. // [g_default setObject:nil forKey:kMY_USER_TOKEN];
  248. // g_server.access_token = nil;
  249. self.reLogin = NO;
  250. [self relogin];
  251. // g_mainVC = nil;
  252. // [JXMyTools showTipView:Localized(@"SignOuted")];
  253. //
  254. // [[JXXMPP sharedInstance] logout];
  255. // [self actionLogout];
  256. // [self admobDidQuit];
  257. return;
  258. }
  259. [self performSelector:@selector(doSwitch) withObject:nil afterDelay:1];
  260. }else if ([aDownload.action isEqualToString:act_Settings]){
  261. //跳转新的页面
  262. JXSettingsViewController* vc = [[JXSettingsViewController alloc]init];
  263. vc.dataSorce = dict;
  264. // [g_window addSubview:vc.view];
  265. [g_navigation pushViewController:vc animated:YES];
  266. }
  267. if ([aDownload.action isEqualToString:act_EmptyMsg]){
  268. [g_App showAlert:Localized(@"JX_ClearSuccess")];
  269. }
  270. }
  271. -(int) didServerResultFailed:(JXConnection*)aDownload dict:(NSDictionary*)dict{
  272. if( [aDownload.action isEqualToString:act_UserLogout] ){
  273. [self performSelector:@selector(doSwitch) withObject:nil afterDelay:1];
  274. }
  275. return hide_error;
  276. }
  277. -(int) didServerConnectError:(JXConnection*)aDownload error:(NSError *)error{//error为空时,代表超时
  278. return 1;
  279. }
  280. -(void) didServerConnectStart:(JXConnection*)aDownload{
  281. }
  282. @end