fix remote_dir
This commit is contained in:
		
							parent
							
								
									840413db5f
								
							
						
					
					
						commit
						fa2407d857
					
				| @ -969,6 +969,25 @@ impl LoginConfigHandler { | |||||||
|         self.save_config(config); |         self.save_config(config); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     fn get_remote_dir(&self) -> String { | ||||||
|  |         serde_json::from_str::<HashMap<String, String>>(&self.get_option("remote_dir")) | ||||||
|  |             .unwrap_or_default() | ||||||
|  |             .remove(&self.info.username) | ||||||
|  |             .unwrap_or_default() | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     pub fn get_all_remote_dir(&self, path: String) -> String { | ||||||
|  |         let d = self.get_option("remote_dir"); | ||||||
|  |         let user = self.info.username.clone(); | ||||||
|  |         let mut x = serde_json::from_str::<HashMap<String, String>>(&d).unwrap_or_default(); | ||||||
|  |         if path.is_empty() { | ||||||
|  |             x.remove(&user); | ||||||
|  |         } else { | ||||||
|  |             x.insert(user, path); | ||||||
|  |         } | ||||||
|  |         serde_json::to_string::<HashMap<String, String>>(&x).unwrap_or_default() | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     fn create_login_msg(&self, password: Vec<u8>) -> Message { |     fn create_login_msg(&self, password: Vec<u8>) -> Message { | ||||||
|         #[cfg(any(target_os = "android", target_os = "ios"))] |         #[cfg(any(target_os = "android", target_os = "ios"))] | ||||||
|         let my_id = crate::common::MOBILE_INFO1.lock().unwrap().clone(); |         let my_id = crate::common::MOBILE_INFO1.lock().unwrap().clone(); | ||||||
| @ -984,7 +1003,7 @@ impl LoginConfigHandler { | |||||||
|         }; |         }; | ||||||
|         if self.is_file_transfer { |         if self.is_file_transfer { | ||||||
|             lr.set_file_transfer(FileTransfer { |             lr.set_file_transfer(FileTransfer { | ||||||
|                 dir: self.get_option("remote_dir"), |                 dir: self.get_remote_dir(), | ||||||
|                 show_hidden: !self.get_option("remote_show_hidden").is_empty(), |                 show_hidden: !self.get_option("remote_show_hidden").is_empty(), | ||||||
|                 ..Default::default() |                 ..Default::default() | ||||||
|             }); |             }); | ||||||
|  | |||||||
| @ -539,7 +539,10 @@ impl Handler { | |||||||
|         if self.is_file_transfer() { |         if self.is_file_transfer() { | ||||||
|             let close_state = self.read().unwrap().close_state.clone(); |             let close_state = self.read().unwrap().close_state.clone(); | ||||||
|             let mut has_change = false; |             let mut has_change = false; | ||||||
|             for (k, v) in close_state { |             for (k, mut v) in close_state { | ||||||
|  |                 if k == "remote_dir" { | ||||||
|  |                     v = self.lc.read().unwrap().get_all_remote_dir(v); | ||||||
|  |                 } | ||||||
|                 let v2 = if v.is_empty() { None } else { Some(&v) }; |                 let v2 = if v.is_empty() { None } else { Some(&v) }; | ||||||
|                 if v2 != config.options.get(&k) { |                 if v2 != config.options.get(&k) { | ||||||
|                     has_change = true; |                     has_change = true; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user