Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 2.3.0 #183

Merged
merged 68 commits into from
Jun 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
104b8d6
added ContentGrid widget
abrenoch May 15, 2022
b059984
updated CategoryViewPage to use ContentGrid
abrenoch May 15, 2022
f0164ac
added getTags and editTag api methods
abrenoch May 16, 2022
6971b3f
added fetchTagImages and fetchFavoriteImages api methods
abrenoch May 16, 2022
f8a1d2c
added view_menu_button.dart
abrenoch May 16, 2022
4b92976
ViewPopupMenuButton usage
abrenoch May 16, 2022
6a16dc8
Merge pull request #7 from Piwigo/master
abrenoch May 17, 2022
fa800e1
Merge branch 'master' into more_list_types
abrenoch May 18, 2022
8b34749
content_grid.dart tweaks
abrenoch May 19, 2022
d8d5355
view_menu_button.dart fix / route
abrenoch May 19, 2022
01f33f8
added favorites page
abrenoch May 19, 2022
25f7cfb
added RootTagViewPage.dart and TagViewPage.dart
abrenoch May 20, 2022
da8bc6e
added onImageTap to content_grid
abrenoch May 20, 2022
19b6672
added tag_list_item.dart
abrenoch May 20, 2022
3feee1a
updated CategoryViewPage.dart and FavoritesViewPage.dart to use new p…
abrenoch May 20, 2022
5fb173d
ImageViewPage.dart updated to work with tag & favorites sets
abrenoch May 20, 2022
dde3971
added tag route to popup
abrenoch May 20, 2022
ea56a54
Merge branch 'Piwigo:master' into master
abrenoch May 22, 2022
0fa96f8
Merge branch 'master' into more_list_types
abrenoch May 22, 2022
e68f133
removed root category view page
abrenoch Jun 16, 2022
dac20b7
showChooseTagSheet usage
abrenoch Jun 16, 2022
e6c4c8f
image paging fix
abrenoch Jun 16, 2022
1d06625
some cleanup
abrenoch Jun 17, 2022
e531d6a
tag menu close button
abrenoch Jun 17, 2022
7bfdcbc
disabled some list types
abrenoch Jun 17, 2022
ebd39ff
TagViewPage.dart cleanup
abrenoch Jun 17, 2022
37e0cf9
removed tag_list_item
abrenoch Jun 17, 2022
842c6c5
tag sheet start size
abrenoch Jun 18, 2022
07bd141
Merge pull request #8 from Piwigo/master
abrenoch Jul 14, 2022
4adf193
Merge branch 'more_list_types' into temp-merge
abrenoch Jul 14, 2022
e591430
Merge pull request #11 from abrenoch/temp-merge
abrenoch Jul 14, 2022
ed76d5f
updated per 7fd0fa7c0b951a05c7b6f3926703c12ae8474431
abrenoch Jul 14, 2022
671c71a
New translations app_en.arb (German)
remi-martin Aug 19, 2023
ae6fb48
New translations app_en.arb (Chinese Simplified)
remi-martin Aug 19, 2023
9b51546
New translations app_en.arb (Chinese Simplified)
remi-martin Aug 20, 2023
1e93ffe
Change ImageModel.name to nullable string
prookyon Oct 25, 2023
7797703
Merge remote-tracking branch 'origin/master' into more_list_types
abrenoch Nov 6, 2023
515fe5b
removed old files
abrenoch Nov 7, 2023
81f8772
added editTag to tags.dart
abrenoch Nov 7, 2023
69447ad
added fetchTagImages to images.dart
abrenoch Nov 7, 2023
3109b42
added image_tags_page
abrenoch Nov 7, 2023
40f9fd7
added image_tags_page route
abrenoch Nov 7, 2023
987d866
added showChooseTagSheet to root_search_app_bar.dart
abrenoch Nov 7, 2023
d478152
bug fix in image_favorites_page.dart
abrenoch Nov 7, 2023
a79ee17
unused files
abrenoch Nov 7, 2023
ea61bb0
Merge pull request #171 from prookyon/master
remi-martin Mar 30, 2024
c0b883c
Merge pull request #182 from Piwigo/feature/image_name_nullable
remi-martin Mar 30, 2024
e1ecc78
New translations app_en.arb (Chinese Simplified)
remi-martin Mar 30, 2024
76cb77f
Merge pull request #124 from abrenoch/more_list_types
remi-martin Mar 30, 2024
3c0c146
feat: fixed select tag dialog
remi-martin Mar 30, 2024
d68bef0
Merge pull request #185 from Piwigo/feature/images_by_tags
remi-martin Mar 30, 2024
2f57aaa
Merge pull request #167 from Piwigo/l10n/Crowdin_sync
remi-martin Mar 30, 2024
e433182
New translations app_en.arb (German)
remi-martin Aug 19, 2023
a929221
New translations app_en.arb (Chinese Simplified)
remi-martin Aug 19, 2023
f77ef28
New translations app_en.arb (Chinese Simplified)
remi-martin Aug 20, 2023
1fdb597
New translations app_en.arb (Chinese Simplified)
remi-martin Mar 30, 2024
f0b46af
Merge remote-tracking branch 'origin/Translation/Crowdin' into Transl…
remi-martin Mar 30, 2024
6288efa
Merge pull request #186 from Piwigo/Translation/Crowdin
remi-martin Mar 30, 2024
6d25412
feat: removed parallel upload
remi-martin Mar 30, 2024
9f69ff5
feat: upgraded flutter
remi-martin Jun 24, 2024
e608898
Merge pull request #191 from Piwigo/feature/update_flutter_version
remi-martin Jun 24, 2024
fca897d
feat: rebase
remi-martin Jun 24, 2024
12a2192
Merge pull request #187 from Piwigo/feature/remove_parallel_upload
remi-martin Jun 24, 2024
c04268c
fix: local notification dependency
remi-martin Jun 28, 2024
bcaee2b
feat: missing album pop scope
remi-martin Jun 28, 2024
3c2c191
fix: pre-release
remi-martin Jun 28, 2024
e1a3807
fix: updated app version
remi-martin Jun 28, 2024
919ac62
Merge pull request #192 from Piwigo/feature/fix_dependencies
remi-martin Jun 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions android/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ GeneratedPluginRegistrant.java
# Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
key.properties
/build/.last_build_id
24 changes: 10 additions & 14 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
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()) {
Expand All @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) {
}
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
Expand All @@ -21,10 +22,6 @@ if (flutterVersionName == null) {
flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
Expand All @@ -37,13 +34,13 @@ android {
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
// Sets Java compatibility to Java 11
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}

kotlinOptions {
jvmTarget = '1.8'
jvmTarget = '11'
}

sourceSets {
Expand Down Expand Up @@ -81,7 +78,6 @@ flutter {
}

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "androidx.window:window:1.0.0"
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
}
13 changes: 0 additions & 13 deletions android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,16 +1,3 @@
buildscript {
ext.kotlin_version = '1.7.10'
repositories {
google()
mavenCentral()
}

dependencies {
classpath 'com.android.tools.build:gradle:7.1.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

allprojects {
repositories {
google()
Expand Down
30 changes: 22 additions & 8 deletions android/settings.gradle
Original file line number Diff line number Diff line change
@@ -1,11 +1,25 @@
include ':app'
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
}()

def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
def properties = new Properties()
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")

assert localPropertiesFile.exists()
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}

def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "7.1.3" apply false
id "org.jetbrains.kotlin.android" version "1.9.22" apply false
}

include ":app"
1 change: 0 additions & 1 deletion l10n/app_de.arb
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"tabBar_albums": "Alben",
"settings_language": "Wählen Sie die Sprache",
"tabBar_upload": "Hochladen",
"tabBar_preferences": "Einstellungen",
"alertOkButton": "OK",
Expand Down
60 changes: 30 additions & 30 deletions l10n/app_zh.arb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"loadingHUD_label": "正在加载…",
"completeHUD_label": "完成",
"errorHUD_label": "出错",
"loadMoreHUD_label": "Release to load more",
"loadMoreHUD_label": "松开以加载更多",
"uploadRights_title": "需要上传权限",
"uploadRights_message": "您必须拥有上传权限才能上传照片或视频。",
"internetErrorGeneral_title": "连接出错",
Expand Down Expand Up @@ -48,16 +48,16 @@
"login_newSession": "正在打开会话",
"login_communityParameters": "社区参数",
"login_serverParameters": "Piwigo参数",
"login_advancedParameters": "Authentication Settings",
"login_advancedParameters": "验证设置",
"login_connectionChanged": "连接已变更!",
"login_rememberCredentials": "Remember credentials",
"login_rememberCredentials": "记住凭据",
"loginHTTP_title": "HTTP 证书",
"loginHTTP_message": "Piwigo服务器需要基本访问验证:",
"loginHTTP_enable": "Enable HTTP Basic",
"loginHTTP_enable": "使能 HTTP Basic",
"loginHTTPuser_placeholder": "用户名",
"loginHTTPpwd_placeholder": "密码",
"loginCert_title": "Self Signed Certificates",
"loginCert_enable": "Allow SSL",
"loginCert_title": "自签名证书",
"loginCert_enable": "允许 SSL",
"loginCertFailed_title": "非私密连接",
"loginCertFailed_message": "Piwigo警告网站证书无效。您仍然想要接受此证书吗?",
"loginHTTPSfailed_title": "安全连接失败",
Expand Down Expand Up @@ -153,7 +153,7 @@
"categoryUpload_loadSubCategories": "加载",
"categoryUpload_images": "上传图片",
"categoryUpload_videos": "上传视频",
"categoryUpload_camera": "Camera",
"categoryUpload_camera": "相机",
"categoryUpload_takePhoto": "拍照",
"categoryUpload_takeVideo": "录制",
"uploadList_title": "上传状态",
Expand Down Expand Up @@ -242,23 +242,23 @@
"moveCategoryHUD_moved": "相册已移动",
"moveCategoryError_title": "移动失败",
"moveCategoryError_message": "移动相册失败",
"categoryPrivacy": "Manage Permissions",
"categoryPrivacy_subtitle": "Manage access permissions of \"{album_name}\".",
"categoryPrivacy": "管理权限",
"categoryPrivacy_subtitle": "管理 \"{album_name}\" 的访问权限",
"@categoryPrivacy_subtitle": {
"placeholders": {
"album_name": {}
}
},
"categoryPrivacyMode_public": "Public",
"categoryPrivacyMode_publicMessage": "Every user can see this album.",
"categoryPrivacyMode_private": "Private",
"categoryPrivacyMode_privateMessage": "Visitors must log in and have the necessary permissions to see this album.",
"categoryPrivacyGroups": "Group permissions",
"categoryPrivacyGroups_add": "Authorize groups",
"categoryPrivacyUsers": "User permissions",
"categoryPrivacyUsers_message": "To manage user permissions, go to your web administration.",
"categoryPrivacyRecursive": "Apply to sub-albums",
"categoryPrivacyRecursive_message": "After confirmation, all modifications will be applied to sub-albums.",
"categoryPrivacyMode_public": "公开的",
"categoryPrivacyMode_publicMessage": "每个用户都可以看到此相册。",
"categoryPrivacyMode_private": "私有的",
"categoryPrivacyMode_privateMessage": "访客必须登录并拥有查看此相册的必要权限。",
"categoryPrivacyGroups": "组权限",
"categoryPrivacyGroups_add": "授权组",
"categoryPrivacyUsers": "用户权限",
"categoryPrivacyUsers_message": "要管理用户权限,请前往您的网站管理界面。",
"categoryPrivacyRecursive": "应用到子相册",
"categoryPrivacyRecursive_message": "确认后,所有修改都将应用于子相册。",
"categorySelection_setThumbnail": "请选择要使用照片 {photo} 作为缩略图的相册。",
"@categorySelection_setThumbnail": {
"placeholders": {
Expand Down Expand Up @@ -364,17 +364,17 @@
"tagsAdd_placeholder": "新标签",
"tagsAddHUD_label": "创建标签中...",
"tagsAddHUD_created": "标签已创建",
"group": "Group",
"groups": "Groups",
"groupsTitle_selectOne": "Select a Group",
"groupsHeader_selected": "Selected",
"groupsHeader_notSelected": "Not Selected",
"groupsHeader_all": "All Groups",
"groupsAdd_title": "Add Group",
"groupsAdd_message": "Enter a name for this new group",
"groupsAdd_placeholder": "New group",
"groupsAddHUD_label": "Creating Group…",
"groupsAddHUD_created": "Group Created",
"group": "",
"groups": "",
"groupsTitle_selectOne": "选择一个组",
"groupsHeader_selected": "已选中",
"groupsHeader_notSelected": "未选中",
"groupsHeader_all": "所有组",
"groupsAdd_title": "添加组",
"groupsAdd_message": "为新增的组设置名称",
"groupsAdd_placeholder": "新增组",
"groupsAddHUD_label": "正在创建组…",
"groupsAddHUD_created": "已创建组",
"tagsAddError_message": "无法创建新标签",
"tagsAddError_title": "创建失败",
"selectImages": "选择图片",
Expand Down
9 changes: 9 additions & 0 deletions lib/app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import 'package:piwigo_ng/views/image/edit_image_page.dart';
import 'package:piwigo_ng/views/image/image_favorites_page.dart';
import 'package:piwigo_ng/views/image/image_page.dart';
import 'package:piwigo_ng/views/image/image_search_page.dart';
import 'package:piwigo_ng/views/image/image_tags_page.dart';
import 'package:piwigo_ng/views/image/video_player_page.dart';
import 'package:piwigo_ng/views/settings/auto_upload_page.dart';
import 'package:piwigo_ng/views/settings/privacy_policy_page.dart';
Expand Down Expand Up @@ -147,6 +148,14 @@ Route<dynamic> generateRoute(RouteSettings settings) {
),
settings: settings,
);
case ImageTagsPage.routeName:
return MaterialPageRoute(
builder: (_) => ImageTagsPage(
isAdmin: arguments['isAdmin'] ?? isAdmin,
tag: arguments["tag"],
),
settings: settings,
);
case ImageFavoritesPage.routeName:
return MaterialPageRoute(
builder: (_) => ImageFavoritesPage(
Expand Down
36 changes: 19 additions & 17 deletions lib/components/appbars/root_search_app_bar.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:piwigo_ng/components/modals/open_tag_modal.dart';
import 'package:piwigo_ng/components/notification_dot.dart';
import 'package:piwigo_ng/components/popup_list_item.dart';
import 'package:piwigo_ng/services/preferences_service.dart';
Expand Down Expand Up @@ -40,9 +41,7 @@ class _RootSearchAppBarState extends State<RootSearchAppBar> {
if (widget.scrollController.offset > _expandedHeight * _opacityScale) {
return 0.0;
}
return (_expandedHeight * _opacityScale -
widget.scrollController.offset) /
(_expandedHeight * _opacityScale);
return (_expandedHeight * _opacityScale - widget.scrollController.offset) / (_expandedHeight * _opacityScale);
}
return 1.0;
}
Expand All @@ -58,8 +57,7 @@ class _RootSearchAppBarState extends State<RootSearchAppBar> {
}

// In case 0%-100% of the expanded height is viewed
double scrollDelta =
(_expandedHeight - widget.scrollController.offset) / _expandedHeight;
double scrollDelta = (_expandedHeight - widget.scrollController.offset) / _expandedHeight;
double scrollPercent = (scrollDelta * 2 - 1);
return (1 - scrollPercent) * delta * basePadding + basePadding;
}
Expand All @@ -71,8 +69,7 @@ class _RootSearchAppBarState extends State<RootSearchAppBar> {
Widget build(BuildContext context) {
return SliverAppBar(
leading: IconButton(
onPressed: () =>
Navigator.of(context).pushNamed(SettingsPage.routeName),
onPressed: () => Navigator.of(context).pushNamed(SettingsPage.routeName),
icon: const Icon(Icons.settings),
),
pinned: true,
Expand All @@ -90,7 +87,6 @@ class _RootSearchAppBarState extends State<RootSearchAppBar> {
child: AppField(
padding: const EdgeInsets.symmetric(vertical: 8.0),
prefix: Icon(Icons.search),
hint: "Search...",
),
),
),
Expand All @@ -108,7 +104,7 @@ class _RootSearchAppBarState extends State<RootSearchAppBar> {
),
title: Text(
appStrings.tabBar_albums,
textScaleFactor: 1,
textScaler: TextScaler.linear(1),
style: Theme.of(context).appBarTheme.titleTextStyle,
),
),
Expand All @@ -125,8 +121,7 @@ class _RootSearchAppBarState extends State<RootSearchAppBar> {
PopupMenuItem(
onTap: () => Future.delayed(
const Duration(seconds: 0),
() =>
Navigator.of(context).pushNamed(UploadStatusPage.routeName),
() => Navigator.of(context).pushNamed(UploadStatusPage.routeName),
),
child: Stack(
children: [
Expand All @@ -137,8 +132,7 @@ class _RootSearchAppBarState extends State<RootSearchAppBar> {
Positioned(
top: 14.0,
left: 0.0,
child: Consumer<UploadNotifier>(
builder: (context, uploadNotifier, child) {
child: Consumer<UploadNotifier>(builder: (context, uploadNotifier, child) {
return NotificationDot(
isShown: uploadNotifier.uploadList.isNotEmpty,
);
Expand All @@ -147,12 +141,21 @@ class _RootSearchAppBarState extends State<RootSearchAppBar> {
],
),
),
PopupMenuItem(
onTap: () => Future.delayed(
const Duration(seconds: 0),
() => showOpenTagModal(context),
),
child: PopupListItem(
icon: Icons.local_offer_outlined,
text: appStrings.tags,
),
),
if (Preferences.getUserStatus != 'guest')
PopupMenuItem(
onTap: () => Future.delayed(
const Duration(seconds: 0),
() => Navigator.of(context)
.pushNamed(ImageFavoritesPage.routeName),
() => Navigator.of(context).pushNamed(ImageFavoritesPage.routeName),
),
child: PopupListItem(
icon: Icons.favorite,
Expand All @@ -164,8 +167,7 @@ class _RootSearchAppBarState extends State<RootSearchAppBar> {
Positioned(
top: 12.0,
left: 12.0,
child: Consumer<UploadNotifier>(
builder: (context, uploadNotifier, child) {
child: Consumer<UploadNotifier>(builder: (context, uploadNotifier, child) {
return NotificationDot(
isShown: uploadNotifier.uploadList.isNotEmpty,
);
Expand Down
5 changes: 2 additions & 3 deletions lib/components/appbars/settings_app_bar.dart
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@ class _SettingsAppBarState extends State<SettingsAppBar> {
}

// In case 0%-100% of the expanded height is viewed
double scrollDelta =
(_expandedHeight - widget.scrollController.offset) / _expandedHeight;
double scrollDelta = (_expandedHeight - widget.scrollController.offset) / _expandedHeight;
double scrollPercent = (scrollDelta * 2 - 1);
return (1 - scrollPercent) * delta * basePadding + basePadding;
}
Expand All @@ -59,7 +58,7 @@ class _SettingsAppBarState extends State<SettingsAppBar> {
),
title: Text(
appStrings.tabBar_preferences,
textScaleFactor: 1,
textScaler: TextScaler.linear(1),
style: Theme.of(context).appBarTheme.titleTextStyle,
),
),
Expand Down
2 changes: 1 addition & 1 deletion lib/components/cards/image_card.dart
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ class ImageCard extends StatelessWidget {
end: Alignment.topCenter),
),
child: AutoSizeText(
image.name,
image.name ?? "",
maxLines: 1,
maxFontSize: 14,
minFontSize: 8,
Expand Down
Loading