Skip to content

Commit 40616bb

Browse files
authored
Доработки (#325)
- Сделал отдельный экран со списком добавленных пользователем площадок без запроса к серверу - Добавил в `ParksManager` методы для ручного обновления одной площадки и получения площадок по списку идентификаторов - При изменении площадки на любом экране она так же сразу обновится на экране добавленных пользователем площадок и в списке площадок на главном экране - Убрал лишние локализованные строки для дизайн-системы из основного приложения (локализация добавлена в пакете дизайн-системы) - Добавил возможность снимать фото в приложении (для площадок и профиля) - Поправил скролл к последнему сообщению на экране диалога - Рефактор
1 parent 6766773 commit 40616bb

25 files changed

+360
-292
lines changed

SwiftUI-WorkoutApp.xcodeproj/project.pbxproj

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -452,10 +452,12 @@
452452
GENERATE_INFOPLIST_FILE = YES;
453453
INFOPLIST_FILE = "SwiftUI-WorkoutApp/Resources/Info.plist";
454454
INFOPLIST_KEY_CFBundleDisplayName = "SW Площадки";
455+
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
455456
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.healthcare-fitness";
456457
INFOPLIST_KEY_NSCalendarsUsageDescription = "Для добавления мероприятий в календарь";
458+
INFOPLIST_KEY_NSCameraUsageDescription = "Для создания фотографий площадок и профиля требуется доступ к камере";
457459
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Для отображения спортивных площадок поблизости";
458-
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Для выбора фото профиля требуется доступ к галерее";
460+
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Для загрузки фотографий площадок и выбора фото профиля требуется доступ к галерее";
459461
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
460462
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
461463
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
@@ -467,7 +469,7 @@
467469
"$(inherited)",
468470
"@executable_path/Frameworks",
469471
);
470-
MARKETING_VERSION = 3.7.0;
472+
MARKETING_VERSION = 3.8.0;
471473
PRODUCT_BUNDLE_IDENTIFIER = com.FGU.WorkOut;
472474
PRODUCT_NAME = WorkoutApp;
473475
RUN_CLANG_STATIC_ANALYZER = YES;
@@ -505,10 +507,12 @@
505507
GENERATE_INFOPLIST_FILE = YES;
506508
INFOPLIST_FILE = "SwiftUI-WorkoutApp/Resources/Info.plist";
507509
INFOPLIST_KEY_CFBundleDisplayName = "SW Площадки";
510+
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
508511
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.healthcare-fitness";
509512
INFOPLIST_KEY_NSCalendarsUsageDescription = "Для добавления мероприятий в календарь";
513+
INFOPLIST_KEY_NSCameraUsageDescription = "Для создания фотографий площадок и профиля требуется доступ к камере";
510514
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Для отображения спортивных площадок поблизости";
511-
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Для выбора фото профиля требуется доступ к галерее";
515+
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Для загрузки фотографий площадок и выбора фото профиля требуется доступ к галерее";
512516
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
513517
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
514518
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
@@ -520,7 +524,7 @@
520524
"$(inherited)",
521525
"@executable_path/Frameworks",
522526
);
523-
MARKETING_VERSION = 3.7.0;
527+
MARKETING_VERSION = 3.8.0;
524528
PRODUCT_BUNDLE_IDENTIFIER = com.FGU.WorkOut;
525529
PRODUCT_NAME = WorkoutApp;
526530
RUN_CLANG_STATIC_ANALYZER = YES;
@@ -581,7 +585,7 @@
581585
repositoryURL = "https://github.com/OlegEremenko991/SWDesignSystem";
582586
requirement = {
583587
kind = upToNextMajorVersion;
584-
minimumVersion = 1.10.0;
588+
minimumVersion = 1.13.0;
585589
};
586590
};
587591
67F9534D2964A5700077DFDC /* XCRemoteSwiftPackageReference "ImagePicker" */ = {

SwiftUI-WorkoutApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 6 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import UIKit
2+
3+
extension UIImagePickerController.SourceType: @retroactive Identifiable {
4+
public var id: String {
5+
switch self {
6+
case .camera: "camera"
7+
case .photoLibrary: "photoLibrary"
8+
case .savedPhotosAlbum: "savedPhotosAlbum"
9+
@unknown default: fatalError()
10+
}
11+
}
12+
}

SwiftUI-WorkoutApp/Libraries/SWModels/Sources/SWModels/DialogResponse.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,10 @@ public extension DialogResponse {
4646
}
4747

4848
var lastMessageFormatted: String {
49-
(lastMessageText ?? "").withoutHTML
49+
guard let lastMessageText, lastMessageText.trueCount > 0 else {
50+
return ""
51+
}
52+
return lastMessageText.withoutHTML
5053
}
5154

5255
var lastMessageDateString: String {

SwiftUI-WorkoutApp/Libraries/SWModels/Sources/SWModels/Journal/JournalEntryResponse.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,10 @@ public extension JournalEntryResponse {
4444
}
4545

4646
var formattedMessage: String {
47-
(message ?? "").withoutHTML
47+
guard let message, message.trueCount > 0 else {
48+
return ""
49+
}
50+
return message.withoutHTML
4851
}
4952

5053
var messageDateString: String {

SwiftUI-WorkoutApp/Libraries/SWModels/Sources/SWModels/Journal/JournalResponse.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,10 @@ public extension JournalResponse {
6060
}
6161

6262
var formattedLastMessage: String {
63-
(lastMessageText ?? "").withoutHTML
63+
guard let lastMessageText, lastMessageText.trueCount > 0 else {
64+
return ""
65+
}
66+
return lastMessageText.withoutHTML
6467
}
6568

6669
var lastMessageDateString: String {

SwiftUI-WorkoutApp/Resources/Info.plist

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
</array>
1616
</dict>
1717
</array>
18-
<key>ITSAppUsesNonExemptEncryption</key>
19-
<false/>
2018
<key>LSApplicationQueriesSchemes</key>
2119
<array>
2220
<string>maps</string>

SwiftUI-WorkoutApp/Resources/InfoPlist.xcstrings

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,24 @@
5050
}
5151
}
5252
},
53+
"NSCameraUsageDescription" : {
54+
"comment" : "Privacy - Camera Usage Description",
55+
"extractionState" : "extracted_with_value",
56+
"localizations" : {
57+
"en" : {
58+
"stringUnit" : {
59+
"state" : "translated",
60+
"value" : "Needed to take park and profile photos"
61+
}
62+
},
63+
"ru" : {
64+
"stringUnit" : {
65+
"state" : "new",
66+
"value" : "Для создания фотографий площадок и профиля требуется доступ к камере"
67+
}
68+
}
69+
}
70+
},
5371
"NSLocationWhenInUseUsageDescription" : {
5472
"comment" : "Privacy - Location When In Use Usage Description",
5573
"extractionState" : "extracted_with_value",
@@ -75,13 +93,13 @@
7593
"en" : {
7694
"stringUnit" : {
7795
"state" : "translated",
78-
"value" : "Needed to choose your profile picture"
96+
"value" : "Needed to choose your profile and park photos"
7997
}
8098
},
8199
"ru" : {
82100
"stringUnit" : {
83101
"state" : "new",
84-
"value" : "Для выбора фото профиля требуется доступ к галерее"
102+
"value" : "Для загрузки фотографий площадок и выбора фото профиля требуется доступ к галерее"
85103
}
86104
}
87105
}

0 commit comments

Comments
 (0)