diff --git a/README.md b/README.md
index 759c0bd..580cb04 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,13 @@
-# My Linkding
+# Linkdy
-My Linkding is a [Linkding](https://github.com/sissbruecker/linkding) client created with Flutter. [Linkding](https://github.com/sissbruecker/linkding) is a self hosted bookmark manager. The objective of this project is to give all it's users an application to manage the bookmarks from a mobile device or a desktop computer.
+Linkdy is a [Linkding](https://github.com/sissbruecker/linkding) client created with Flutter. [Linkding](https://github.com/sissbruecker/linkding) is a self hosted bookmark manager. The objective of this project is to give all it's users an application to manage the bookmarks from a mobile device or a desktop computer.
### Development
1. Clone this repository.
2. Run ``flutter pub get`` to install all the dependencies.
3. Run the application on the desired virtual or physical device.
-Note: My Linkding uses Riverpod as the state management system. Files ended on ``.g.dart`` are auto generated by Riverpod's code generator and shouldn't be edited manually.
+Note: Linkdy uses Riverpod as the state management system. Files ended on ``.g.dart`` are auto generated by Riverpod's code generator and shouldn't be edited manually.
The code generator can be started by running ``dart run build_runner watch``. Then, the process will start on the terminal.
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 4b14271..0d07076 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -30,7 +30,7 @@ if (keystorePropertiesFile.exists()) {
android {
- namespace "com.jgeek00.my_linkding"
+ namespace "com.jgeek00.linkdy"
compileSdkVersion 34
ndkVersion flutter.ndkVersion
@@ -48,7 +48,7 @@ android {
}
defaultConfig {
- applicationId "com.jgeek00.my_linkding"
+ applicationId "com.jgeek00.linkdy"
minSdkVersion 26
targetSdkVersion 34
versionCode flutterVersionCode.toInteger()
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 93681b4..176cf6d 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -1,8 +1,8 @@
+ package="com.jgeek00.linkdy">
CFBundleDevelopmentRegion
$(DEVELOPMENT_LANGUAGE)
CFBundleDisplayName
- My Linkding
+ Linkdy
CFBundleExecutable
$(EXECUTABLE_NAME)
CFBundleIdentifier
@@ -13,7 +13,7 @@
CFBundleInfoDictionaryVersion
6.0
CFBundleName
- my_linkding
+ linkdy
CFBundlePackageType
APPL
CFBundleShortVersionString
diff --git a/lib/constants/colors.dart b/lib/constants/colors.dart
index c1b2ee1..cfcb19e 100644
--- a/lib/constants/colors.dart
+++ b/lib/constants/colors.dart
@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
-import 'package:my_linkding/constants/linkding_color.dart';
+import 'package:linkdy/constants/linkding_color.dart';
const List colors = [
linkdingColor,
diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart
index 0805028..f534ffe 100644
--- a/lib/i18n/strings.g.dart
+++ b/lib/i18n/strings.g.dart
@@ -25,18 +25,23 @@ const AppLocale _baseLocale = AppLocale.en;
/// - Locale locale = AppLocale.en.flutterLocale // get flutter locale from enum
/// - if (LocaleSettings.currentLocale == AppLocale.en) // locale check
enum AppLocale with BaseAppLocale {
- en(languageCode: 'en', build: Translations.build),
- es(languageCode: 'es', build: _StringsEs.build);
+ en(languageCode: 'en', build: Translations.build),
+ es(languageCode: 'es', build: _StringsEs.build);
- const AppLocale({required this.languageCode, this.scriptCode, this.countryCode, required this.build}); // ignore: unused_element
+ const AppLocale(
+ {required this.languageCode, this.scriptCode, this.countryCode, required this.build}); // ignore: unused_element
- @override final String languageCode;
- @override final String? scriptCode;
- @override final String? countryCode;
- @override final TranslationBuilder build;
+ @override
+ final String languageCode;
+ @override
+ final String? scriptCode;
+ @override
+ final String? countryCode;
+ @override
+ final TranslationBuilder build;
- /// Gets current instance managed by [LocaleSettings].
- Translations get translations => LocaleSettings.instance.translationMap[this]!;
+ /// Gets current instance managed by [LocaleSettings].
+ Translations get translations => LocaleSettings.instance.translationMap[this]!;
}
/// Method A: Simple
@@ -66,9 +71,10 @@ Translations get t => LocaleSettings.instance.currentTranslations;
/// String a = t.someKey.anotherKey; // Use t variable.
/// String b = t['someKey.anotherKey']; // Only for edge cases!
class TranslationProvider extends BaseTranslationProvider {
- TranslationProvider({required super.child}) : super(settings: LocaleSettings.instance);
+ TranslationProvider({required super.child}) : super(settings: LocaleSettings.instance);
- static InheritedLocaleData of(BuildContext context) => InheritedLocaleData.of(context);
+ static InheritedLocaleData of(BuildContext context) =>
+ InheritedLocaleData.of(context);
}
/// Method B shorthand via [BuildContext] extension method.
@@ -77,328 +83,436 @@ class TranslationProvider extends BaseTranslationProvider TranslationProvider.of(this).translations;
+ Translations get t => TranslationProvider.of(this).translations;
}
/// Manages all translation instances and the current locale
class LocaleSettings extends BaseFlutterLocaleSettings {
- LocaleSettings._() : super(utils: AppLocaleUtils.instance);
+ LocaleSettings._() : super(utils: AppLocaleUtils.instance);
- static final instance = LocaleSettings._();
+ static final instance = LocaleSettings._();
- // static aliases (checkout base methods for documentation)
- static AppLocale get currentLocale => instance.currentLocale;
- static Stream getLocaleStream() => instance.getLocaleStream();
- static AppLocale setLocale(AppLocale locale, {bool? listenToDeviceLocale = false}) => instance.setLocale(locale, listenToDeviceLocale: listenToDeviceLocale);
- static AppLocale setLocaleRaw(String rawLocale, {bool? listenToDeviceLocale = false}) => instance.setLocaleRaw(rawLocale, listenToDeviceLocale: listenToDeviceLocale);
- static AppLocale useDeviceLocale() => instance.useDeviceLocale();
- @Deprecated('Use [AppLocaleUtils.supportedLocales]') static List get supportedLocales => instance.supportedLocales;
- @Deprecated('Use [AppLocaleUtils.supportedLocalesRaw]') static List get supportedLocalesRaw => instance.supportedLocalesRaw;
- static void setPluralResolver({String? language, AppLocale? locale, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver}) => instance.setPluralResolver(
- language: language,
- locale: locale,
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- );
+ // static aliases (checkout base methods for documentation)
+ static AppLocale get currentLocale => instance.currentLocale;
+ static Stream getLocaleStream() => instance.getLocaleStream();
+ static AppLocale setLocale(AppLocale locale, {bool? listenToDeviceLocale = false}) =>
+ instance.setLocale(locale, listenToDeviceLocale: listenToDeviceLocale);
+ static AppLocale setLocaleRaw(String rawLocale, {bool? listenToDeviceLocale = false}) =>
+ instance.setLocaleRaw(rawLocale, listenToDeviceLocale: listenToDeviceLocale);
+ static AppLocale useDeviceLocale() => instance.useDeviceLocale();
+ @Deprecated('Use [AppLocaleUtils.supportedLocales]')
+ static List get supportedLocales => instance.supportedLocales;
+ @Deprecated('Use [AppLocaleUtils.supportedLocalesRaw]')
+ static List get supportedLocalesRaw => instance.supportedLocalesRaw;
+ static void setPluralResolver(
+ {String? language, AppLocale? locale, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver}) =>
+ instance.setPluralResolver(
+ language: language,
+ locale: locale,
+ cardinalResolver: cardinalResolver,
+ ordinalResolver: ordinalResolver,
+ );
}
/// Provides utility functions without any side effects.
class AppLocaleUtils extends BaseAppLocaleUtils {
- AppLocaleUtils._() : super(baseLocale: _baseLocale, locales: AppLocale.values);
+ AppLocaleUtils._() : super(baseLocale: _baseLocale, locales: AppLocale.values);
- static final instance = AppLocaleUtils._();
+ static final instance = AppLocaleUtils._();
- // static aliases (checkout base methods for documentation)
- static AppLocale parse(String rawLocale) => instance.parse(rawLocale);
- static AppLocale parseLocaleParts({required String languageCode, String? scriptCode, String? countryCode}) => instance.parseLocaleParts(languageCode: languageCode, scriptCode: scriptCode, countryCode: countryCode);
- static AppLocale findDeviceLocale() => instance.findDeviceLocale();
- static List get supportedLocales => instance.supportedLocales;
- static List get supportedLocalesRaw => instance.supportedLocalesRaw;
+ // static aliases (checkout base methods for documentation)
+ static AppLocale parse(String rawLocale) => instance.parse(rawLocale);
+ static AppLocale parseLocaleParts({required String languageCode, String? scriptCode, String? countryCode}) =>
+ instance.parseLocaleParts(languageCode: languageCode, scriptCode: scriptCode, countryCode: countryCode);
+ static AppLocale findDeviceLocale() => instance.findDeviceLocale();
+ static List get supportedLocales => instance.supportedLocales;
+ static List get supportedLocalesRaw => instance.supportedLocalesRaw;
}
// translations
// Path:
class Translations implements BaseTranslations {
- /// Returns the current translations of the given [context].
- ///
- /// Usage:
- /// final t = Translations.of(context);
- static Translations of(BuildContext context) => InheritedLocaleData.of(context).translations;
+ /// Returns the current translations of the given [context].
+ ///
+ /// Usage:
+ /// final t = Translations.of(context);
+ static Translations of(BuildContext context) => InheritedLocaleData.of(context).translations;
- /// You can call this constructor and build your own translation instance of this locale.
- /// Constructing via the enum [AppLocale.build] is preferred.
- Translations.build({Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver})
- : assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'),
- $meta = TranslationMetadata(
- locale: AppLocale.en,
- overrides: overrides ?? {},
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- ) {
- $meta.setFlatMapFunction(_flatMapFunction);
- }
+ /// You can call this constructor and build your own translation instance of this locale.
+ /// Constructing via the enum [AppLocale.build] is preferred.
+ Translations.build({Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver})
+ : assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'),
+ $meta = TranslationMetadata(
+ locale: AppLocale.en,
+ overrides: overrides ?? {},
+ cardinalResolver: cardinalResolver,
+ ordinalResolver: ordinalResolver,
+ ) {
+ $meta.setFlatMapFunction(_flatMapFunction);
+ }
- /// Metadata for the translations of .
- @override final TranslationMetadata $meta;
+ /// Metadata for the translations of .
+ @override
+ final TranslationMetadata $meta;
- /// Access flat map
- dynamic operator[](String key) => $meta.getTranslation(key);
+ /// Access flat map
+ dynamic operator [](String key) => $meta.getTranslation(key);
- late final Translations _root = this; // ignore: unused_field
+ late final Translations _root = this; // ignore: unused_field
- // Translations
- late final _StringsOnboardingEn onboarding = _StringsOnboardingEn._(_root);
- late final _StringsLinksEn links = _StringsLinksEn._(_root);
- late final _StringsSearchEn search = _StringsSearchEn._(_root);
- late final _StringsSettingsEn settings = _StringsSettingsEn._(_root);
+ // Translations
+ late final _StringsOnboardingEn onboarding = _StringsOnboardingEn._(_root);
+ late final _StringsLinksEn links = _StringsLinksEn._(_root);
+ late final _StringsSearchEn search = _StringsSearchEn._(_root);
+ late final _StringsSettingsEn settings = _StringsSettingsEn._(_root);
}
// Path: onboarding
class _StringsOnboardingEn {
- _StringsOnboardingEn._(this._root);
+ _StringsOnboardingEn._(this._root);
- final Translations _root; // ignore: unused_field
+ final Translations _root; // ignore: unused_field
- // Translations
- String get title => 'Welcome to My Linkding';
- String get subtitle => 'An application to manage your bookmarks.';
- String get start => 'Start';
- String get next => 'Next';
- String get previous => 'Previous';
- String get serverRequired => 'Servidor requerido';
- String get serverRequiredDescription => 'My Linkding it\'s not an standalone app, it requires the Linkding server to work.\nIn order to use this application, you must deploy Linkding on your home server, VPS or any other computer.';
- String get installationInstructions => 'Check the installation instructions on the official GitHub repository.';
- String get serverRunningConfirmation => 'I confirm that I have an instance of the Linkding server already running.';
- String get createConnection => 'Create a connection';
- String get createConnectionSubtitle => 'Enter all the required details to create a connection to your server.';
- String get ipAddressOrDomain => 'IP address or domain';
- String get port => 'Port';
- String get token => 'Token';
- String get required => 'Required';
- String get serverDetails => 'Server details';
- String get authentication => 'Authentication';
- String get testConnectionUrl => 'Test connection url';
- String get connect => 'Connect';
- String get connecting => 'Connecting...';
- String get cannotConnectToServer => 'Cannot connect to the server.';
+ // Translations
+ String get title => 'Welcome to Linkdy';
+ String get subtitle => 'An application to manage your bookmarks.';
+ String get start => 'Start';
+ String get next => 'Next';
+ String get previous => 'Previous';
+ String get serverRequired => 'Servidor requerido';
+ String get serverRequiredDescription =>
+ 'Linkdy it\'s not an standalone app, it requires the Linkding server to work.\nIn order to use this application, you must deploy Linkding on your home server, VPS or any other computer.';
+ String get installationInstructions => 'Check the installation instructions on the official GitHub repository.';
+ String get serverRunningConfirmation => 'I confirm that I have an instance of the Linkding server already running.';
+ String get createConnection => 'Create a connection';
+ String get createConnectionSubtitle => 'Enter all the required details to create a connection to your server.';
+ String get ipAddressOrDomain => 'IP address or domain';
+ String get port => 'Port';
+ String get token => 'Token';
+ String get required => 'Required';
+ String get serverDetails => 'Server details';
+ String get authentication => 'Authentication';
+ String get testConnectionUrl => 'Test connection url';
+ String get connect => 'Connect';
+ String get connecting => 'Connecting...';
+ String get cannotConnectToServer => 'Cannot connect to the server.';
}
// Path: links
class _StringsLinksEn {
- _StringsLinksEn._(this._root);
+ _StringsLinksEn._(this._root);
- final Translations _root; // ignore: unused_field
+ final Translations _root; // ignore: unused_field
- // Translations
- String get links => 'Links';
- late final _StringsLinksDatesEn dates = _StringsLinksDatesEn._(_root);
+ // Translations
+ String get links => 'Links';
+ late final _StringsLinksDatesEn dates = _StringsLinksDatesEn._(_root);
}
// Path: search
class _StringsSearchEn {
- _StringsSearchEn._(this._root);
+ _StringsSearchEn._(this._root);
- final Translations _root; // ignore: unused_field
+ final Translations _root; // ignore: unused_field
- // Translations
- String get search => 'Search';
+ // Translations
+ String get search => 'Search';
}
// Path: settings
class _StringsSettingsEn {
- _StringsSettingsEn._(this._root);
+ _StringsSettingsEn._(this._root);
- final Translations _root; // ignore: unused_field
+ final Translations _root; // ignore: unused_field
- // Translations
- String get settings => 'Settings';
- String get disconnectFromServer => 'Disconnect from server';
+ // Translations
+ String get settings => 'Settings';
+ String get disconnectFromServer => 'Disconnect from server';
}
// Path: links.dates
class _StringsLinksDatesEn {
- _StringsLinksDatesEn._(this._root);
+ _StringsLinksDatesEn._(this._root);
- final Translations _root; // ignore: unused_field
+ final Translations _root; // ignore: unused_field
- // Translations
- String todayAt({required Object time}) => 'Today, ${time}';
- String yesterdayAt({required Object time}) => 'Yesterday, ${time}';
+ // Translations
+ String todayAt({required Object time}) => 'Today, ${time}';
+ String yesterdayAt({required Object time}) => 'Yesterday, ${time}';
}
// Path:
class _StringsEs implements Translations {
- /// You can call this constructor and build your own translation instance of this locale.
- /// Constructing via the enum [AppLocale.build] is preferred.
- _StringsEs.build({Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver})
- : assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'),
- $meta = TranslationMetadata(
- locale: AppLocale.es,
- overrides: overrides ?? {},
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- ) {
- $meta.setFlatMapFunction(_flatMapFunction);
- }
+ /// You can call this constructor and build your own translation instance of this locale.
+ /// Constructing via the enum [AppLocale.build] is preferred.
+ _StringsEs.build({Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver})
+ : assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'),
+ $meta = TranslationMetadata(
+ locale: AppLocale.es,
+ overrides: overrides ?? {},
+ cardinalResolver: cardinalResolver,
+ ordinalResolver: ordinalResolver,
+ ) {
+ $meta.setFlatMapFunction(_flatMapFunction);
+ }
- /// Metadata for the translations of .
- @override final TranslationMetadata $meta;
+ /// Metadata for the translations of .
+ @override
+ final TranslationMetadata $meta;
- /// Access flat map
- @override dynamic operator[](String key) => $meta.getTranslation(key);
+ /// Access flat map
+ @override
+ dynamic operator [](String key) => $meta.getTranslation(key);
- @override late final _StringsEs _root = this; // ignore: unused_field
+ @override
+ late final _StringsEs _root = this; // ignore: unused_field
- // Translations
- @override late final _StringsOnboardingEs onboarding = _StringsOnboardingEs._(_root);
- @override late final _StringsLinksEs links = _StringsLinksEs._(_root);
- @override late final _StringsSearchEs search = _StringsSearchEs._(_root);
- @override late final _StringsSettingsEs settings = _StringsSettingsEs._(_root);
+ // Translations
+ @override
+ late final _StringsOnboardingEs onboarding = _StringsOnboardingEs._(_root);
+ @override
+ late final _StringsLinksEs links = _StringsLinksEs._(_root);
+ @override
+ late final _StringsSearchEs search = _StringsSearchEs._(_root);
+ @override
+ late final _StringsSettingsEs settings = _StringsSettingsEs._(_root);
}
// Path: onboarding
class _StringsOnboardingEs implements _StringsOnboardingEn {
- _StringsOnboardingEs._(this._root);
+ _StringsOnboardingEs._(this._root);
- @override final _StringsEs _root; // ignore: unused_field
+ @override
+ final _StringsEs _root; // ignore: unused_field
- // Translations
- @override String get title => 'Bienvenido a My Linkding';
- @override String get subtitle => 'Una aplicación para gestionar tus enlaces favoritos.';
- @override String get start => 'Comenzar';
- @override String get next => 'Siguiente';
- @override String get previous => 'Anterior';
- @override String get serverRequired => 'Servidor requerido';
- @override String get serverRequiredDescription => 'My Linkding no es una aplicación independiente, requiere el servidor Linkding para funcionar.\nPara utilizar esta aplicación, debe instalar Linkding en su servidor doméstico, VPS o cualquier otro ordenador.';
- @override String get installationInstructions => 'Mira las instrucciones de instalación en el repositorio oficial en GitHub.';
- @override String get serverRunningConfirmation => 'Confirmo que tengo una instancia del servidor Linkding ya en funcionamiento.';
- @override String get createConnection => 'Crear una conexión';
- @override String get createConnectionSubtitle => 'Introduce todos los detalles requeridos para crear una conexión con el servidor';
- @override String get ipAddressOrDomain => 'Dirección IP o dominio';
- @override String get port => 'Puerto';
- @override String get token => 'Token';
- @override String get required => 'Requerido';
- @override String get serverDetails => 'Detalles del servidor';
- @override String get authentication => 'Autenticación';
- @override String get testConnectionUrl => 'Probar URL de conexión';
- @override String get connect => 'Conectar';
- @override String get connecting => 'Conectando...';
- @override String get cannotConnectToServer => 'No se puede conectar con el servidor.';
+ // Translations
+ @override
+ String get title => 'Bienvenido a Linkdy';
+ @override
+ String get subtitle => 'Una aplicación para gestionar tus enlaces favoritos.';
+ @override
+ String get start => 'Comenzar';
+ @override
+ String get next => 'Siguiente';
+ @override
+ String get previous => 'Anterior';
+ @override
+ String get serverRequired => 'Servidor requerido';
+ @override
+ String get serverRequiredDescription =>
+ 'Linkdy no es una aplicación independiente, requiere el servidor Linkding para funcionar.\nPara utilizar esta aplicación, debe instalar Linkding en su servidor doméstico, VPS o cualquier otro ordenador.';
+ @override
+ String get installationInstructions => 'Mira las instrucciones de instalación en el repositorio oficial en GitHub.';
+ @override
+ String get serverRunningConfirmation =>
+ 'Confirmo que tengo una instancia del servidor Linkding ya en funcionamiento.';
+ @override
+ String get createConnection => 'Crear una conexión';
+ @override
+ String get createConnectionSubtitle =>
+ 'Introduce todos los detalles requeridos para crear una conexión con el servidor';
+ @override
+ String get ipAddressOrDomain => 'Dirección IP o dominio';
+ @override
+ String get port => 'Puerto';
+ @override
+ String get token => 'Token';
+ @override
+ String get required => 'Requerido';
+ @override
+ String get serverDetails => 'Detalles del servidor';
+ @override
+ String get authentication => 'Autenticación';
+ @override
+ String get testConnectionUrl => 'Probar URL de conexión';
+ @override
+ String get connect => 'Conectar';
+ @override
+ String get connecting => 'Conectando...';
+ @override
+ String get cannotConnectToServer => 'No se puede conectar con el servidor.';
}
// Path: links
class _StringsLinksEs implements _StringsLinksEn {
- _StringsLinksEs._(this._root);
+ _StringsLinksEs._(this._root);
- @override final _StringsEs _root; // ignore: unused_field
+ @override
+ final _StringsEs _root; // ignore: unused_field
- // Translations
- @override String get links => 'Enlaces';
- @override late final _StringsLinksDatesEs dates = _StringsLinksDatesEs._(_root);
+ // Translations
+ @override
+ String get links => 'Enlaces';
+ @override
+ late final _StringsLinksDatesEs dates = _StringsLinksDatesEs._(_root);
}
// Path: search
class _StringsSearchEs implements _StringsSearchEn {
- _StringsSearchEs._(this._root);
+ _StringsSearchEs._(this._root);
- @override final _StringsEs _root; // ignore: unused_field
+ @override
+ final _StringsEs _root; // ignore: unused_field
- // Translations
- @override String get search => 'Buscar';
+ // Translations
+ @override
+ String get search => 'Buscar';
}
// Path: settings
class _StringsSettingsEs implements _StringsSettingsEn {
- _StringsSettingsEs._(this._root);
+ _StringsSettingsEs._(this._root);
- @override final _StringsEs _root; // ignore: unused_field
+ @override
+ final _StringsEs _root; // ignore: unused_field
- // Translations
- @override String get settings => 'Ajustes';
- @override String get disconnectFromServer => 'Desconectar del servidor';
+ // Translations
+ @override
+ String get settings => 'Ajustes';
+ @override
+ String get disconnectFromServer => 'Desconectar del servidor';
}
// Path: links.dates
class _StringsLinksDatesEs implements _StringsLinksDatesEn {
- _StringsLinksDatesEs._(this._root);
+ _StringsLinksDatesEs._(this._root);
- @override final _StringsEs _root; // ignore: unused_field
+ @override
+ final _StringsEs _root; // ignore: unused_field
- // Translations
- @override String todayAt({required Object time}) => 'Hoy, ${time}';
- @override String yesterdayAt({required Object time}) => 'Ayer, ${time}';
+ // Translations
+ @override
+ String todayAt({required Object time}) => 'Hoy, ${time}';
+ @override
+ String yesterdayAt({required Object time}) => 'Ayer, ${time}';
}
/// Flat map(s) containing all translations.
/// Only for edge cases! For simple maps, use the map function of this library.
extension on Translations {
- dynamic _flatMapFunction(String path) {
- switch (path) {
- case 'onboarding.title': return 'Welcome to My Linkding';
- case 'onboarding.subtitle': return 'An application to manage your bookmarks.';
- case 'onboarding.start': return 'Start';
- case 'onboarding.next': return 'Next';
- case 'onboarding.previous': return 'Previous';
- case 'onboarding.serverRequired': return 'Servidor requerido';
- case 'onboarding.serverRequiredDescription': return 'My Linkding it\'s not an standalone app, it requires the Linkding server to work.\nIn order to use this application, you must deploy Linkding on your home server, VPS or any other computer.';
- case 'onboarding.installationInstructions': return 'Check the installation instructions on the official GitHub repository.';
- case 'onboarding.serverRunningConfirmation': return 'I confirm that I have an instance of the Linkding server already running.';
- case 'onboarding.createConnection': return 'Create a connection';
- case 'onboarding.createConnectionSubtitle': return 'Enter all the required details to create a connection to your server.';
- case 'onboarding.ipAddressOrDomain': return 'IP address or domain';
- case 'onboarding.port': return 'Port';
- case 'onboarding.token': return 'Token';
- case 'onboarding.required': return 'Required';
- case 'onboarding.serverDetails': return 'Server details';
- case 'onboarding.authentication': return 'Authentication';
- case 'onboarding.testConnectionUrl': return 'Test connection url';
- case 'onboarding.connect': return 'Connect';
- case 'onboarding.connecting': return 'Connecting...';
- case 'onboarding.cannotConnectToServer': return 'Cannot connect to the server.';
- case 'links.links': return 'Links';
- case 'links.dates.todayAt': return ({required Object time}) => 'Today, ${time}';
- case 'links.dates.yesterdayAt': return ({required Object time}) => 'Yesterday, ${time}';
- case 'search.search': return 'Search';
- case 'settings.settings': return 'Settings';
- case 'settings.disconnectFromServer': return 'Disconnect from server';
- default: return null;
- }
- }
+ dynamic _flatMapFunction(String path) {
+ switch (path) {
+ case 'onboarding.title':
+ return 'Welcome to Linkdy';
+ case 'onboarding.subtitle':
+ return 'An application to manage your bookmarks.';
+ case 'onboarding.start':
+ return 'Start';
+ case 'onboarding.next':
+ return 'Next';
+ case 'onboarding.previous':
+ return 'Previous';
+ case 'onboarding.serverRequired':
+ return 'Servidor requerido';
+ case 'onboarding.serverRequiredDescription':
+ return 'Linkdy it\'s not an standalone app, it requires the Linkding server to work.\nIn order to use this application, you must deploy Linkding on your home server, VPS or any other computer.';
+ case 'onboarding.installationInstructions':
+ return 'Check the installation instructions on the official GitHub repository.';
+ case 'onboarding.serverRunningConfirmation':
+ return 'I confirm that I have an instance of the Linkding server already running.';
+ case 'onboarding.createConnection':
+ return 'Create a connection';
+ case 'onboarding.createConnectionSubtitle':
+ return 'Enter all the required details to create a connection to your server.';
+ case 'onboarding.ipAddressOrDomain':
+ return 'IP address or domain';
+ case 'onboarding.port':
+ return 'Port';
+ case 'onboarding.token':
+ return 'Token';
+ case 'onboarding.required':
+ return 'Required';
+ case 'onboarding.serverDetails':
+ return 'Server details';
+ case 'onboarding.authentication':
+ return 'Authentication';
+ case 'onboarding.testConnectionUrl':
+ return 'Test connection url';
+ case 'onboarding.connect':
+ return 'Connect';
+ case 'onboarding.connecting':
+ return 'Connecting...';
+ case 'onboarding.cannotConnectToServer':
+ return 'Cannot connect to the server.';
+ case 'links.links':
+ return 'Links';
+ case 'links.dates.todayAt':
+ return ({required Object time}) => 'Today, ${time}';
+ case 'links.dates.yesterdayAt':
+ return ({required Object time}) => 'Yesterday, ${time}';
+ case 'search.search':
+ return 'Search';
+ case 'settings.settings':
+ return 'Settings';
+ case 'settings.disconnectFromServer':
+ return 'Disconnect from server';
+ default:
+ return null;
+ }
+ }
}
extension on _StringsEs {
- dynamic _flatMapFunction(String path) {
- switch (path) {
- case 'onboarding.title': return 'Bienvenido a My Linkding';
- case 'onboarding.subtitle': return 'Una aplicación para gestionar tus enlaces favoritos.';
- case 'onboarding.start': return 'Comenzar';
- case 'onboarding.next': return 'Siguiente';
- case 'onboarding.previous': return 'Anterior';
- case 'onboarding.serverRequired': return 'Servidor requerido';
- case 'onboarding.serverRequiredDescription': return 'My Linkding no es una aplicación independiente, requiere el servidor Linkding para funcionar.\nPara utilizar esta aplicación, debe instalar Linkding en su servidor doméstico, VPS o cualquier otro ordenador.';
- case 'onboarding.installationInstructions': return 'Mira las instrucciones de instalación en el repositorio oficial en GitHub.';
- case 'onboarding.serverRunningConfirmation': return 'Confirmo que tengo una instancia del servidor Linkding ya en funcionamiento.';
- case 'onboarding.createConnection': return 'Crear una conexión';
- case 'onboarding.createConnectionSubtitle': return 'Introduce todos los detalles requeridos para crear una conexión con el servidor';
- case 'onboarding.ipAddressOrDomain': return 'Dirección IP o dominio';
- case 'onboarding.port': return 'Puerto';
- case 'onboarding.token': return 'Token';
- case 'onboarding.required': return 'Requerido';
- case 'onboarding.serverDetails': return 'Detalles del servidor';
- case 'onboarding.authentication': return 'Autenticación';
- case 'onboarding.testConnectionUrl': return 'Probar URL de conexión';
- case 'onboarding.connect': return 'Conectar';
- case 'onboarding.connecting': return 'Conectando...';
- case 'onboarding.cannotConnectToServer': return 'No se puede conectar con el servidor.';
- case 'links.links': return 'Enlaces';
- case 'links.dates.todayAt': return ({required Object time}) => 'Hoy, ${time}';
- case 'links.dates.yesterdayAt': return ({required Object time}) => 'Ayer, ${time}';
- case 'search.search': return 'Buscar';
- case 'settings.settings': return 'Ajustes';
- case 'settings.disconnectFromServer': return 'Desconectar del servidor';
- default: return null;
- }
- }
+ dynamic _flatMapFunction(String path) {
+ switch (path) {
+ case 'onboarding.title':
+ return 'Bienvenido a Linkdy';
+ case 'onboarding.subtitle':
+ return 'Una aplicación para gestionar tus enlaces favoritos.';
+ case 'onboarding.start':
+ return 'Comenzar';
+ case 'onboarding.next':
+ return 'Siguiente';
+ case 'onboarding.previous':
+ return 'Anterior';
+ case 'onboarding.serverRequired':
+ return 'Servidor requerido';
+ case 'onboarding.serverRequiredDescription':
+ return 'Linkdy no es una aplicación independiente, requiere el servidor Linkding para funcionar.\nPara utilizar esta aplicación, debe instalar Linkding en su servidor doméstico, VPS o cualquier otro ordenador.';
+ case 'onboarding.installationInstructions':
+ return 'Mira las instrucciones de instalación en el repositorio oficial en GitHub.';
+ case 'onboarding.serverRunningConfirmation':
+ return 'Confirmo que tengo una instancia del servidor Linkding ya en funcionamiento.';
+ case 'onboarding.createConnection':
+ return 'Crear una conexión';
+ case 'onboarding.createConnectionSubtitle':
+ return 'Introduce todos los detalles requeridos para crear una conexión con el servidor';
+ case 'onboarding.ipAddressOrDomain':
+ return 'Dirección IP o dominio';
+ case 'onboarding.port':
+ return 'Puerto';
+ case 'onboarding.token':
+ return 'Token';
+ case 'onboarding.required':
+ return 'Requerido';
+ case 'onboarding.serverDetails':
+ return 'Detalles del servidor';
+ case 'onboarding.authentication':
+ return 'Autenticación';
+ case 'onboarding.testConnectionUrl':
+ return 'Probar URL de conexión';
+ case 'onboarding.connect':
+ return 'Conectar';
+ case 'onboarding.connecting':
+ return 'Conectando...';
+ case 'onboarding.cannotConnectToServer':
+ return 'No se puede conectar con el servidor.';
+ case 'links.links':
+ return 'Enlaces';
+ case 'links.dates.todayAt':
+ return ({required Object time}) => 'Hoy, ${time}';
+ case 'links.dates.yesterdayAt':
+ return ({required Object time}) => 'Ayer, ${time}';
+ case 'search.search':
+ return 'Buscar';
+ case 'settings.settings':
+ return 'Ajustes';
+ case 'settings.disconnectFromServer':
+ return 'Desconectar del servidor';
+ default:
+ return null;
+ }
+ }
}
diff --git a/lib/i18n/strings_en.i18n.json b/lib/i18n/strings_en.i18n.json
index 3ecc4bf..f3a85fa 100644
--- a/lib/i18n/strings_en.i18n.json
+++ b/lib/i18n/strings_en.i18n.json
@@ -1,12 +1,12 @@
{
"onboarding": {
- "title": "Welcome to My Linkding",
+ "title": "Welcome to Linkdy",
"subtitle": "An application to manage your bookmarks.",
"start": "Start",
"next": "Next",
"previous": "Previous",
"serverRequired": "Servidor requerido",
- "serverRequiredDescription": "My Linkding it's not an standalone app, it requires the Linkding server to work.\nIn order to use this application, you must deploy Linkding on your home server, VPS or any other computer.",
+ "serverRequiredDescription": "Linkdy it's not an standalone app, it requires the Linkding server to work.\nIn order to use this application, you must deploy Linkding on your home server, VPS or any other computer.",
"installationInstructions": "Check the installation instructions on the official GitHub repository.",
"serverRunningConfirmation": "I confirm that I have an instance of the Linkding server already running.",
"createConnection": "Create a connection",
diff --git a/lib/i18n/strings_es.i18n.json b/lib/i18n/strings_es.i18n.json
index c44ac05..6dd3b5a 100644
--- a/lib/i18n/strings_es.i18n.json
+++ b/lib/i18n/strings_es.i18n.json
@@ -1,12 +1,12 @@
{
"onboarding": {
- "title": "Bienvenido a My Linkding",
+ "title": "Bienvenido a Linkdy",
"subtitle": "Una aplicación para gestionar tus enlaces favoritos.",
"start": "Comenzar",
"next": "Siguiente",
"previous": "Anterior",
"serverRequired": "Servidor requerido",
- "serverRequiredDescription": "My Linkding no es una aplicación independiente, requiere el servidor Linkding para funcionar.\nPara utilizar esta aplicación, debe instalar Linkding en su servidor doméstico, VPS o cualquier otro ordenador.",
+ "serverRequiredDescription": "Linkdy no es una aplicación independiente, requiere el servidor Linkding para funcionar.\nPara utilizar esta aplicación, debe instalar Linkding en su servidor doméstico, VPS o cualquier otro ordenador.",
"installationInstructions": "Mira las instrucciones de instalación en el repositorio oficial en GitHub.",
"serverRunningConfirmation": "Confirmo que tengo una instancia del servidor Linkding ya en funcionamiento.",
"createConnection": "Crear una conexión",
diff --git a/lib/main.dart b/lib/main.dart
index 8ae3c29..fd043f8 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -4,16 +4,16 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
-import 'package:my_linkding/constants/global_keys.dart';
+import 'package:linkdy/constants/global_keys.dart';
import 'package:dynamic_color/dynamic_color.dart';
import 'package:shared_preferences/shared_preferences.dart';
-import 'package:my_linkding/config/theme.dart';
-import 'package:my_linkding/constants/colors.dart';
-import 'package:my_linkding/i18n/strings.g.dart';
-import 'package:my_linkding/providers/router_provider.dart';
-import 'package:my_linkding/providers/shared_preferences_provider.dart';
-import 'package:my_linkding/utils/http_overrides.dart';
+import 'package:linkdy/config/theme.dart';
+import 'package:linkdy/constants/colors.dart';
+import 'package:linkdy/i18n/strings.g.dart';
+import 'package:linkdy/providers/router_provider.dart';
+import 'package:linkdy/providers/shared_preferences_provider.dart';
+import 'package:linkdy/utils/http_overrides.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
@@ -44,7 +44,7 @@ class MyApp extends ConsumerWidget {
Widget build(BuildContext context, WidgetRef ref) {
return DynamicColorBuilder(
builder: (lightDynamic, darkDynamic) => MaterialApp.router(
- title: 'My Linkding',
+ title: 'Linkdy',
theme: lightDynamic != null ? lightTheme(lightDynamic) : lightThemeOldVersions(colors[0]),
darkTheme: darkDynamic != null ? darkTheme(darkDynamic) : darkThemeOldVersions(colors[0]),
locale: TranslationProvider.of(context).flutterLocale,
diff --git a/lib/models/app_status.dart b/lib/models/app_status.dart
index a6e060f..8d736f8 100644
--- a/lib/models/app_status.dart
+++ b/lib/models/app_status.dart
@@ -1,4 +1,4 @@
-import 'package:my_linkding/models/server_instance.dart';
+import 'package:linkdy/models/server_instance.dart';
import 'package:shared_preferences/shared_preferences.dart';
class AppStatus {
diff --git a/lib/providers/api_client_provider.dart b/lib/providers/api_client_provider.dart
index 237e772..f1c9a8f 100644
--- a/lib/providers/api_client_provider.dart
+++ b/lib/providers/api_client_provider.dart
@@ -1,7 +1,7 @@
import 'package:dio/dio.dart';
-import 'package:my_linkding/providers/server_instances_provider.dart';
-import 'package:my_linkding/services/api_client.dart';
-import 'package:my_linkding/utils/api_base_url.dart';
+import 'package:linkdy/providers/server_instances_provider.dart';
+import 'package:linkdy/services/api_client.dart';
+import 'package:linkdy/utils/api_base_url.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'api_client_provider.g.dart';
diff --git a/lib/providers/app_status_provider.dart b/lib/providers/app_status_provider.dart
index 89ed64b..9ccfa45 100644
--- a/lib/providers/app_status_provider.dart
+++ b/lib/providers/app_status_provider.dart
@@ -1,6 +1,6 @@
import 'package:riverpod_annotation/riverpod_annotation.dart';
-import 'package:my_linkding/models/app_status.dart';
+import 'package:linkdy/models/app_status.dart';
import 'package:shared_preferences/shared_preferences.dart';
part 'app_status_provider.g.dart';
diff --git a/lib/providers/router_provider.dart b/lib/providers/router_provider.dart
index 38bc7d3..2ac7021 100644
--- a/lib/providers/router_provider.dart
+++ b/lib/providers/router_provider.dart
@@ -1,9 +1,9 @@
import 'package:go_router/go_router.dart';
-import 'package:my_linkding/providers/api_client_provider.dart';
-import 'package:my_linkding/router/paths.dart';
+import 'package:linkdy/providers/api_client_provider.dart';
+import 'package:linkdy/router/paths.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
-import 'package:my_linkding/router/routes.dart';
+import 'package:linkdy/router/routes.dart';
part 'router_provider.g.dart';
diff --git a/lib/providers/server_instances_provider.dart b/lib/providers/server_instances_provider.dart
index baeb2de..0ba9082 100644
--- a/lib/providers/server_instances_provider.dart
+++ b/lib/providers/server_instances_provider.dart
@@ -1,10 +1,10 @@
import 'dart:convert';
-import 'package:my_linkding/config/shared_preferences_keys.dart';
-import 'package:my_linkding/providers/shared_preferences_provider.dart';
+import 'package:linkdy/config/shared_preferences_keys.dart';
+import 'package:linkdy/providers/shared_preferences_provider.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
-import 'package:my_linkding/models/server_instance.dart';
+import 'package:linkdy/models/server_instance.dart';
part 'server_instances_provider.g.dart';
diff --git a/lib/router/routes.dart b/lib/router/routes.dart
index d8b45a0..8038e66 100644
--- a/lib/router/routes.dart
+++ b/lib/router/routes.dart
@@ -1,15 +1,15 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
-import 'package:my_linkding/screens/links/ui/links.dart';
-import 'package:my_linkding/screens/onboarding/ui/onboarding.dart';
-import 'package:my_linkding/screens/search/ui/search.dart';
-import 'package:my_linkding/screens/settings/ui/settings.dart';
-import 'package:my_linkding/screens/webview/ui/webview.dart';
-import 'package:my_linkding/widgets/layout.dart';
+import 'package:linkdy/screens/links/ui/links.dart';
+import 'package:linkdy/screens/onboarding/ui/onboarding.dart';
+import 'package:linkdy/screens/search/ui/search.dart';
+import 'package:linkdy/screens/settings/ui/settings.dart';
+import 'package:linkdy/screens/webview/ui/webview.dart';
+import 'package:linkdy/widgets/layout.dart';
-import 'package:my_linkding/models/data/bookmarks.dart';
-import 'package:my_linkding/router/paths.dart';
+import 'package:linkdy/models/data/bookmarks.dart';
+import 'package:linkdy/router/paths.dart';
final rootNavigatorKey = GlobalKey();
final linksNavigatorKey = GlobalKey();
diff --git a/lib/screens/links/provider/links.provider.dart b/lib/screens/links/provider/links.provider.dart
index a610102..2a89627 100644
--- a/lib/screens/links/provider/links.provider.dart
+++ b/lib/screens/links/provider/links.provider.dart
@@ -1,10 +1,10 @@
import 'package:riverpod_annotation/riverpod_annotation.dart';
-import 'package:my_linkding/screens/links/model/links.model.dart';
+import 'package:linkdy/screens/links/model/links.model.dart';
-import 'package:my_linkding/models/api_response.dart';
-import 'package:my_linkding/models/data/bookmarks.dart';
-import 'package:my_linkding/providers/api_client_provider.dart';
+import 'package:linkdy/models/api_response.dart';
+import 'package:linkdy/models/data/bookmarks.dart';
+import 'package:linkdy/providers/api_client_provider.dart';
part 'links.provider.g.dart';
diff --git a/lib/screens/links/ui/links.dart b/lib/screens/links/ui/links.dart
index e072e3f..781446e 100644
--- a/lib/screens/links/ui/links.dart
+++ b/lib/screens/links/ui/links.dart
@@ -1,11 +1,11 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
-import 'package:my_linkding/screens/links/provider/links.provider.dart';
+import 'package:linkdy/screens/links/provider/links.provider.dart';
-import 'package:my_linkding/providers/router_provider.dart';
-import 'package:my_linkding/router/paths.dart';
-import 'package:my_linkding/i18n/strings.g.dart';
+import 'package:linkdy/providers/router_provider.dart';
+import 'package:linkdy/router/paths.dart';
+import 'package:linkdy/i18n/strings.g.dart';
class Links extends ConsumerWidget {
const Links({Key? key}) : super(key: key);
diff --git a/lib/screens/onboarding/model/connect.model.dart b/lib/screens/onboarding/model/connect.model.dart
index 637d3fd..e5d01e8 100644
--- a/lib/screens/onboarding/model/connect.model.dart
+++ b/lib/screens/onboarding/model/connect.model.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:my_linkding/helpers/wrapped_class.dart';
+import 'package:linkdy/helpers/wrapped_class.dart';
class ConnectModel {
final bool isConnecting;
diff --git a/lib/screens/onboarding/provider/connect.provider.dart b/lib/screens/onboarding/provider/connect.provider.dart
index 0ae17a6..847b681 100644
--- a/lib/screens/onboarding/provider/connect.provider.dart
+++ b/lib/screens/onboarding/provider/connect.provider.dart
@@ -3,19 +3,19 @@ import 'package:flutter/material.dart';
import 'package:uuid/uuid.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
-import 'package:my_linkding/screens/onboarding/model/connect.model.dart';
+import 'package:linkdy/screens/onboarding/model/connect.model.dart';
-import 'package:my_linkding/providers/server_instances_provider.dart';
-import 'package:my_linkding/utils/api_base_url.dart';
-import 'package:my_linkding/i18n/strings.g.dart';
-import 'package:my_linkding/constants/enums.dart';
-import 'package:my_linkding/utils/process_modal.dart';
-import 'package:my_linkding/utils/snackbar.dart';
-import 'package:my_linkding/models/server_instance.dart';
-import 'package:my_linkding/providers/api_client_provider.dart';
-import 'package:my_linkding/services/api_client.dart';
-import 'package:my_linkding/constants/regexp.dart';
-import 'package:my_linkding/helpers/wrapped_class.dart';
+import 'package:linkdy/providers/server_instances_provider.dart';
+import 'package:linkdy/utils/api_base_url.dart';
+import 'package:linkdy/i18n/strings.g.dart';
+import 'package:linkdy/constants/enums.dart';
+import 'package:linkdy/utils/process_modal.dart';
+import 'package:linkdy/utils/snackbar.dart';
+import 'package:linkdy/models/server_instance.dart';
+import 'package:linkdy/providers/api_client_provider.dart';
+import 'package:linkdy/services/api_client.dart';
+import 'package:linkdy/constants/regexp.dart';
+import 'package:linkdy/helpers/wrapped_class.dart';
part 'connect.provider.g.dart';
diff --git a/lib/screens/onboarding/provider/onboarding.provider.dart b/lib/screens/onboarding/provider/onboarding.provider.dart
index 2ed2d34..e1da35a 100644
--- a/lib/screens/onboarding/provider/onboarding.provider.dart
+++ b/lib/screens/onboarding/provider/onboarding.provider.dart
@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
-import 'package:my_linkding/screens/onboarding/model/onboarding.model.dart';
+import 'package:linkdy/screens/onboarding/model/onboarding.model.dart';
part 'onboarding.provider.g.dart';
diff --git a/lib/screens/onboarding/ui/connect.dart b/lib/screens/onboarding/ui/connect.dart
index 52da342..ee75688 100644
--- a/lib/screens/onboarding/ui/connect.dart
+++ b/lib/screens/onboarding/ui/connect.dart
@@ -2,14 +2,14 @@ import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:segmented_button_slide/segmented_button_slide.dart';
-import 'package:my_linkding/screens/onboarding/ui/sliver_top_bar.dart';
-import 'package:my_linkding/screens/onboarding/provider/connect.provider.dart';
-import 'package:my_linkding/screens/onboarding/provider/onboarding.provider.dart';
-import 'package:my_linkding/widgets/section_label.dart';
+import 'package:linkdy/screens/onboarding/ui/sliver_top_bar.dart';
+import 'package:linkdy/screens/onboarding/provider/connect.provider.dart';
+import 'package:linkdy/screens/onboarding/provider/onboarding.provider.dart';
+import 'package:linkdy/widgets/section_label.dart';
-import 'package:my_linkding/utils/open_url.dart';
-import 'package:my_linkding/constants/enums.dart';
-import 'package:my_linkding/i18n/strings.g.dart';
+import 'package:linkdy/utils/open_url.dart';
+import 'package:linkdy/constants/enums.dart';
+import 'package:linkdy/i18n/strings.g.dart';
class OnboardingConnect extends ConsumerWidget {
const OnboardingConnect({Key? key}) : super(key: key);
diff --git a/lib/screens/onboarding/ui/onboarding.dart b/lib/screens/onboarding/ui/onboarding.dart
index 29a35b6..c8341c5 100644
--- a/lib/screens/onboarding/ui/onboarding.dart
+++ b/lib/screens/onboarding/ui/onboarding.dart
@@ -1,11 +1,11 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
-import 'package:my_linkding/screens/onboarding/provider/onboarding.provider.dart';
-import 'package:my_linkding/screens/onboarding/ui/connect.dart';
-import 'package:my_linkding/screens/onboarding/ui/server_required.dart';
-import 'package:my_linkding/screens/onboarding/ui/welcome.dart';
-import 'package:my_linkding/widgets/system_overlay_style.dart';
+import 'package:linkdy/screens/onboarding/provider/onboarding.provider.dart';
+import 'package:linkdy/screens/onboarding/ui/connect.dart';
+import 'package:linkdy/screens/onboarding/ui/server_required.dart';
+import 'package:linkdy/screens/onboarding/ui/welcome.dart';
+import 'package:linkdy/widgets/system_overlay_style.dart';
class Onboarding extends ConsumerWidget {
const Onboarding({Key? key}) : super(key: key);
diff --git a/lib/screens/onboarding/ui/server_required.dart b/lib/screens/onboarding/ui/server_required.dart
index 08e3060..36be1ec 100644
--- a/lib/screens/onboarding/ui/server_required.dart
+++ b/lib/screens/onboarding/ui/server_required.dart
@@ -2,12 +2,12 @@ import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/flutter_svg.dart';
-import 'package:my_linkding/screens/onboarding/provider/onboarding.provider.dart';
-import 'package:my_linkding/screens/onboarding/ui/sliver_top_bar.dart';
+import 'package:linkdy/screens/onboarding/provider/onboarding.provider.dart';
+import 'package:linkdy/screens/onboarding/ui/sliver_top_bar.dart';
-import 'package:my_linkding/constants/urls.dart';
-import 'package:my_linkding/i18n/strings.g.dart';
-import 'package:my_linkding/utils/open_url.dart';
+import 'package:linkdy/constants/urls.dart';
+import 'package:linkdy/i18n/strings.g.dart';
+import 'package:linkdy/utils/open_url.dart';
class OnboardingServerRequired extends ConsumerWidget {
const OnboardingServerRequired({Key? key}) : super(key: key);
diff --git a/lib/screens/onboarding/ui/welcome.dart b/lib/screens/onboarding/ui/welcome.dart
index ba71bf5..544a505 100644
--- a/lib/screens/onboarding/ui/welcome.dart
+++ b/lib/screens/onboarding/ui/welcome.dart
@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
-import 'package:my_linkding/i18n/strings.g.dart';
+import 'package:linkdy/i18n/strings.g.dart';
-import 'package:my_linkding/screens/onboarding/provider/onboarding.provider.dart';
+import 'package:linkdy/screens/onboarding/provider/onboarding.provider.dart';
class OnboardingWelcome extends ConsumerWidget {
const OnboardingWelcome({Key? key}) : super(key: key);
diff --git a/lib/screens/settings/ui/settings.dart b/lib/screens/settings/ui/settings.dart
index e0879f8..7a2daad 100644
--- a/lib/screens/settings/ui/settings.dart
+++ b/lib/screens/settings/ui/settings.dart
@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
-import 'package:my_linkding/i18n/strings.g.dart';
-import 'package:my_linkding/providers/api_client_provider.dart';
+import 'package:linkdy/i18n/strings.g.dart';
+import 'package:linkdy/providers/api_client_provider.dart';
class Settings extends ConsumerWidget {
const Settings({Key? key}) : super(key: key);
diff --git a/lib/screens/webview/provider/webview.provider.dart b/lib/screens/webview/provider/webview.provider.dart
index 7613955..9b138c2 100644
--- a/lib/screens/webview/provider/webview.provider.dart
+++ b/lib/screens/webview/provider/webview.provider.dart
@@ -1,7 +1,7 @@
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:webview_flutter/webview_flutter.dart';
-import 'package:my_linkding/screens/webview/model/webview.model.dart';
+import 'package:linkdy/screens/webview/model/webview.model.dart';
part 'webview.provider.g.dart';
diff --git a/lib/screens/webview/ui/webview.dart b/lib/screens/webview/ui/webview.dart
index 344647d..014ce77 100644
--- a/lib/screens/webview/ui/webview.dart
+++ b/lib/screens/webview/ui/webview.dart
@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
-import 'package:my_linkding/models/data/bookmarks.dart';
-import 'package:my_linkding/screens/webview/provider/webview.provider.dart';
+import 'package:linkdy/models/data/bookmarks.dart';
+import 'package:linkdy/screens/webview/provider/webview.provider.dart';
import 'package:webview_flutter/webview_flutter.dart';
class WebView extends ConsumerWidget {
diff --git a/lib/services/api_client.dart b/lib/services/api_client.dart
index 04cb161..0913f67 100644
--- a/lib/services/api_client.dart
+++ b/lib/services/api_client.dart
@@ -1,8 +1,8 @@
import 'package:dio/dio.dart';
-import 'package:my_linkding/models/api_response.dart';
-import 'package:my_linkding/models/data/bookmarks.dart';
-import 'package:my_linkding/models/server_instance.dart';
+import 'package:linkdy/models/api_response.dart';
+import 'package:linkdy/models/data/bookmarks.dart';
+import 'package:linkdy/models/server_instance.dart';
class ApiClient {
final ServerInstance serverInstance;
diff --git a/lib/utils/api_base_url.dart b/lib/utils/api_base_url.dart
index 895c483..33e1409 100644
--- a/lib/utils/api_base_url.dart
+++ b/lib/utils/api_base_url.dart
@@ -1,4 +1,4 @@
-import 'package:my_linkding/models/server_instance.dart';
+import 'package:linkdy/models/server_instance.dart';
String apiBaseUrl(ServerInstance server) {
return "${server.method}://${server.ipDomain}${server.port != null ? ':${server.port}' : ""}${server.path ?? ""}/api";
diff --git a/lib/utils/process_modal.dart b/lib/utils/process_modal.dart
index bf2ce2b..86fe2de 100644
--- a/lib/utils/process_modal.dart
+++ b/lib/utils/process_modal.dart
@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
-import 'package:my_linkding/widgets/process_dialog.dart';
+import 'package:linkdy/widgets/process_dialog.dart';
-import 'package:my_linkding/router/routes.dart';
+import 'package:linkdy/router/routes.dart';
class ProcessModal {
void open(String message) async {
diff --git a/lib/utils/snackbar.dart b/lib/utils/snackbar.dart
index a7d13b3..5271515 100644
--- a/lib/utils/snackbar.dart
+++ b/lib/utils/snackbar.dart
@@ -1,7 +1,7 @@
// ignore_for_file: use_build_context_synchronously
import 'package:flutter/material.dart';
-import 'package:my_linkding/constants/global_keys.dart';
+import 'package:linkdy/constants/global_keys.dart';
void showSnacbkar({
required String label,
diff --git a/lib/widgets/layout.dart b/lib/widgets/layout.dart
index 095377f..2facd44 100644
--- a/lib/widgets/layout.dart
+++ b/lib/widgets/layout.dart
@@ -1,9 +1,9 @@
import 'package:animations/animations.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
-import 'package:my_linkding/i18n/strings.g.dart';
+import 'package:linkdy/i18n/strings.g.dart';
-import 'package:my_linkding/widgets/system_overlay_style.dart';
+import 'package:linkdy/widgets/system_overlay_style.dart';
class Layout extends StatelessWidget {
final StatefulNavigationShell navigationShell;
diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt
index 94fe69a..a010957 100644
--- a/linux/CMakeLists.txt
+++ b/linux/CMakeLists.txt
@@ -4,10 +4,10 @@ project(runner LANGUAGES CXX)
# The name of the executable created for the application. Change this to change
# the on-disk name of your application.
-set(BINARY_NAME "my_linkding")
+set(BINARY_NAME "linkdy")
# The unique GTK application identifier for this application. See:
# https://wiki.gnome.org/HowDoI/ChooseApplicationID
-set(APPLICATION_ID "com.example.my_linkding")
+set(APPLICATION_ID "com.example.linkdy")
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
# versions of CMake.
diff --git a/linux/my_application.cc b/linux/my_application.cc
index e79afd3..4588086 100644
--- a/linux/my_application.cc
+++ b/linux/my_application.cc
@@ -40,11 +40,11 @@ static void my_application_activate(GApplication* application) {
if (use_header_bar) {
GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
gtk_widget_show(GTK_WIDGET(header_bar));
- gtk_header_bar_set_title(header_bar, "my_linkding");
+ gtk_header_bar_set_title(header_bar, "linkdy");
gtk_header_bar_set_show_close_button(header_bar, TRUE);
gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));
} else {
- gtk_window_set_title(window, "my_linkding");
+ gtk_window_set_title(window, "linkdy");
}
gtk_window_set_default_size(window, 1280, 720);
diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj
index 1d69237..b016ee4 100644
--- a/macos/Runner.xcodeproj/project.pbxproj
+++ b/macos/Runner.xcodeproj/project.pbxproj
@@ -68,7 +68,7 @@
331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; };
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; };
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; };
- 33CC10ED2044A3C60003C045 /* my_linkding.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = my_linkding.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 33CC10ED2044A3C60003C045 /* linkdy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = linkdy.app; sourceTree = BUILT_PRODUCTS_DIR; };
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; };
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; };
@@ -158,7 +158,7 @@
33CC10EE2044A3C60003C045 /* Products */ = {
isa = PBXGroup;
children = (
- 33CC10ED2044A3C60003C045 /* my_linkding.app */,
+ 33CC10ED2044A3C60003C045 /* linkdy.app */,
331C80D5294CF71000263BE5 /* RunnerTests.xctest */,
);
name = Products;
@@ -249,7 +249,7 @@
);
name = Runner;
productName = Runner;
- productReference = 33CC10ED2044A3C60003C045 /* my_linkding.app */;
+ productReference = 33CC10ED2044A3C60003C045 /* linkdy.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
@@ -481,7 +481,7 @@
PRODUCT_BUNDLE_IDENTIFIER = com.example.myLinkding.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/my_linkding.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/my_linkding";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/linkdy.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/linkdy";
};
name = Debug;
};
@@ -496,7 +496,7 @@
PRODUCT_BUNDLE_IDENTIFIER = com.example.myLinkding.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/my_linkding.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/my_linkding";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/linkdy.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/linkdy";
};
name = Release;
};
@@ -511,7 +511,7 @@
PRODUCT_BUNDLE_IDENTIFIER = com.example.myLinkding.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/my_linkding.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/my_linkding";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/linkdy.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/linkdy";
};
name = Profile;
};
diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index f59dd2f..0e29420 100644
--- a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -15,7 +15,7 @@
@@ -31,7 +31,7 @@
@@ -65,7 +65,7 @@
@@ -82,7 +82,7 @@
diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig
index 1a56009..990dc88 100644
--- a/macos/Runner/Configs/AppInfo.xcconfig
+++ b/macos/Runner/Configs/AppInfo.xcconfig
@@ -5,7 +5,7 @@
// 'flutter create' template.
// The application's name. By default this is also the title of the Flutter window.
-PRODUCT_NAME = my_linkding
+PRODUCT_NAME = linkdy
// The application's bundle identifier
PRODUCT_BUNDLE_IDENTIFIER = com.example.myLinkding
diff --git a/pubspec.yaml b/pubspec.yaml
index 5660e33..b2cdd34 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,4 +1,4 @@
-name: my_linkding
+name: linkdy
description: "Linkding client."
# The following line prevents the package from being accidentally published to
# pub.dev using `flutter pub publish`. This is preferred for private packages.
diff --git a/web/index.html b/web/index.html
index ef3079b..9c84ac4 100644
--- a/web/index.html
+++ b/web/index.html
@@ -21,13 +21,13 @@
-
+
- my_linkding
+ linkdy