Merge pull request #3529 from 21pages/fix
recover "Add to favorite" in lan
This commit is contained in:
		
						commit
						14eed0bb31
					
				| @ -890,13 +890,10 @@ class DiscoveredPeerCard extends BasePeerCard { | |||||||
|       menuItems.add(_createShortCutAction(peer.id)); |       menuItems.add(_createShortCutAction(peer.id)); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     final inRecent = await bind.mainIsInRecentPeers(id: peer.id); |     if (!favs.contains(peer.id)) { | ||||||
|     if (inRecent) { |       menuItems.add(_addFavAction(peer.id)); | ||||||
|       if (!favs.contains(peer.id)) { |     } else { | ||||||
|         menuItems.add(_addFavAction(peer.id)); |       menuItems.add(_rmFavAction(peer.id, () async {})); | ||||||
|       } else { |  | ||||||
|         menuItems.add(_rmFavAction(peer.id, () async {})); |  | ||||||
|       } |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (gFFI.userModel.userName.isNotEmpty) { |     if (gFFI.userModel.userName.isNotEmpty) { | ||||||
|  | |||||||
| @ -10,7 +10,7 @@ use crate::{ | |||||||
| }; | }; | ||||||
| use flutter_rust_bridge::{StreamSink, SyncReturn}; | use flutter_rust_bridge::{StreamSink, SyncReturn}; | ||||||
| use hbb_common::{ | use hbb_common::{ | ||||||
|     config::{self, LocalConfig, PeerConfig, ONLINE}, |     config::{self, LocalConfig, PeerConfig, PeerInfoSerde, ONLINE}, | ||||||
|     fs, log, |     fs, log, | ||||||
|     message_proto::KeyboardMode, |     message_proto::KeyboardMode, | ||||||
|     ResultType, |     ResultType, | ||||||
| @ -21,6 +21,7 @@ use std::{ | |||||||
|     ffi::{CStr, CString}, |     ffi::{CStr, CString}, | ||||||
|     os::raw::c_char, |     os::raw::c_char, | ||||||
|     str::FromStr, |     str::FromStr, | ||||||
|  |     time::SystemTime, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| // use crate::hbbs_http::account::AuthResult;
 | // use crate::hbbs_http::account::AuthResult;
 | ||||||
| @ -726,10 +727,6 @@ pub fn main_peer_has_password(id: String) -> bool { | |||||||
|     peer_has_password(id) |     peer_has_password(id) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| pub fn main_is_in_recent_peers(id: String) -> bool { |  | ||||||
|     PeerConfig::peers().iter().any(|e| e.0 == id) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| pub fn main_load_recent_peers() { | pub fn main_load_recent_peers() { | ||||||
|     if !config::APP_DIR.read().unwrap().is_empty() { |     if !config::APP_DIR.read().unwrap().is_empty() { | ||||||
|         let peers: Vec<HashMap<&str, String>> = PeerConfig::peers() |         let peers: Vec<HashMap<&str, String>> = PeerConfig::peers() | ||||||
| @ -756,7 +753,28 @@ pub fn main_load_recent_peers() { | |||||||
| pub fn main_load_fav_peers() { | pub fn main_load_fav_peers() { | ||||||
|     if !config::APP_DIR.read().unwrap().is_empty() { |     if !config::APP_DIR.read().unwrap().is_empty() { | ||||||
|         let favs = get_fav(); |         let favs = get_fav(); | ||||||
|         let peers: Vec<HashMap<&str, String>> = PeerConfig::peers() |         let mut recent = PeerConfig::peers(); | ||||||
|  |         let mut lan = config::LanPeers::load() | ||||||
|  |             .peers | ||||||
|  |             .iter() | ||||||
|  |             .filter(|d| recent.iter().all(|r| r.0 != d.id)) | ||||||
|  |             .map(|d| { | ||||||
|  |                 ( | ||||||
|  |                     d.id.clone(), | ||||||
|  |                     SystemTime::UNIX_EPOCH, | ||||||
|  |                     PeerConfig { | ||||||
|  |                         info: PeerInfoSerde { | ||||||
|  |                             username: d.username.clone(), | ||||||
|  |                             hostname: d.hostname.clone(), | ||||||
|  |                             platform: d.platform.clone(), | ||||||
|  |                         }, | ||||||
|  |                         ..Default::default() | ||||||
|  |                     }, | ||||||
|  |                 ) | ||||||
|  |             }) | ||||||
|  |             .collect(); | ||||||
|  |         recent.append(&mut lan); | ||||||
|  |         let peers: Vec<HashMap<&str, String>> = recent | ||||||
|             .into_iter() |             .into_iter() | ||||||
|             .filter_map(|(id, _, p)| { |             .filter_map(|(id, _, p)| { | ||||||
|                 if favs.contains(&id) { |                 if favs.contains(&id) { | ||||||
| @ -1361,7 +1379,7 @@ pub fn send_url_scheme(_url: String) { | |||||||
| 
 | 
 | ||||||
| #[cfg(target_os = "android")] | #[cfg(target_os = "android")] | ||||||
| pub mod server_side { | pub mod server_side { | ||||||
|     use hbb_common::{log, config}; |     use hbb_common::{config, log}; | ||||||
|     use jni::{ |     use jni::{ | ||||||
|         objects::{JClass, JString}, |         objects::{JClass, JString}, | ||||||
|         sys::jstring, |         sys::jstring, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user