fix: adjust settings button position and backup/json buttons layout (v3.0.9)
Build and Release / Build Windows x64 (push) Has been cancelled
Build and Release / Build Windows x64 (push) Has been cancelled
This commit is contained in:
@@ -10,7 +10,7 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/RarDog/Lunaris/releases"><img src="https://img.shields.io/badge/Version-3.0.8-8A2BE2?style=for-the-badge&logo=semver&logoColor=white" alt="Version 3.0.8" /></a>
|
<a href="https://github.com/RarDog/Lunaris/releases"><img src="https://img.shields.io/badge/Version-3.0.9-8A2BE2?style=for-the-badge&logo=semver&logoColor=white" alt="Version 3.0.9" /></a>
|
||||||
<img src="https://img.shields.io/badge/Flutter-3.47+-02569B?style=for-the-badge&logo=flutter&logoColor=white" alt="Flutter" />
|
<img src="https://img.shields.io/badge/Flutter-3.47+-02569B?style=for-the-badge&logo=flutter&logoColor=white" alt="Flutter" />
|
||||||
<img src="https://img.shields.io/badge/Platform-Android%20%7C%20Linux%20%7C%20Windows-00C853?style=for-the-badge" alt="Platforms" />
|
<img src="https://img.shields.io/badge/Platform-Android%20%7C%20Linux%20%7C%20Windows-00C853?style=for-the-badge" alt="Platforms" />
|
||||||
<a href="https://github.com/RarDog/Lunaris/wiki"><img src="https://img.shields.io/badge/Wiki-Documentation-FF6F00?style=for-the-badge&logo=gitbook&logoColor=white" alt="Wiki" /></a>
|
<a href="https://github.com/RarDog/Lunaris/wiki"><img src="https://img.shields.io/badge/Wiki-Documentation-FF6F00?style=for-the-badge&logo=gitbook&logoColor=white" alt="Wiki" /></a>
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
const appDisplayVersion = '3.0.8';
|
const appDisplayVersion = '3.0.9';
|
||||||
const appBuildNumber = 59;
|
const appBuildNumber = 60;
|
||||||
const appReleaseChannel = 'Stable';
|
const appReleaseChannel = 'Stable';
|
||||||
|
|||||||
@@ -1,4 +1,13 @@
|
|||||||
const lunarisChangelog = [
|
const lunarisChangelog = [
|
||||||
|
LunarisChange(
|
||||||
|
version: '3.0.9',
|
||||||
|
title: 'Коррекция позиции кнопки настроек и отображения кнопок JSON и бэкапа',
|
||||||
|
bullets: [
|
||||||
|
'Оптимальная позиция кнопки настроек: парящая стеклянная кнопка опущена прямо к нижней навигационной панели, без избыточного завышения над карточками контента.',
|
||||||
|
'Полная видимость кнопок JSON и бэкапа: добавлен увеличенный нижний отступ прокрутки в настройках, чтобы панель навигации не перекрывала кнопки при скролле до конца.',
|
||||||
|
'Улучшенный дизайн и сетка кнопок экспорта/импорта: кнопки бэкапа и JSON организованы в симметричные аккуратные строки с яркими акцентными бейджами.',
|
||||||
|
],
|
||||||
|
),
|
||||||
LunarisChange(
|
LunarisChange(
|
||||||
version: '3.0.8',
|
version: '3.0.8',
|
||||||
title: 'iPhone Liquid Glass — раздел «Настройки» и парящая стеклянная кнопка',
|
title: 'iPhone Liquid Glass — раздел «Настройки» и парящая стеклянная кнопка',
|
||||||
|
|||||||
@@ -187,7 +187,12 @@ class _SettingsContentState extends ConsumerState<_SettingsContent> {
|
|||||||
Expanded(
|
Expanded(
|
||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
controller: _scrollController,
|
controller: _scrollController,
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
|
padding: EdgeInsets.fromLTRB(
|
||||||
|
16,
|
||||||
|
12,
|
||||||
|
16,
|
||||||
|
120 + MediaQuery.paddingOf(context).bottom,
|
||||||
|
),
|
||||||
child: Align(
|
child: Align(
|
||||||
alignment: Alignment.topCenter,
|
alignment: Alignment.topCenter,
|
||||||
child: ConstrainedBox(
|
child: ConstrainedBox(
|
||||||
@@ -2547,35 +2552,64 @@ class _HeroBrandBanner extends StatelessWidget {
|
|||||||
Text(
|
Text(
|
||||||
isRu ? 'Резервное копирование и экспорт' : 'Backup & JSON Export',
|
isRu ? 'Резервное копирование и экспорт' : 'Backup & JSON Export',
|
||||||
style: theme.textTheme.titleSmall?.copyWith(
|
style: theme.textTheme.titleSmall?.copyWith(
|
||||||
fontWeight: FontWeight.w600,
|
fontWeight: FontWeight.w700,
|
||||||
color: theme.colorScheme.onSurfaceVariant,
|
letterSpacing: -0.2,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
Wrap(
|
Column(
|
||||||
spacing: 10,
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
runSpacing: 10,
|
|
||||||
alignment: WrapAlignment.center,
|
|
||||||
children: [
|
children: [
|
||||||
OutlinedButton.icon(
|
Row(
|
||||||
|
children: [
|
||||||
|
Expanded(
|
||||||
|
child: OutlinedButton.icon(
|
||||||
onPressed: onExportBackup,
|
onPressed: onExportBackup,
|
||||||
icon: const Icon(Icons.file_upload_rounded, size: 18),
|
icon: const Icon(Icons.file_upload_rounded, size: 18),
|
||||||
label: Text(isRu ? 'Экспорт бэкапа' : 'Export backup'),
|
label: Text(
|
||||||
|
isRu ? 'Экспорт бэкапа' : 'Export backup',
|
||||||
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
OutlinedButton.icon(
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(width: 10),
|
||||||
|
Expanded(
|
||||||
|
child: OutlinedButton.icon(
|
||||||
onPressed: onImportBackup,
|
onPressed: onImportBackup,
|
||||||
icon: const Icon(Icons.file_download_rounded, size: 18),
|
icon: const Icon(Icons.file_download_rounded, size: 18),
|
||||||
label: Text(isRu ? 'Импорт бэкапа' : 'Import backup'),
|
label: Text(
|
||||||
|
isRu ? 'Импорт бэкапа' : 'Import backup',
|
||||||
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
OutlinedButton.icon(
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Expanded(
|
||||||
|
child: FilledButton.tonalIcon(
|
||||||
onPressed: onExportJson,
|
onPressed: onExportJson,
|
||||||
icon: const Icon(Icons.upload_file_rounded, size: 18),
|
icon: const Icon(Icons.data_object_rounded, size: 18),
|
||||||
label: const Text('JSON Export'),
|
label: Text(
|
||||||
|
isRu ? 'JSON Экспорт' : 'JSON Export',
|
||||||
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
OutlinedButton.icon(
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(width: 10),
|
||||||
|
Expanded(
|
||||||
|
child: FilledButton.tonalIcon(
|
||||||
onPressed: onImportJson,
|
onPressed: onImportJson,
|
||||||
icon: const Icon(Icons.download_for_offline_rounded, size: 18),
|
icon: const Icon(Icons.download_for_offline_rounded, size: 18),
|
||||||
label: const Text('JSON Import'),
|
label: Text(
|
||||||
|
isRu ? 'JSON Импорт' : 'JSON Import',
|
||||||
|
overflow: TextOverflow.ellipsis,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -297,7 +297,7 @@ class _MobileShell extends StatelessWidget {
|
|||||||
floatingActionButton: location == '/settings'
|
floatingActionButton: location == '/settings'
|
||||||
? null
|
? null
|
||||||
: Padding(
|
: Padding(
|
||||||
padding: const EdgeInsets.only(bottom: 68, right: 4),
|
padding: const EdgeInsets.only(bottom: 0, right: 2),
|
||||||
child: _LiquidGlassSettingsButton(
|
child: _LiquidGlassSettingsButton(
|
||||||
ru: ru,
|
ru: ru,
|
||||||
onTap: () => context.go('/settings'),
|
onTap: () => context.go('/settings'),
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
name: gel_rule_app
|
name: gel_rule_app
|
||||||
description: Local backend/core layer for a Flutter booru browser app.
|
description: Local backend/core layer for a Flutter booru browser app.
|
||||||
publish_to: "none"
|
publish_to: "none"
|
||||||
version: 3.0.8+59
|
version: 3.0.9+60
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=3.3.0 <4.0.0"
|
sdk: ">=3.3.0 <4.0.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user