chore(data,engine,docs): remove Google Play Games Services sync backend
Deletes the solitaire_gpgs crate and all GPGS references from settings, sync client, profile plugin, CLAUDE.md, and ARCHITECTURE.md. The self-hosted server covers all sync needs without the Android-only backend. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -40,7 +40,8 @@ pub enum Theme {
|
||||
|
||||
/// Which sync backend the player has configured.
|
||||
///
|
||||
/// JWT tokens for `SolitaireServer` are stored in the OS keychain via
|
||||
/// `Local` keeps all progress on-device. `SolitaireServer` syncs via the
|
||||
/// self-hosted server. JWT tokens are stored in the OS keychain via
|
||||
/// `solitaire_data::auth_tokens` — **never** in this struct.
|
||||
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
|
||||
pub enum SyncBackend {
|
||||
@@ -57,10 +58,7 @@ pub enum SyncBackend {
|
||||
username: String,
|
||||
// JWT tokens are stored in the OS keychain — not here.
|
||||
},
|
||||
/// Google Play Games Services (Android only). Selecting this on non-Android
|
||||
/// platforms silently falls back to `Local` at runtime.
|
||||
#[serde(rename = "google_play_games")]
|
||||
GooglePlayGames,
|
||||
|
||||
}
|
||||
|
||||
/// Persistent user settings.
|
||||
|
||||
@@ -412,19 +412,12 @@ async fn extract_push_body(resp: reqwest::Response) -> Result<SyncResponse, Sync
|
||||
/// This is the **one** place in the codebase that matches on [`SyncBackend`]
|
||||
/// variants. All other code receives a `Box<dyn SyncProvider + Send + Sync>`
|
||||
/// and remains backend-agnostic.
|
||||
///
|
||||
/// `GooglePlayGames` is Android-only; on desktop it silently falls back to
|
||||
/// [`LocalOnlyProvider`].
|
||||
pub fn provider_for_backend(backend: &SyncBackend) -> Box<dyn SyncProvider + Send + Sync> {
|
||||
match backend {
|
||||
SyncBackend::Local => Box::new(LocalOnlyProvider),
|
||||
SyncBackend::SolitaireServer { url, username } => {
|
||||
Box::new(SolitaireServerClient::new(url.clone(), username.clone()))
|
||||
}
|
||||
SyncBackend::GooglePlayGames => {
|
||||
// GPGS is Android-only; fall back to no-op on desktop.
|
||||
Box::new(LocalOnlyProvider)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -470,12 +463,6 @@ mod tests {
|
||||
assert_eq!(provider.backend_name(), "local");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn factory_gpgs_falls_back_to_local() {
|
||||
let provider = provider_for_backend(&SyncBackend::GooglePlayGames);
|
||||
assert_eq!(provider.backend_name(), "local");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn factory_server_returns_server_client() {
|
||||
let provider = provider_for_backend(&SyncBackend::SolitaireServer {
|
||||
|
||||
Reference in New Issue
Block a user