Updated dependencies, removed split view package, removed super context menu and fix android

This commit is contained in:
Juan Gilsanz Polo
2026-05-15 21:30:18 +02:00
parent bd1411041e
commit 7af27d361b
25 changed files with 344 additions and 390 deletions

View File

@@ -4,7 +4,7 @@
# This file should be version controlled and should not be manually edited. # This file should be version controlled and should not be manually edited.
version: version:
revision: "41456452f29d64e8deb623a3c927524bcf9f111b" revision: "00b0c91f06209d9e4a41f71b7a512d6eb3b9c694"
channel: "stable" channel: "stable"
project_type: app project_type: app
@@ -13,26 +13,11 @@ project_type: app
migration: migration:
platforms: platforms:
- platform: root - platform: root
create_revision: 41456452f29d64e8deb623a3c927524bcf9f111b create_revision: 00b0c91f06209d9e4a41f71b7a512d6eb3b9c694
base_revision: 41456452f29d64e8deb623a3c927524bcf9f111b base_revision: 00b0c91f06209d9e4a41f71b7a512d6eb3b9c694
- platform: android - platform: android
create_revision: 41456452f29d64e8deb623a3c927524bcf9f111b create_revision: 00b0c91f06209d9e4a41f71b7a512d6eb3b9c694
base_revision: 41456452f29d64e8deb623a3c927524bcf9f111b base_revision: 00b0c91f06209d9e4a41f71b7a512d6eb3b9c694
- platform: ios
create_revision: 41456452f29d64e8deb623a3c927524bcf9f111b
base_revision: 41456452f29d64e8deb623a3c927524bcf9f111b
- platform: linux
create_revision: 41456452f29d64e8deb623a3c927524bcf9f111b
base_revision: 41456452f29d64e8deb623a3c927524bcf9f111b
- platform: macos
create_revision: 41456452f29d64e8deb623a3c927524bcf9f111b
base_revision: 41456452f29d64e8deb623a3c927524bcf9f111b
- platform: web
create_revision: 41456452f29d64e8deb623a3c927524bcf9f111b
base_revision: 41456452f29d64e8deb623a3c927524bcf9f111b
- platform: windows
create_revision: 41456452f29d64e8deb623a3c927524bcf9f111b
base_revision: 41456452f29d64e8deb623a3c927524bcf9f111b
# User provided section # User provided section

3
android/.gitignore vendored
View File

@@ -5,9 +5,10 @@ gradle-wrapper.jar
/gradlew.bat /gradlew.bat
/local.properties /local.properties
GeneratedPluginRegistrant.java GeneratedPluginRegistrant.java
.cxx/
# Remember to never publicly share your keystore. # Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app # See https://flutter.dev/to/reference-keystore
key.properties key.properties
**/*.keystore **/*.keystore
**/*.jks **/*.jks

View File

@@ -1,78 +0,0 @@
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
namespace "com.jgeek00.linkdy"
compileSdkVersion 36
ndkVersion '27.0.12077973'
compileOptions {
sourceCompatibility JavaVersion.VERSION_18
targetCompatibility JavaVersion.VERSION_18
}
kotlinOptions {
jvmTarget = 18
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
defaultConfig {
applicationId "com.jgeek00.linkdy"
minSdkVersion 26
targetSdkVersion 36
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
flutter {
source '../..'
}
dependencies {}

View File

@@ -0,0 +1,44 @@
plugins {
id("com.android.application")
id("kotlin-android")
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin")
}
android {
namespace = "com.jgeek00.linkdy"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "com.jgeek00.linkdy"
// You can update the following values to match your application needs.
// For more information, see: https://flutter.dev/to/review-gradle-config.
minSdk = flutter.minSdkVersion
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig = signingConfigs.getByName("debug")
}
}
}
flutter {
source = "../.."
}

View File

@@ -3,15 +3,12 @@
<application <application
android:label="Linkdy" android:label="Linkdy"
android:name="${applicationName}" android:name="${applicationName}"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher">
android:enableOnBackInvokedCallback="true">
<meta-data
android:name="flutterEmbedding"
android:value="2" />
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true" android:exported="true"
android:launchMode="singleTask" android:launchMode="singleTop"
android:taskAffinity=""
android:theme="@style/LaunchTheme" android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true" android:hardwareAccelerated="true"
@@ -44,6 +41,7 @@
android:host="example.com" android:host="example.com"
android:pathPrefix="/invite" /> android:pathPrefix="/invite" />
</intent-filter> </intent-filter>
</activity> </activity>
<!-- Don't delete the meta-data below. <!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java --> This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
@@ -51,4 +49,15 @@
android:name="flutterEmbedding" android:name="flutterEmbedding"
android:value="2" /> android:value="2" />
</application> </application>
<!-- Required to query activities that can process text, see:
https://developer.android.com/training/package-visibility and
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
<queries>
<intent>
<action android:name="android.intent.action.PROCESS_TEXT" />
<data android:mimeType="text/plain" />
</intent>
</queries>
</manifest> </manifest>

View File

@@ -22,3 +22,4 @@ class MainActivity: FlutterActivity() {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }
} }

View File

