diff --git a/android/app/src/main/kotlin/com/zarz/spotiflac/MainActivity.kt b/android/app/src/main/kotlin/com/zarz/spotiflac/MainActivity.kt index 568520f3..77254873 100644 --- a/android/app/src/main/kotlin/com/zarz/spotiflac/MainActivity.kt +++ b/android/app/src/main/kotlin/com/zarz/spotiflac/MainActivity.kt @@ -3397,64 +3397,64 @@ class MainActivity: FlutterFragmentActivity() { } result.success(response) } - "initExtensionStore" -> { + "initExtensionRepo" -> { val cacheDir = call.argument("cache_dir") ?: "" withContext(Dispatchers.IO) { - Gobackend.initExtensionStoreJSON(cacheDir) + Gobackend.initExtensionRepoJSON(cacheDir) } result.success(null) } - "setStoreRegistryUrl" -> { + "setRepoRegistryUrl" -> { val registryUrl = call.argument("registry_url") ?: "" withContext(Dispatchers.IO) { - Gobackend.setStoreRegistryURLJSON(registryUrl) + Gobackend.setRepoRegistryURLJSON(registryUrl) } result.success(null) } - "getStoreRegistryUrl" -> { + "getRepoRegistryUrl" -> { val response = withContext(Dispatchers.IO) { - Gobackend.getStoreRegistryURLJSON() + Gobackend.getRepoRegistryURLJSON() } result.success(response) } - "clearStoreRegistryUrl" -> { + "clearRepoRegistryUrl" -> { withContext(Dispatchers.IO) { - Gobackend.clearStoreRegistryURLJSON() + Gobackend.clearRepoRegistryURLJSON() } result.success(null) } - "getStoreExtensions" -> { + "getRepoExtensions" -> { val forceRefresh = call.argument("force_refresh") ?: false val response = withContext(Dispatchers.IO) { - Gobackend.getStoreExtensionsJSON(forceRefresh) + Gobackend.getRepoExtensionsJSON(forceRefresh) } result.success(response) } - "searchStoreExtensions" -> { + "searchRepoExtensions" -> { val query = call.argument("query") ?: "" val category = call.argument("category") ?: "" val response = withContext(Dispatchers.IO) { - Gobackend.searchStoreExtensionsJSON(query, category) + Gobackend.searchRepoExtensionsJSON(query, category) } result.success(response) } - "getStoreCategories" -> { + "getRepoCategories" -> { val response = withContext(Dispatchers.IO) { - Gobackend.getStoreCategoriesJSON() + Gobackend.getRepoCategoriesJSON() } result.success(response) } - "downloadStoreExtension" -> { + "downloadRepoExtension" -> { val extensionId = call.argument("extension_id") ?: "" val destDir = call.argument("dest_dir") ?: "" val response = withContext(Dispatchers.IO) { - Gobackend.downloadStoreExtensionJSON(extensionId, destDir) + Gobackend.downloadRepoExtensionJSON(extensionId, destDir) } result.success(response) } - "clearStoreCache" -> { + "clearRepoCache" -> { withContext(Dispatchers.IO) { - Gobackend.clearStoreCacheJSON() + Gobackend.clearRepoCacheJSON() } result.success(null) } diff --git a/go_backend/exports_repo.go b/go_backend/exports_repo.go index 6b5ede89..7c661b35 100644 --- a/go_backend/exports_repo.go +++ b/go_backend/exports_repo.go @@ -7,12 +7,12 @@ import ( "strings" ) -func InitExtensionStoreJSON(cacheDir string) error { +func InitExtensionRepoJSON(cacheDir string) error { initExtensionRepo(cacheDir) return nil } -func SetStoreRegistryURLJSON(registryURL string) error { +func SetRepoRegistryURLJSON(registryURL string) error { repo := getExtensionRepo() if repo == nil { return fmt.Errorf("extension repo not initialized") @@ -31,7 +31,7 @@ func SetStoreRegistryURLJSON(registryURL string) error { return nil } -func ClearStoreRegistryURLJSON() error { +func ClearRepoRegistryURLJSON() error { repo := getExtensionRepo() if repo == nil { return fmt.Errorf("extension repo not initialized") @@ -42,7 +42,7 @@ func ClearStoreRegistryURLJSON() error { return nil } -func GetStoreRegistryURLJSON() (string, error) { +func GetRepoRegistryURLJSON() (string, error) { repo := getExtensionRepo() if repo == nil { return "", fmt.Errorf("extension repo not initialized") @@ -51,7 +51,7 @@ func GetStoreRegistryURLJSON() (string, error) { return repo.getRegistryURL(), nil } -func GetStoreExtensionsJSON(forceRefresh bool) (string, error) { +func GetRepoExtensionsJSON(forceRefresh bool) (string, error) { repo := getExtensionRepo() if repo == nil { return "", fmt.Errorf("extension repo not initialized") @@ -65,7 +65,7 @@ func GetStoreExtensionsJSON(forceRefresh bool) (string, error) { return marshalJSONString(extensions) } -func SearchStoreExtensionsJSON(query, category string) (string, error) { +func SearchRepoExtensionsJSON(query, category string) (string, error) { repo := getExtensionRepo() if repo == nil { return "", fmt.Errorf("extension repo not initialized") @@ -79,7 +79,7 @@ func SearchStoreExtensionsJSON(query, category string) (string, error) { return marshalJSONString(extensions) } -func GetStoreCategoriesJSON() (string, error) { +func GetRepoCategoriesJSON() (string, error) { repo := getExtensionRepo() if repo == nil { return "", fmt.Errorf("extension repo not initialized") @@ -114,7 +114,7 @@ func buildRepoExtensionDestPath(destDir, extensionID, downloadURL string) (strin return filepath.Join(destDir, safeExtensionID+repoExtensionPackageSuffix(downloadURL)), nil } -func DownloadStoreExtensionJSON(extensionID, destDir string) (string, error) { +func DownloadRepoExtensionJSON(extensionID, destDir string) (string, error) { repo := getExtensionRepo() if repo == nil { return "", fmt.Errorf("extension repo not initialized") @@ -137,7 +137,7 @@ func DownloadStoreExtensionJSON(extensionID, destDir string) (string, error) { return destPath, nil } -func ClearStoreCacheJSON() error { +func ClearRepoCacheJSON() error { repo := getExtensionRepo() if repo == nil { return fmt.Errorf("extension repo not initialized") diff --git a/go_backend/exports_supplement_test.go b/go_backend/exports_supplement_test.go index 5f1f9a68..99fbfa28 100644 --- a/go_backend/exports_supplement_test.go +++ b/go_backend/exports_supplement_test.go @@ -399,11 +399,11 @@ func TestExportsJSONWrappersAndExtensionManagerSurface(t *testing.T) { CancelExtensionRequestJSON("req-home") storeDir := filepath.Join(dir, "store") - if err := InitExtensionStoreJSON(storeDir); err != nil { - t.Fatalf("InitExtensionStoreJSON: %v", err) + if err := InitExtensionRepoJSON(storeDir); err != nil { + t.Fatalf("InitExtensionRepoJSON: %v", err) } - if err := SetStoreRegistryURLJSON("https://registry.example.com/index.json"); err != nil { - t.Fatalf("SetStoreRegistryURLJSON: %v", err) + if err := SetRepoRegistryURLJSON("https://registry.example.com/index.json"); err != nil { + t.Fatalf("SetRepoRegistryURLJSON: %v", err) } store := getExtensionRepo() store.cache = &repoRegistry{Extensions: []repoExtension{{ @@ -416,17 +416,17 @@ func TestExportsJSONWrappersAndExtensionManagerSurface(t *testing.T) { DownloadURL: "https://registry.example.com/coverage.spotiflac-ext", }}} store.cacheTime = time.Now() - if registryURL, err := GetStoreRegistryURLJSON(); err != nil || registryURL == "" { - t.Fatalf("GetStoreRegistryURLJSON = %q/%v", registryURL, err) + if registryURL, err := GetRepoRegistryURLJSON(); err != nil || registryURL == "" { + t.Fatalf("GetRepoRegistryURLJSON = %q/%v", registryURL, err) } - if storeJSON, err := GetStoreExtensionsJSON(false); err != nil || !strings.Contains(storeJSON, "coverage-ext") { - t.Fatalf("GetStoreExtensionsJSON = %q/%v", storeJSON, err) + if storeJSON, err := GetRepoExtensionsJSON(false); err != nil || !strings.Contains(storeJSON, "coverage-ext") { + t.Fatalf("GetRepoExtensionsJSON = %q/%v", storeJSON, err) } - if storeJSON, err := SearchStoreExtensionsJSON("coverage", CategoryMetadata); err != nil || !strings.Contains(storeJSON, "coverage-ext") { - t.Fatalf("SearchStoreExtensionsJSON = %q/%v", storeJSON, err) + if storeJSON, err := SearchRepoExtensionsJSON("coverage", CategoryMetadata); err != nil || !strings.Contains(storeJSON, "coverage-ext") { + t.Fatalf("SearchRepoExtensionsJSON = %q/%v", storeJSON, err) } - if catsJSON, err := GetStoreCategoriesJSON(); err != nil || !strings.Contains(catsJSON, "metadata") { - t.Fatalf("GetStoreCategoriesJSON = %q/%v", catsJSON, err) + if catsJSON, err := GetRepoCategoriesJSON(); err != nil || !strings.Contains(catsJSON, "metadata") { + t.Fatalf("GetRepoCategoriesJSON = %q/%v", catsJSON, err) } if dest, err := buildRepoExtensionDestPath( dir, @@ -449,11 +449,11 @@ func TestExportsJSONWrappersAndExtensionManagerSurface(t *testing.T) { ); err == nil { t.Fatal("expected invalid extension id") } - if err := ClearStoreCacheJSON(); err != nil { - t.Fatalf("ClearStoreCacheJSON: %v", err) + if err := ClearRepoCacheJSON(); err != nil { + t.Fatalf("ClearRepoCacheJSON: %v", err) } - if err := ClearStoreRegistryURLJSON(); err != nil { - t.Fatalf("ClearStoreRegistryURLJSON: %v", err) + if err := ClearRepoRegistryURLJSON(); err != nil { + t.Fatalf("ClearRepoRegistryURLJSON: %v", err) } SetLibraryCoverCacheDirJSON(filepath.Join(dir, "covers")) diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index 15a4e31f..7526ee34 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -1074,60 +1074,60 @@ import Gobackend if let error = error { throw error } return response - case "initExtensionStore": + case "initExtensionRepo": let args = call.arguments as! [String: Any] let cacheDir = args["cache_dir"] as! String - GobackendInitExtensionStoreJSON(cacheDir, &error) + GobackendInitExtensionRepoJSON(cacheDir, &error) if let error = error { throw error } return nil - case "setStoreRegistryUrl": + case "setRepoRegistryUrl": let args = call.arguments as! [String: Any] let registryUrl = args["registry_url"] as? String ?? "" - GobackendSetStoreRegistryURLJSON(registryUrl, &error) + GobackendSetRepoRegistryURLJSON(registryUrl, &error) if let error = error { throw error } return nil - case "getStoreRegistryUrl": - let response = GobackendGetStoreRegistryURLJSON(&error) + case "getRepoRegistryUrl": + let response = GobackendGetRepoRegistryURLJSON(&error) if let error = error { throw error } return response - case "clearStoreRegistryUrl": - GobackendClearStoreRegistryURLJSON(&error) + case "clearRepoRegistryUrl": + GobackendClearRepoRegistryURLJSON(&error) if let error = error { throw error } return nil - case "getStoreExtensions": + case "getRepoExtensions": let args = call.arguments as! [String: Any] let forceRefresh = args["force_refresh"] as? Bool ?? false - let response = GobackendGetStoreExtensionsJSON(forceRefresh, &error) + let response = GobackendGetRepoExtensionsJSON(forceRefresh, &error) if let error = error { throw error } return response - case "searchStoreExtensions": + case "searchRepoExtensions": let args = call.arguments as! [String: Any] let query = args["query"] as? String ?? "" let category = args["category"] as? String ?? "" - let response = GobackendSearchStoreExtensionsJSON(query, category, &error) + let response = GobackendSearchRepoExtensionsJSON(query, category, &error) if let error = error { throw error } return response - case "getStoreCategories": - let response = GobackendGetStoreCategoriesJSON(&error) + case "getRepoCategories": + let response = GobackendGetRepoCategoriesJSON(&error) if let error = error { throw error } return response - case "downloadStoreExtension": + case "downloadRepoExtension": let args = call.arguments as! [String: Any] let extensionId = args["extension_id"] as! String let destDir = args["dest_dir"] as! String - let response = GobackendDownloadStoreExtensionJSON(extensionId, destDir, &error) + let response = GobackendDownloadRepoExtensionJSON(extensionId, destDir, &error) if let error = error { throw error } return response - case "clearStoreCache": - GobackendClearStoreCacheJSON(&error) + case "clearRepoCache": + GobackendClearRepoCacheJSON(&error) if let error = error { throw error } return nil diff --git a/lib/providers/extension_provider.dart b/lib/providers/extension_provider.dart index 087f45b1..db82ae2b 100644 --- a/lib/providers/extension_provider.dart +++ b/lib/providers/extension_provider.dart @@ -1450,14 +1450,14 @@ class ExtensionNotifier extends Notifier { if (ext == null) { final cacheDir = await getTemporaryDirectory(); - await PlatformBridge.initExtensionStore(cacheDir.path); + await PlatformBridge.initExtensionRepo(cacheDir.path); final tempRoot = await getTemporaryDirectory(); final installDir = await Directory( '${tempRoot.path}/spotiflac_bootstrap_spotify_web', ).create(recursive: true); - final downloadPath = await PlatformBridge.downloadStoreExtension( + final downloadPath = await PlatformBridge.downloadRepoExtension( _spotifyWebExtensionId, installDir.path, ); @@ -1804,7 +1804,7 @@ class ExtensionNotifier extends Notifier { String registryUrl = ''; try { - registryUrl = await PlatformBridge.getStoreRegistryUrl(); + registryUrl = await PlatformBridge.getRepoRegistryUrl(); } catch (_) {} List> installed; @@ -1877,9 +1877,9 @@ class ExtensionNotifier extends Notifier { destDir = await Directory( '${tmp.path}/spotiflac_restore_ext', ).create(recursive: true); - await PlatformBridge.initExtensionStore(destDir.path); + await PlatformBridge.initExtensionRepo(destDir.path); if (registryUrl.isNotEmpty) { - await PlatformBridge.setStoreRegistryUrl(registryUrl); + await PlatformBridge.setRepoRegistryUrl(registryUrl); final prefs = await SharedPreferences.getInstance(); await prefs.setString(_storeRegistryUrlPrefKey, registryUrl); } @@ -1910,7 +1910,7 @@ class ExtensionNotifier extends Notifier { continue; } try { - final path = await PlatformBridge.downloadStoreExtension( + final path = await PlatformBridge.downloadRepoExtension( id, destDir.path, ); diff --git a/lib/providers/repo_provider.dart b/lib/providers/repo_provider.dart index a803c13e..9b4616cf 100644 --- a/lib/providers/repo_provider.dart +++ b/lib/providers/repo_provider.dart @@ -239,10 +239,10 @@ class RepoNotifier extends Notifier { ); try { - await PlatformBridge.initExtensionStore(cacheDir); + await PlatformBridge.initExtensionRepo(cacheDir); if (savedUrl.isNotEmpty) { - await PlatformBridge.setStoreRegistryUrl(savedUrl); + await PlatformBridge.setRepoRegistryUrl(savedUrl); await refresh(); } @@ -267,13 +267,13 @@ class RepoNotifier extends Notifier { final previousUrl = state.registryUrl; try { - await PlatformBridge.setStoreRegistryUrl(trimmed); + await PlatformBridge.setRepoRegistryUrl(trimmed); - final resolvedUrl = await PlatformBridge.getStoreRegistryUrl(); + final resolvedUrl = await PlatformBridge.getRepoRegistryUrl(); // Validate the registry actually loads before persisting the URL, so a // broken link never survives an app restart (or a backup restore). - final extensions = await PlatformBridge.getStoreExtensions( + final extensions = await PlatformBridge.getRepoExtensions( forceRefresh: true, ); @@ -291,9 +291,9 @@ class RepoNotifier extends Notifier { _log.e('Failed to set registry URL: $e'); try { if (previousUrl.isNotEmpty) { - await PlatformBridge.setStoreRegistryUrl(previousUrl); + await PlatformBridge.setRepoRegistryUrl(previousUrl); } else { - await PlatformBridge.clearStoreRegistryUrl(); + await PlatformBridge.clearRepoRegistryUrl(); } } catch (restoreError) { _log.w('Failed to restore previous registry URL: $restoreError'); @@ -307,7 +307,7 @@ class RepoNotifier extends Notifier { final prefs = await SharedPreferences.getInstance(); await prefs.remove(_registryUrlPrefKey); - await PlatformBridge.clearStoreRegistryUrl(); + await PlatformBridge.clearRepoRegistryUrl(); state = state.copyWith( registryUrl: '', @@ -328,7 +328,7 @@ class RepoNotifier extends Notifier { state = state.copyWith(isLoading: true, clearError: true); try { - final extensions = await PlatformBridge.getStoreExtensions( + final extensions = await PlatformBridge.getRepoExtensions( forceRefresh: forceRefresh, ); state = state.copyWith( @@ -381,7 +381,7 @@ class RepoNotifier extends Notifier { try { _log.i('Downloading extension: $extensionId'); - final downloadPath = await PlatformBridge.downloadStoreExtension( + final downloadPath = await PlatformBridge.downloadRepoExtension( extensionId, tempDir, ); @@ -426,7 +426,7 @@ class RepoNotifier extends Notifier { try { _log.i('Downloading update for: $extensionId'); - final downloadPath = await PlatformBridge.downloadStoreExtension( + final downloadPath = await PlatformBridge.downloadRepoExtension( extensionId, tempDir, ); diff --git a/lib/services/platform_bridge.dart b/lib/services/platform_bridge.dart index 135e7879..30ae2212 100644 --- a/lib/services/platform_bridge.dart +++ b/lib/services/platform_bridge.dart @@ -2103,71 +2103,71 @@ class PlatformBridge { return _decodeMapListResult(result, 'getPostProcessingProviders'); } - static Future initExtensionStore(String cacheDir) async { - _log.d('initExtensionStore: $cacheDir'); - await _channel.invokeMethod('initExtensionStore', {'cache_dir': cacheDir}); + static Future initExtensionRepo(String cacheDir) async { + _log.d('initExtensionRepo: $cacheDir'); + await _channel.invokeMethod('initExtensionRepo', {'cache_dir': cacheDir}); } - static Future setStoreRegistryUrl(String registryUrl) async { - _log.d('setStoreRegistryUrl: $registryUrl'); - await _channel.invokeMethod('setStoreRegistryUrl', { + static Future setRepoRegistryUrl(String registryUrl) async { + _log.d('setRepoRegistryUrl: $registryUrl'); + await _channel.invokeMethod('setRepoRegistryUrl', { 'registry_url': registryUrl, }); } - static Future getStoreRegistryUrl() async { - _log.d('getStoreRegistryUrl'); - final result = await _channel.invokeMethod('getStoreRegistryUrl'); + static Future getRepoRegistryUrl() async { + _log.d('getRepoRegistryUrl'); + final result = await _channel.invokeMethod('getRepoRegistryUrl'); return result as String? ?? ''; } - static Future clearStoreRegistryUrl() async { - _log.d('clearStoreRegistryUrl'); - await _channel.invokeMethod('clearStoreRegistryUrl'); + static Future clearRepoRegistryUrl() async { + _log.d('clearRepoRegistryUrl'); + await _channel.invokeMethod('clearRepoRegistryUrl'); } - static Future>> getStoreExtensions({ + static Future>> getRepoExtensions({ bool forceRefresh = false, }) async { - _log.d('getStoreExtensions (forceRefresh: $forceRefresh)'); - final result = await _channel.invokeMethod('getStoreExtensions', { + _log.d('getRepoExtensions (forceRefresh: $forceRefresh)'); + final result = await _channel.invokeMethod('getRepoExtensions', { 'force_refresh': forceRefresh, }); - return _decodeMapListResult(result, 'getStoreExtensions'); + return _decodeMapListResult(result, 'getRepoExtensions'); } - static Future>> searchStoreExtensions( + static Future>> searchRepoExtensions( String query, { String? category, }) async { - _log.d('searchStoreExtensions: "$query" (category: $category)'); - final result = await _channel.invokeMethod('searchStoreExtensions', { + _log.d('searchRepoExtensions: "$query" (category: $category)'); + final result = await _channel.invokeMethod('searchRepoExtensions', { 'query': query, 'category': category ?? '', }); - return _decodeMapListResult(result, 'searchStoreExtensions'); + return _decodeMapListResult(result, 'searchRepoExtensions'); } - static Future> getStoreCategories() async { - final result = await _channel.invokeMethod('getStoreCategories'); - return _decodeStringListResult(result, 'getStoreCategories'); + static Future> getRepoCategories() async { + final result = await _channel.invokeMethod('getRepoCategories'); + return _decodeStringListResult(result, 'getRepoCategories'); } - static Future downloadStoreExtension( + static Future downloadRepoExtension( String extensionId, String destDir, ) async { - _log.i('downloadStoreExtension: $extensionId to $destDir'); - final result = await _channel.invokeMethod('downloadStoreExtension', { + _log.i('downloadRepoExtension: $extensionId to $destDir'); + final result = await _channel.invokeMethod('downloadRepoExtension', { 'extension_id': extensionId, 'dest_dir': destDir, }); return result as String; } - static Future clearStoreCache() async { - _log.d('clearStoreCache'); - await _channel.invokeMethod('clearStoreCache'); + static Future clearRepoCache() async { + _log.d('clearRepoCache'); + await _channel.invokeMethod('clearRepoCache'); } static Future> parseCueSheet(