Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
4da10912fc
|
|||
|
94d2f9d951
|
|||
|
6e679236c8
|
|||
|
06fe659478
|
|||
|
390b4bf499
|
|||
|
394789d609
|
|||
|
94566eabf6
|
@@ -1,6 +1,6 @@
|
||||
# Ascently
|
||||
|
||||
<img src="https://git.atri.dad/atridad/Ascently/raw/branch/main/docs/src/assets/logo.svg" alt="Ascently Logo" width="250" height="250">
|
||||
<img src="https://git.atri.dad/atridad/Ascently/raw/branch/main/docs/src/assets/logo.png" alt="Ascently Logo" width="250" height="250">
|
||||
|
||||
_Formerly OpenClimb_
|
||||
|
||||
|
||||
@@ -14,8 +14,8 @@ export default defineConfig({
|
||||
description:
|
||||
"An offline-first FOSS climb tracking app with an optional sync server.",
|
||||
logo: {
|
||||
light: "./src/assets/logo.svg",
|
||||
dark: "./src/assets/logo.svg",
|
||||
light: "./src/assets/logo.png",
|
||||
dark: "./src/assets/logo.png",
|
||||
},
|
||||
favicon: "/favicon.png",
|
||||
social: [
|
||||
|
||||
@@ -5,7 +5,7 @@ template: splash
|
||||
hero:
|
||||
tagline: Track your climbing sessions, routes, and progress.
|
||||
image:
|
||||
file: ../../assets/logo.svg
|
||||
file: ../../assets/logo.png
|
||||
alt: "Ascently app icon"
|
||||
actions:
|
||||
- text: Download
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
# SwiftFormat Configuration for Ascently iOS
|
||||
# Maintains consistent formatting across the project
|
||||
|
||||
# File options
|
||||
--exclude build,Pods,DerivedData,.build
|
||||
|
||||
|
||||
@@ -92,7 +92,6 @@ identifier_name:
|
||||
- DATA_JSON_FILENAME
|
||||
- IMAGES_DIR_NAME
|
||||
- METADATA_FILENAME
|
||||
# ViewBuilder section functions (SwiftUI convention)
|
||||
- StatusSection
|
||||
- IconDisplaySection
|
||||
- DebugSection
|
||||
|
||||
@@ -460,13 +460,13 @@
|
||||
D24C19742E75002A0045894C /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = Balls;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = Icon;
|
||||
ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "Balls Pride Trans Lesbian Enby Bi Pan Gay Loss";
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = Peaks;
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CODE_SIGN_ENTITLEMENTS = Ascently/Ascently.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 46;
|
||||
CURRENT_PROJECT_VERSION = 49;
|
||||
DEVELOPMENT_TEAM = 4BC9Y2LL4B;
|
||||
DRIVERKIT_DEPLOYMENT_TARGET = 24.6;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
@@ -491,7 +491,7 @@
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 15.6;
|
||||
MARKETING_VERSION = 2.7.0;
|
||||
MARKETING_VERSION = 2.7.2;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.atridad.Ascently;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
@@ -512,13 +512,13 @@
|
||||
D24C19752E75002A0045894C /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = Balls;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = Icon;
|
||||
ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "Balls Pride Trans Lesbian Enby Bi Pan Gay Loss";
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = Peaks;
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CODE_SIGN_ENTITLEMENTS = Ascently/Ascently.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 46;
|
||||
CURRENT_PROJECT_VERSION = 49;
|
||||
DEVELOPMENT_TEAM = 4BC9Y2LL4B;
|
||||
DRIVERKIT_DEPLOYMENT_TARGET = 24.6;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
@@ -543,7 +543,7 @@
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 15.6;
|
||||
MARKETING_VERSION = 2.7.0;
|
||||
MARKETING_VERSION = 2.7.2;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.atridad.Ascently;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
@@ -610,7 +610,7 @@
|
||||
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
|
||||
CODE_SIGN_ENTITLEMENTS = SessionStatusLiveExtension.entitlements;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 46;
|
||||
CURRENT_PROJECT_VERSION = 49;
|
||||
DEVELOPMENT_TEAM = 4BC9Y2LL4B;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = SessionStatusLive/Info.plist;
|
||||
@@ -622,7 +622,7 @@
|
||||
"@executable_path/Frameworks",
|
||||
"@executable_path/../../Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 2.7.0;
|
||||
MARKETING_VERSION = 2.7.2;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.atridad.Ascently.SessionStatusLive;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
@@ -641,7 +641,7 @@
|
||||
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
|
||||
CODE_SIGN_ENTITLEMENTS = SessionStatusLiveExtension.entitlements;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 46;
|
||||
CURRENT_PROJECT_VERSION = 49;
|
||||
DEVELOPMENT_TEAM = 4BC9Y2LL4B;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = SessionStatusLive/Info.plist;
|
||||
@@ -653,7 +653,7 @@
|
||||
"@executable_path/Frameworks",
|
||||
"@executable_path/../../Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 2.7.0;
|
||||
MARKETING_VERSION = 2.7.2;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.atridad.Ascently.SessionStatusLive;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
|
||||
BIN
ios/Ascently/Assets.xcassets/AscentlyBlueBall.imageset/AscentlyBlueBall.png
vendored
Normal file
|
After Width: | Height: | Size: 76 KiB |
21
ios/Ascently/Assets.xcassets/AscentlyBlueBall.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images": [
|
||||
{
|
||||
"idiom": "universal",
|
||||
"filename": "AscentlyBlueBall.png",
|
||||
"scale": "1x"
|
||||
},
|
||||
{
|
||||
"idiom": "universal",
|
||||
"scale": "2x"
|
||||
},
|
||||
{
|
||||
"idiom": "universal",
|
||||
"scale": "3x"
|
||||
}
|
||||
],
|
||||
"info": {
|
||||
"version": 1,
|
||||
"author": "xcode"
|
||||
}
|
||||
}
|
||||
BIN
ios/Ascently/Assets.xcassets/AscentlyGreenBall.imageset/AscentlyGreenBall.png
vendored
Normal file
|
After Width: | Height: | Size: 76 KiB |
21
ios/Ascently/Assets.xcassets/AscentlyGreenBall.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images": [
|
||||
{
|
||||
"idiom": "universal",
|
||||
"filename": "AscentlyGreenBall.png",
|
||||
"scale": "1x"
|
||||
},
|
||||
{
|
||||
"idiom": "universal",
|
||||
"scale": "2x"
|
||||
},
|
||||
{
|
||||
"idiom": "universal",
|
||||
"scale": "3x"
|
||||
}
|
||||
],
|
||||
"info": {
|
||||
"version": 1,
|
||||
"author": "xcode"
|
||||
}
|
||||
}
|
||||
BIN
ios/Ascently/Assets.xcassets/AscentlyRedBall.imageset/AscentlyRedBall.png
vendored
Normal file
|
After Width: | Height: | Size: 76 KiB |
21
ios/Ascently/Assets.xcassets/AscentlyRedBall.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images": [
|
||||
{
|
||||
"idiom": "universal",
|
||||
"filename": "AscentlyRedBall.png",
|
||||
"scale": "1x"
|
||||
},
|
||||
{
|
||||
"idiom": "universal",
|
||||
"scale": "2x"
|
||||
},
|
||||
{
|
||||
"idiom": "universal",
|
||||
"scale": "3x"
|
||||
}
|
||||
],
|
||||
"info": {
|
||||
"version": 1,
|
||||
"author": "xcode"
|
||||
}
|
||||
}
|
||||
BIN
ios/Ascently/Assets.xcassets/AscentlyYellowBall.imageset/AscentlyYellowBall.png
vendored
Normal file
|
After Width: | Height: | Size: 74 KiB |
21
ios/Ascently/Assets.xcassets/AscentlyYellowBall.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images": [
|
||||
{
|
||||
"idiom": "universal",
|
||||
"filename": "AscentlyYellowBall.png",
|
||||
"scale": "1x"
|
||||
},
|
||||
{
|
||||
"idiom": "universal",
|
||||
"scale": "2x"
|
||||
},
|
||||
{
|
||||
"idiom": "universal",
|
||||
"scale": "3x"
|
||||
}
|
||||
],
|
||||
"info": {
|
||||
"version": 1,
|
||||
"author": "xcode"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
21
ios/Ascently/Assets.xcassets/AscetlyTriangle1.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images": [
|
||||
{
|
||||
"idiom": "universal",
|
||||
"filename": "AscetlyTriangle1.png",
|
||||
"scale": "1x"
|
||||
},
|
||||
{
|
||||
"idiom": "universal",
|
||||
"scale": "2x"
|
||||
},
|
||||
{
|
||||
"idiom": "universal",
|
||||
"scale": "3x"
|
||||
}
|
||||
],
|
||||
"info": {
|
||||
"version": 1,
|
||||
"author": "xcode"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
21
ios/Ascently/Assets.xcassets/AscetlyTriangle2.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images": [
|
||||
{
|
||||
"idiom": "universal",
|
||||
"filename": "AscetlyTriangle2.png",
|
||||
"scale": "1x"
|
||||
},
|
||||
{
|
||||
"idiom": "universal",
|
||||
"scale": "2x"
|
||||
},
|
||||
{
|
||||
"idiom": "universal",
|
||||
"scale": "3x"
|
||||
}
|
||||
],
|
||||
"info": {
|
||||
"version": 1,
|
||||
"author": "xcode"
|
||||
}
|
||||
}
|
||||
BIN
ios/Ascently/Bi.icon/Assets/AscentlyBiBlue.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
ios/Ascently/Bi.icon/Assets/AscentlyBiPink.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Bi.icon/Assets/AscentlyBiPurple.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
56
ios/Ascently/Bi.icon/icon.json
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"fill" : "automatic",
|
||||
"groups" : [
|
||||
{
|
||||
"layers" : [
|
||||
{
|
||||
"image-name" : "AscentlyBiBlue.png",
|
||||
"name" : "AscentlyBiBlue",
|
||||
"position" : {
|
||||
"scale" : 0.5,
|
||||
"translation-in-points" : [
|
||||
103.3033720318974,
|
||||
89.61597895201449
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyBiPurple.png",
|
||||
"name" : "AscentlyBiPurple",
|
||||
"position" : {
|
||||
"scale" : 0.6,
|
||||
"translation-in-points" : [
|
||||
52.22951746701784,
|
||||
44.45130454558263
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyBiPink.png",
|
||||
"name" : "AscentlyBiPink",
|
||||
"position" : {
|
||||
"scale" : 0.7,
|
||||
"translation-in-points" : [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"shadow" : {
|
||||
"kind" : "neutral",
|
||||
"opacity" : 0.5
|
||||
},
|
||||
"translucency" : {
|
||||
"enabled" : true,
|
||||
"value" : 0.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"supported-platforms" : {
|
||||
"circles" : [
|
||||
"watchOS"
|
||||
],
|
||||
"squares" : "shared"
|
||||
}
|
||||
}
|
||||
BIN
ios/Ascently/Enby.icon/Assets/AscentlyEnbyBlack.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
ios/Ascently/Enby.icon/Assets/AscentlyEnbyPurple.png
Normal file
|
After Width: | Height: | Size: 72 KiB |
BIN
ios/Ascently/Enby.icon/Assets/AscentlyEnbyWhite.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
ios/Ascently/Enby.icon/Assets/AscentlyEnbyYellow.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
73
ios/Ascently/Enby.icon/icon.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"fill" : "automatic",
|
||||
"groups" : [
|
||||
{
|
||||
"layers" : [
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"glass" : true,
|
||||
"hidden" : false,
|
||||
"image-name" : "AscentlyEnbyYellow.png",
|
||||
"name" : "AscentlyEnbyYellow",
|
||||
"position" : {
|
||||
"scale" : 0.2,
|
||||
"translation-in-points" : [
|
||||
2.17046922693007,
|
||||
57.25015517558532
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"image-name" : "AscentlyEnbyWhite.png",
|
||||
"name" : "AscentlyEnbyWhite",
|
||||
"position" : {
|
||||
"scale" : 0.4,
|
||||
"translation-in-points" : [
|
||||
3.5797767879914275,
|
||||
39.45555690497569
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"image-name" : "AscentlyEnbyPurple.png",
|
||||
"name" : "AscentlyEnbyPurple",
|
||||
"position" : {
|
||||
"scale" : 0.55,
|
||||
"translation-in-points" : [
|
||||
1.2888098929849576,
|
||||
20.660262557762508
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"image-name" : "AscentlyEnbyBlack.png",
|
||||
"name" : "AscentlyEnbyBlack",
|
||||
"position" : {
|
||||
"scale" : 0.7,
|
||||
"translation-in-points" : [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"shadow" : {
|
||||
"kind" : "neutral",
|
||||
"opacity" : 0.5
|
||||
},
|
||||
"translucency" : {
|
||||
"enabled" : true,
|
||||
"value" : 0.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"supported-platforms" : {
|
||||
"circles" : [
|
||||
"watchOS"
|
||||
],
|
||||
"squares" : "shared"
|
||||
}
|
||||
}
|
||||
BIN
ios/Ascently/Gay.icon/Assets/AscentlyGayBlue.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Gay.icon/Assets/AscentlyGayDarkBlue.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Gay.icon/Assets/AscentlyGayDarkGreen.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Gay.icon/Assets/AscentlyGayGreen.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Gay.icon/Assets/AscentlyGayLightBlue.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Gay.icon/Assets/AscentlyGayLightGreen.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Gay.icon/Assets/AscentlyGayWhite.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
100
ios/Ascently/Gay.icon/icon.json
Normal file
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"fill" : "automatic",
|
||||
"groups" : [
|
||||
{
|
||||
"layers" : [
|
||||
{
|
||||
"image-name" : "AscentlyGayDarkBlue.png",
|
||||
"name" : "AscentlyGayDarkBlue",
|
||||
"position" : {
|
||||
"scale" : 0.1,
|
||||
"translation-in-points" : [
|
||||
310.3109038708518,
|
||||
268.51915188743055
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyGayBlue.png",
|
||||
"name" : "AscentlyGayBlue",
|
||||
"position" : {
|
||||
"scale" : 0.2,
|
||||
"translation-in-points" : [
|
||||
256.74709727330895,
|
||||
223.14027483654624
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyGayLightBlue.png",
|
||||
"name" : "AscentlyGayLightBlue",
|
||||
"position" : {
|
||||
"scale" : 0.3,
|
||||
"translation-in-points" : [
|
||||
205.90293882922413,
|
||||
178.6755090412264
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyGayWhite.png",
|
||||
"name" : "AscentlyGayWhite",
|
||||
"position" : {
|
||||
"scale" : 0.4,
|
||||
"translation-in-points" : [
|
||||
155.16481082482767,
|
||||
134.12218495264162
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyGayLightGreen.png",
|
||||
"name" : "AscentlyGayLightGreen",
|
||||
"position" : {
|
||||
"scale" : 0.5,
|
||||
"translation-in-points" : [
|
||||
103.05243597030815,
|
||||
88.66555310378573
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyGayGreen.png",
|
||||
"name" : "AscentlyGayGreen",
|
||||
"position" : {
|
||||
"scale" : 0.6,
|
||||
"translation-in-points" : [
|
||||
52.23658982195185,
|
||||
44.839904477203575
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyGayDarkGreen.png",
|
||||
"name" : "AscentlyGayDarkGreen",
|
||||
"position" : {
|
||||
"scale" : 0.7,
|
||||
"translation-in-points" : [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"shadow" : {
|
||||
"kind" : "neutral",
|
||||
"opacity" : 0.5
|
||||
},
|
||||
"translucency" : {
|
||||
"enabled" : true,
|
||||
"value" : 0.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"supported-platforms" : {
|
||||
"circles" : [
|
||||
"watchOS"
|
||||
],
|
||||
"squares" : "shared"
|
||||
}
|
||||
}
|
||||
BIN
ios/Ascently/Lesbian.icon/Assets/AscentlyLesbianDarkOrange.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
ios/Ascently/Lesbian.icon/Assets/AscentlyLesbianDarkRose.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Lesbian.icon/Assets/AscentlyLesbianDustyPink.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Lesbian.icon/Assets/AscentlyLesbianLightOrange.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
ios/Ascently/Lesbian.icon/Assets/AscentlyLesbianOrange.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Lesbian.icon/Assets/AscentlyLesbianPink.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
95
ios/Ascently/Lesbian.icon/icon.json
Normal file
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"fill" : "automatic",
|
||||
"groups" : [
|
||||
{
|
||||
"layers" : [
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"image-name" : "AscentlyLesbianDarkRose.png",
|
||||
"name" : "AscentlyLesbianDarkRose",
|
||||
"position" : {
|
||||
"scale" : 0.2,
|
||||
"translation-in-points" : [
|
||||
-262.1182952725325,
|
||||
223.6381362543554
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"image-name" : "AscentlyLesbianDustyPink.png",
|
||||
"name" : "AscentlyLesbianDustyPink",
|
||||
"position" : {
|
||||
"scale" : 0.3,
|
||||
"translation-in-points" : [
|
||||
-209.7587555742847,
|
||||
179.5733935018924
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"image-name" : "AscentlyLesbianPink.png",
|
||||
"name" : "AscentlyLesbianPink",
|
||||
"position" : {
|
||||
"scale" : 0.4,
|
||||
"translation-in-points" : [
|
||||
-158.0346362340688,
|
||||
135.83476297272654
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"image-name" : "AscentlyLesbianLightOrange.png",
|
||||
"name" : "AscentlyLesbianLightOrange",
|
||||
"position" : {
|
||||
"scale" : 0.5,
|
||||
"translation-in-points" : [
|
||||
-106.63948555089338,
|
||||
90.22853679410112
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"image-name" : "AscentlyLesbianOrange.png",
|
||||
"name" : "AscentlyLesbianOrange",
|
||||
"position" : {
|
||||
"scale" : 0.6,
|
||||
"translation-in-points" : [
|
||||
-53.734375,
|
||||
45.125
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"image-name" : "AscentlyLesbianDarkOrange.png",
|
||||
"name" : "AscentlyLesbianDarkOrange",
|
||||
"position" : {
|
||||
"scale" : 0.7,
|
||||
"translation-in-points" : [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"shadow" : {
|
||||
"kind" : "neutral",
|
||||
"opacity" : 0.5
|
||||
},
|
||||
"translucency" : {
|
||||
"enabled" : true,
|
||||
"value" : 0.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"supported-platforms" : {
|
||||
"circles" : [
|
||||
"watchOS"
|
||||
],
|
||||
"squares" : "shared"
|
||||
}
|
||||
}
|
||||
BIN
ios/Ascently/Loss.icon/Assets/AscetlyTriangle1.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
ios/Ascently/Loss.icon/Assets/AscetlyTriangle2 2.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
ios/Ascently/Loss.icon/Assets/AscetlyTriangle2.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
100
ios/Ascently/Loss.icon/icon.json
Normal file
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"fill" : "automatic",
|
||||
"groups" : [
|
||||
{
|
||||
"layers" : [
|
||||
{
|
||||
"image-name" : "AscetlyTriangle1.png",
|
||||
"name" : "AscetlyTriangle1",
|
||||
"position" : {
|
||||
"scale" : 0.3,
|
||||
"translation-in-points" : [
|
||||
-233.3046875,
|
||||
-226.703125
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscetlyTriangle2.png",
|
||||
"name" : "AscetlyTriangle2",
|
||||
"position" : {
|
||||
"scale" : 0.3,
|
||||
"translation-in-points" : [
|
||||
229.078125,
|
||||
-225.5234375
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscetlyTriangle1.png",
|
||||
"name" : "AscetlyTriangle1",
|
||||
"position" : {
|
||||
"scale" : 0.2,
|
||||
"translation-in-points" : [
|
||||
109.82172229457004,
|
||||
-188.45752746110693
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscetlyTriangle2.png",
|
||||
"name" : "AscetlyTriangle2",
|
||||
"position" : {
|
||||
"scale" : 0.3,
|
||||
"translation-in-points" : [
|
||||
-175.51648415989322,
|
||||
187.17564929470825
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscetlyTriangle1.png",
|
||||
"name" : "AscetlyTriangle1",
|
||||
"position" : {
|
||||
"scale" : 0.3,
|
||||
"translation-in-points" : [
|
||||
-282.9895849116331,
|
||||
187.65385356072886
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscetlyTriangle2 2.png",
|
||||
"name" : "AscetlyTriangle2 2",
|
||||
"position" : {
|
||||
"scale" : 0.2,
|
||||
"translation-in-points" : [
|
||||
279.27255440242436,
|
||||
292.15535460179336
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscetlyTriangle1.png",
|
||||
"name" : "AscetlyTriangle1",
|
||||
"position" : {
|
||||
"scale" : 0.3,
|
||||
"translation-in-points" : [
|
||||
196.03206587241937,
|
||||
183.14521924511502
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"shadow" : {
|
||||
"kind" : "neutral",
|
||||
"opacity" : 0.5
|
||||
},
|
||||
"translucency" : {
|
||||
"enabled" : true,
|
||||
"value" : 0.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"supported-platforms" : {
|
||||
"circles" : [
|
||||
"watchOS"
|
||||
],
|
||||
"squares" : "shared"
|
||||
}
|
||||
}
|
||||
BIN
ios/Ascently/Pan.icon/Assets/AscentlyPanBlue.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
ios/Ascently/Pan.icon/Assets/AscentlyPanPink.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
ios/Ascently/Pan.icon/Assets/AscentlyPanYellow.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
56
ios/Ascently/Pan.icon/icon.json
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"fill" : "automatic",
|
||||
"groups" : [
|
||||
{
|
||||
"layers" : [
|
||||
{
|
||||
"image-name" : "AscentlyPanBlue.png",
|
||||
"name" : "AscentlyPanBlue",
|
||||
"position" : {
|
||||
"scale" : 0.5,
|
||||
"translation-in-points" : [
|
||||
104.70996037782118,
|
||||
90.85744041806392
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyPanYellow.png",
|
||||
"name" : "AscentlyPanYellow",
|
||||
"position" : {
|
||||
"scale" : 0.6,
|
||||
"translation-in-points" : [
|
||||
52.60885224890252,
|
||||
46.29197733709991
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyPanPink.png",
|
||||
"name" : "AscentlyPanPink",
|
||||
"position" : {
|
||||
"scale" : 0.7,
|
||||
"translation-in-points" : [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"shadow" : {
|
||||
"kind" : "neutral",
|
||||
"opacity" : 0.5
|
||||
},
|
||||
"translucency" : {
|
||||
"enabled" : true,
|
||||
"value" : 0.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"supported-platforms" : {
|
||||
"circles" : [
|
||||
"watchOS"
|
||||
],
|
||||
"squares" : "shared"
|
||||
}
|
||||
}
|
||||
BIN
ios/Ascently/Peaks.icon/Assets/AscetlyTriangle1.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
ios/Ascently/Peaks.icon/Assets/AscetlyTriangle2.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
ios/Ascently/Pride.icon/Assets/AscentlyPrideBlue.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
ios/Ascently/Pride.icon/Assets/AscentlyPrideGreen.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
ios/Ascently/Pride.icon/Assets/AscentlyPrideOrange.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
ios/Ascently/Pride.icon/Assets/AscentlyPridePurple.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Pride.icon/Assets/AscentlyPrideRed.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
ios/Ascently/Pride.icon/Assets/AscentlyPrideYellow.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
90
ios/Ascently/Pride.icon/icon.json
Normal file
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"fill" : "automatic",
|
||||
"groups" : [
|
||||
{
|
||||
"layers" : [
|
||||
{
|
||||
"glass" : true,
|
||||
"image-name" : "AscentlyPridePurple.png",
|
||||
"name" : "AscentlyPridePurple",
|
||||
"position" : {
|
||||
"scale" : 0.2,
|
||||
"translation-in-points" : [
|
||||
261.33312440800023,
|
||||
225.98735919808558
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyPrideBlue.png",
|
||||
"name" : "AscentlyPrideBlue",
|
||||
"position" : {
|
||||
"scale" : 0.3,
|
||||
"translation-in-points" : [
|
||||
208.7958513297372,
|
||||
182.17013891753604
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyPrideGreen.png",
|
||||
"name" : "AscentlyPrideGreen",
|
||||
"position" : {
|
||||
"scale" : 0.4,
|
||||
"translation-in-points" : [
|
||||
159.12124296418187,
|
||||
138.63843261157083
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyPrideYellow.png",
|
||||
"name" : "AscentlyPrideYellow",
|
||||
"position" : {
|
||||
"scale" : 0.5,
|
||||
"translation-in-points" : [
|
||||
106.78092927846878,
|
||||
91.24931820626618
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyPrideOrange.png",
|
||||
"name" : "AscentlyPrideOrange",
|
||||
"position" : {
|
||||
"scale" : 0.6,
|
||||
"translation-in-points" : [
|
||||
50.9140625,
|
||||
44.484375
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyPrideRed.png",
|
||||
"name" : "AscentlyPrideRed",
|
||||
"position" : {
|
||||
"scale" : 0.7,
|
||||
"translation-in-points" : [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"shadow" : {
|
||||
"kind" : "neutral",
|
||||
"opacity" : 0.5
|
||||
},
|
||||
"translucency" : {
|
||||
"enabled" : true,
|
||||
"value" : 0.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"supported-platforms" : {
|
||||
"circles" : [
|
||||
"watchOS"
|
||||
],
|
||||
"squares" : "shared"
|
||||
}
|
||||
}
|
||||
BIN
ios/Ascently/Trans.icon/Assets/AscentlyTransBlue 2.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Trans.icon/Assets/AscentlyTransBlue.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Trans.icon/Assets/AscentlyTransPink 2.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Trans.icon/Assets/AscentlyTransPink.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
ios/Ascently/Trans.icon/Assets/AscentlyTransWhite.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
78
ios/Ascently/Trans.icon/icon.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"fill" : "automatic",
|
||||
"groups" : [
|
||||
{
|
||||
"layers" : [
|
||||
{
|
||||
"image-name" : "AscentlyTransBlue 2.png",
|
||||
"name" : "AscentlyTransBlue 2",
|
||||
"position" : {
|
||||
"scale" : 0.1,
|
||||
"translation-in-points" : [
|
||||
2.34375,
|
||||
68.515625
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyTransPink 2.png",
|
||||
"name" : "AscentlyTransPink 2",
|
||||
"position" : {
|
||||
"scale" : 0.25,
|
||||
"translation-in-points" : [
|
||||
0.84375,
|
||||
49.453125
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyTransWhite.png",
|
||||
"name" : "AscentlyTransWhite",
|
||||
"position" : {
|
||||
"scale" : 0.4,
|
||||
"translation-in-points" : [
|
||||
1.953125,
|
||||
34.265625
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyTransPink.png",
|
||||
"name" : "AscentlyTransPink",
|
||||
"position" : {
|
||||
"scale" : 0.55,
|
||||
"translation-in-points" : [
|
||||
-0.0546875,
|
||||
17.4921875
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"image-name" : "AscentlyTransBlue.png",
|
||||
"name" : "AscentlyTransBlue",
|
||||
"position" : {
|
||||
"scale" : 0.7,
|
||||
"translation-in-points" : [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"shadow" : {
|
||||
"kind" : "neutral",
|
||||
"opacity" : 0.5
|
||||
},
|
||||
"translucency" : {
|
||||
"enabled" : true,
|
||||
"value" : 0.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"supported-platforms" : {
|
||||
"circles" : [
|
||||
"watchOS"
|
||||
],
|
||||
"squares" : "shared"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
import HealthKit
|
||||
import MusicKit
|
||||
import SwiftUI
|
||||
import UIKit
|
||||
import UniformTypeIdentifiers
|
||||
|
||||
enum SheetType {
|
||||
@@ -28,6 +29,8 @@ struct SettingsView: View {
|
||||
|
||||
AppearanceSection()
|
||||
|
||||
AppIconSection()
|
||||
|
||||
DataManagementSection(
|
||||
activeSheet: $activeSheet
|
||||
)
|
||||
@@ -168,6 +171,171 @@ struct AppearanceSection: View {
|
||||
}
|
||||
}
|
||||
|
||||
struct AppIconSection: View {
|
||||
@State private var currentIcon: String? = UIApplication.shared.alternateIconName
|
||||
|
||||
var body: some View {
|
||||
Section("App Icon") {
|
||||
Button(action: {
|
||||
setIcon(nil)
|
||||
}) {
|
||||
HStack {
|
||||
Text("Peaks")
|
||||
.foregroundColor(.primary)
|
||||
Spacer()
|
||||
if currentIcon == nil {
|
||||
Image(systemName: "checkmark")
|
||||
.foregroundColor(.primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button(action: {
|
||||
setIcon("Balls")
|
||||
}) {
|
||||
HStack {
|
||||
Text("Balls")
|
||||
.foregroundColor(.primary)
|
||||
Spacer()
|
||||
if currentIcon == "Balls" {
|
||||
Image(systemName: "checkmark")
|
||||
.foregroundColor(.primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button(action: {
|
||||
setIcon("Loss")
|
||||
}) {
|
||||
HStack {
|
||||
Text("Loss")
|
||||
.foregroundColor(.primary)
|
||||
Spacer()
|
||||
if currentIcon == "Loss" {
|
||||
Image(systemName: "checkmark")
|
||||
.foregroundColor(.primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button(action: {
|
||||
setIcon("Pride")
|
||||
}) {
|
||||
HStack {
|
||||
Text("Pride")
|
||||
.foregroundColor(.primary)
|
||||
Spacer()
|
||||
if currentIcon == "Pride" {
|
||||
Image(systemName: "checkmark")
|
||||
.foregroundColor(.primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button(action: {
|
||||
setIcon("Trans")
|
||||
}) {
|
||||
HStack {
|
||||
Text("Trans Pride")
|
||||
.foregroundColor(.primary)
|
||||
Spacer()
|
||||
if currentIcon == "Trans" {
|
||||
Image(systemName: "checkmark")
|
||||
.foregroundColor(.primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button(action: {
|
||||
setIcon("Enby")
|
||||
}) {
|
||||
HStack {
|
||||
Text("Non-Binary Pride")
|
||||
.foregroundColor(.primary)
|
||||
Spacer()
|
||||
if currentIcon == "Enby" {
|
||||
Image(systemName: "checkmark")
|
||||
.foregroundColor(.primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button(action: {
|
||||
setIcon("Bi")
|
||||
}) {
|
||||
HStack {
|
||||
Text("Bisexual Pride")
|
||||
.foregroundColor(.primary)
|
||||
Spacer()
|
||||
if currentIcon == "Bi" {
|
||||
Image(systemName: "checkmark")
|
||||
.foregroundColor(.primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button(action: {
|
||||
setIcon("Lesbian")
|
||||
}) {
|
||||
HStack {
|
||||
Text("Lesbian Pride")
|
||||
.foregroundColor(.primary)
|
||||
Spacer()
|
||||
if currentIcon == "Lesbian" {
|
||||
Image(systemName: "checkmark")
|
||||
.foregroundColor(.primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button(action: {
|
||||
setIcon("Pan")
|
||||
}) {
|
||||
HStack {
|
||||
Text("Pansexual Pride")
|
||||
.foregroundColor(.primary)
|
||||
Spacer()
|
||||
if currentIcon == "Pan" {
|
||||
Image(systemName: "checkmark")
|
||||
.foregroundColor(.primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button(action: {
|
||||
setIcon("Gay")
|
||||
}) {
|
||||
HStack {
|
||||
Text("Gay Pride")
|
||||
.foregroundColor(.primary)
|
||||
Spacer()
|
||||
if currentIcon == "Gay" {
|
||||
Image(systemName: "checkmark")
|
||||
.foregroundColor(.primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.onAppear {
|
||||
currentIcon = UIApplication.shared.alternateIconName
|
||||
}
|
||||
}
|
||||
|
||||
private func setIcon(_ name: String?) {
|
||||
guard UIApplication.shared.alternateIconName != name else { return }
|
||||
|
||||
UIApplication.shared.setAlternateIconName(name) { error in
|
||||
if let error = error {
|
||||
print("Error setting icon: \(error.localizedDescription)")
|
||||
} else {
|
||||
DispatchQueue.main.async {
|
||||
currentIcon = name
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct DataManagementSection: View {
|
||||
@EnvironmentObject var dataManager: ClimbingDataManager
|
||||
@EnvironmentObject var themeManager: ThemeManager
|
||||
|
||||