@@ -1,30 +0,0 @@
buildscript {
ext.kotlin_version = '1.9.25'
repositories {
google()
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
tasks.register("clean", Delete) {
delete rootProject.buildDir
}

24
android/build.gradle.kts Normal file
View File

@@ -0,0 +1,24 @@
allprojects {
repositories {
google()
mavenCentral()
}
}
val newBuildDir: Directory =
rootProject.layout.buildDirectory
.dir("../../build")
.get()
rootProject.layout.buildDirectory.value(newBuildDir)
subprojects {
val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
project.layout.buildDirectory.value(newSubprojectBuildDir)
}
subprojects {
project.evaluationDependsOn(":app")
}
tasks.register<Delete>("clean") {
delete(rootProject.layout.buildDirectory)
}

View File

@@ -1,6 +1,2 @@
org.gradle.jvmargs=-Xmx4G org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true
android.defaults.buildfeatures.buildconfig=true
android.nonTransitiveRClass=false
android.nonFinalResIds=false

View File

@@ -1,8 +1,5 @@
#Tue Jun 17 20:55:04 CEST 2025
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip

View File

@@ -1,4 +0,0 @@
storePassword= # keystore password #
keyPassword= # keystore key password #
keyAlias= # key alias #
storeFile= # ./keystore-file-name.jks #

View File

@@ -1,29 +0,0 @@
pluginManagement {
def flutterSdkPath = {
def properties = new Properties()
file("local.properties").withInputStream { properties.load(it) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
}
settings.ext.flutterSdkPath = flutterSdkPath()
includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle")
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
plugins {
id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false
}
}
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version '8.10.1' apply false
}
include ":app"

View File

@@ -0,0 +1,26 @@
pluginManagement {
val flutterSdkPath =
run {
val properties = java.util.Properties()
file("local.properties").inputStream().use { properties.load(it) }
val flutterSdkPath = properties.getProperty("flutter.sdk")
require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
flutterSdkPath
}
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "8.11.1" apply false
id("org.jetbrains.kotlin.android") version "2.2.20" apply false
}
include(":app")

View File

@@ -168,6 +168,7 @@ class _TranslationsSettingsCs implements TranslationsSettingsEn {
@override String get moreInfoAppDescription => 'Odkaz na webové stránky aplikace'; @override String get moreInfoAppDescription => 'Odkaz na webové stránky aplikace';
@override String get moreApps => 'Moje další aplikace'; @override String get moreApps => 'Moje další aplikace';
@override String get moreAppsDescription => 'Další projekty, kontakt, podpora a další'; @override String get moreAppsDescription => 'Další projekty, kontakt, podpora a další';
@override String get selectAnOption => 'Vyberte možnost';
@override late final _TranslationsSettingsCustomizationCs customization = _TranslationsSettingsCustomizationCs._(_root); @override late final _TranslationsSettingsCustomizationCs customization = _TranslationsSettingsCustomizationCs._(_root);
@override late final _TranslationsSettingsGeneralSettingsCs generalSettings = _TranslationsSettingsGeneralSettingsCs._(_root); @override late final _TranslationsSettingsGeneralSettingsCs generalSettings = _TranslationsSettingsGeneralSettingsCs._(_root);
} }
@@ -598,6 +599,7 @@ extension on TranslationsCs {
'settings.moreInfoAppDescription' => 'Odkaz na webové stránky aplikace', 'settings.moreInfoAppDescription' => 'Odkaz na webové stránky aplikace',
'settings.moreApps' => 'Moje další aplikace', 'settings.moreApps' => 'Moje další aplikace',
'settings.moreAppsDescription' => 'Další projekty, kontakt, podpora a další', 'settings.moreAppsDescription' => 'Další projekty, kontakt, podpora a další',
'settings.selectAnOption' => 'Vyberte možnost',
'settings.customization.customization' => 'Přizpůsobení', 'settings.customization.customization' => 'Přizpůsobení',
'settings.customization.customizationDescription' => 'Nastavte motiv aplikace a barevnou paletu.', 'settings.customization.customizationDescription' => 'Nastavte motiv aplikace a barevnou paletu.',
'settings.customization.theme' => 'Motiv', 'settings.customization.theme' => 'Motiv',

View File

@@ -181,6 +181,7 @@
"moreInfoAppDescription": "Odkaz na webové stránky aplikace", "moreInfoAppDescription": "Odkaz na webové stránky aplikace",
"moreApps": "Moje další aplikace", "moreApps": "Moje další aplikace",
"moreAppsDescription": "Další projekty, kontakt, podpora a další", "moreAppsDescription": "Další projekty, kontakt, podpora a další",
"selectAnOption": "Vyberte možnost",
"customization": { "customization": {
"customization": "Přizpůsobení", "customization": "Přizpůsobení",
"customizationDescription": "Nastavte motiv aplikace a barevnou paletu.", "customizationDescription": "Nastavte motiv aplikace a barevnou paletu.",

View File

@@ -319,6 +319,9 @@ class TranslationsSettingsEn {
/// en: 'More apps, contact, donations and more' /// en: 'More apps, contact, donations and more'
String get moreAppsDescription => 'More apps, contact, donations and more'; String get moreAppsDescription => 'More apps, contact, donations and more';
/// en: 'Select an option'
String get selectAnOption => 'Select an option';
late final TranslationsSettingsCustomizationEn customization = TranslationsSettingsCustomizationEn._(_root); late final TranslationsSettingsCustomizationEn customization = TranslationsSettingsCustomizationEn._(_root);
late final TranslationsSettingsGeneralSettingsEn generalSettings = TranslationsSettingsGeneralSettingsEn._(_root); late final TranslationsSettingsGeneralSettingsEn generalSettings = TranslationsSettingsGeneralSettingsEn._(_root);
} }
@@ -1031,6 +1034,7 @@ extension on Translations {
'settings.moreInfoAppDescription' => 'Link to the app\'s information page', 'settings.moreInfoAppDescription' => 'Link to the app\'s information page',
'settings.moreApps' => 'My other apps', 'settings.moreApps' => 'My other apps',
'settings.moreAppsDescription' => 'More apps, contact, donations and more', 'settings.moreAppsDescription' => 'More apps, contact, donations and more',
'settings.selectAnOption' => 'Select an option',
'settings.customization.customization' => 'Customization', 'settings.customization.customization' => 'Customization',
'settings.customization.customizationDescription' => 'Set the app theme and color palette.', 'settings.customization.customizationDescription' => 'Set the app theme and color palette.',
'settings.customization.theme' => 'Theme', 'settings.customization.theme' => 'Theme',

View File

@@ -181,6 +181,7 @@
"moreInfoAppDescription": "Link to the app's information page", "moreInfoAppDescription": "Link to the app's information page",
"moreApps": "My other apps", "moreApps": "My other apps",
"moreAppsDescription": "More apps, contact, donations and more", "moreAppsDescription": "More apps, contact, donations and more",
"selectAnOption": "Select an option",
"customization": { "customization": {
"customization": "Customization", "customization": "Customization",
"customizationDescription": "Set the app theme and color palette.", "customizationDescription": "Set the app theme and color palette.",

View File

@@ -168,6 +168,7 @@ class _TranslationsSettingsEs implements TranslationsSettingsEn {
@override String get moreInfoAppDescription => 'Enlace a la página web de información de la aplicación'; @override String get moreInfoAppDescription => 'Enlace a la página web de información de la aplicación';
@override String get moreApps => 'Mis otras aplicaciones'; @override String get moreApps => 'Mis otras aplicaciones';
@override String get moreAppsDescription => 'Más aplicaciones, contacto, donaciones y más'; @override String get moreAppsDescription => 'Más aplicaciones, contacto, donaciones y más';
@override String get selectAnOption => 'Selecciona una opción';
@override late final _TranslationsSettingsCustomizationEs customization = _TranslationsSettingsCustomizationEs._(_root); @override late final _TranslationsSettingsCustomizationEs customization = _TranslationsSettingsCustomizationEs._(_root);
@override late final _TranslationsSettingsGeneralSettingsEs generalSettings = _TranslationsSettingsGeneralSettingsEs._(_root); @override late final _TranslationsSettingsGeneralSettingsEs generalSettings = _TranslationsSettingsGeneralSettingsEs._(_root);
} }
@@ -598,6 +599,7 @@ extension on TranslationsEs {
'settings.moreInfoAppDescription' => 'Enlace a la página web de información de la aplicación', 'settings.moreInfoAppDescription' => 'Enlace a la página web de información de la aplicación',
'settings.moreApps' => 'Mis otras aplicaciones', 'settings.moreApps' => 'Mis otras aplicaciones',
'settings.moreAppsDescription' => 'Más aplicaciones, contacto, donaciones y más', 'settings.moreAppsDescription' => 'Más aplicaciones, contacto, donaciones y más',
'settings.selectAnOption' => 'Selecciona una opción',
'settings.customization.customization' => 'Personalización', 'settings.customization.customization' => 'Personalización',
'settings.customization.customizationDescription' => 'Configura el tema y la paleta de colores.', 'settings.customization.customizationDescription' => 'Configura el tema y la paleta de colores.',
'settings.customization.theme' => 'Tema', 'settings.customization.theme' => 'Tema',

View File

@@ -181,6 +181,7 @@
"moreInfoAppDescription": "Enlace a la página web de información de la aplicación", "moreInfoAppDescription": "Enlace a la página web de información de la aplicación",
"moreApps": "Mis otras aplicaciones", "moreApps": "Mis otras aplicaciones",
"moreAppsDescription": "Más aplicaciones, contacto, donaciones y más", "moreAppsDescription": "Más aplicaciones, contacto, donaciones y más",
"selectAnOption": "Selecciona una opción",
"customization": { "customization": {
"customization": "Personalización", "customization": "Personalización",
"customizationDescription": "Configura el tema y la paleta de colores.", "customizationDescription": "Configura el tema y la paleta de colores.",

View File

@@ -168,6 +168,7 @@ class _TranslationsSettingsTr implements TranslationsSettingsEn {
@override String get moreInfoAppDescription => 'Uygulamanın bilgi sayfasına bağlantı'; @override String get moreInfoAppDescription => 'Uygulamanın bilgi sayfasına bağlantı';
@override String get moreApps => 'Diğer uygulamalarım'; @override String get moreApps => 'Diğer uygulamalarım';
@override String get moreAppsDescription => 'Daha fazla uygulama, iletişim, bağış ve daha fazlası'; @override String get moreAppsDescription => 'Daha fazla uygulama, iletişim, bağış ve daha fazlası';
@override String get selectAnOption => 'Bir seçenek seçin';
@override late final _TranslationsSettingsCustomizationTr customization = _TranslationsSettingsCustomizationTr._(_root); @override late final _TranslationsSettingsCustomizationTr customization = _TranslationsSettingsCustomizationTr._(_root);
@override late final _TranslationsSettingsGeneralSettingsTr generalSettings = _TranslationsSettingsGeneralSettingsTr._(_root); @override late final _TranslationsSettingsGeneralSettingsTr generalSettings = _TranslationsSettingsGeneralSettingsTr._(_root);
} }
@@ -598,6 +599,7 @@ extension on TranslationsTr {
'settings.moreInfoAppDescription' => 'Uygulamanın bilgi sayfasına bağlantı', 'settings.moreInfoAppDescription' => 'Uygulamanın bilgi sayfasına bağlantı',
'settings.moreApps' => 'Diğer uygulamalarım', 'settings.moreApps' => 'Diğer uygulamalarım',
'settings.moreAppsDescription' => 'Daha fazla uygulama, iletişim, bağış ve daha fazlası', 'settings.moreAppsDescription' => 'Daha fazla uygulama, iletişim, bağış ve daha fazlası',
'settings.selectAnOption' => 'Bir seçenek seçin',
'settings.customization.customization' => 'Özelleştirme', 'settings.customization.customization' => 'Özelleştirme',
'settings.customization.customizationDescription' => 'Uygulama temasını ve renk paletini ayarlayın.', 'settings.customization.customizationDescription' => 'Uygulama temasını ve renk paletini ayarlayın.',
'settings.customization.theme' => 'Tema', 'settings.customization.theme' => 'Tema',

View File

@@ -181,6 +181,7 @@
"moreInfoAppDescription": "Uygulamanın bilgi sayfasına bağlantı", "moreInfoAppDescription": "Uygulamanın bilgi sayfasına bağlantı",
"moreApps": "Diğer uygulamalarım", "moreApps": "Diğer uygulamalarım",
"moreAppsDescription": "Daha fazla uygulama, iletişim, bağış ve daha fazlası", "moreAppsDescription": "Daha fazla uygulama, iletişim, bağış ve daha fazlası",
"selectAnOption": "Bir seçenek seçin",
"customization": { "customization": {
"customization": "Özelleştirme", "customization": "Özelleştirme",
"customizationDescription": "Uygulama temasını ve renk paletini ayarlayın.", "customizationDescription": "Uygulama temasını ve renk paletini ayarlayın.",

View File

@@ -1,6 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_split_view/flutter_split_view.dart';
import 'package:linkdy/screens/settings/ui/customization/customization.dart'; import 'package:linkdy/screens/settings/ui/customization/customization.dart';
import 'package:linkdy/screens/settings/provider/settings.provider.dart'; import 'package:linkdy/screens/settings/provider/settings.provider.dart';
@@ -24,10 +23,11 @@ class SettingsScreen extends ConsumerWidget {
return LayoutBuilder( return LayoutBuilder(
builder: (context, constraints) { builder: (context, constraints) {
if (constraints.maxWidth > Sizes.tabletBreakpoint) { if (constraints.maxWidth > Sizes.tabletBreakpoint) {
return const SplitView.material( return Row(
hideDivider: true, children: [
flexWidth: FlexWidth(mainViewFlexWidth: 1, secondaryViewFlexWidth: 2), const Expanded(flex: 1, child: _List(tabletView: true)),
child: _List(tabletView: true), Expanded(flex: 2, child: Material(child: const _DetailPanel())),
],
); );
} else { } else {
return const _List(tabletView: false); return const _List(tabletView: false);
@@ -163,7 +163,6 @@ class _SettingsTile extends ConsumerWidget {
selectedItem: ref.watch(settingsProvider).selectedScreen, selectedItem: ref.watch(settingsProvider).selectedScreen,
onTap: () { onTap: () {
ref.read(settingsProvider.notifier).setSelectedScreen(thisItem); ref.read(settingsProvider.notifier).setSelectedScreen(thisItem);
SplitView.of(context).setSecondary(screenToNavigate);
}, },
); );
} else { } else {
@@ -178,3 +177,26 @@ class _SettingsTile extends ConsumerWidget {
} }
} }
} }
class _DetailPanel extends ConsumerWidget {
const _DetailPanel();
@override
Widget build(BuildContext context, WidgetRef ref) {
final selectedScreen = ref.watch(settingsProvider).selectedScreen;
switch (selectedScreen) {
case 0:
return const Customization();
case 1:
return const GeneralSettings();
default:
return Center(
child: Text(
t.settings.selectAnOption,
style: TextStyle(color: Theme.of(context).colorScheme.onSurfaceVariant),
),
);
}
}
}

View File

@@ -1,14 +1,10 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:share_plus/share_plus.dart'; import 'package:share_plus/share_plus.dart';
import 'package:super_context_menu/super_context_menu.dart';
import 'package:linkdy/models/data/bookmarks.dart'; import 'package:linkdy/models/data/bookmarks.dart';
import 'package:linkdy/i18n/strings.g.dart'; import 'package:linkdy/i18n/strings.g.dart';
// Wait until the context menu close animation animation finishes
Duration _durationTime = const Duration(milliseconds: 150);
class BookmarkContextMenu extends ConsumerWidget { class BookmarkContextMenu extends ConsumerWidget {
final Widget child; final Widget child;
final Bookmark bookmark; final Bookmark bookmark;
@@ -31,69 +27,119 @@ class BookmarkContextMenu extends ConsumerWidget {
required this.onShareInternally, required this.onShareInternally,
}); });
void _showBottomSheet(BuildContext context) {
showModalBottomSheet(
context: context,
isDismissible: true,
builder: (ctx) => SafeArea(
bottom: true,
top: true,
child: Wrap(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: 12),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: 50,
height: 4,
decoration: BoxDecoration(
color: Colors.grey,
borderRadius: BorderRadius.circular(20),
),
),
],
),
),
ListTile(
leading: Icon(
bookmark.unread == true ? Icons.mark_email_read_rounded : Icons.mark_as_unread_rounded,
),
title: Text(
bookmark.unread == true
? t.bookmarks.bookmarkOptions.markAsRead
: t.bookmarks.bookmarkOptions.markAsUnread,
),
onTap: () {
Navigator.pop(ctx);
onReadUnread(bookmark);
},
),
ListTile(
leading: Icon(
bookmark.isArchived == true ? Icons.unarchive_rounded : Icons.archive_rounded,
),
title: Text(
bookmark.isArchived == true
? t.bookmarks.bookmarkOptions.unarchive
: t.bookmarks.bookmarkOptions.archive,
),
onTap: () {
Navigator.pop(ctx);
onArchiveUnarchive(bookmark);
},
),
ExpansionTile(
leading: const Icon(Icons.share_rounded),
title: Text(t.bookmarks.bookmarkOptions.shareOptions),
children: [
ListTile(
contentPadding: const EdgeInsets.only(left: 44),
leading: const Icon(Icons.input_rounded),
title: Text(
bookmark.shared == true
? t.bookmarks.bookmarkOptions.unshareInternally
: t.bookmarks.bookmarkOptions.shareInternally,
),
onTap: () {
Navigator.pop(ctx);
onShareInternally(bookmark);
},
),
ListTile(
contentPadding: const EdgeInsets.only(left: 44),
leading: const Icon(Icons.output_rounded),
title: Text(t.bookmarks.bookmarkOptions.shareThirdPartyApp),
onTap: () {
Navigator.pop(ctx);
Share.share(bookmark.url!);
},
),
],
),
ListTile(
leading: const Icon(Icons.edit_rounded),
title: Text(t.bookmarks.bookmarkOptions.edit),
onTap: () {
Navigator.pop(ctx);
onEdit(bookmark);
},
),
ListTile(
leading: Icon(
Icons.delete_rounded,
color: Theme.of(ctx).colorScheme.error,
),
title: Text(
t.bookmarks.bookmarkOptions.delete,
style: TextStyle(color: Theme.of(ctx).colorScheme.error),
),
onTap: () {
Navigator.pop(ctx);
onDelete(bookmark);
},
),
],
),
),
);
}
@override @override
Widget build(BuildContext context, WidgetRef ref) { Widget build(BuildContext context, WidgetRef ref) {
return ContextMenuWidget( return GestureDetector(
menuProvider: (request) => Menu( onLongPress: () => _showBottomSheet(context),
children: [
MenuAction(
callback: () => Future.delayed(_durationTime).then((value) => onReadUnread(bookmark)),
title: bookmark.unread == true
? t.bookmarks.bookmarkOptions.markAsRead
: t.bookmarks.bookmarkOptions.markAsUnread,
image: MenuImage.icon(
bookmark.unread == true ? Icons.mark_email_read_rounded : Icons.mark_as_unread_rounded,
),
),
MenuAction(
callback: () => Future.delayed(_durationTime).then((value) => onArchiveUnarchive(bookmark)),
title: bookmark.isArchived == true
? t.bookmarks.bookmarkOptions.unarchive
: t.bookmarks.bookmarkOptions.archive,
image: MenuImage.icon(
bookmark.isArchived == true ? Icons.unarchive_rounded : Icons.archive_rounded,
),
),
Menu(
title: t.bookmarks.bookmarkOptions.shareOptions,
image: MenuImage.icon(Icons.share_rounded),
children: [
MenuAction(
callback: () => Future.delayed(_durationTime).then((value) => onShareInternally(bookmark)),
title: bookmark.shared == true
? t.bookmarks.bookmarkOptions.unshareInternally
: t.bookmarks.bookmarkOptions.shareInternally,
image: MenuImage.icon(Icons.input_rounded),
),
MenuAction(
callback: () {
final box = context.findRenderObject() as RenderBox?;
Future.delayed(_durationTime).then(
(value) => Share.share(
bookmark.url!,
sharePositionOrigin: box!.localToGlobal(Offset.zero) & box.size,
),
);
},
title: t.bookmarks.bookmarkOptions.shareThirdPartyApp,
image: MenuImage.icon(Icons.output_rounded),
),
],
),
MenuSeparator(),
MenuAction(
callback: () => Future.delayed(_durationTime).then((value) => onEdit(bookmark)),
title: t.bookmarks.bookmarkOptions.edit,
image: MenuImage.icon(Icons.edit_rounded),
),
MenuAction(
callback: () => Future.delayed(_durationTime).then((value) => onDelete(bookmark)),
title: t.bookmarks.bookmarkOptions.delete,
image: MenuImage.icon(Icons.delete_rounded),
attributes: const MenuActionAttributes(destructive: true),
),
],
),
child: child, child: child,
); );
} }

View File

@@ -29,10 +29,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: animations name: animations
sha256: "18938cefd7dcc04e1ecac0db78973761a01e4bc2d6bfae0cfa596bfeac9e96ab" sha256: "9cb469212ea51be27097f23b519d594c01171721347b55df9334fff653659e7f"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.1" version: "2.2.0"
ansicolor: ansicolor:
dependency: transitive dependency: transitive
description: description:
@@ -61,10 +61,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: async name: async
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.13.0" version: "2.13.1"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
@@ -133,10 +133,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: built_value name: built_value
sha256: "6ae8a6435a8c6520c7077b107e77f1fb4ba7009633259a4d49a8afd8e7efc5e9" sha256: "34e4067d30ce212937df995f03b69992eea683539ceeac7f679a1f1eba055b56"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.12.4" version: "8.12.6"
characters: characters:
dependency: transitive dependency: transitive
description: description:
@@ -237,26 +237,26 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: cupertino_icons name: cupertino_icons
sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.8" version: "1.0.9"
custom_lint: custom_lint:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: custom_lint name: custom_lint
sha256: "9656925637516c5cf0f5da018b33df94025af2088fe09c8ae2ca54c53f2d9a84" sha256: "409c485fd14f544af1da965d5a0d160ee57cd58b63eeaa7280a4f28cf5bda7f1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.6" version: "0.7.5"
custom_lint_builder: custom_lint_builder:
dependency: transitive dependency: transitive
description: description:
name: custom_lint_builder name: custom_lint_builder
sha256: "6cdc8e87e51baaaba9c43e283ed8d28e59a0c4732279df62f66f7b5984655414" sha256: "107e0a43606138015777590ee8ce32f26ba7415c25b722ff0908a6f5d7a4c228"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.6" version: "0.7.5"
custom_lint_core: custom_lint_core:
dependency: transitive dependency: transitive
description: description:
@@ -281,22 +281,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.1" version: "3.1.1"
device_info_plus:
dependency: transitive
description:
name: device_info_plus
sha256: "98f28b42168cc509abc92f88518882fd58061ea372d7999aecc424345c7bff6a"
url: "https://pub.dev"
source: hosted
version: "11.5.0"
device_info_plus_platform_interface:
dependency: transitive
description:
name: device_info_plus_platform_interface
sha256: e1ea89119e34903dca74b883d0dd78eb762814f97fb6c76f35e9ff74d261a18f
url: "https://pub.dev"
source: hosted
version: "7.0.3"
dio: dio:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -410,10 +394,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_dotenv name: flutter_dotenv
sha256: d4130c4a43e0b13fefc593bc3961f2cb46e30cb79e253d4a526b1b5d24ae1ce4 sha256: d41da11fb497314fbf89811ec30af02d1d898b47980a129f0a8c0a1720460ba2
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.0.0" version: "6.0.1"
flutter_hooks: flutter_hooks:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -459,23 +443,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.6.1" version: "2.6.1"
flutter_split_view:
dependency: "direct main"
description:
path: "."
ref: master-alt
resolved-ref: a6aa2419243cc0abccf9474ce340790d6c0ded6f
url: "https://github.com/JGeek00/flutter_split_view"
source: git
version: "0.1.2"
flutter_svg: flutter_svg:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_svg name: flutter_svg
sha256: "1ded017b39c8e15c8948ea855070a5ff8ff8b3d5e83f3446e02d6bb12add7ad9" sha256: "35882981abcbfb8c15b286f0cd690ff25bac12d95eff3e25ee207f37d4c42e7f"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.4" version: "2.3.0"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
@@ -514,10 +489,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: go_router name: go_router
sha256: "7974313e217a7771557add6ff2238acb63f635317c35fa590d348fb238f00896" sha256: "92d8cee7c57dff0a6c409c05597b460002434eccf7424a712283225b3962d03f"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "17.1.0" version: "17.2.3"
graphs: graphs:
dependency: transitive dependency: transitive
description: description:
@@ -530,10 +505,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: hooks name: hooks
sha256: e79ed1e8e1929bc6ecb6ec85f0cb519c887aa5b423705ded0d0f2d9226def388 sha256: "025f060e86d2d4c3c47b56e33caf7f93bf9283340f26d23424ebcfccf34f621e"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.2" version: "1.0.3"
hooks_riverpod: hooks_riverpod:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -546,10 +521,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: hotreloader name: hotreloader
sha256: bc167a1163807b03bada490bfe2df25b0d744df359227880220a5cbd04e5734b sha256: "66871df468fc24eee81f1a0a7cb98acc104716f9b7376d355437b48d633c4ebf"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.3.0" version: "4.4.0"
html: html:
dependency: transitive dependency: transitive
description: description:
@@ -606,22 +581,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.5" version: "1.0.5"
irondash_engine_context:
dependency: transitive
description:
name: irondash_engine_context
sha256: "2bb0bc13dfda9f5aaef8dde06ecc5feb1379f5bb387d59716d799554f3f305d7"
url: "https://pub.dev"
source: hosted
version: "0.5.5"
irondash_message_channel:
dependency: transitive
description:
name: irondash_message_channel
sha256: b4101669776509c76133b8917ab8cfc704d3ad92a8c450b92934dd8884a2f060
url: "https://pub.dev"
source: hosted
version: "0.7.0"
jni: jni:
dependency: transitive dependency: transitive
description: description:
@@ -754,10 +713,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: package_info_plus name: package_info_plus
sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968" sha256: "468c26b4254ab01979fa5e4a98cb343ea3631b9acee6f21028997419a80e1a20"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.3.1" version: "9.0.1"
package_info_plus_platform_interface: package_info_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
@@ -794,10 +753,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: path_provider_android name: path_provider_android
sha256: f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e sha256: "149441ca6e4f38193b2e004c0ca6376a3d11f51fa5a77552d8bd4d2b0c0912ba"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.22" version: "2.2.23"
path_provider_foundation: path_provider_foundation:
dependency: transitive dependency: transitive
description: description:
@@ -838,14 +797,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.0.2" version: "7.0.2"
pixel_snap:
dependency: transitive
description:
name: pixel_snap
sha256: "677410ea37b07cd37ecb6d5e6c0d8d7615a7cf3bd92ba406fd1ac57e937d1fb0"
url: "https://pub.dev"
source: hosted
version: "0.1.5"
platform: platform:
dependency: transitive dependency: transitive
description: description:
@@ -894,6 +845,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.5.0" version: "1.5.0"
record_use:
dependency: transitive
description:
name: record_use
sha256: "2551bd8eecfe95d14ae75f6021ad0248be5c27f138c2ec12fcb52b500b3ba1ed"
url: "https://pub.dev"
source: hosted
version: "0.6.0"
riverpod: riverpod:
dependency: transitive dependency: transitive
description: description:
@@ -954,18 +913,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: sentry name: sentry
sha256: a49b4fb1cba576fe216347dc2a0e6d76076fb998e6012857db96f991c23b7b3c sha256: f04095a25ff02b202a914174c73ec309570aa93d61098cb4a0a9e715b4aaa465
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "9.15.0" version: "9.20.0"
sentry_flutter: sentry_flutter:
dependency: "direct main" dependency: "direct main"
description: description:
name: sentry_flutter name: sentry_flutter
sha256: "25150030c93bd1d4b727ab61cfb09e99121c69ce90fa820bb9ca16dab433e43a" sha256: "4f0a914d8c37e5015d7b86dd42b92dd265948fd31875b43e62ddfc2e7bea0e41"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "9.15.0" version: "9.20.0"
serial_csv: serial_csv:
dependency: transitive dependency: transitive
description: description:
@@ -978,10 +937,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: share_plus name: share_plus
sha256: d7dc0630a923883c6328ca31b89aa682bacbf2f8304162d29f7c6aaff03a27a1 sha256: "223873d106614442ea6f20db5a038685cc5b32a2fba81cdecaefbbae0523f7fa"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "11.1.0" version: "12.0.2"
share_plus_platform_interface: share_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
@@ -994,18 +953,18 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: shared_preferences name: shared_preferences
sha256: "2939ae520c9024cb197fc20dee269cd8cdbf564c8b5746374ec6cacdc5169e64" sha256: c3025c5534b01739267eb7d76959bbc25a6d10f6988e1c2a3036940133dd10bf
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.5.4" version: "2.5.5"
shared_preferences_android: shared_preferences_android:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_android name: shared_preferences_android
sha256: "8374d6200ab33ac99031a852eba4c8eb2170c4bf20778b3e2c9eccb45384fb41" sha256: e8d4762b1e2e8578fc4d0fd548cebf24afd24f49719c08974df92834565e2c53
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.4.21" version: "2.4.23"
shared_preferences_foundation: shared_preferences_foundation:
dependency: transitive dependency: transitive
description: description:
@@ -1026,10 +985,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_platform_interface name: shared_preferences_platform_interface
sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" sha256: "649dc798a33931919ea356c4305c2d1f81619ea6e92244070b520187b5140ef9"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.4.1" version: "2.4.2"
shared_preferences_web: shared_preferences_web:
dependency: transitive dependency: transitive
description: description:
@@ -1163,22 +1122,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.4.1" version: "1.4.1"
super_context_menu:
dependency: "direct main"
description:
name: super_context_menu
sha256: "44570d342bea2381c57520f181016207c0ffde401f05f641e6dfec495fa728fe"
url: "https://pub.dev"
source: hosted
version: "0.9.1"
super_native_extensions:
dependency: transitive
description:
name: super_native_extensions
sha256: b9611dcb68f1047d6f3ef11af25e4e68a21b1a705bbcc3eb8cb4e9f5c3148569
url: "https://pub.dev"
source: hosted
version: "0.9.1"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
@@ -1231,10 +1174,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_android name: url_launcher_android
sha256: "767344bf3063897b5cf0db830e94f904528e6dd50a6dfaf839f0abf509009611" sha256: "3bb000251e55d4a209aa0e2e563309dc9bb2befea2295fd0cec1f51760aac572"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.3.28" version: "6.3.29"
url_launcher_ios: url_launcher_ios:
dependency: transitive dependency: transitive
description: description:
@@ -1271,10 +1214,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_web name: url_launcher_web
sha256: d0412fcf4c6b31ecfdb7762359b7206ffba3bbffd396c6d9f9c4616ece476c1f sha256: "85c81589622fbc87c1c683aaea164d3604a7777495a79d91e39ffcdec39ddb34"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.4.2" version: "2.4.3"
url_launcher_windows: url_launcher_windows:
dependency: transitive dependency: transitive
description: description:
@@ -1295,10 +1238,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: vector_graphics name: vector_graphics
sha256: "7076216a10d5c390315fbe536a30f1254c341e7543e6c4c8a815e591307772b1" sha256: "4d35a36400983c3457c289d4d553b5308f506ea84f7e51c7a564651b5525209a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.20" version: "1.2.1"
vector_graphics_codec: vector_graphics_codec:
dependency: transitive dependency: transitive
description: description:
@@ -1311,10 +1254,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: vector_graphics_compiler name: vector_graphics_compiler
sha256: "5a88dd14c0954a5398af544651c7fb51b457a2a556949bfb25369b210ef73a74" sha256: "98e7e94de127b46a86ef46197fff84ff99f3d3b80a708390d717ad731efef598"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.0" version: "1.2.2"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
@@ -1327,10 +1270,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: vm_service name: vm_service
sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "15.0.2" version: "15.2.0"
watcher: watcher:
dependency: transitive dependency: transitive
description: description:
@@ -1375,26 +1318,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: webview_flutter_android name: webview_flutter_android
sha256: "2a03df01df2fd30b075d1e7f24c28aee593f2e5d5ac4c3c4283c5eda63717b24" sha256: ad5182eff9a550925330cb9f0cb038eddfdd5712aba8b77aa0f0400e50f6e688
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.10.13" version: "4.12.0"
webview_flutter_platform_interface: webview_flutter_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: webview_flutter_platform_interface name: webview_flutter_platform_interface
sha256: "63d26ee3aca7256a83ccb576a50272edd7cfc80573a4305caa98985feb493ee0" sha256: "1221c1b12f5278791042f2ec2841743784cf25c5a644e23d6680e5d718824f04"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.14.0" version: "2.15.1"
webview_flutter_wkwebview: webview_flutter_wkwebview:
dependency: transitive dependency: transitive
description: description:
name: webview_flutter_wkwebview name: webview_flutter_wkwebview
sha256: "2df8fd9ada04d699b9db8e79aa783a16e5d89b69e5b74009b87e16b59912cf98" sha256: "82648217f537573e1ca9ae9952d3eacedca6ab5aee69dc84445fc763766dcea2"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.24.0" version: "3.25.1"
win32: win32:
dependency: transitive dependency: transitive
description: description:
@@ -1403,14 +1346,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.15.0" version: "5.15.0"
win32_registry:
dependency: transitive
description:
name: win32_registry
sha256: "6f1b564492d0147b330dd794fee8f512cec4977957f310f9951b5f9d83618dae"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:

View File

@@ -33,22 +33,22 @@ dependencies:
flutter_localizations: flutter_localizations:
sdk: flutter sdk: flutter
cupertino_icons: ^1.0.8 cupertino_icons: ^1.0.8
flutter_riverpod: ^2.6.1 flutter_riverpod: 2.6.1
go_router: ^17.0.0 go_router: ^17.0.0
riverpod_annotation: ^2.6.1 riverpod_annotation: 2.6.1
dynamic_color: ^1.8.1 dynamic_color: ^1.8.1
shared_preferences: ^2.5.3 shared_preferences: ^2.5.3
url_launcher: ^6.3.2 url_launcher: ^6.3.2
animations: ^2.1.1 animations: ^2.1.1
segmented_button_slide: ^1.0.4 segmented_button_slide: 1.0.4
dio: ^5.9.0 dio: ^5.9.0
uuid: ^4.5.2 uuid: ^4.5.2
slang: ^4.7.2 slang: ^4.7.2
slang_flutter: ^4.7.0 slang_flutter: ^4.7.0
flutter_svg: ^2.2.3 flutter_svg: ^2.2.3
flutter_custom_tabs: ^2.4.0 flutter_custom_tabs: ^2.4.0
share_plus: ^11.0.0 share_plus: ^12.0.2
package_info_plus: ^8.3.0 package_info_plus: ^9.0.1
easy_autocomplete: ^1.6.0 easy_autocomplete: ^1.6.0
sentry_flutter: ^9.8.0 sentry_flutter: ^9.8.0
flutter_dotenv: ^6.0.0 flutter_dotenv: ^6.0.0
@@ -56,23 +56,18 @@ dependencies:
http: ^1.6.0 http: ^1.6.0
webview_flutter: ^4.13.0 webview_flutter: ^4.13.0
flutter_hooks: ^0.21.2 flutter_hooks: ^0.21.2
hooks_riverpod: ^2.6.1 hooks_riverpod: 2.6.1
flutter_split_view:
git:
url: https://github.com/JGeek00/flutter_split_view
ref: master-alt
super_context_menu: ^0.9.1
listen_sharing_intent: ^1.9.2 listen_sharing_intent: ^1.9.2
slideable: ^0.0.3 slideable: ^0.0.3
dev_dependencies: dev_dependencies:
build_runner: ^2.5.1 build_runner: ^2.5.1
custom_lint: ^0.7.5 custom_lint: 0.7.5
flutter_lints: ^6.0.0 flutter_lints: ^6.0.0
flutter_test: flutter_test:
sdk: flutter sdk: flutter
riverpod_generator: ^2.6.5 riverpod_generator: 2.6.5
riverpod_lint: ^2.6.5 riverpod_lint: 2.6.5
slang_build_runner: ^4.7.0 slang_build_runner: ^4.7.0
flutter_native_splash: ^2.4.6 flutter_native_splash: ^2.4.6
flutter_launcher_icons: ^0.14.4 flutter_launcher_icons: ^0.14.4