diff --git a/AppIcon/FeelsAppIcon.png b/AppIcon/FeelsAppIcon.png
deleted file mode 100644
index 5726843..0000000
Binary files a/AppIcon/FeelsAppIcon.png and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/QuickLook/Icon.tiff b/AppIcon/FeelsAppIcon.pxd/QuickLook/Icon.tiff
deleted file mode 100644
index 5ce6b41..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/QuickLook/Icon.tiff and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/QuickLook/Thumbnail.tiff b/AppIcon/FeelsAppIcon.pxd/QuickLook/Thumbnail.tiff
deleted file mode 100644
index e6218e8..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/QuickLook/Thumbnail.tiff and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/037FC241-C7B6-48CD-8B9E-A6209F15D855 b/AppIcon/FeelsAppIcon.pxd/data/037FC241-C7B6-48CD-8B9E-A6209F15D855
deleted file mode 100644
index cb77528..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/037FC241-C7B6-48CD-8B9E-A6209F15D855 and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/09165E94-16D5-437F-B70A-C9F7723D01B1 b/AppIcon/FeelsAppIcon.pxd/data/09165E94-16D5-437F-B70A-C9F7723D01B1
deleted file mode 100644
index 2db2eb1..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/09165E94-16D5-437F-B70A-C9F7723D01B1 and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/1A34A5C2-1741-4AF4-98C7-7CFE2B66987C b/AppIcon/FeelsAppIcon.pxd/data/1A34A5C2-1741-4AF4-98C7-7CFE2B66987C
deleted file mode 100644
index d79a091..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/1A34A5C2-1741-4AF4-98C7-7CFE2B66987C and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/283CA5EB-5B98-42AA-9FFA-A0DC14F6F4BF b/AppIcon/FeelsAppIcon.pxd/data/283CA5EB-5B98-42AA-9FFA-A0DC14F6F4BF
deleted file mode 100644
index 37f7654..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/283CA5EB-5B98-42AA-9FFA-A0DC14F6F4BF and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/2D18F047-8AE5-4611-A699-5ABE7F32FC7C b/AppIcon/FeelsAppIcon.pxd/data/2D18F047-8AE5-4611-A699-5ABE7F32FC7C
deleted file mode 100644
index 9508984..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/2D18F047-8AE5-4611-A699-5ABE7F32FC7C and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/384D344C-123D-4D0F-9E29-8E866B282B51 b/AppIcon/FeelsAppIcon.pxd/data/384D344C-123D-4D0F-9E29-8E866B282B51
deleted file mode 100644
index 67397e4..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/384D344C-123D-4D0F-9E29-8E866B282B51 and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/4D9D089B-C708-4C19-8FB3-F90FBAB7B807 b/AppIcon/FeelsAppIcon.pxd/data/4D9D089B-C708-4C19-8FB3-F90FBAB7B807
deleted file mode 100644
index ab3b778..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/4D9D089B-C708-4C19-8FB3-F90FBAB7B807 and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/55784A79-D244-4C8E-84D4-0A347A9CAF12 b/AppIcon/FeelsAppIcon.pxd/data/55784A79-D244-4C8E-84D4-0A347A9CAF12
deleted file mode 100644
index 8a40c25..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/55784A79-D244-4C8E-84D4-0A347A9CAF12 and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/60364F33-5665-4C06-8924-ED11E0ADB394 b/AppIcon/FeelsAppIcon.pxd/data/60364F33-5665-4C06-8924-ED11E0ADB394
deleted file mode 100644
index a94e424..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/60364F33-5665-4C06-8924-ED11E0ADB394 and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/6CEB1E43-7AF0-4BD6-876E-2FED69B30D0E b/AppIcon/FeelsAppIcon.pxd/data/6CEB1E43-7AF0-4BD6-876E-2FED69B30D0E
deleted file mode 100644
index 1167c95..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/6CEB1E43-7AF0-4BD6-876E-2FED69B30D0E and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/715C86B5-90B6-4ECF-8CDD-7472E91CF9AE b/AppIcon/FeelsAppIcon.pxd/data/715C86B5-90B6-4ECF-8CDD-7472E91CF9AE
deleted file mode 100644
index 7ca8e0e..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/715C86B5-90B6-4ECF-8CDD-7472E91CF9AE and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/73A7C754-F8A9-4A1B-ABE5-B8DB69B75BE8 b/AppIcon/FeelsAppIcon.pxd/data/73A7C754-F8A9-4A1B-ABE5-B8DB69B75BE8
deleted file mode 100644
index 7285d00..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/73A7C754-F8A9-4A1B-ABE5-B8DB69B75BE8 and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/76B29D53-8D03-476F-B233-0AE4A3C065BE b/AppIcon/FeelsAppIcon.pxd/data/76B29D53-8D03-476F-B233-0AE4A3C065BE
deleted file mode 100644
index bf9d022..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/76B29D53-8D03-476F-B233-0AE4A3C065BE and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/87DD9A84-9FFE-4720-8E1D-703EE60AF1CF b/AppIcon/FeelsAppIcon.pxd/data/87DD9A84-9FFE-4720-8E1D-703EE60AF1CF
deleted file mode 100644
index 9b35dd5..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/87DD9A84-9FFE-4720-8E1D-703EE60AF1CF and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/B51463E0-0E90-4F7D-BB96-093741506B1F b/AppIcon/FeelsAppIcon.pxd/data/B51463E0-0E90-4F7D-BB96-093741506B1F
deleted file mode 100644
index 6be0bdf..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/B51463E0-0E90-4F7D-BB96-093741506B1F and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/C6CA7D3A-361D-4C3F-8DE4-4EB4E9C4FA41 b/AppIcon/FeelsAppIcon.pxd/data/C6CA7D3A-361D-4C3F-8DE4-4EB4E9C4FA41
deleted file mode 100644
index 1c6ee72..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/C6CA7D3A-361D-4C3F-8DE4-4EB4E9C4FA41 and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/CA1CB11B-005F-444E-8DF6-2C6EF5D01F51 b/AppIcon/FeelsAppIcon.pxd/data/CA1CB11B-005F-444E-8DF6-2C6EF5D01F51
deleted file mode 100644
index 42817d0..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/CA1CB11B-005F-444E-8DF6-2C6EF5D01F51 and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/CBE8716A-CBDD-4ED9-9AC1-365BC24B53E6 b/AppIcon/FeelsAppIcon.pxd/data/CBE8716A-CBDD-4ED9-9AC1-365BC24B53E6
deleted file mode 100644
index 270aa8e..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/CBE8716A-CBDD-4ED9-9AC1-365BC24B53E6 and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/EBC2EDC1-6121-4DAD-87E2-EF679A5C96AB b/AppIcon/FeelsAppIcon.pxd/data/EBC2EDC1-6121-4DAD-87E2-EF679A5C96AB
deleted file mode 100644
index 83d5873..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/EBC2EDC1-6121-4DAD-87E2-EF679A5C96AB and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/data/F01996E9-1E73-458C-888A-EBCE0913FDBF b/AppIcon/FeelsAppIcon.pxd/data/F01996E9-1E73-458C-888A-EBCE0913FDBF
deleted file mode 100644
index a8ec140..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/data/F01996E9-1E73-458C-888A-EBCE0913FDBF and /dev/null differ
diff --git a/AppIcon/FeelsAppIcon.pxd/metadata.info b/AppIcon/FeelsAppIcon.pxd/metadata.info
deleted file mode 100644
index aa26ed3..0000000
Binary files a/AppIcon/FeelsAppIcon.pxd/metadata.info and /dev/null differ
diff --git a/AppIcon/PurpleFeelsAppIcon.png b/AppIcon/PurpleFeelsAppIcon.png
deleted file mode 100644
index 4af97ba..0000000
Binary files a/AppIcon/PurpleFeelsAppIcon.png and /dev/null differ
diff --git a/AppIcon/RedFeelsAppIcon.png b/AppIcon/RedFeelsAppIcon.png
deleted file mode 100644
index 1b1e062..0000000
Binary files a/AppIcon/RedFeelsAppIcon.png and /dev/null differ
diff --git a/Feels (iOS).entitlements b/Feels (iOS).entitlements
index 657f901..63fe57e 100644
--- a/Feels (iOS).entitlements
+++ b/Feels (iOS).entitlements
@@ -6,7 +6,7 @@
development
com.apple.developer.icloud-container-identifiers
- iCloud.com.88oak.ifeel
+ iCloud.com.88oakapps.ifeel
com.apple.developer.icloud-services
@@ -14,7 +14,7 @@
com.apple.security.application-groups
- group.com.88oak.ifeel
+ group.com.88oakapps.ifeel
diff --git a/Feels (iOS)Dev.entitlements b/Feels (iOS)Dev.entitlements
index 02fee9c..ff8e656 100644
--- a/Feels (iOS)Dev.entitlements
+++ b/Feels (iOS)Dev.entitlements
@@ -6,7 +6,7 @@
development
com.apple.developer.icloud-container-identifiers
- iCloud.com.88oak.ifeelDebug
+ iCloud.com.88oakapps.ifeelDebug
com.apple.developer.icloud-services
@@ -14,7 +14,7 @@
com.apple.security.application-groups
- group.com.88oak.ifeelDebug
+ group.com.88oakapps.ifeelDebug
diff --git a/Feels.xcodeproj/project.pbxproj b/Feels.xcodeproj/project.pbxproj
index d585081..8821fc2 100644
--- a/Feels.xcodeproj/project.pbxproj
+++ b/Feels.xcodeproj/project.pbxproj
@@ -18,10 +18,22 @@
1C04489727C2DB9B00D22444 /* BGView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CAD603127A5C1C800C520BD /* BGView.swift */; };
1C04489927C3F24000D22444 /* Color+Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C04489827C3F24000D22444 /* Color+Codable.swift */; };
1C04489A27C3F24F00D22444 /* Color+Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C04489827C3F24000D22444 /* Color+Codable.swift */; };
+ 1C0A3C8F27FD445000FF37FF /* OnboardingCustomizeOne.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C0A3C8E27FD445000FF37FF /* OnboardingCustomizeOne.swift */; };
+ 1C0A3C9127FD445900FF37FF /* OnboardingCustomizeTwo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C0A3C9027FD445900FF37FF /* OnboardingCustomizeTwo.swift */; };
1C0DAB45279DB0FB003B1F21 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1C0DAB47279DB0FB003B1F21 /* Localizable.strings */; };
1C10E24E27A1AB110047948B /* UserDefaultsStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C5F4977279C945E0092F1B4 /* UserDefaultsStore.swift */; };
1C10E25027A1AB220047948B /* OnboardingDay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CA03774279A294800D26164 /* OnboardingDay.swift */; };
1C10E25127A1AB320047948B /* OnboardingTitle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CA03776279A295600D26164 /* OnboardingTitle.swift */; };
+ 1C1AFF3027F894970067F9DC /* ThemePickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1AFF2F27F894970067F9DC /* ThemePickerView.swift */; };
+ 1C1AFF3227F894A40067F9DC /* IconPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1AFF3127F894A40067F9DC /* IconPickerView.swift */; };
+ 1C1AFF3427F894BA0067F9DC /* TintPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1AFF3327F894BA0067F9DC /* TintPickerView.swift */; };
+ 1C1AFF3827F8951F0067F9DC /* CustomWigetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1AFF3727F8951F0067F9DC /* CustomWigetView.swift */; };
+ 1C1AFF3A27F895490067F9DC /* ImagePackPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1AFF3927F895490067F9DC /* ImagePackPickerView.swift */; };
+ 1C1AFF3C27F895800067F9DC /* TextColorPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1AFF3B27F895800067F9DC /* TextColorPickerView.swift */; };
+ 1C1AFF3E27F895A40067F9DC /* PersonalityPackPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1AFF3D27F895A40067F9DC /* PersonalityPackPickerView.swift */; };
+ 1C1AFF4127F895C00067F9DC /* ShapePickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1AFF4027F895C00067F9DC /* ShapePickerView.swift */; };
+ 1C1AFF4327F895D90067F9DC /* DayFilterPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1AFF4227F895D90067F9DC /* DayFilterPickerView.swift */; };
+ 1C1B6E6927FD4E8F00181E70 /* SampleEntryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1B6E6827FD4E8F00181E70 /* SampleEntryView.swift */; };
1C2162EB27C14EFA004353D1 /* Date+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C2162EA27C14EFA004353D1 /* Date+Extensions.swift */; };
1C2162EC27C14FC5004353D1 /* Date+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C2162EA27C14EFA004353D1 /* Date+Extensions.swift */; };
1C2162EE27C15191004353D1 /* MoodEntryFunctions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C2162ED27C15191004353D1 /* MoodEntryFunctions.swift */; };
@@ -31,10 +43,9 @@
1C2162F727C16D11004353D1 /* MoodTintable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C2162F627C16D11004353D1 /* MoodTintable.swift */; };
1C2162F827C16E3C004353D1 /* MoodTintable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C2162F627C16D11004353D1 /* MoodTintable.swift */; };
1C2618FA2795E41D00FDC148 /* Charts in Frameworks */ = {isa = PBXBuildFile; productRef = 1C2618F92795E41D00FDC148 /* Charts */; };
- 1C2618FE27960A4F00FDC148 /* FilterViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C2618FD27960A4F00FDC148 /* FilterViewModel.swift */; };
+ 1C2618FE27960A4F00FDC148 /* YearViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C2618FD27960A4F00FDC148 /* YearViewModel.swift */; };
1C26190327960CE500FDC148 /* ChartDataBuildable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C26190227960CE500FDC148 /* ChartDataBuildable.swift */; };
1C26190727960DC900FDC148 /* ChartViewItemBuildable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C26190627960DC900FDC148 /* ChartViewItemBuildable.swift */; };
- 1C2C5B2A27DD7D300092A308 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1CD90AF0278C7DE0001C4FEA /* Assets.xcassets */; };
1C2C5B2B27DEBE260092A308 /* EventLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C414C2F27DB1C2400BC1720 /* EventLogger.swift */; };
1C358FAD27ADD0C3002C83A6 /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C358FAC27ADD0C3002C83A6 /* Theme.swift */; };
1C358FB127B0AD87002C83A6 /* SharingListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C358FB027B0AD87002C83A6 /* SharingListView.swift */; };
@@ -76,12 +87,20 @@
1C658D7827C0744D003231EE /* PersistenceUPDATE.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C658D7627C0744D003231EE /* PersistenceUPDATE.swift */; };
1C683FCA2792281400745862 /* Stats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C683FC92792281400745862 /* Stats.swift */; };
1C683FCB2792281400745862 /* Stats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C683FC92792281400745862 /* Stats.swift */; };
+ 1C718C7027F611C900A8F9FE /* DaysFilterClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C718C6F27F611C900A8F9FE /* DaysFilterClass.swift */; };
+ 1C718C7127F611C900A8F9FE /* DaysFilterClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C718C6F27F611C900A8F9FE /* DaysFilterClass.swift */; };
+ 1C718C7327F611E300A8F9FE /* StupidAssCustomWidgetObservableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C718C7227F611E300A8F9FE /* StupidAssCustomWidgetObservableObject.swift */; };
+ 1C718C7427F611E300A8F9FE /* StupidAssCustomWidgetObservableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C718C7227F611E300A8F9FE /* StupidAssCustomWidgetObservableObject.swift */; };
1C7352B927DD02760024B5D2 /* ImagePickerGridView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C7352B827DD02760024B5D2 /* ImagePickerGridView.swift */; };
1C744F2C278CE15600953A57 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C744F2B278CE15600953A57 /* AppDelegate.swift */; };
1C747CC9279F06EB00762CBD /* CloudKitSyncMonitor in Frameworks */ = {isa = PBXBuildFile; productRef = 1C747CC8279F06EB00762CBD /* CloudKitSyncMonitor */; };
1C76E86E27C882A400ADEE1F /* SharingImageModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C76E86D27C882A400ADEE1F /* SharingImageModels.swift */; };
1C76E86F27C882A400ADEE1F /* SharingImageModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C76E86D27C882A400ADEE1F /* SharingImageModels.swift */; };
- 1CA037702799FFA600D26164 /* HomeViewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CA0376F2799FFA600D26164 /* HomeViewViewModel.swift */; };
+ 1C95ABC927E6F73A00509BD3 /* Shapes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C95ABC827E6F73A00509BD3 /* Shapes.swift */; };
+ 1C95ABCA27E6F73A00509BD3 /* Shapes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C95ABC827E6F73A00509BD3 /* Shapes.swift */; };
+ 1C95ABCC27E6FA7200509BD3 /* DiamondView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C95ABCB27E6FA7200509BD3 /* DiamondView.swift */; };
+ 1C95ABCD27E6FA7200509BD3 /* DiamondView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C95ABCB27E6FA7200509BD3 /* DiamondView.swift */; };
+ 1CA037702799FFA600D26164 /* DayViewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CA0376F2799FFA600D26164 /* DayViewViewModel.swift */; };
1CA03773279A293D00D26164 /* OnboardingTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CA03772279A293D00D26164 /* OnboardingTime.swift */; };
1CA03775279A294800D26164 /* OnboardingDay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CA03774279A294800D26164 /* OnboardingDay.swift */; };
1CA03777279A295600D26164 /* OnboardingTitle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CA03776279A295600D26164 /* OnboardingTitle.swift */; };
@@ -91,11 +110,11 @@
1CAD603427A5C1C800C520BD /* SmallRollUpHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CAD602B27A5C1C800C520BD /* SmallRollUpHeaderView.swift */; };
1CAD603527A5C1C800C520BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CAD602C27A5C1C800C520BD /* SettingsView.swift */; };
1CAD603627A5C1C800C520BD /* GraphView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CAD602D27A5C1C800C520BD /* GraphView.swift */; };
- 1CAD603727A5C1C800C520BD /* FilterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CAD602E27A5C1C800C520BD /* FilterView.swift */; };
+ 1CAD603727A5C1C800C520BD /* YearView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CAD602E27A5C1C800C520BD /* YearView.swift */; };
1CAD603827A5C1C800C520BD /* AddMoodHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CAD602F27A5C1C800C520BD /* AddMoodHeaderView.swift */; };
1CAD603927A5C1C800C520BD /* HeaderPercView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CAD603027A5C1C800C520BD /* HeaderPercView.swift */; };
1CAD603A27A5C1C800C520BD /* BGView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CAD603127A5C1C800C520BD /* BGView.swift */; };
- 1CAD603B27A5C1C800C520BD /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CAD603227A5C1C800C520BD /* HomeView.swift */; };
+ 1CAD603B27A5C1C800C520BD /* DayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CAD603227A5C1C800C520BD /* DayView.swift */; };
1CAD603C27A5C1C800C520BD /* HeaderStatsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CAD603327A5C1C800C520BD /* HeaderStatsView.swift */; };
1CAD603E27A6ECCD00C520BD /* SwitchableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CAD603D27A6ECCD00C520BD /* SwitchableView.swift */; };
1CB101C527B62A2D00D1C033 /* EmptyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CB101C427B62A2D00D1C033 /* EmptyView.swift */; };
@@ -182,14 +201,26 @@
1C04488927C2ABD500D22444 /* IconView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconView.swift; sourceTree = ""; };
1C04488C27C2ADDB00D22444 /* IconViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconViewModel.swift; sourceTree = ""; };
1C04489827C3F24000D22444 /* Color+Codable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+Codable.swift"; sourceTree = ""; };
+ 1C0A3C8E27FD445000FF37FF /* OnboardingCustomizeOne.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingCustomizeOne.swift; sourceTree = ""; };
+ 1C0A3C9027FD445900FF37FF /* OnboardingCustomizeTwo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingCustomizeTwo.swift; sourceTree = ""; };
1C0DAB46279DB0FB003B1F21 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; };
1C0DAB48279DB116003B1F21 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; };
+ 1C1AFF2F27F894970067F9DC /* ThemePickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePickerView.swift; sourceTree = ""; };
+ 1C1AFF3127F894A40067F9DC /* IconPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconPickerView.swift; sourceTree = ""; };
+ 1C1AFF3327F894BA0067F9DC /* TintPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TintPickerView.swift; sourceTree = ""; };
+ 1C1AFF3727F8951F0067F9DC /* CustomWigetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomWigetView.swift; sourceTree = ""; };
+ 1C1AFF3927F895490067F9DC /* ImagePackPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImagePackPickerView.swift; sourceTree = ""; };
+ 1C1AFF3B27F895800067F9DC /* TextColorPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextColorPickerView.swift; sourceTree = ""; };
+ 1C1AFF3D27F895A40067F9DC /* PersonalityPackPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonalityPackPickerView.swift; sourceTree = ""; };
+ 1C1AFF4027F895C00067F9DC /* ShapePickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShapePickerView.swift; sourceTree = ""; };
+ 1C1AFF4227F895D90067F9DC /* DayFilterPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DayFilterPickerView.swift; sourceTree = ""; };
+ 1C1B6E6827FD4E8F00181E70 /* SampleEntryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleEntryView.swift; sourceTree = ""; };
1C2162EA27C14EFA004353D1 /* Date+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Date+Extensions.swift"; sourceTree = ""; };
1C2162ED27C15191004353D1 /* MoodEntryFunctions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoodEntryFunctions.swift; sourceTree = ""; };
1C2162F127C156E6004353D1 /* CustomizeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomizeView.swift; sourceTree = ""; };
1C2162F327C1602D004353D1 /* MoodImagable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoodImagable.swift; sourceTree = ""; };
1C2162F627C16D11004353D1 /* MoodTintable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoodTintable.swift; sourceTree = ""; };
- 1C2618FD27960A4F00FDC148 /* FilterViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterViewModel.swift; sourceTree = ""; };
+ 1C2618FD27960A4F00FDC148 /* YearViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YearViewModel.swift; sourceTree = ""; };
1C26190227960CE500FDC148 /* ChartDataBuildable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartDataBuildable.swift; sourceTree = ""; };
1C26190627960DC900FDC148 /* ChartViewItemBuildable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartViewItemBuildable.swift; sourceTree = ""; };
1C358FAC27ADD0C3002C83A6 /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; };
@@ -217,10 +248,14 @@
1C5F4977279C945E0092F1B4 /* UserDefaultsStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsStore.swift; sourceTree = ""; };
1C658D7627C0744D003231EE /* PersistenceUPDATE.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersistenceUPDATE.swift; sourceTree = ""; };
1C683FC92792281400745862 /* Stats.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stats.swift; sourceTree = ""; };
+ 1C718C6F27F611C900A8F9FE /* DaysFilterClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DaysFilterClass.swift; sourceTree = ""; };
+ 1C718C7227F611E300A8F9FE /* StupidAssCustomWidgetObservableObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StupidAssCustomWidgetObservableObject.swift; sourceTree = ""; };
1C7352B827DD02760024B5D2 /* ImagePickerGridView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImagePickerGridView.swift; sourceTree = ""; };
1C744F2B278CE15600953A57 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
1C76E86D27C882A400ADEE1F /* SharingImageModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharingImageModels.swift; sourceTree = ""; };
- 1CA0376F2799FFA600D26164 /* HomeViewViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewViewModel.swift; sourceTree = ""; };
+ 1C95ABC827E6F73A00509BD3 /* Shapes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shapes.swift; sourceTree = ""; };
+ 1C95ABCB27E6FA7200509BD3 /* DiamondView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DiamondView.swift; sourceTree = ""; };
+ 1CA0376F2799FFA600D26164 /* DayViewViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DayViewViewModel.swift; sourceTree = ""; };
1CA03772279A293D00D26164 /* OnboardingTime.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingTime.swift; sourceTree = ""; };
1CA03774279A294800D26164 /* OnboardingDay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingDay.swift; sourceTree = ""; };
1CA03776279A295600D26164 /* OnboardingTitle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingTitle.swift; sourceTree = ""; };
@@ -229,11 +264,11 @@
1CAD602B27A5C1C800C520BD /* SmallRollUpHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SmallRollUpHeaderView.swift; sourceTree = ""; };
1CAD602C27A5C1C800C520BD /* SettingsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; };
1CAD602D27A5C1C800C520BD /* GraphView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GraphView.swift; sourceTree = ""; };
- 1CAD602E27A5C1C800C520BD /* FilterView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilterView.swift; sourceTree = ""; };
+ 1CAD602E27A5C1C800C520BD /* YearView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YearView.swift; sourceTree = ""; };
1CAD602F27A5C1C800C520BD /* AddMoodHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddMoodHeaderView.swift; sourceTree = ""; };
1CAD603027A5C1C800C520BD /* HeaderPercView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HeaderPercView.swift; sourceTree = ""; };
1CAD603127A5C1C800C520BD /* BGView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BGView.swift; sourceTree = ""; };
- 1CAD603227A5C1C800C520BD /* HomeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = ""; };
+ 1CAD603227A5C1C800C520BD /* DayView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DayView.swift; sourceTree = ""; };
1CAD603327A5C1C800C520BD /* HeaderStatsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HeaderStatsView.swift; sourceTree = ""; };
1CAD603D27A6ECCD00C520BD /* SwitchableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwitchableView.swift; sourceTree = ""; };
1CB101C427B62A2D00D1C033 /* EmptyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmptyView.swift; sourceTree = ""; };
@@ -245,7 +280,7 @@
1CD90AED278C7DDF001C4FEA /* FeelsApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeelsApp.swift; sourceTree = ""; };
1CD90AEF278C7DDF001C4FEA /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = ""; };
1CD90AF0278C7DE0001C4FEA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
- 1CD90AF5278C7DE0001C4FEA /* iFeel.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iFeel.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1CD90AF5278C7DE0001C4FEA /* iFeels.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iFeels.app; sourceTree = BUILT_PRODUCTS_DIR; };
1CD90AFB278C7DE0001C4FEA /* Feels.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Feels.app; sourceTree = BUILT_PRODUCTS_DIR; };
1CD90AFD278C7DE0001C4FEA /* macOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = macOS.entitlements; sourceTree = ""; };
1CD90B02278C7DE0001C4FEA /* Tests iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Tests iOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -322,13 +357,13 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 1C04488F27C2CA9C00D22444 /* HomeView */ = {
+ 1C04488F27C2CA9C00D22444 /* DayView */ = {
isa = PBXGroup;
children = (
- 1CAD603227A5C1C800C520BD /* HomeView.swift */,
- 1CA0376F2799FFA600D26164 /* HomeViewViewModel.swift */,
+ 1CAD603227A5C1C800C520BD /* DayView.swift */,
+ 1CA0376F2799FFA600D26164 /* DayViewViewModel.swift */,
);
- path = HomeView;
+ path = DayView;
sourceTree = "";
};
1C04489027C2CAAC00D22444 /* CustomIcon */ = {
@@ -354,6 +389,7 @@
isa = PBXGroup;
children = (
1C2162F127C156E6004353D1 /* CustomizeView.swift */,
+ 1C1AFF4427F898E40067F9DC /* SubViews */,
);
path = CustomizeView;
sourceTree = "";
@@ -366,13 +402,13 @@
path = SettingsView;
sourceTree = "";
};
- 1C04489427C2CAD100D22444 /* FilterView */ = {
+ 1C04489427C2CAD100D22444 /* YearView */ = {
isa = PBXGroup;
children = (
- 1C2618FD27960A4F00FDC148 /* FilterViewModel.swift */,
- 1CAD602E27A5C1C800C520BD /* FilterView.swift */,
+ 1CAD602E27A5C1C800C520BD /* YearView.swift */,
+ 1C2618FD27960A4F00FDC148 /* YearViewModel.swift */,
);
- path = FilterView;
+ path = YearView;
sourceTree = "";
};
1C04489527C2CB1A00D22444 /* Sharing */ = {
@@ -383,6 +419,22 @@
path = Sharing;
sourceTree = "";
};
+ 1C1AFF4427F898E40067F9DC /* SubViews */ = {
+ isa = PBXGroup;
+ children = (
+ 1C1AFF3727F8951F0067F9DC /* CustomWigetView.swift */,
+ 1C1AFF4227F895D90067F9DC /* DayFilterPickerView.swift */,
+ 1C1AFF3127F894A40067F9DC /* IconPickerView.swift */,
+ 1C1AFF3927F895490067F9DC /* ImagePackPickerView.swift */,
+ 1C1AFF3D27F895A40067F9DC /* PersonalityPackPickerView.swift */,
+ 1C1AFF4027F895C00067F9DC /* ShapePickerView.swift */,
+ 1C1AFF3B27F895800067F9DC /* TextColorPickerView.swift */,
+ 1C1AFF2F27F894970067F9DC /* ThemePickerView.swift */,
+ 1C1AFF3327F894BA0067F9DC /* TintPickerView.swift */,
+ );
+ path = SubViews;
+ sourceTree = "";
+ };
1C26190127960CDA00FDC148 /* Protocols */ = {
isa = PBXGroup;
children = (
@@ -443,6 +495,8 @@
1CA03772279A293D00D26164 /* OnboardingTime.swift */,
1CA03774279A294800D26164 /* OnboardingDay.swift */,
1CA03776279A295600D26164 /* OnboardingTitle.swift */,
+ 1C0A3C8E27FD445000FF37FF /* OnboardingCustomizeOne.swift */,
+ 1C0A3C9027FD445900FF37FF /* OnboardingCustomizeTwo.swift */,
1CA0377B279B605000D26164 /* OnboardingWrapup.swift */,
);
path = views;
@@ -459,13 +513,14 @@
1C04489127C2CAB100D22444 /* CustomWidget */,
1CC469AB27907D48003E0C6E /* DayChartView.swift */,
1CB101C427B62A2D00D1C033 /* EmptyView.swift */,
- 1C04489427C2CAD100D22444 /* FilterView */,
+ 1C04489427C2CAD100D22444 /* YearView */,
1CAD602D27A5C1C800C520BD /* GraphView.swift */,
1CAD603027A5C1C800C520BD /* HeaderPercView.swift */,
1CAD603327A5C1C800C520BD /* HeaderStatsView.swift */,
- 1C04488F27C2CA9C00D22444 /* HomeView */,
+ 1C04488F27C2CA9C00D22444 /* DayView */,
1C361F0B27C0356B00E832FC /* MainTabView.swift */,
1C4DAA7327CC263F00C25D2B /* MonthView */,
+ 1C1B6E6827FD4E8F00181E70 /* SampleEntryView.swift */,
1C04489327C2CABF00D22444 /* SettingsView */,
1C04489527C2CB1A00D22444 /* Sharing */,
1C358FB427B0ADF3002C83A6 /* SharingTemplates */,
@@ -525,7 +580,7 @@
1CD90AF6278C7DE0001C4FEA /* Products */ = {
isa = PBXGroup;
children = (
- 1CD90AF5278C7DE0001C4FEA /* iFeel.app */,
+ 1CD90AF5278C7DE0001C4FEA /* iFeels.app */,
1CD90AFB278C7DE0001C4FEA /* Feels.app */,
1CD90B02278C7DE0001C4FEA /* Tests iOS.xctest */,
1CD90B0E278C7DE0001C4FEA /* Tests macOS.xctest */,
@@ -584,6 +639,8 @@
1CD90B60278C7EBA001C4FEA /* Models */ = {
isa = PBXGroup;
children = (
+ 1C718C6F27F611C900A8F9FE /* DaysFilterClass.swift */,
+ 1C95ABCB27E6FA7200509BD3 /* DiamondView.swift */,
1CD90B61278C7EBA001C4FEA /* Mood.swift */,
1CD90B62278C7EBA001C4FEA /* MoodEntryExtension.swift */,
1C2162F327C1602D004353D1 /* MoodImagable.swift */,
@@ -591,7 +648,9 @@
1C2162F627C16D11004353D1 /* MoodTintable.swift */,
1C361F1327C03C8600E832FC /* OnboardingDataDataManager.swift */,
1C04488627C1C81D00D22444 /* PersonalityPackable.swift */,
+ 1C95ABC827E6F73A00509BD3 /* Shapes.swift */,
1C76E86D27C882A400ADEE1F /* SharingImageModels.swift */,
+ 1C718C7227F611E300A8F9FE /* StupidAssCustomWidgetObservableObject.swift */,
1C358FAC27ADD0C3002C83A6 /* Theme.swift */,
1C5F4977279C945E0092F1B4 /* UserDefaultsStore.swift */,
);
@@ -622,7 +681,7 @@
1C414C2D27DB1B9B00BC1720 /* FirebaseAnalyticsWithoutAdIdSupport */,
);
productName = "Feels (iOS)";
- productReference = 1CD90AF5278C7DE0001C4FEA /* iFeel.app */;
+ productReference = 1CD90AF5278C7DE0001C4FEA /* iFeels.app */;
productType = "com.apple.product-type.application";
};
1CD90AFA278C7DE0001C4FEA /* Feels (macOS) */ = {
@@ -793,7 +852,6 @@
buildActionMask = 2147483647;
files = (
1CD90B50278C7E7A001C4FEA /* Assets.xcassets in Resources */,
- 1C2C5B2A27DD7D300092A308 /* Assets.xcassets in Resources */,
1C414C2B27DB1AF900BC1720 /* GoogleService-Info.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -805,38 +863,48 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 1CA037702799FFA600D26164 /* HomeViewViewModel.swift in Sources */,
+ 1CA037702799FFA600D26164 /* DayViewViewModel.swift in Sources */,
1CA03773279A293D00D26164 /* OnboardingTime.swift in Sources */,
1CAD603927A5C1C800C520BD /* HeaderPercView.swift in Sources */,
+ 1C0A3C8F27FD445000FF37FF /* OnboardingCustomizeOne.swift in Sources */,
1CAD603C27A5C1C800C520BD /* HeaderStatsView.swift in Sources */,
1CAD603827A5C1C800C520BD /* AddMoodHeaderView.swift in Sources */,
1CA0377C279B605000D26164 /* OnboardingWrapup.swift in Sources */,
1C4FF3C327BEE07200BE8F34 /* PersistenceDELETE.swift in Sources */,
1CA03775279A294800D26164 /* OnboardingDay.swift in Sources */,
- 1CAD603727A5C1C800C520BD /* FilterView.swift in Sources */,
+ 1C1AFF3C27F895800067F9DC /* TextColorPickerView.swift in Sources */,
+ 1CAD603727A5C1C800C520BD /* YearView.swift in Sources */,
1C04488D27C2ADDB00D22444 /* IconViewModel.swift in Sources */,
1C2162F227C156E6004353D1 /* CustomizeView.swift in Sources */,
+ 1C1AFF3E27F895A40067F9DC /* PersonalityPackPickerView.swift in Sources */,
1C683FCA2792281400745862 /* Stats.swift in Sources */,
1C76E86E27C882A400ADEE1F /* SharingImageModels.swift in Sources */,
+ 1C718C7327F611E300A8F9FE /* StupidAssCustomWidgetObservableObject.swift in Sources */,
1CAD603E27A6ECCD00C520BD /* SwitchableView.swift in Sources */,
1CD90B76278C8119001C4FEA /* LocalNotification.swift in Sources */,
1C358FB627B0AE15002C83A6 /* AllMoodsTotalTemplate.swift in Sources */,
1CD90B16278C7DE0001C4FEA /* Feels.xcdatamodeld in Sources */,
+ 1C1AFF3027F894970067F9DC /* ThemePickerView.swift in Sources */,
+ 1C1AFF4327F895D90067F9DC /* DayFilterPickerView.swift in Sources */,
1C04488727C1C81D00D22444 /* PersonalityPackable.swift in Sources */,
+ 1C0A3C9127FD445900FF37FF /* OnboardingCustomizeTwo.swift in Sources */,
1C4FF3BE27BEDF9100BE8F34 /* PersistenceHelper.swift in Sources */,
1CC469AA278F30A0003E0C6E /* BGTask.swift in Sources */,
- 1CAD603B27A5C1C800C520BD /* HomeView.swift in Sources */,
+ 1C95ABC927E6F73A00509BD3 /* Shapes.swift in Sources */,
+ 1CAD603B27A5C1C800C520BD /* DayView.swift in Sources */,
1C5F4976279C84090092F1B4 /* OnboardingData.swift in Sources */,
1CAD603427A5C1C800C520BD /* SmallRollUpHeaderView.swift in Sources */,
1CAD603A27A5C1C800C520BD /* BGView.swift in Sources */,
1C26190727960DC900FDC148 /* ChartViewItemBuildable.swift in Sources */,
1CD90B5D278C7EAD001C4FEA /* Random.swift in Sources */,
- 1C2618FE27960A4F00FDC148 /* FilterViewModel.swift in Sources */,
+ 1C2618FE27960A4F00FDC148 /* YearViewModel.swift in Sources */,
1C744F2C278CE15600953A57 /* AppDelegate.swift in Sources */,
1CD90B63278C7EBA001C4FEA /* Mood.swift in Sources */,
+ 1C1B6E6927FD4E8F00181E70 /* SampleEntryView.swift in Sources */,
1C358FBE27B4D1F2002C83A6 /* CurrentStreakTemplate.swift in Sources */,
1C4FF3C727BEE09E00BE8F34 /* PersistenceADD.swift in Sources */,
1C414C0F27D51FB500BC1720 /* EntryListView.swift in Sources */,
+ 1C1AFF3827F8951F0067F9DC /* CustomWigetView.swift in Sources */,
1C4FF3BB27BEDDF000BE8F34 /* ShowBasedOnVoteLogics.swift in Sources */,
1CAD603527A5C1C800C520BD /* SettingsView.swift in Sources */,
1CD90B53278C7E7A001C4FEA /* FeelsWidget.intentdefinition in Sources */,
@@ -853,6 +921,7 @@
1C7352B927DD02760024B5D2 /* ImagePickerGridView.swift in Sources */,
1C358FB327B0ADA4002C83A6 /* SharingTemplate.swift in Sources */,
1C358FB827B0AEE3002C83A6 /* LongestStreakTemplate.swift in Sources */,
+ 1C1AFF4127F895C00067F9DC /* ShapePickerView.swift in Sources */,
1C358FB127B0AD87002C83A6 /* SharingListView.swift in Sources */,
1CD90B1C278C7DE0001C4FEA /* Persistence.swift in Sources */,
1CEC966F27B9C29300CC8688 /* CustomWidgetView.swift in Sources */,
@@ -863,6 +932,7 @@
1CD90B18278C7DE0001C4FEA /* FeelsApp.swift in Sources */,
1C358FC027B4D20C002C83A6 /* MonthTotalTemplate.swift in Sources */,
1CA03777279A295600D26164 /* OnboardingTitle.swift in Sources */,
+ 1C1AFF3A27F895490067F9DC /* ImagePackPickerView.swift in Sources */,
1C4FF3C027BEE06900BE8F34 /* PersistenceGET.swift in Sources */,
1C04488A27C2ABD500D22444 /* IconView.swift in Sources */,
1C361F0C27C0356B00E832FC /* MainTabView.swift in Sources */,
@@ -871,9 +941,13 @@
1C361F0A27C0356000E832FC /* MonthView.swift in Sources */,
1C361F1427C03C8600E832FC /* OnboardingDataDataManager.swift in Sources */,
1C358FAD27ADD0C3002C83A6 /* Theme.swift in Sources */,
+ 1C718C7027F611C900A8F9FE /* DaysFilterClass.swift in Sources */,
+ 1C95ABCC27E6FA7200509BD3 /* DiamondView.swift in Sources */,
1C2162EB27C14EFA004353D1 /* Date+Extensions.swift in Sources */,
1C02589C27B9677A00EB91AC /* CreateWidgetView.swift in Sources */,
+ 1C1AFF3227F894A40067F9DC /* IconPickerView.swift in Sources */,
1C04489927C3F24000D22444 /* Color+Codable.swift in Sources */,
+ 1C1AFF3427F894BA0067F9DC /* TintPickerView.swift in Sources */,
1C358FC227B4D227002C83A6 /* WeekTotalTemplate.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -919,6 +993,7 @@
1C76E86F27C882A400ADEE1F /* SharingImageModels.swift in Sources */,
1CEC967227B9C9FB00CC8688 /* CustomWidgetView.swift in Sources */,
1C2162F827C16E3C004353D1 /* MoodTintable.swift in Sources */,
+ 1C95ABCA27E6F73A00509BD3 /* Shapes.swift in Sources */,
1C4FF3BC27BEDF6600BE8F34 /* ShowBasedOnVoteLogics.swift in Sources */,
1C4FF3C927BEE0C300BE8F34 /* PersistenceHelper.swift in Sources */,
1CA2662D2793908700C0E12C /* Persistence.swift in Sources */,
@@ -931,6 +1006,7 @@
1C04489727C2DB9B00D22444 /* BGView.swift in Sources */,
1CB101C827B81CAC00D1C033 /* MoodMetrics.swift in Sources */,
1C683FCB2792281400745862 /* Stats.swift in Sources */,
+ 1C718C7127F611C900A8F9FE /* DaysFilterClass.swift in Sources */,
1CEC967327B9CA0C00CC8688 /* CustomWidgetModel.swift in Sources */,
1C10E25027A1AB220047948B /* OnboardingDay.swift in Sources */,
1C04488827C1CD8C00D22444 /* PersonalityPackable.swift in Sources */,
@@ -942,10 +1018,12 @@
1C4FF3C127BEE06900BE8F34 /* PersistenceGET.swift in Sources */,
1C361F0D27C03BDF00E832FC /* OnboardingData.swift in Sources */,
1CD90B52278C7E7A001C4FEA /* FeelsWidget.intentdefinition in Sources */,
+ 1C95ABCD27E6FA7200509BD3 /* DiamondView.swift in Sources */,
1CD90B4D278C7E7A001C4FEA /* FeelsWidget.swift in Sources */,
1C04489627C2DB0100D22444 /* Theme.swift in Sources */,
1C361F0F27C03C0E00E832FC /* LocalNotification.swift in Sources */,
1C10E24E27A1AB110047948B /* UserDefaultsStore.swift in Sources */,
+ 1C718C7427F611E300A8F9FE /* StupidAssCustomWidgetObservableObject.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1108,7 +1186,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 23;
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = QND55P4443;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "Feels--iOS--Info.plist";
@@ -1123,8 +1201,8 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.88oak.ifeelDebug2;
- PRODUCT_NAME = iFeel;
+ PRODUCT_BUNDLE_IDENTIFIER = com.88oakapps.ifeelDebug;
+ PRODUCT_NAME = iFeels;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = iphoneos;
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -1144,7 +1222,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 23;
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = QND55P4443;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "Feels--iOS--Info.plist";
@@ -1159,8 +1237,8 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.88oak.ifeel;
- PRODUCT_NAME = iFeel;
+ PRODUCT_BUNDLE_IDENTIFIER = com.88oakapps.ifeel;
+ PRODUCT_NAME = iFeels;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = iphoneos;
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -1314,10 +1392,10 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = QND55P4443;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = FeelsWidget/Info.plist;
- INFOPLIST_KEY_CFBundleDisplayName = FeelsWidget;
+ INFOPLIST_KEY_CFBundleDisplayName = iFeelsWidget;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 15.2;
LD_RUNPATH_SEARCH_PATHS = (
@@ -1326,7 +1404,7 @@
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.88oak.ifeelDebug2.FeelsWidgetDebug;
+ PRODUCT_BUNDLE_IDENTIFIER = com.88oakapps.ifeelDebug.FeelsWidgetDebug;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = iphoneos;
@@ -1346,10 +1424,10 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = QND55P4443;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = FeelsWidget/Info.plist;
- INFOPLIST_KEY_CFBundleDisplayName = FeelsWidget;
+ INFOPLIST_KEY_CFBundleDisplayName = iFeelsWidget;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 15.2;
LD_RUNPATH_SEARCH_PATHS = (
@@ -1358,7 +1436,7 @@
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.88oak.ifeel.FeelsWidget;
+ PRODUCT_BUNDLE_IDENTIFIER = com.88oakapps.ifeel.FeelsWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = iphoneos;
diff --git a/Feels.xcodeproj/xcshareddata/xcschemes/Feels (iOS).xcscheme b/Feels.xcodeproj/xcshareddata/xcschemes/Feels (iOS).xcscheme
index 0022d41..83c53e5 100644
--- a/Feels.xcodeproj/xcshareddata/xcschemes/Feels (iOS).xcscheme
+++ b/Feels.xcodeproj/xcshareddata/xcschemes/Feels (iOS).xcscheme
@@ -15,7 +15,7 @@
@@ -55,7 +55,7 @@
@@ -72,7 +72,7 @@
diff --git a/Feels.xcodeproj/xcshareddata/xcschemes/FeelsWidgetExtension.xcscheme b/Feels.xcodeproj/xcshareddata/xcschemes/FeelsWidgetExtension.xcscheme
index 06acf71..ff1fee5 100644
--- a/Feels.xcodeproj/xcshareddata/xcschemes/FeelsWidgetExtension.xcscheme
+++ b/Feels.xcodeproj/xcshareddata/xcschemes/FeelsWidgetExtension.xcscheme
@@ -30,7 +30,7 @@
@@ -72,7 +72,7 @@
@@ -108,7 +108,7 @@
diff --git a/FeelsWidget/Assets.xcassets/AccentColor.colorset/Contents.json b/FeelsWidget/Assets.xcassets/AccentColor.colorset/Contents.json
new file mode 100644
index 0000000..eb87897
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AccentColor.colorset/Contents.json
@@ -0,0 +1,11 @@
+{
+ "colors" : [
+ {
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/AppIcon.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/AppIcon.png
new file mode 100644
index 0000000..f564135
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/AppIcon.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/Contents.json b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..2e47aab
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,116 @@
+{
+ "images" : [
+ {
+ "filename" : "iPhone-Notification-20@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-Notification-20@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-29@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-29@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-App-60@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPhone-App-60@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPad-Notification-20@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Notification-20@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Settings-29@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Settings-29@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Pro-83.5@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "83.5x83.5"
+ },
+ {
+ "filename" : "AppIcon.png",
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Notification-20@1x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Notification-20@1x.png
new file mode 100644
index 0000000..8ee6763
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Notification-20@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Notification-20@2x.png
new file mode 100644
index 0000000..1547543
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Pro-83.5@2x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Pro-83.5@2x.png
new file mode 100644
index 0000000..c851ea3
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Pro-83.5@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Settings-29@1x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Settings-29@1x.png
new file mode 100644
index 0000000..51264c7
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Settings-29@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Settings-29@2x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Settings-29@2x.png
new file mode 100644
index 0000000..5dc216f
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Settings-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Spotlight-40@1x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Spotlight-40@1x.png
new file mode 100644
index 0000000..13383ed
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Spotlight-40@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Spotlight-40@2x.png
new file mode 100644
index 0000000..8d45431
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Spotlight-76@1x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Spotlight-76@1x.png
new file mode 100644
index 0000000..af39cde
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Spotlight-76@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Spotlight-76@2x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Spotlight-76@2x.png
new file mode 100644
index 0000000..8da949a
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPad-Spotlight-76@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-29@2x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-29@2x.png
new file mode 100644
index 0000000..e848d7f
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-29@3x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-29@3x.png
new file mode 100644
index 0000000..9cfec82
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-29@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-App-60@2x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-App-60@2x.png
new file mode 100644
index 0000000..597460c
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-App-60@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-App-60@3x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-App-60@3x.png
new file mode 100644
index 0000000..0b679b1
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-App-60@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-Notification-20@2x.png
new file mode 100644
index 0000000..1547543
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-Notification-20@3x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-Notification-20@3x.png
new file mode 100644
index 0000000..4db0e84
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-Notification-20@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-Spotlight-40@2x.png
new file mode 100644
index 0000000..99632b6
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-Spotlight-40@3x.png b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-Spotlight-40@3x.png
new file mode 100644
index 0000000..597460c
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIcon.appiconset/iPhone-Spotlight-40@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/AppIconAverage.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/AppIconAverage.png
new file mode 100644
index 0000000..3481e6d
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/AppIconAverage.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/Contents.json
new file mode 100644
index 0000000..edebf0c
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/Contents.json
@@ -0,0 +1,116 @@
+{
+ "images" : [
+ {
+ "filename" : "iPhone-Notification-20@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-Notification-20@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-29@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-29@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-App-60@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPhone-App-60@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPad-Notification-20@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Notification-20@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Settings-29@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Settings-29@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Pro-83.5@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "83.5x83.5"
+ },
+ {
+ "filename" : "AppIconAverage.png",
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Notification-20@1x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Notification-20@1x.png
new file mode 100644
index 0000000..217dfb0
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Notification-20@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Notification-20@2x.png
new file mode 100644
index 0000000..a8491d0
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Pro-83.5@2x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Pro-83.5@2x.png
new file mode 100644
index 0000000..723bba3
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Pro-83.5@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Settings-29@1x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Settings-29@1x.png
new file mode 100644
index 0000000..87067da
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Settings-29@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Settings-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Settings-29@2x.png
new file mode 100644
index 0000000..c73d6fc
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Settings-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Spotlight-40@1x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Spotlight-40@1x.png
new file mode 100644
index 0000000..a8491d0
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Spotlight-40@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Spotlight-40@2x.png
new file mode 100644
index 0000000..b680cb3
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Spotlight-76@1x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Spotlight-76@1x.png
new file mode 100644
index 0000000..309c839
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Spotlight-76@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Spotlight-76@2x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Spotlight-76@2x.png
new file mode 100644
index 0000000..7d3e769
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPad-Spotlight-76@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-29@2x.png
new file mode 100644
index 0000000..b0324e3
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-29@3x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-29@3x.png
new file mode 100644
index 0000000..b6cf2eb
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-29@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-App-60@2x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-App-60@2x.png
new file mode 100644
index 0000000..75caba2
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-App-60@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-App-60@3x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-App-60@3x.png
new file mode 100644
index 0000000..1ddfe22
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-App-60@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-Notification-20@2x.png
new file mode 100644
index 0000000..9a043c4
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-Notification-20@3x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-Notification-20@3x.png
new file mode 100644
index 0000000..a8b61f1
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-Notification-20@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-Spotlight-40@2x.png
new file mode 100644
index 0000000..4972e79
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-Spotlight-40@3x.png b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-Spotlight-40@3x.png
new file mode 100644
index 0000000..75caba2
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverage.appiconset/iPhone-Spotlight-40@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconAverageImage.imageset/AppIconAverage.png b/FeelsWidget/Assets.xcassets/AppIconAverageImage.imageset/AppIconAverage.png
new file mode 100644
index 0000000..3481e6d
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconAverageImage.imageset/AppIconAverage.png differ
diff --git a/Shared/Assets.xcassets/Graphics/AverageGraphic.imageset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconAverageImage.imageset/Contents.json
similarity index 86%
rename from Shared/Assets.xcassets/Graphics/AverageGraphic.imageset/Contents.json
rename to FeelsWidget/Assets.xcassets/AppIconAverageImage.imageset/Contents.json
index e806476..5afa85a 100644
--- a/Shared/Assets.xcassets/Graphics/AverageGraphic.imageset/Contents.json
+++ b/FeelsWidget/Assets.xcassets/AppIconAverageImage.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "AverageGraphic.png",
+ "filename" : "AppIconAverage.png",
"idiom" : "universal",
"scale" : "1x"
},
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/AppIconBad.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/AppIconBad.png
new file mode 100644
index 0000000..049fe6b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/AppIconBad.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/Contents.json
new file mode 100644
index 0000000..26f651f
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/Contents.json
@@ -0,0 +1,116 @@
+{
+ "images" : [
+ {
+ "filename" : "iPhone-Notification-20@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-Notification-20@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-29@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-29@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-App-60@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPhone-App-60@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPad-Notification-20@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Notification-20@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Settings-29@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Settings-29@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Pro-83.5@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "83.5x83.5"
+ },
+ {
+ "filename" : "AppIconBad.png",
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Notification-20@1x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Notification-20@1x.png
new file mode 100644
index 0000000..4f6f49b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Notification-20@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Notification-20@2x.png
new file mode 100644
index 0000000..02fd6e5
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Pro-83.5@2x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Pro-83.5@2x.png
new file mode 100644
index 0000000..8778a21
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Pro-83.5@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Settings-29@1x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Settings-29@1x.png
new file mode 100644
index 0000000..28dc298
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Settings-29@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Settings-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Settings-29@2x.png
new file mode 100644
index 0000000..be5e33c
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Settings-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Spotlight-40@1x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Spotlight-40@1x.png
new file mode 100644
index 0000000..02fd6e5
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Spotlight-40@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Spotlight-40@2x.png
new file mode 100644
index 0000000..cc068c7
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Spotlight-76@1x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Spotlight-76@1x.png
new file mode 100644
index 0000000..a587a2b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Spotlight-76@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Spotlight-76@2x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Spotlight-76@2x.png
new file mode 100644
index 0000000..4a3de99
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPad-Spotlight-76@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-29@2x.png
new file mode 100644
index 0000000..be5e33c
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-29@3x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-29@3x.png
new file mode 100644
index 0000000..ad82a8c
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-29@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-App-60@2x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-App-60@2x.png
new file mode 100644
index 0000000..52560c0
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-App-60@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-App-60@3x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-App-60@3x.png
new file mode 100644
index 0000000..56ac067
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-App-60@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-Notification-20@2x.png
new file mode 100644
index 0000000..02fd6e5
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-Notification-20@3x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-Notification-20@3x.png
new file mode 100644
index 0000000..0c2c0db
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-Notification-20@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-Spotlight-40@2x.png
new file mode 100644
index 0000000..cc068c7
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-Spotlight-40@3x.png b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-Spotlight-40@3x.png
new file mode 100644
index 0000000..52560c0
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBad.appiconset/iPhone-Spotlight-40@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBadImage.imageset/AppIconBad.png b/FeelsWidget/Assets.xcassets/AppIconBadImage.imageset/AppIconBad.png
new file mode 100644
index 0000000..049fe6b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBadImage.imageset/AppIconBad.png differ
diff --git a/Shared/Assets.xcassets/Graphics/BadGraphic.imageset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconBadImage.imageset/Contents.json
similarity index 87%
rename from Shared/Assets.xcassets/Graphics/BadGraphic.imageset/Contents.json
rename to FeelsWidget/Assets.xcassets/AppIconBadImage.imageset/Contents.json
index faecdfe..6bfb89a 100644
--- a/Shared/Assets.xcassets/Graphics/BadGraphic.imageset/Contents.json
+++ b/FeelsWidget/Assets.xcassets/AppIconBadImage.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "BadGraphic.png",
+ "filename" : "AppIconBad.png",
"idiom" : "universal",
"scale" : "1x"
},
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/AppIconBlueGreen.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/AppIconBlueGreen.png
new file mode 100644
index 0000000..14385af
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/AppIconBlueGreen.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/Contents.json
new file mode 100644
index 0000000..10f1dc1
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/Contents.json
@@ -0,0 +1,116 @@
+{
+ "images" : [
+ {
+ "filename" : "iPhone-Notification-20@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-Notification-20@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-29@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-29@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-App-60@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPhone-App-60@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPad-Notification-20@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Notification-20@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Settings-29@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Settings-29@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Pro-83.5@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "83.5x83.5"
+ },
+ {
+ "filename" : "AppIconBlueGreen.png",
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Notification-20@1x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Notification-20@1x.png
new file mode 100644
index 0000000..b29317c
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Notification-20@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Notification-20@2x.png
new file mode 100644
index 0000000..511301e
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Pro-83.5@2x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Pro-83.5@2x.png
new file mode 100644
index 0000000..44cdbab
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Pro-83.5@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Settings-29@1x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Settings-29@1x.png
new file mode 100644
index 0000000..96f0844
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Settings-29@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Settings-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Settings-29@2x.png
new file mode 100644
index 0000000..d2aaa56
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Settings-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Spotlight-40@1x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Spotlight-40@1x.png
new file mode 100644
index 0000000..511301e
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Spotlight-40@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Spotlight-40@2x.png
new file mode 100644
index 0000000..6e4f441
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Spotlight-76@1x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Spotlight-76@1x.png
new file mode 100644
index 0000000..1be1cb0
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Spotlight-76@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Spotlight-76@2x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Spotlight-76@2x.png
new file mode 100644
index 0000000..f82c843
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPad-Spotlight-76@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-29@2x.png
new file mode 100644
index 0000000..2d9dba6
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-29@3x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-29@3x.png
new file mode 100644
index 0000000..a04aa43
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-29@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-App-60@2x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-App-60@2x.png
new file mode 100644
index 0000000..e50aea7
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-App-60@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-App-60@3x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-App-60@3x.png
new file mode 100644
index 0000000..a327403
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-App-60@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-Notification-20@2x.png
new file mode 100644
index 0000000..63503bc
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-Notification-20@3x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-Notification-20@3x.png
new file mode 100644
index 0000000..9cfea9b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-Notification-20@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-Spotlight-40@2x.png
new file mode 100644
index 0000000..904ed36
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-Spotlight-40@3x.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-Spotlight-40@3x.png
new file mode 100644
index 0000000..a8da8ba
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreen.appiconset/iPhone-Spotlight-40@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreenImage.imageset/AppIconBlueGreen.png b/FeelsWidget/Assets.xcassets/AppIconBlueGreenImage.imageset/AppIconBlueGreen.png
new file mode 100644
index 0000000..14385af
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconBlueGreenImage.imageset/AppIconBlueGreen.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconBlueGreenImage.imageset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconBlueGreenImage.imageset/Contents.json
new file mode 100644
index 0000000..bafde75
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AppIconBlueGreenImage.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "AppIconBlueGreen.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/AppIconGood.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/AppIconGood.png
new file mode 100644
index 0000000..77af65b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/AppIconGood.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/Contents.json
new file mode 100644
index 0000000..8af81e2
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/Contents.json
@@ -0,0 +1,116 @@
+{
+ "images" : [
+ {
+ "filename" : "iPhone-Notification-20@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-Notification-20@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-29@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-29@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-App-60@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPhone-App-60@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPad-Notification-20@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Notification-20@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Settings-29@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Settings-29@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Pro-83.5@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "83.5x83.5"
+ },
+ {
+ "filename" : "AppIconGood.png",
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Notification-20@1x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Notification-20@1x.png
new file mode 100644
index 0000000..1113f12
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Notification-20@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Notification-20@2x.png
new file mode 100644
index 0000000..7bcd1a7
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Pro-83.5@2x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Pro-83.5@2x.png
new file mode 100644
index 0000000..029cc2e
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Pro-83.5@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Settings-29@1x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Settings-29@1x.png
new file mode 100644
index 0000000..c80b7bc
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Settings-29@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Settings-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Settings-29@2x.png
new file mode 100644
index 0000000..d005855
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Settings-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Spotlight-40@1x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Spotlight-40@1x.png
new file mode 100644
index 0000000..7bcd1a7
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Spotlight-40@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Spotlight-40@2x.png
new file mode 100644
index 0000000..ab0a363
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Spotlight-76@1x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Spotlight-76@1x.png
new file mode 100644
index 0000000..3803ae0
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Spotlight-76@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Spotlight-76@2x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Spotlight-76@2x.png
new file mode 100644
index 0000000..6924b97
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPad-Spotlight-76@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-29@2x.png
new file mode 100644
index 0000000..6fa35db
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-29@3x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-29@3x.png
new file mode 100644
index 0000000..1ef27f1
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-29@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-App-60@2x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-App-60@2x.png
new file mode 100644
index 0000000..08e546a
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-App-60@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-App-60@3x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-App-60@3x.png
new file mode 100644
index 0000000..8ef213e
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-App-60@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-Notification-20@2x.png
new file mode 100644
index 0000000..415ca9c
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-Notification-20@3x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-Notification-20@3x.png
new file mode 100644
index 0000000..41121df
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-Notification-20@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-Spotlight-40@2x.png
new file mode 100644
index 0000000..ab0a363
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-Spotlight-40@3x.png b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-Spotlight-40@3x.png
new file mode 100644
index 0000000..08e546a
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGood.appiconset/iPhone-Spotlight-40@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconGoodImage.imageset/AppIconGood.png b/FeelsWidget/Assets.xcassets/AppIconGoodImage.imageset/AppIconGood.png
new file mode 100644
index 0000000..77af65b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconGoodImage.imageset/AppIconGood.png differ
diff --git a/Shared/Assets.xcassets/Graphics/GoodGraphic.imageset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconGoodImage.imageset/Contents.json
similarity index 87%
rename from Shared/Assets.xcassets/Graphics/GoodGraphic.imageset/Contents.json
rename to FeelsWidget/Assets.xcassets/AppIconGoodImage.imageset/Contents.json
index 6ca5ed9..00c3215 100644
--- a/Shared/Assets.xcassets/Graphics/GoodGraphic.imageset/Contents.json
+++ b/FeelsWidget/Assets.xcassets/AppIconGoodImage.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "GoodGraphic.png",
+ "filename" : "AppIconGood.png",
"idiom" : "universal",
"scale" : "1x"
},
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/AppIconHorrible.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/AppIconHorrible.png
new file mode 100644
index 0000000..25340a9
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/AppIconHorrible.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/Contents.json
new file mode 100644
index 0000000..e606adb
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/Contents.json
@@ -0,0 +1,116 @@
+{
+ "images" : [
+ {
+ "filename" : "iPhone-Notification-20@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-Notification-20@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-29@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-29@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-App-60@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPhone-App-60@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPad-Notification-20@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Notification-20@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Settings-29@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Settings-29@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Pro-83.5@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "83.5x83.5"
+ },
+ {
+ "filename" : "AppIconHorrible.png",
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Notification-20@1x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Notification-20@1x.png
new file mode 100644
index 0000000..7d0aca3
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Notification-20@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Notification-20@2x.png
new file mode 100644
index 0000000..6b89b41
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Pro-83.5@2x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Pro-83.5@2x.png
new file mode 100644
index 0000000..97ae2f9
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Pro-83.5@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Settings-29@1x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Settings-29@1x.png
new file mode 100644
index 0000000..4fa636c
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Settings-29@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Settings-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Settings-29@2x.png
new file mode 100644
index 0000000..8728d80
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Settings-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Spotlight-40@1x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Spotlight-40@1x.png
new file mode 100644
index 0000000..6b89b41
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Spotlight-40@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Spotlight-40@2x.png
new file mode 100644
index 0000000..ee7346c
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Spotlight-76@1x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Spotlight-76@1x.png
new file mode 100644
index 0000000..dc1faee
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Spotlight-76@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Spotlight-76@2x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Spotlight-76@2x.png
new file mode 100644
index 0000000..61af921
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPad-Spotlight-76@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-29@2x.png
new file mode 100644
index 0000000..032b270
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-29@3x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-29@3x.png
new file mode 100644
index 0000000..15a9068
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-29@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-App-60@2x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-App-60@2x.png
new file mode 100644
index 0000000..7176348
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-App-60@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-App-60@3x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-App-60@3x.png
new file mode 100644
index 0000000..36dc66b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-App-60@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-Notification-20@2x.png
new file mode 100644
index 0000000..40319a3
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-Notification-20@3x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-Notification-20@3x.png
new file mode 100644
index 0000000..e576677
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-Notification-20@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-Spotlight-40@2x.png
new file mode 100644
index 0000000..b6f37c8
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-Spotlight-40@3x.png b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-Spotlight-40@3x.png
new file mode 100644
index 0000000..7176348
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorrible.appiconset/iPhone-Spotlight-40@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorribleImage.imageset/AppIconHorrible.png b/FeelsWidget/Assets.xcassets/AppIconHorribleImage.imageset/AppIconHorrible.png
new file mode 100644
index 0000000..25340a9
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconHorribleImage.imageset/AppIconHorrible.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconHorribleImage.imageset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconHorribleImage.imageset/Contents.json
new file mode 100644
index 0000000..f60efc4
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AppIconHorribleImage.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "AppIconHorrible.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/AppIconImage.imageset/AppIcon.png b/FeelsWidget/Assets.xcassets/AppIconImage.imageset/AppIcon.png
new file mode 100644
index 0000000..f564135
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconImage.imageset/AppIcon.png differ
diff --git a/Shared/Assets.xcassets/Graphics/GreatGraphic.imageset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconImage.imageset/Contents.json
similarity index 87%
rename from Shared/Assets.xcassets/Graphics/GreatGraphic.imageset/Contents.json
rename to FeelsWidget/Assets.xcassets/AppIconImage.imageset/Contents.json
index ef72680..df110f9 100644
--- a/Shared/Assets.xcassets/Graphics/GreatGraphic.imageset/Contents.json
+++ b/FeelsWidget/Assets.xcassets/AppIconImage.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "GreatGraphic.png",
+ "filename" : "AppIcon.png",
"idiom" : "universal",
"scale" : "1x"
},
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/AppIconNeonGreen.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/AppIconNeonGreen.png
new file mode 100644
index 0000000..ce441c3
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/AppIconNeonGreen.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/Contents.json
new file mode 100644
index 0000000..1740e39
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/Contents.json
@@ -0,0 +1,116 @@
+{
+ "images" : [
+ {
+ "filename" : "iPhone-Notification-20@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-Notification-20@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-29@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-29@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-App-60@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPhone-App-60@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPad-Notification-20@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Notification-20@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Settings-29@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Settings-29@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Pro-83.5@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "83.5x83.5"
+ },
+ {
+ "filename" : "AppIconNeonGreen.png",
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Notification-20@1x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Notification-20@1x.png
new file mode 100644
index 0000000..7ae2532
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Notification-20@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Notification-20@2x.png
new file mode 100644
index 0000000..6aa8a07
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Pro-83.5@2x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Pro-83.5@2x.png
new file mode 100644
index 0000000..21dcd0b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Pro-83.5@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Settings-29@1x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Settings-29@1x.png
new file mode 100644
index 0000000..2a7a59e
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Settings-29@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Settings-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Settings-29@2x.png
new file mode 100644
index 0000000..22bb417
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Settings-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Spotlight-40@1x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Spotlight-40@1x.png
new file mode 100644
index 0000000..6aa8a07
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Spotlight-40@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Spotlight-40@2x.png
new file mode 100644
index 0000000..1ae1477
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Spotlight-76@1x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Spotlight-76@1x.png
new file mode 100644
index 0000000..41d7572
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Spotlight-76@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Spotlight-76@2x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Spotlight-76@2x.png
new file mode 100644
index 0000000..313a498
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPad-Spotlight-76@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-29@2x.png
new file mode 100644
index 0000000..22bb417
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-29@3x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-29@3x.png
new file mode 100644
index 0000000..61f801d
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-29@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-App-60@2x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-App-60@2x.png
new file mode 100644
index 0000000..156724a
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-App-60@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-App-60@3x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-App-60@3x.png
new file mode 100644
index 0000000..5dd37be
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-App-60@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-Notification-20@2x.png
new file mode 100644
index 0000000..6aa8a07
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-Notification-20@3x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-Notification-20@3x.png
new file mode 100644
index 0000000..0943b90
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-Notification-20@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-Spotlight-40@2x.png
new file mode 100644
index 0000000..1ae1477
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-Spotlight-40@3x.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-Spotlight-40@3x.png
new file mode 100644
index 0000000..156724a
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreen.appiconset/iPhone-Spotlight-40@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreenImage.imageset/AppIconNeonGreen.png b/FeelsWidget/Assets.xcassets/AppIconNeonGreenImage.imageset/AppIconNeonGreen.png
new file mode 100644
index 0000000..ce441c3
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconNeonGreenImage.imageset/AppIconNeonGreen.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconNeonGreenImage.imageset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconNeonGreenImage.imageset/Contents.json
new file mode 100644
index 0000000..523210b
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AppIconNeonGreenImage.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "AppIconNeonGreen.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/AppIconPink.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/AppIconPink.png
new file mode 100644
index 0000000..de02b11
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/AppIconPink.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/Contents.json
new file mode 100644
index 0000000..a1c2777
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/Contents.json
@@ -0,0 +1,116 @@
+{
+ "images" : [
+ {
+ "filename" : "iPhone-Notification-20@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-Notification-20@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-29@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-29@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-App-60@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPhone-App-60@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPad-Notification-20@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Notification-20@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Settings-29@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Settings-29@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Pro-83.5@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "83.5x83.5"
+ },
+ {
+ "filename" : "AppIconPink.png",
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Notification-20@1x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Notification-20@1x.png
new file mode 100644
index 0000000..2e961df
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Notification-20@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Notification-20@2x.png
new file mode 100644
index 0000000..068b338
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Pro-83.5@2x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Pro-83.5@2x.png
new file mode 100644
index 0000000..20886a0
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Pro-83.5@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Settings-29@1x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Settings-29@1x.png
new file mode 100644
index 0000000..976c4b4
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Settings-29@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Settings-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Settings-29@2x.png
new file mode 100644
index 0000000..def5ce6
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Settings-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Spotlight-40@1x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Spotlight-40@1x.png
new file mode 100644
index 0000000..b6fe156
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Spotlight-40@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Spotlight-40@2x.png
new file mode 100644
index 0000000..7d1e7f6
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Spotlight-76@1x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Spotlight-76@1x.png
new file mode 100644
index 0000000..223d113
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Spotlight-76@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Spotlight-76@2x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Spotlight-76@2x.png
new file mode 100644
index 0000000..4cd2ecc
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPad-Spotlight-76@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-29@2x.png
new file mode 100644
index 0000000..81ea718
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-29@3x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-29@3x.png
new file mode 100644
index 0000000..a15cb70
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-29@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-App-60@2x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-App-60@2x.png
new file mode 100644
index 0000000..a3376ae
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-App-60@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-App-60@3x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-App-60@3x.png
new file mode 100644
index 0000000..f6c411d
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-App-60@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-Notification-20@2x.png
new file mode 100644
index 0000000..068b338
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-Notification-20@3x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-Notification-20@3x.png
new file mode 100644
index 0000000..d8c79e0
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-Notification-20@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-Spotlight-40@2x.png
new file mode 100644
index 0000000..fe7f8ce
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-Spotlight-40@3x.png b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-Spotlight-40@3x.png
new file mode 100644
index 0000000..a3376ae
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPink.appiconset/iPhone-Spotlight-40@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPinkImage.imageset/AppIconPink.png b/FeelsWidget/Assets.xcassets/AppIconPinkImage.imageset/AppIconPink.png
new file mode 100644
index 0000000..de02b11
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPinkImage.imageset/AppIconPink.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPinkImage.imageset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconPinkImage.imageset/Contents.json
new file mode 100644
index 0000000..5d5c281
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AppIconPinkImage.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "AppIconPink.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/AppIconPurple.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/AppIconPurple.png
new file mode 100644
index 0000000..b8e5a59
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/AppIconPurple.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/Contents.json
new file mode 100644
index 0000000..d11fbe5
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/Contents.json
@@ -0,0 +1,116 @@
+{
+ "images" : [
+ {
+ "filename" : "iPhone-Notification-20@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-Notification-20@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPhone-29@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-29@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-Spotlight-40@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPhone-App-60@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPhone-App-60@3x.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iPad-Notification-20@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Notification-20@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "iPad-Settings-29@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Settings-29@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-40@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@1x.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Spotlight-76@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "iPad-Pro-83.5@2x.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "83.5x83.5"
+ },
+ {
+ "filename" : "AppIconPurple.png",
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Notification-20@1x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Notification-20@1x.png
new file mode 100644
index 0000000..6476abf
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Notification-20@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Notification-20@2x.png
new file mode 100644
index 0000000..8769e24
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Pro-83.5@2x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Pro-83.5@2x.png
new file mode 100644
index 0000000..e52cf9b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Pro-83.5@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Settings-29@1x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Settings-29@1x.png
new file mode 100644
index 0000000..e30d17a
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Settings-29@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Settings-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Settings-29@2x.png
new file mode 100644
index 0000000..1ad0ad6
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Settings-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Spotlight-40@1x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Spotlight-40@1x.png
new file mode 100644
index 0000000..8769e24
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Spotlight-40@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Spotlight-40@2x.png
new file mode 100644
index 0000000..12e06d0
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Spotlight-76@1x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Spotlight-76@1x.png
new file mode 100644
index 0000000..e14adf1
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Spotlight-76@1x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Spotlight-76@2x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Spotlight-76@2x.png
new file mode 100644
index 0000000..03ef10c
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPad-Spotlight-76@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-29@2x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-29@2x.png
new file mode 100644
index 0000000..15e931b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-29@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-29@3x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-29@3x.png
new file mode 100644
index 0000000..875ac4b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-29@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-App-60@2x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-App-60@2x.png
new file mode 100644
index 0000000..32ef805
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-App-60@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-App-60@3x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-App-60@3x.png
new file mode 100644
index 0000000..e6e1bbf
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-App-60@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-Notification-20@2x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-Notification-20@2x.png
new file mode 100644
index 0000000..ad009c9
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-Notification-20@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-Notification-20@3x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-Notification-20@3x.png
new file mode 100644
index 0000000..1f8843d
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-Notification-20@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-Spotlight-40@2x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-Spotlight-40@2x.png
new file mode 100644
index 0000000..73893bc
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-Spotlight-40@2x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-Spotlight-40@3x.png b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-Spotlight-40@3x.png
new file mode 100644
index 0000000..32ef805
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurple.appiconset/iPhone-Spotlight-40@3x.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurpleImage.imageset/AppIconPurple.png b/FeelsWidget/Assets.xcassets/AppIconPurpleImage.imageset/AppIconPurple.png
new file mode 100644
index 0000000..b8e5a59
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/AppIconPurpleImage.imageset/AppIconPurple.png differ
diff --git a/FeelsWidget/Assets.xcassets/AppIconPurpleImage.imageset/Contents.json b/FeelsWidget/Assets.xcassets/AppIconPurpleImage.imageset/Contents.json
new file mode 100644
index 0000000..03d52c8
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/AppIconPurpleImage.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "AppIconPurple.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/Contents.json
new file mode 100644
index 0000000..6e96565
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/Contents.json
@@ -0,0 +1,9 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "provides-namespace" : true
+ }
+}
diff --git a/Shared/Assets.xcassets/custom_icon/futbol-regular.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/android-brands.imageset/Contents.json
similarity index 89%
rename from Shared/Assets.xcassets/custom_icon/futbol-regular.imageset/Contents.json
rename to FeelsWidget/Assets.xcassets/custom_icon/android-brands.imageset/Contents.json
index a81095f..2405215 100644
--- a/Shared/Assets.xcassets/custom_icon/futbol-regular.imageset/Contents.json
+++ b/FeelsWidget/Assets.xcassets/custom_icon/android-brands.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "futbol-regular.png",
+ "filename" : "android-brands.png",
"idiom" : "universal",
"scale" : "1x"
},
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/android-brands.imageset/android-brands.png b/FeelsWidget/Assets.xcassets/custom_icon/android-brands.imageset/android-brands.png
new file mode 100644
index 0000000..5bb9fa5
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/android-brands.imageset/android-brands.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/skull-solid 2.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/apple-brands.imageset/Contents.json
similarity index 89%
rename from Shared/Assets.xcassets/custom_icon/skull-solid 2.imageset/Contents.json
rename to FeelsWidget/Assets.xcassets/custom_icon/apple-brands.imageset/Contents.json
index 0ddbaed..1f26f49 100644
--- a/Shared/Assets.xcassets/custom_icon/skull-solid 2.imageset/Contents.json
+++ b/FeelsWidget/Assets.xcassets/custom_icon/apple-brands.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "skull-solid 2.png",
+ "filename" : "apple-brands.png",
"idiom" : "universal",
"scale" : "1x"
},
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/apple-brands.imageset/apple-brands.png b/FeelsWidget/Assets.xcassets/custom_icon/apple-brands.imageset/apple-brands.png
new file mode 100644
index 0000000..ab2d2a6
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/apple-brands.imageset/apple-brands.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/arrow-up-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/arrow-up-solid.imageset/Contents.json
new file mode 100644
index 0000000..972d1eb
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/arrow-up-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "arrow-up-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/arrow-up-solid.imageset/arrow-up-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/arrow-up-solid.imageset/arrow-up-solid.png
new file mode 100644
index 0000000..d063daf
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/arrow-up-solid.imageset/arrow-up-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/times-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/baby-solid.imageset/Contents.json
similarity index 89%
rename from Shared/Assets.xcassets/custom_icon/times-solid.imageset/Contents.json
rename to FeelsWidget/Assets.xcassets/custom_icon/baby-solid.imageset/Contents.json
index b4f53c9..124563f 100644
--- a/Shared/Assets.xcassets/custom_icon/times-solid.imageset/Contents.json
+++ b/FeelsWidget/Assets.xcassets/custom_icon/baby-solid.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "times-solid.png",
+ "filename" : "baby-solid.png",
"idiom" : "universal",
"scale" : "1x"
},
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/baby-solid.imageset/baby-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/baby-solid.imageset/baby-solid.png
new file mode 100644
index 0000000..74a1767
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/baby-solid.imageset/baby-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/x-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/ban-solid.imageset/Contents.json
similarity index 90%
rename from Shared/Assets.xcassets/custom_icon/x-solid.imageset/Contents.json
rename to FeelsWidget/Assets.xcassets/custom_icon/ban-solid.imageset/Contents.json
index ea63644..cea75fd 100644
--- a/Shared/Assets.xcassets/custom_icon/x-solid.imageset/Contents.json
+++ b/FeelsWidget/Assets.xcassets/custom_icon/ban-solid.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "x-solid.png",
+ "filename" : "ban-solid.png",
"idiom" : "universal",
"scale" : "1x"
},
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/ban-solid.imageset/ban-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/ban-solid.imageset/ban-solid.png
new file mode 100644
index 0000000..6763140
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/ban-solid.imageset/ban-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/baseball-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/baseball-solid.imageset/Contents.json
new file mode 100644
index 0000000..4d44722
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/baseball-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "baseball-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/baseball-solid.imageset/baseball-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/baseball-solid.imageset/baseball-solid.png
new file mode 100644
index 0000000..64179a9
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/baseball-solid.imageset/baseball-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/battery-empty-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/battery-empty-solid.imageset/Contents.json
new file mode 100644
index 0000000..ae1ffdf
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/battery-empty-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "battery-empty-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/battery-empty-solid.imageset/battery-empty-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/battery-empty-solid.imageset/battery-empty-solid.png
new file mode 100644
index 0000000..a51dbe3
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/battery-empty-solid.imageset/battery-empty-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/arrow-up-1-9-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/battery-full-solid.imageset/Contents.json
similarity index 88%
rename from Shared/Assets.xcassets/custom_icon/arrow-up-1-9-solid.imageset/Contents.json
rename to FeelsWidget/Assets.xcassets/custom_icon/battery-full-solid.imageset/Contents.json
index 44517a2..2e39e06 100644
--- a/Shared/Assets.xcassets/custom_icon/arrow-up-1-9-solid.imageset/Contents.json
+++ b/FeelsWidget/Assets.xcassets/custom_icon/battery-full-solid.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "arrow-up-1-9-solid.png",
+ "filename" : "battery-full-solid.png",
"idiom" : "universal",
"scale" : "1x"
},
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/battery-full-solid.imageset/battery-full-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/battery-full-solid.imageset/battery-full-solid.png
new file mode 100644
index 0000000..f2fefe4
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/battery-full-solid.imageset/battery-full-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/battery-half-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/battery-half-solid.imageset/Contents.json
new file mode 100644
index 0000000..86461b6
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/battery-half-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "battery-half-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/battery-half-solid.imageset/battery-half-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/battery-half-solid.imageset/battery-half-solid.png
new file mode 100644
index 0000000..d0699b7
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/battery-half-solid.imageset/battery-half-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/Contents.json
new file mode 100644
index 0000000..f1af99b
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "battery-quarter-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/battery-quarter-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/battery-quarter-solid.png
new file mode 100644
index 0000000..d1431ab
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/battery-quarter-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/Contents.json
new file mode 100644
index 0000000..cd2499a
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "battery-three-quarters-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/battery-three-quarters-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/battery-three-quarters-solid.png
new file mode 100644
index 0000000..048cde2
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/battery-three-quarters-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/bitcoin-brands.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/bitcoin-brands.imageset/Contents.json
new file mode 100644
index 0000000..5896427
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/bitcoin-brands.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "bitcoin-brands.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/bitcoin-brands.imageset/bitcoin-brands.png b/FeelsWidget/Assets.xcassets/custom_icon/bitcoin-brands.imageset/bitcoin-brands.png
new file mode 100644
index 0000000..b6244dd
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/bitcoin-brands.imageset/bitcoin-brands.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/Contents.json
new file mode 100644
index 0000000..04a9ad4
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "bolt-lightning-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/bolt-lightning-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/bolt-lightning-solid.png
new file mode 100644
index 0000000..f8e8756
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/bolt-lightning-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/bolt-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/bolt-solid.imageset/Contents.json
new file mode 100644
index 0000000..dc8c23a
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/bolt-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "bolt-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/bolt-solid.imageset/bolt-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/bolt-solid.imageset/bolt-solid.png
new file mode 100644
index 0000000..6352f24
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/bolt-solid.imageset/bolt-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/bomb-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/bomb-solid.imageset/Contents.json
new file mode 100644
index 0000000..ce0954d
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/bomb-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "bomb-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/bomb-solid.imageset/bomb-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/bomb-solid.imageset/bomb-solid.png
new file mode 100644
index 0000000..fcec06f
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/bomb-solid.imageset/bomb-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/btc-brands.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/btc-brands.imageset/Contents.json
new file mode 100644
index 0000000..8310d2a
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/btc-brands.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "btc-brands.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/btc-brands.imageset/btc-brands.png b/FeelsWidget/Assets.xcassets/custom_icon/btc-brands.imageset/btc-brands.png
new file mode 100644
index 0000000..ae0cdbf
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/btc-brands.imageset/btc-brands.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/bullhorn-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/bullhorn-solid.imageset/Contents.json
new file mode 100644
index 0000000..06fb10c
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/bullhorn-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "bullhorn-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/bullhorn-solid.imageset/bullhorn-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/bullhorn-solid.imageset/bullhorn-solid.png
new file mode 100644
index 0000000..c7f0667
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/bullhorn-solid.imageset/bullhorn-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/bullseye-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/bullseye-solid.imageset/Contents.json
new file mode 100644
index 0000000..23e0fe4
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/bullseye-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "bullseye-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/bullseye-solid.imageset/bullseye-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/bullseye-solid.imageset/bullseye-solid.png
new file mode 100644
index 0000000..878bff8
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/bullseye-solid.imageset/bullseye-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/burger-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/burger-solid.imageset/Contents.json
new file mode 100644
index 0000000..80b28b5
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/burger-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "burger-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/burger-solid.imageset/burger-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/burger-solid.imageset/burger-solid.png
new file mode 100644
index 0000000..5528b51
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/burger-solid.imageset/burger-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/cannabis-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/cannabis-solid.imageset/Contents.json
new file mode 100644
index 0000000..5f38dc3
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/cannabis-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "cannabis-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/cannabis-solid.imageset/cannabis-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/cannabis-solid.imageset/cannabis-solid.png
new file mode 100644
index 0000000..6be2be6
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/cannabis-solid.imageset/cannabis-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/caret-down-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/caret-down-solid.imageset/Contents.json
new file mode 100644
index 0000000..37b5371
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/caret-down-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "caret-down-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/caret-down-solid.imageset/caret-down-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/caret-down-solid.imageset/caret-down-solid.png
new file mode 100644
index 0000000..62d098d
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/caret-down-solid.imageset/caret-down-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/caret-left-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/caret-left-solid.imageset/Contents.json
new file mode 100644
index 0000000..d431263
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/caret-left-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "caret-left-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/caret-left-solid.imageset/caret-left-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/caret-left-solid.imageset/caret-left-solid.png
new file mode 100644
index 0000000..2cfe572
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/caret-left-solid.imageset/caret-left-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/life-ring-regular.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/caret-right-solid.imageset/Contents.json
similarity index 88%
rename from Shared/Assets.xcassets/custom_icon/life-ring-regular.imageset/Contents.json
rename to FeelsWidget/Assets.xcassets/custom_icon/caret-right-solid.imageset/Contents.json
index 7109e83..fecc611 100644
--- a/Shared/Assets.xcassets/custom_icon/life-ring-regular.imageset/Contents.json
+++ b/FeelsWidget/Assets.xcassets/custom_icon/caret-right-solid.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "life-ring-regular.png",
+ "filename" : "caret-right-solid.png",
"idiom" : "universal",
"scale" : "1x"
},
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/caret-right-solid.imageset/caret-right-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/caret-right-solid.imageset/caret-right-solid.png
new file mode 100644
index 0000000..690a7b5
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/caret-right-solid.imageset/caret-right-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/caret-up-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/caret-up-solid.imageset/Contents.json
new file mode 100644
index 0000000..3d48da8
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/caret-up-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "caret-up-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/caret-up-solid.imageset/caret-up-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/caret-up-solid.imageset/caret-up-solid.png
new file mode 100644
index 0000000..cc26759
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/caret-up-solid.imageset/caret-up-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/chess-king-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/chess-king-solid.imageset/Contents.json
new file mode 100644
index 0000000..22b37be
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/chess-king-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "chess-king-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/chess-king-solid.imageset/chess-king-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/chess-king-solid.imageset/chess-king-solid.png
new file mode 100644
index 0000000..f5126a7
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/chess-king-solid.imageset/chess-king-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/chess-queen-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/chess-queen-solid.imageset/Contents.json
new file mode 100644
index 0000000..171aa4e
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/chess-queen-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "chess-queen-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/chess-queen-solid.imageset/chess-queen-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/chess-queen-solid.imageset/chess-queen-solid.png
new file mode 100644
index 0000000..0c47678
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/chess-queen-solid.imageset/chess-queen-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/Contents.json
new file mode 100644
index 0000000..c40f4cf
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "circle-xmark-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/circle-xmark-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/circle-xmark-solid.png
new file mode 100644
index 0000000..2301b11
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/circle-xmark-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/clock-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/clock-solid.imageset/Contents.json
new file mode 100644
index 0000000..13a73bc
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/clock-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "clock-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/clock-solid.imageset/clock-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/clock-solid.imageset/clock-solid.png
new file mode 100644
index 0000000..4247be2
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/clock-solid.imageset/clock-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/code-compare-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/code-compare-solid.imageset/Contents.json
new file mode 100644
index 0000000..ea02326
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/code-compare-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "code-compare-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/code-compare-solid.imageset/code-compare-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/code-compare-solid.imageset/code-compare-solid.png
new file mode 100644
index 0000000..69e9860
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/code-compare-solid.imageset/code-compare-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/code-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/code-solid.imageset/Contents.json
new file mode 100644
index 0000000..a55156a
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/code-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "code-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/code-solid.imageset/code-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/code-solid.imageset/code-solid.png
new file mode 100644
index 0000000..efdb8b2
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/code-solid.imageset/code-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/cross-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/cross-solid.imageset/Contents.json
new file mode 100644
index 0000000..82b6c99
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/cross-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "cross-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/cross-solid.imageset/cross-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/cross-solid.imageset/cross-solid.png
new file mode 100644
index 0000000..b0b3a41
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/cross-solid.imageset/cross-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/crosshairs-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/crosshairs-solid.imageset/Contents.json
new file mode 100644
index 0000000..2a7e31c
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/crosshairs-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "crosshairs-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/crosshairs-solid.imageset/crosshairs-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/crosshairs-solid.imageset/crosshairs-solid.png
new file mode 100644
index 0000000..df39497
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/crosshairs-solid.imageset/crosshairs-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/crown-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/crown-solid.imageset/Contents.json
new file mode 100644
index 0000000..cd842f1
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/crown-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "crown-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/crown-solid.imageset/crown-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/crown-solid.imageset/crown-solid.png
new file mode 100644
index 0000000..63c1588
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/crown-solid.imageset/crown-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/Contents.json
new file mode 100644
index 0000000..f690980
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "dharmachakra-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/dharmachakra-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/dharmachakra-solid.png
new file mode 100644
index 0000000..72cec6a
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/dharmachakra-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/dice-d20-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/dice-d20-solid.imageset/Contents.json
new file mode 100644
index 0000000..9b10d53
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/dice-d20-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "dice-d20-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/dice-d20-solid.imageset/dice-d20-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/dice-d20-solid.imageset/dice-d20-solid.png
new file mode 100644
index 0000000..6f69604
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/dice-d20-solid.imageset/dice-d20-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/dice-one-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/dice-one-solid.imageset/Contents.json
new file mode 100644
index 0000000..c819401
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/dice-one-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "dice-one-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/dice-one-solid.imageset/dice-one-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/dice-one-solid.imageset/dice-one-solid.png
new file mode 100644
index 0000000..e77d359
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/dice-one-solid.imageset/dice-one-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/divide-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/divide-solid.imageset/Contents.json
new file mode 100644
index 0000000..46c47a5
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/divide-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "divide-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/divide-solid.imageset/divide-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/divide-solid.imageset/divide-solid.png
new file mode 100644
index 0000000..67562d7
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/divide-solid.imageset/divide-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/Contents.json
new file mode 100644
index 0000000..373575b
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "dollar-sign-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/dollar-sign-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/dollar-sign-solid.png
new file mode 100644
index 0000000..907cc09
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/dollar-sign-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/dragon-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/dragon-solid.imageset/Contents.json
new file mode 100644
index 0000000..1dd72ee
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/dragon-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "dragon-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/dragon-solid.imageset/dragon-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/dragon-solid.imageset/dragon-solid.png
new file mode 100644
index 0000000..0347b20
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/dragon-solid.imageset/dragon-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/egg-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/egg-solid.imageset/Contents.json
new file mode 100644
index 0000000..d9a06fa
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/egg-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "egg-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/egg-solid.imageset/egg-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/egg-solid.imageset/egg-solid.png
new file mode 100644
index 0000000..f4d08cc
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/egg-solid.imageset/egg-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/empire-brands.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/empire-brands.imageset/Contents.json
new file mode 100644
index 0000000..4386ef2
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/empire-brands.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "empire-brands.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/empire-brands.imageset/empire-brands.png b/FeelsWidget/Assets.xcassets/custom_icon/empire-brands.imageset/empire-brands.png
new file mode 100644
index 0000000..5703c62
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/empire-brands.imageset/empire-brands.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/exclamation-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/exclamation-solid.imageset/Contents.json
new file mode 100644
index 0000000..f9215ea
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/exclamation-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "exclamation-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/exclamation-solid.imageset/exclamation-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/exclamation-solid.imageset/exclamation-solid.png
new file mode 100644
index 0000000..91dc8fd
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/exclamation-solid.imageset/exclamation-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/eye-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/eye-solid.imageset/Contents.json
new file mode 100644
index 0000000..7f5011c
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/eye-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "eye-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/eye-solid.imageset/eye-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/eye-solid.imageset/eye-solid.png
new file mode 100644
index 0000000..829214e
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/eye-solid.imageset/eye-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/fan-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/fan-solid.imageset/Contents.json
new file mode 100644
index 0000000..4cbe0b3
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/fan-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "fan-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/fan-solid.imageset/fan-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/fan-solid.imageset/fan-solid.png
new file mode 100644
index 0000000..82ba874
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/fan-solid.imageset/fan-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/fire-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/fire-solid.imageset/Contents.json
new file mode 100644
index 0000000..baffe46
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/fire-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "fire-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/fire-solid.imageset/fire-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/fire-solid.imageset/fire-solid.png
new file mode 100644
index 0000000..3954b16
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/fire-solid.imageset/fire-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/Contents.json
new file mode 100644
index 0000000..0ef0534
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "floppy-disk-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/floppy-disk-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/floppy-disk-solid.png
new file mode 100644
index 0000000..24299aa
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/floppy-disk-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/fly-brands.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/fly-brands.imageset/Contents.json
new file mode 100644
index 0000000..1f490ef
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/fly-brands.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "fly-brands.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/fly-brands.imageset/fly-brands.png b/FeelsWidget/Assets.xcassets/custom_icon/fly-brands.imageset/fly-brands.png
new file mode 100644
index 0000000..f23614d
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/fly-brands.imageset/fly-brands.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/Contents.json
new file mode 100644
index 0000000..efd8ae1
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "fort-awesome-brands.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/fort-awesome-brands.png b/FeelsWidget/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/fort-awesome-brands.png
new file mode 100644
index 0000000..4710433
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/fort-awesome-brands.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/frown-regular.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/frown-regular.imageset/Contents.json
new file mode 100644
index 0000000..c386cbb
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/frown-regular.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "frown-regular.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/frown-regular.imageset/frown-regular.png b/FeelsWidget/Assets.xcassets/custom_icon/frown-regular.imageset/frown-regular.png
new file mode 100644
index 0000000..fd959e4
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/frown-regular.imageset/frown-regular.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/futbol-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/futbol-solid.imageset/Contents.json
new file mode 100644
index 0000000..8e1236a
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/futbol-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "futbol-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/futbol-solid.imageset/futbol-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/futbol-solid.imageset/futbol-solid.png
new file mode 100644
index 0000000..3d76740
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/futbol-solid.imageset/futbol-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/gem-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/gem-solid.imageset/Contents.json
new file mode 100644
index 0000000..08ddd08
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/gem-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "gem-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/gem-solid.imageset/gem-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/gem-solid.imageset/gem-solid.png
new file mode 100644
index 0000000..53417c5
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/gem-solid.imageset/gem-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/grin-regular.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/grin-regular.imageset/Contents.json
new file mode 100644
index 0000000..6bed8a8
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/grin-regular.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "grin-regular.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/grin-regular.imageset/grin-regular.png b/FeelsWidget/Assets.xcassets/custom_icon/grin-regular.imageset/grin-regular.png
new file mode 100644
index 0000000..181cc39
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/grin-regular.imageset/grin-regular.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/heart-crack-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/heart-crack-solid.imageset/Contents.json
new file mode 100644
index 0000000..aabd266
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/heart-crack-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "heart-crack-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/heart-crack-solid.imageset/heart-crack-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/heart-crack-solid.imageset/heart-crack-solid.png
new file mode 100644
index 0000000..3c7b53a
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/heart-crack-solid.imageset/heart-crack-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/heart-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/heart-solid.imageset/Contents.json
new file mode 100644
index 0000000..929aca8
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/heart-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "heart-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/heart-solid.imageset/heart-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/heart-solid.imageset/heart-solid.png
new file mode 100644
index 0000000..70a0293
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/heart-solid.imageset/heart-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/hotjar-brands.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/hotjar-brands.imageset/Contents.json
new file mode 100644
index 0000000..77a5a12
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/hotjar-brands.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "hotjar-brands.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/hotjar-brands.imageset/hotjar-brands.png b/FeelsWidget/Assets.xcassets/custom_icon/hotjar-brands.imageset/hotjar-brands.png
new file mode 100644
index 0000000..712779f
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/hotjar-brands.imageset/hotjar-brands.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/Contents.json
new file mode 100644
index 0000000..364c506
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "jet-fighter-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/jet-fighter-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/jet-fighter-solid.png
new file mode 100644
index 0000000..43e7f40
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/jet-fighter-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/lemon-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/lemon-solid.imageset/Contents.json
new file mode 100644
index 0000000..9af8145
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/lemon-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "lemon-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/lemon-solid.imageset/lemon-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/lemon-solid.imageset/lemon-solid.png
new file mode 100644
index 0000000..1e368bc
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/lemon-solid.imageset/lemon-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/frown-regular 2.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/life-ring-solid.imageset/Contents.json
similarity index 89%
rename from Shared/Assets.xcassets/custom_icon/frown-regular 2.imageset/Contents.json
rename to FeelsWidget/Assets.xcassets/custom_icon/life-ring-solid.imageset/Contents.json
index 351d91f..5b1162d 100644
--- a/Shared/Assets.xcassets/custom_icon/frown-regular 2.imageset/Contents.json
+++ b/FeelsWidget/Assets.xcassets/custom_icon/life-ring-solid.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "frown-regular 2.png",
+ "filename" : "life-ring-solid.png",
"idiom" : "universal",
"scale" : "1x"
},
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/life-ring-solid.imageset/life-ring-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/life-ring-solid.imageset/life-ring-solid.png
new file mode 100644
index 0000000..18d8d9a
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/life-ring-solid.imageset/life-ring-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/lightbulb-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/lightbulb-solid.imageset/Contents.json
new file mode 100644
index 0000000..0844e22
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/lightbulb-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "lightbulb-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/lightbulb-solid.imageset/lightbulb-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/lightbulb-solid.imageset/lightbulb-solid.png
new file mode 100644
index 0000000..e651fea
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/lightbulb-solid.imageset/lightbulb-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/Contents.json
new file mode 100644
index 0000000..6ab250a
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "location-crosshairs-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/location-crosshairs-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/location-crosshairs-solid.png
new file mode 100644
index 0000000..7a876cb
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/location-crosshairs-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/meh-regular.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/meh-regular.imageset/Contents.json
new file mode 100644
index 0000000..c3534e4
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/meh-regular.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "meh-regular.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/meh-regular.imageset/meh-regular.png b/FeelsWidget/Assets.xcassets/custom_icon/meh-regular.imageset/meh-regular.png
new file mode 100644
index 0000000..3be0f95
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/meh-regular.imageset/meh-regular.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/meteor-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/meteor-solid.imageset/Contents.json
new file mode 100644
index 0000000..a70409d
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/meteor-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "meteor-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/meteor-solid.imageset/meteor-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/meteor-solid.imageset/meteor-solid.png
new file mode 100644
index 0000000..48d5f26
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/meteor-solid.imageset/meteor-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/microphone-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/microphone-solid.imageset/Contents.json
new file mode 100644
index 0000000..7e7e54d
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/microphone-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "microphone-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/microphone-solid.imageset/microphone-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/microphone-solid.imageset/microphone-solid.png
new file mode 100644
index 0000000..606669c
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/microphone-solid.imageset/microphone-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/moon-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/moon-solid.imageset/Contents.json
new file mode 100644
index 0000000..ecfeab2
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/moon-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "moon-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/moon-solid.imageset/moon-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/moon-solid.imageset/moon-solid.png
new file mode 100644
index 0000000..d66157b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/moon-solid.imageset/moon-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/peace-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/peace-solid.imageset/Contents.json
new file mode 100644
index 0000000..e9ae28f
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/peace-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "peace-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/peace-solid.imageset/peace-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/peace-solid.imageset/peace-solid.png
new file mode 100644
index 0000000..e0f9928
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/peace-solid.imageset/peace-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/Contents.json
new file mode 100644
index 0000000..2db52e9
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "pizza-slice-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/pizza-slice-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/pizza-slice-solid.png
new file mode 100644
index 0000000..8a4758a
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/pizza-slice-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/poo-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/poo-solid.imageset/Contents.json
new file mode 100644
index 0000000..4d89cb7
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/poo-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "poo-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/poo-solid.imageset/poo-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/poo-solid.imageset/poo-solid.png
new file mode 100644
index 0000000..b6822bf
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/poo-solid.imageset/poo-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/poo-storm-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/poo-storm-solid.imageset/Contents.json
new file mode 100644
index 0000000..5e4b217
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/poo-storm-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "poo-storm-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/poo-storm-solid.imageset/poo-storm-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/poo-storm-solid.imageset/poo-storm-solid.png
new file mode 100644
index 0000000..f523e10
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/poo-storm-solid.imageset/poo-storm-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/rainbow-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/rainbow-solid.imageset/Contents.json
new file mode 100644
index 0000000..8734ddf
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/rainbow-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "rainbow-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/rainbow-solid.imageset/rainbow-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/rainbow-solid.imageset/rainbow-solid.png
new file mode 100644
index 0000000..3f079f9
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/rainbow-solid.imageset/rainbow-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/sad-tear-regular.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/sad-tear-regular.imageset/Contents.json
new file mode 100644
index 0000000..14e62e5
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/sad-tear-regular.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "sad-tear-regular.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/sad-tear-regular.imageset/sad-tear-regular.png b/FeelsWidget/Assets.xcassets/custom_icon/sad-tear-regular.imageset/sad-tear-regular.png
new file mode 100644
index 0000000..822d76d
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/sad-tear-regular.imageset/sad-tear-regular.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/Contents.json
new file mode 100644
index 0000000..6898896
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "shuttle-space-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/shuttle-space-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/shuttle-space-solid.png
new file mode 100644
index 0000000..e5bfb71
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/shuttle-space-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/Contents.json
new file mode 100644
index 0000000..76ebdd1
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "skull-crossbones-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/skull-crossbones-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/skull-crossbones-solid.png
new file mode 100644
index 0000000..99a58ff
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/skull-crossbones-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/skull-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/skull-solid.imageset/Contents.json
new file mode 100644
index 0000000..1b0e2b0
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/skull-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "skull-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/skull-solid.imageset/skull-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/skull-solid.imageset/skull-solid.png
new file mode 100644
index 0000000..705b611
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/skull-solid.imageset/skull-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/smile-beam-regular.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/smile-beam-regular.imageset/Contents.json
new file mode 100644
index 0000000..fc7ace3
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/smile-beam-regular.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "smile-beam-regular.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/smile-beam-regular.imageset/smile-beam-regular.png b/FeelsWidget/Assets.xcassets/custom_icon/smile-beam-regular.imageset/smile-beam-regular.png
new file mode 100644
index 0000000..59873c1
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/smile-beam-regular.imageset/smile-beam-regular.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/star-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/star-solid.imageset/Contents.json
new file mode 100644
index 0000000..85f1d54
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/star-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "star-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/star-solid.imageset/star-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/star-solid.imageset/star-solid.png
new file mode 100644
index 0000000..0d538eb
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/star-solid.imageset/star-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/virus-covid-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/custom_icon/virus-covid-solid.imageset/Contents.json
new file mode 100644
index 0000000..07735e1
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/custom_icon/virus-covid-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "virus-covid-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/custom_icon/virus-covid-solid.imageset/virus-covid-solid.png b/FeelsWidget/Assets.xcassets/custom_icon/virus-covid-solid.imageset/virus-covid-solid.png
new file mode 100644
index 0000000..99e1748
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/custom_icon/virus-covid-solid.imageset/virus-covid-solid.png differ
diff --git a/Shared/Assets.xcassets/Graphics/Contents.json b/FeelsWidget/Assets.xcassets/default_image/Contents.json
similarity index 100%
rename from Shared/Assets.xcassets/Graphics/Contents.json
rename to FeelsWidget/Assets.xcassets/default_image/Contents.json
diff --git a/FeelsWidget/Assets.xcassets/default_image/average.imageset/Contents.json b/FeelsWidget/Assets.xcassets/default_image/average.imageset/Contents.json
new file mode 100644
index 0000000..c3534e4
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/default_image/average.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "meh-regular.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/default_image/average.imageset/meh-regular.png b/FeelsWidget/Assets.xcassets/default_image/average.imageset/meh-regular.png
new file mode 100644
index 0000000..6a59218
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/default_image/average.imageset/meh-regular.png differ
diff --git a/FeelsWidget/Assets.xcassets/default_image/bad.imageset/Contents.json b/FeelsWidget/Assets.xcassets/default_image/bad.imageset/Contents.json
new file mode 100644
index 0000000..c386cbb
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/default_image/bad.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "frown-regular.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/default_image/bad.imageset/frown-regular.png b/FeelsWidget/Assets.xcassets/default_image/bad.imageset/frown-regular.png
new file mode 100644
index 0000000..c85a63b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/default_image/bad.imageset/frown-regular.png differ
diff --git a/FeelsWidget/Assets.xcassets/default_image/good.imageset/Contents.json b/FeelsWidget/Assets.xcassets/default_image/good.imageset/Contents.json
new file mode 100644
index 0000000..6bed8a8
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/default_image/good.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "grin-regular.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/default_image/good.imageset/grin-regular.png b/FeelsWidget/Assets.xcassets/default_image/good.imageset/grin-regular.png
new file mode 100644
index 0000000..181cc39
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/default_image/good.imageset/grin-regular.png differ
diff --git a/FeelsWidget/Assets.xcassets/default_image/great.imageset/Contents.json b/FeelsWidget/Assets.xcassets/default_image/great.imageset/Contents.json
new file mode 100644
index 0000000..fc7ace3
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/default_image/great.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "smile-beam-regular.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/default_image/great.imageset/smile-beam-regular.png b/FeelsWidget/Assets.xcassets/default_image/great.imageset/smile-beam-regular.png
new file mode 100644
index 0000000..f445029
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/default_image/great.imageset/smile-beam-regular.png differ
diff --git a/FeelsWidget/Assets.xcassets/default_image/horrible.imageset/Contents.json b/FeelsWidget/Assets.xcassets/default_image/horrible.imageset/Contents.json
new file mode 100644
index 0000000..14e62e5
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/default_image/horrible.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "sad-tear-regular.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/default_image/horrible.imageset/sad-tear-regular.png b/FeelsWidget/Assets.xcassets/default_image/horrible.imageset/sad-tear-regular.png
new file mode 100644
index 0000000..1804bfa
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/default_image/horrible.imageset/sad-tear-regular.png differ
diff --git a/FeelsWidget/Assets.xcassets/default_image/missing.imageset/Contents.json b/FeelsWidget/Assets.xcassets/default_image/missing.imageset/Contents.json
new file mode 100644
index 0000000..29e51cc
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/default_image/missing.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "xmark-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/default_image/missing.imageset/xmark-solid.png b/FeelsWidget/Assets.xcassets/default_image/missing.imageset/xmark-solid.png
new file mode 100644
index 0000000..686a37b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/default_image/missing.imageset/xmark-solid.png differ
diff --git a/FeelsWidget/Assets.xcassets/default_image/xmark-solid.imageset/Contents.json b/FeelsWidget/Assets.xcassets/default_image/xmark-solid.imageset/Contents.json
new file mode 100644
index 0000000..29e51cc
--- /dev/null
+++ b/FeelsWidget/Assets.xcassets/default_image/xmark-solid.imageset/Contents.json
@@ -0,0 +1,24 @@
+{
+ "images" : [
+ {
+ "filename" : "xmark-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/FeelsWidget/Assets.xcassets/default_image/xmark-solid.imageset/xmark-solid.png b/FeelsWidget/Assets.xcassets/default_image/xmark-solid.imageset/xmark-solid.png
new file mode 100644
index 0000000..686a37b
Binary files /dev/null and b/FeelsWidget/Assets.xcassets/default_image/xmark-solid.imageset/xmark-solid.png differ
diff --git a/FeelsWidget/FeelsWidget.swift b/FeelsWidget/FeelsWidget.swift
index 507ab01..8458fa7 100644
--- a/FeelsWidget/FeelsWidget.swift
+++ b/FeelsWidget/FeelsWidget.swift
@@ -32,7 +32,7 @@ struct TimeLineCreator {
var timeLineView = [WatchTimelineView]()
var startDayOffset = 0
- if !ShowBasedOnVoteLogics.ableToVoteBasedOnCurentTime(voteDate: UserDefaultsStore.getOnboarding().date) {
+ if !ShowBasedOnVoteLogics.passedTodaysVotingUnlock(voteDate: UserDefaultsStore.getOnboarding().date) {
startDayOffset = 1
}
diff --git a/FeelsWidgetExtension.entitlements b/FeelsWidgetExtension.entitlements
index 657f901..63fe57e 100644
--- a/FeelsWidgetExtension.entitlements
+++ b/FeelsWidgetExtension.entitlements
@@ -6,7 +6,7 @@
development
com.apple.developer.icloud-container-identifiers
- iCloud.com.88oak.ifeel
+ iCloud.com.88oakapps.ifeel
com.apple.developer.icloud-services
@@ -14,7 +14,7 @@
com.apple.security.application-groups
- group.com.88oak.ifeel
+ group.com.88oakapps.ifeel
diff --git a/FeelsWidgetExtensionDev.entitlements b/FeelsWidgetExtensionDev.entitlements
index 02fee9c..ff8e656 100644
--- a/FeelsWidgetExtensionDev.entitlements
+++ b/FeelsWidgetExtensionDev.entitlements
@@ -6,7 +6,7 @@
development
com.apple.developer.icloud-container-identifiers
- iCloud.com.88oak.ifeelDebug
+ iCloud.com.88oakapps.ifeelDebug
com.apple.developer.icloud-services
@@ -14,7 +14,7 @@
com.apple.security.application-groups
- group.com.88oak.ifeelDebug
+ group.com.88oakapps.ifeelDebug
diff --git a/Shared/AppDelegate.swift b/Shared/AppDelegate.swift
index b8453a8..4d00513 100644
--- a/Shared/AppDelegate.swift
+++ b/Shared/AppDelegate.swift
@@ -14,7 +14,7 @@ import Firebase
class AppDelegate: NSObject, UIApplicationDelegate {
private let savedOnboardingData = UserDefaultsStore.getOnboarding()
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
// PersistenceController.shared.clearDB()
@@ -58,16 +58,7 @@ extension AppDelegate: UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
if let action = LocalNotification.ActionType(rawValue: response.actionIdentifier) {
- var date: Date
-
- switch savedOnboardingData.inputDay {
- case .Today:
- date = Date()
- case .Previous:
- date = Calendar.current.date(byAdding: .day, value: -1, to: Date())!
- }
-
-
+ let date = ShowBasedOnVoteLogics.getCurrentVotingDate(onboardingData: savedOnboardingData)
switch action {
case .horrible:
PersistenceController.shared.add(mood: .horrible, forDate: date, entryType: .notification)
diff --git a/Shared/Assets.xcassets/Graphics/AverageGraphic.imageset/AverageGraphic.png b/Shared/Assets.xcassets/Graphics/AverageGraphic.imageset/AverageGraphic.png
deleted file mode 100644
index e17b2d2..0000000
Binary files a/Shared/Assets.xcassets/Graphics/AverageGraphic.imageset/AverageGraphic.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/Graphics/BadGraphic.imageset/BadGraphic.png b/Shared/Assets.xcassets/Graphics/BadGraphic.imageset/BadGraphic.png
deleted file mode 100644
index 78c8f7a..0000000
Binary files a/Shared/Assets.xcassets/Graphics/BadGraphic.imageset/BadGraphic.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/Graphics/GoodGraphic.imageset/GoodGraphic.png b/Shared/Assets.xcassets/Graphics/GoodGraphic.imageset/GoodGraphic.png
deleted file mode 100644
index 7966bf5..0000000
Binary files a/Shared/Assets.xcassets/Graphics/GoodGraphic.imageset/GoodGraphic.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/Graphics/GreatGraphic.imageset/GreatGraphic.png b/Shared/Assets.xcassets/Graphics/GreatGraphic.imageset/GreatGraphic.png
deleted file mode 100644
index 928b1e2..0000000
Binary files a/Shared/Assets.xcassets/Graphics/GreatGraphic.imageset/GreatGraphic.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/Graphics/HorribleGraphic.imageset/Contents.json b/Shared/Assets.xcassets/Graphics/HorribleGraphic.imageset/Contents.json
deleted file mode 100644
index be59341..0000000
--- a/Shared/Assets.xcassets/Graphics/HorribleGraphic.imageset/Contents.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "images" : [
- {
- "filename" : "HorribleGraphic.png",
- "idiom" : "universal",
- "scale" : "1x"
- },
- {
- "idiom" : "universal",
- "scale" : "2x"
- },
- {
- "idiom" : "universal",
- "scale" : "3x"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/Shared/Assets.xcassets/Graphics/HorribleGraphic.imageset/HorribleGraphic.png b/Shared/Assets.xcassets/Graphics/HorribleGraphic.imageset/HorribleGraphic.png
deleted file mode 100644
index 72d1da5..0000000
Binary files a/Shared/Assets.xcassets/Graphics/HorribleGraphic.imageset/HorribleGraphic.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/Graphics/MissingGraphic.imageset/Contents.json b/Shared/Assets.xcassets/Graphics/MissingGraphic.imageset/Contents.json
deleted file mode 100644
index 8c0053c..0000000
--- a/Shared/Assets.xcassets/Graphics/MissingGraphic.imageset/Contents.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "images" : [
- {
- "filename" : "MissingGraphic.png",
- "idiom" : "universal",
- "scale" : "1x"
- },
- {
- "idiom" : "universal",
- "scale" : "2x"
- },
- {
- "idiom" : "universal",
- "scale" : "3x"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/Shared/Assets.xcassets/Graphics/MissingGraphic.imageset/MissingGraphic.png b/Shared/Assets.xcassets/Graphics/MissingGraphic.imageset/MissingGraphic.png
deleted file mode 100644
index 6945715..0000000
Binary files a/Shared/Assets.xcassets/Graphics/MissingGraphic.imageset/MissingGraphic.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/custom_icon/android-brands.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/android-brands.imageset/Contents.json
index 2405215..710215c 100644
--- a/Shared/Assets.xcassets/custom_icon/android-brands.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/android-brands.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "android-brands@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "android-brands@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/android-brands.imageset/android-brands.png b/Shared/Assets.xcassets/custom_icon/android-brands.imageset/android-brands.png
index 50f1f15..5bb9fa5 100644
Binary files a/Shared/Assets.xcassets/custom_icon/android-brands.imageset/android-brands.png and b/Shared/Assets.xcassets/custom_icon/android-brands.imageset/android-brands.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/android-brands.imageset/android-brands@2x.png b/Shared/Assets.xcassets/custom_icon/android-brands.imageset/android-brands@2x.png
new file mode 100644
index 0000000..36d9464
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/android-brands.imageset/android-brands@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/android-brands.imageset/android-brands@3x.png b/Shared/Assets.xcassets/custom_icon/android-brands.imageset/android-brands@3x.png
new file mode 100644
index 0000000..cbe823a
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/android-brands.imageset/android-brands@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/apple-brands.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/apple-brands.imageset/Contents.json
index 1f26f49..a54ee4b 100644
--- a/Shared/Assets.xcassets/custom_icon/apple-brands.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/apple-brands.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "apple-brands@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "apple-brands@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/apple-brands.imageset/apple-brands.png b/Shared/Assets.xcassets/custom_icon/apple-brands.imageset/apple-brands.png
index 432dfba..ab2d2a6 100644
Binary files a/Shared/Assets.xcassets/custom_icon/apple-brands.imageset/apple-brands.png and b/Shared/Assets.xcassets/custom_icon/apple-brands.imageset/apple-brands.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/apple-brands.imageset/apple-brands@2x.png b/Shared/Assets.xcassets/custom_icon/apple-brands.imageset/apple-brands@2x.png
new file mode 100644
index 0000000..6cbc433
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/apple-brands.imageset/apple-brands@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/apple-brands.imageset/apple-brands@3x.png b/Shared/Assets.xcassets/custom_icon/apple-brands.imageset/apple-brands@3x.png
new file mode 100644
index 0000000..e0311d9
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/apple-brands.imageset/apple-brands@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/arrow-up-1-9-solid.imageset/arrow-up-1-9-solid.png b/Shared/Assets.xcassets/custom_icon/arrow-up-1-9-solid.imageset/arrow-up-1-9-solid.png
deleted file mode 100644
index 3991ec0..0000000
Binary files a/Shared/Assets.xcassets/custom_icon/arrow-up-1-9-solid.imageset/arrow-up-1-9-solid.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/custom_icon/arrow-up-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/arrow-up-solid.imageset/Contents.json
new file mode 100644
index 0000000..299ad0d
--- /dev/null
+++ b/Shared/Assets.xcassets/custom_icon/arrow-up-solid.imageset/Contents.json
@@ -0,0 +1,26 @@
+{
+ "images" : [
+ {
+ "filename" : "arrow-up-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "arrow-up-solid@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "arrow-up-solid@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/Shared/Assets.xcassets/custom_icon/arrow-up-solid.imageset/arrow-up-solid.png b/Shared/Assets.xcassets/custom_icon/arrow-up-solid.imageset/arrow-up-solid.png
new file mode 100644
index 0000000..d063daf
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/arrow-up-solid.imageset/arrow-up-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/arrow-up-solid.imageset/arrow-up-solid@2x.png b/Shared/Assets.xcassets/custom_icon/arrow-up-solid.imageset/arrow-up-solid@2x.png
new file mode 100644
index 0000000..402ff8f
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/arrow-up-solid.imageset/arrow-up-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/arrow-up-solid.imageset/arrow-up-solid@3x.png b/Shared/Assets.xcassets/custom_icon/arrow-up-solid.imageset/arrow-up-solid@3x.png
new file mode 100644
index 0000000..9e49b4c
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/arrow-up-solid.imageset/arrow-up-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/baby-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/baby-solid.imageset/Contents.json
index 124563f..f0ad580 100644
--- a/Shared/Assets.xcassets/custom_icon/baby-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/baby-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "baby-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "baby-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/baby-solid.imageset/baby-solid.png b/Shared/Assets.xcassets/custom_icon/baby-solid.imageset/baby-solid.png
index dd4b495..74a1767 100644
Binary files a/Shared/Assets.xcassets/custom_icon/baby-solid.imageset/baby-solid.png and b/Shared/Assets.xcassets/custom_icon/baby-solid.imageset/baby-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/baby-solid.imageset/baby-solid@2x.png b/Shared/Assets.xcassets/custom_icon/baby-solid.imageset/baby-solid@2x.png
new file mode 100644
index 0000000..16e8420
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/baby-solid.imageset/baby-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/baby-solid.imageset/baby-solid@3x.png b/Shared/Assets.xcassets/custom_icon/baby-solid.imageset/baby-solid@3x.png
new file mode 100644
index 0000000..f14ddee
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/baby-solid.imageset/baby-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/ban-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/ban-solid.imageset/Contents.json
index cea75fd..9b5a7c0 100644
--- a/Shared/Assets.xcassets/custom_icon/ban-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/ban-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "ban-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "ban-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/ban-solid.imageset/ban-solid.png b/Shared/Assets.xcassets/custom_icon/ban-solid.imageset/ban-solid.png
index 9c068d2..6763140 100644
Binary files a/Shared/Assets.xcassets/custom_icon/ban-solid.imageset/ban-solid.png and b/Shared/Assets.xcassets/custom_icon/ban-solid.imageset/ban-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/ban-solid.imageset/ban-solid@2x.png b/Shared/Assets.xcassets/custom_icon/ban-solid.imageset/ban-solid@2x.png
new file mode 100644
index 0000000..268f474
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/ban-solid.imageset/ban-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/ban-solid.imageset/ban-solid@3x.png b/Shared/Assets.xcassets/custom_icon/ban-solid.imageset/ban-solid@3x.png
new file mode 100644
index 0000000..933745c
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/ban-solid.imageset/ban-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/baseball-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/baseball-solid.imageset/Contents.json
index 4d44722..6473eb9 100644
--- a/Shared/Assets.xcassets/custom_icon/baseball-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/baseball-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "baseball-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "baseball-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/baseball-solid.imageset/baseball-solid.png b/Shared/Assets.xcassets/custom_icon/baseball-solid.imageset/baseball-solid.png
index 9fef2a5..64179a9 100644
Binary files a/Shared/Assets.xcassets/custom_icon/baseball-solid.imageset/baseball-solid.png and b/Shared/Assets.xcassets/custom_icon/baseball-solid.imageset/baseball-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/baseball-solid.imageset/baseball-solid@2x.png b/Shared/Assets.xcassets/custom_icon/baseball-solid.imageset/baseball-solid@2x.png
new file mode 100644
index 0000000..1c6daf2
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/baseball-solid.imageset/baseball-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/baseball-solid.imageset/baseball-solid@3x.png b/Shared/Assets.xcassets/custom_icon/baseball-solid.imageset/baseball-solid@3x.png
new file mode 100644
index 0000000..fb3cf8d
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/baseball-solid.imageset/baseball-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-empty-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/battery-empty-solid.imageset/Contents.json
index ae1ffdf..dc1ef8c 100644
--- a/Shared/Assets.xcassets/custom_icon/battery-empty-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/battery-empty-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "battery-empty-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "battery-empty-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/battery-empty-solid.imageset/battery-empty-solid.png b/Shared/Assets.xcassets/custom_icon/battery-empty-solid.imageset/battery-empty-solid.png
index d27564b..a51dbe3 100644
Binary files a/Shared/Assets.xcassets/custom_icon/battery-empty-solid.imageset/battery-empty-solid.png and b/Shared/Assets.xcassets/custom_icon/battery-empty-solid.imageset/battery-empty-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-empty-solid.imageset/battery-empty-solid@2x.png b/Shared/Assets.xcassets/custom_icon/battery-empty-solid.imageset/battery-empty-solid@2x.png
new file mode 100644
index 0000000..245260d
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/battery-empty-solid.imageset/battery-empty-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-empty-solid.imageset/battery-empty-solid@3x.png b/Shared/Assets.xcassets/custom_icon/battery-empty-solid.imageset/battery-empty-solid@3x.png
new file mode 100644
index 0000000..9e4cbda
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/battery-empty-solid.imageset/battery-empty-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-full-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/battery-full-solid.imageset/Contents.json
index 2e39e06..5609f3c 100644
--- a/Shared/Assets.xcassets/custom_icon/battery-full-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/battery-full-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "battery-full-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "battery-full-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/battery-full-solid.imageset/battery-full-solid.png b/Shared/Assets.xcassets/custom_icon/battery-full-solid.imageset/battery-full-solid.png
index b0564a9..f2fefe4 100644
Binary files a/Shared/Assets.xcassets/custom_icon/battery-full-solid.imageset/battery-full-solid.png and b/Shared/Assets.xcassets/custom_icon/battery-full-solid.imageset/battery-full-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-full-solid.imageset/battery-full-solid@2x.png b/Shared/Assets.xcassets/custom_icon/battery-full-solid.imageset/battery-full-solid@2x.png
new file mode 100644
index 0000000..4d9840f
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/battery-full-solid.imageset/battery-full-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-full-solid.imageset/battery-full-solid@3x.png b/Shared/Assets.xcassets/custom_icon/battery-full-solid.imageset/battery-full-solid@3x.png
new file mode 100644
index 0000000..62589d7
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/battery-full-solid.imageset/battery-full-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-half-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/battery-half-solid.imageset/Contents.json
index 86461b6..f21b1bd 100644
--- a/Shared/Assets.xcassets/custom_icon/battery-half-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/battery-half-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "battery-half-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "battery-half-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/battery-half-solid.imageset/battery-half-solid.png b/Shared/Assets.xcassets/custom_icon/battery-half-solid.imageset/battery-half-solid.png
index fe1cade..d0699b7 100644
Binary files a/Shared/Assets.xcassets/custom_icon/battery-half-solid.imageset/battery-half-solid.png and b/Shared/Assets.xcassets/custom_icon/battery-half-solid.imageset/battery-half-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-half-solid.imageset/battery-half-solid@2x.png b/Shared/Assets.xcassets/custom_icon/battery-half-solid.imageset/battery-half-solid@2x.png
new file mode 100644
index 0000000..1b834f0
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/battery-half-solid.imageset/battery-half-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-half-solid.imageset/battery-half-solid@3x.png b/Shared/Assets.xcassets/custom_icon/battery-half-solid.imageset/battery-half-solid@3x.png
new file mode 100644
index 0000000..ebc2a3e
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/battery-half-solid.imageset/battery-half-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/Contents.json
index f1af99b..beea7f3 100644
--- a/Shared/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "battery-quarter-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "battery-quarter-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/battery-quarter-solid.png b/Shared/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/battery-quarter-solid.png
index dd62c45..d1431ab 100644
Binary files a/Shared/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/battery-quarter-solid.png and b/Shared/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/battery-quarter-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/battery-quarter-solid@2x.png b/Shared/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/battery-quarter-solid@2x.png
new file mode 100644
index 0000000..27f59c2
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/battery-quarter-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/battery-quarter-solid@3x.png b/Shared/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/battery-quarter-solid@3x.png
new file mode 100644
index 0000000..ea05f4d
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/battery-quarter-solid.imageset/battery-quarter-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/Contents.json
index cd2499a..294d2bd 100644
--- a/Shared/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "battery-three-quarters-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "battery-three-quarters-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/battery-three-quarters-solid.png b/Shared/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/battery-three-quarters-solid.png
index d41116a..048cde2 100644
Binary files a/Shared/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/battery-three-quarters-solid.png and b/Shared/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/battery-three-quarters-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/battery-three-quarters-solid@2x.png b/Shared/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/battery-three-quarters-solid@2x.png
new file mode 100644
index 0000000..01f5ba3
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/battery-three-quarters-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/battery-three-quarters-solid@3x.png b/Shared/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/battery-three-quarters-solid@3x.png
new file mode 100644
index 0000000..0a2b211
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/battery-three-quarters-solid.imageset/battery-three-quarters-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bitcoin-brands.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/bitcoin-brands.imageset/Contents.json
index 5896427..19e7dfa 100644
--- a/Shared/Assets.xcassets/custom_icon/bitcoin-brands.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/bitcoin-brands.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "bitcoin-brands@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "bitcoin-brands@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/bitcoin-brands.imageset/bitcoin-brands.png b/Shared/Assets.xcassets/custom_icon/bitcoin-brands.imageset/bitcoin-brands.png
index 46be45e..b6244dd 100644
Binary files a/Shared/Assets.xcassets/custom_icon/bitcoin-brands.imageset/bitcoin-brands.png and b/Shared/Assets.xcassets/custom_icon/bitcoin-brands.imageset/bitcoin-brands.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bitcoin-brands.imageset/bitcoin-brands@2x.png b/Shared/Assets.xcassets/custom_icon/bitcoin-brands.imageset/bitcoin-brands@2x.png
new file mode 100644
index 0000000..a54fc38
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/bitcoin-brands.imageset/bitcoin-brands@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bitcoin-brands.imageset/bitcoin-brands@3x.png b/Shared/Assets.xcassets/custom_icon/bitcoin-brands.imageset/bitcoin-brands@3x.png
new file mode 100644
index 0000000..10a39e8
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/bitcoin-brands.imageset/bitcoin-brands@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/Contents.json
index 04a9ad4..afaf951 100644
--- a/Shared/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "bolt-lightning-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "bolt-lightning-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/bolt-lightning-solid.png b/Shared/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/bolt-lightning-solid.png
index 9e4d992..f8e8756 100644
Binary files a/Shared/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/bolt-lightning-solid.png and b/Shared/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/bolt-lightning-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/bolt-lightning-solid@2x.png b/Shared/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/bolt-lightning-solid@2x.png
new file mode 100644
index 0000000..7b05ed2
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/bolt-lightning-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/bolt-lightning-solid@3x.png b/Shared/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/bolt-lightning-solid@3x.png
new file mode 100644
index 0000000..63f6321
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/bolt-lightning-solid.imageset/bolt-lightning-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bolt-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/bolt-solid.imageset/Contents.json
index dc8c23a..05df274 100644
--- a/Shared/Assets.xcassets/custom_icon/bolt-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/bolt-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "bolt-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "bolt-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/bolt-solid.imageset/bolt-solid.png b/Shared/Assets.xcassets/custom_icon/bolt-solid.imageset/bolt-solid.png
index 70031a8..6352f24 100644
Binary files a/Shared/Assets.xcassets/custom_icon/bolt-solid.imageset/bolt-solid.png and b/Shared/Assets.xcassets/custom_icon/bolt-solid.imageset/bolt-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bolt-solid.imageset/bolt-solid@2x.png b/Shared/Assets.xcassets/custom_icon/bolt-solid.imageset/bolt-solid@2x.png
new file mode 100644
index 0000000..e860eab
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/bolt-solid.imageset/bolt-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bolt-solid.imageset/bolt-solid@3x.png b/Shared/Assets.xcassets/custom_icon/bolt-solid.imageset/bolt-solid@3x.png
new file mode 100644
index 0000000..b7dac9c
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/bolt-solid.imageset/bolt-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bomb-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/bomb-solid.imageset/Contents.json
index ce0954d..dc29571 100644
--- a/Shared/Assets.xcassets/custom_icon/bomb-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/bomb-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "bomb-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "bomb-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/bomb-solid.imageset/bomb-solid.png b/Shared/Assets.xcassets/custom_icon/bomb-solid.imageset/bomb-solid.png
index 5c0e8c3..fcec06f 100644
Binary files a/Shared/Assets.xcassets/custom_icon/bomb-solid.imageset/bomb-solid.png and b/Shared/Assets.xcassets/custom_icon/bomb-solid.imageset/bomb-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bomb-solid.imageset/bomb-solid@2x.png b/Shared/Assets.xcassets/custom_icon/bomb-solid.imageset/bomb-solid@2x.png
new file mode 100644
index 0000000..59165ca
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/bomb-solid.imageset/bomb-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bomb-solid.imageset/bomb-solid@3x.png b/Shared/Assets.xcassets/custom_icon/bomb-solid.imageset/bomb-solid@3x.png
new file mode 100644
index 0000000..a45f0d6
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/bomb-solid.imageset/bomb-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/btc-brands.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/btc-brands.imageset/Contents.json
index 8310d2a..eddda2a 100644
--- a/Shared/Assets.xcassets/custom_icon/btc-brands.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/btc-brands.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "btc-brands@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "btc-brands@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/btc-brands.imageset/btc-brands.png b/Shared/Assets.xcassets/custom_icon/btc-brands.imageset/btc-brands.png
index 6e3c955..ae0cdbf 100644
Binary files a/Shared/Assets.xcassets/custom_icon/btc-brands.imageset/btc-brands.png and b/Shared/Assets.xcassets/custom_icon/btc-brands.imageset/btc-brands.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/btc-brands.imageset/btc-brands@2x.png b/Shared/Assets.xcassets/custom_icon/btc-brands.imageset/btc-brands@2x.png
new file mode 100644
index 0000000..a0b3e3e
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/btc-brands.imageset/btc-brands@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/btc-brands.imageset/btc-brands@3x.png b/Shared/Assets.xcassets/custom_icon/btc-brands.imageset/btc-brands@3x.png
new file mode 100644
index 0000000..2500e7d
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/btc-brands.imageset/btc-brands@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bullhorn-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/bullhorn-solid.imageset/Contents.json
index 06fb10c..1b6994c 100644
--- a/Shared/Assets.xcassets/custom_icon/bullhorn-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/bullhorn-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "bullhorn-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "bullhorn-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/bullhorn-solid.imageset/bullhorn-solid.png b/Shared/Assets.xcassets/custom_icon/bullhorn-solid.imageset/bullhorn-solid.png
index 0d952b0..c7f0667 100644
Binary files a/Shared/Assets.xcassets/custom_icon/bullhorn-solid.imageset/bullhorn-solid.png and b/Shared/Assets.xcassets/custom_icon/bullhorn-solid.imageset/bullhorn-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bullhorn-solid.imageset/bullhorn-solid@2x.png b/Shared/Assets.xcassets/custom_icon/bullhorn-solid.imageset/bullhorn-solid@2x.png
new file mode 100644
index 0000000..816b2ce
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/bullhorn-solid.imageset/bullhorn-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bullhorn-solid.imageset/bullhorn-solid@3x.png b/Shared/Assets.xcassets/custom_icon/bullhorn-solid.imageset/bullhorn-solid@3x.png
new file mode 100644
index 0000000..98ebc81
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/bullhorn-solid.imageset/bullhorn-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bullseye-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/bullseye-solid.imageset/Contents.json
index 23e0fe4..a823979 100644
--- a/Shared/Assets.xcassets/custom_icon/bullseye-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/bullseye-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "bullseye-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "bullseye-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/bullseye-solid.imageset/bullseye-solid.png b/Shared/Assets.xcassets/custom_icon/bullseye-solid.imageset/bullseye-solid.png
index f824f88..878bff8 100644
Binary files a/Shared/Assets.xcassets/custom_icon/bullseye-solid.imageset/bullseye-solid.png and b/Shared/Assets.xcassets/custom_icon/bullseye-solid.imageset/bullseye-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bullseye-solid.imageset/bullseye-solid@2x.png b/Shared/Assets.xcassets/custom_icon/bullseye-solid.imageset/bullseye-solid@2x.png
new file mode 100644
index 0000000..dcd071a
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/bullseye-solid.imageset/bullseye-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/bullseye-solid.imageset/bullseye-solid@3x.png b/Shared/Assets.xcassets/custom_icon/bullseye-solid.imageset/bullseye-solid@3x.png
new file mode 100644
index 0000000..90076da
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/bullseye-solid.imageset/bullseye-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/burger-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/burger-solid.imageset/Contents.json
index 80b28b5..b3a5b7e 100644
--- a/Shared/Assets.xcassets/custom_icon/burger-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/burger-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "burger-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "burger-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/burger-solid.imageset/burger-solid.png b/Shared/Assets.xcassets/custom_icon/burger-solid.imageset/burger-solid.png
index 91a6ee9..5528b51 100644
Binary files a/Shared/Assets.xcassets/custom_icon/burger-solid.imageset/burger-solid.png and b/Shared/Assets.xcassets/custom_icon/burger-solid.imageset/burger-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/burger-solid.imageset/burger-solid@2x.png b/Shared/Assets.xcassets/custom_icon/burger-solid.imageset/burger-solid@2x.png
new file mode 100644
index 0000000..fc50af8
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/burger-solid.imageset/burger-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/burger-solid.imageset/burger-solid@3x.png b/Shared/Assets.xcassets/custom_icon/burger-solid.imageset/burger-solid@3x.png
new file mode 100644
index 0000000..0981ad0
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/burger-solid.imageset/burger-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/cannabis-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/cannabis-solid.imageset/Contents.json
index 5f38dc3..fbce72c 100644
--- a/Shared/Assets.xcassets/custom_icon/cannabis-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/cannabis-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "cannabis-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "cannabis-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/cannabis-solid.imageset/cannabis-solid.png b/Shared/Assets.xcassets/custom_icon/cannabis-solid.imageset/cannabis-solid.png
index 38a908f..6be2be6 100644
Binary files a/Shared/Assets.xcassets/custom_icon/cannabis-solid.imageset/cannabis-solid.png and b/Shared/Assets.xcassets/custom_icon/cannabis-solid.imageset/cannabis-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/cannabis-solid.imageset/cannabis-solid@2x.png b/Shared/Assets.xcassets/custom_icon/cannabis-solid.imageset/cannabis-solid@2x.png
new file mode 100644
index 0000000..deb2041
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/cannabis-solid.imageset/cannabis-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/cannabis-solid.imageset/cannabis-solid@3x.png b/Shared/Assets.xcassets/custom_icon/cannabis-solid.imageset/cannabis-solid@3x.png
new file mode 100644
index 0000000..94fd80a
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/cannabis-solid.imageset/cannabis-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/caret-down-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/caret-down-solid.imageset/Contents.json
index 37b5371..9fb8d50 100644
--- a/Shared/Assets.xcassets/custom_icon/caret-down-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/caret-down-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "caret-down-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "caret-down-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/caret-down-solid.imageset/caret-down-solid.png b/Shared/Assets.xcassets/custom_icon/caret-down-solid.imageset/caret-down-solid.png
index eb76a6a..62d098d 100644
Binary files a/Shared/Assets.xcassets/custom_icon/caret-down-solid.imageset/caret-down-solid.png and b/Shared/Assets.xcassets/custom_icon/caret-down-solid.imageset/caret-down-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/caret-down-solid.imageset/caret-down-solid@2x.png b/Shared/Assets.xcassets/custom_icon/caret-down-solid.imageset/caret-down-solid@2x.png
new file mode 100644
index 0000000..df33055
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/caret-down-solid.imageset/caret-down-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/caret-down-solid.imageset/caret-down-solid@3x.png b/Shared/Assets.xcassets/custom_icon/caret-down-solid.imageset/caret-down-solid@3x.png
new file mode 100644
index 0000000..e4ce0cd
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/caret-down-solid.imageset/caret-down-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/caret-left-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/caret-left-solid.imageset/Contents.json
index d431263..72ab1d7 100644
--- a/Shared/Assets.xcassets/custom_icon/caret-left-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/caret-left-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "caret-left-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "caret-left-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/caret-left-solid.imageset/caret-left-solid.png b/Shared/Assets.xcassets/custom_icon/caret-left-solid.imageset/caret-left-solid.png
index 4b8eaa7..2cfe572 100644
Binary files a/Shared/Assets.xcassets/custom_icon/caret-left-solid.imageset/caret-left-solid.png and b/Shared/Assets.xcassets/custom_icon/caret-left-solid.imageset/caret-left-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/caret-left-solid.imageset/caret-left-solid@2x.png b/Shared/Assets.xcassets/custom_icon/caret-left-solid.imageset/caret-left-solid@2x.png
new file mode 100644
index 0000000..113e930
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/caret-left-solid.imageset/caret-left-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/caret-left-solid.imageset/caret-left-solid@3x.png b/Shared/Assets.xcassets/custom_icon/caret-left-solid.imageset/caret-left-solid@3x.png
new file mode 100644
index 0000000..89f1bbc
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/caret-left-solid.imageset/caret-left-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/caret-right-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/caret-right-solid.imageset/Contents.json
index fecc611..de7786c 100644
--- a/Shared/Assets.xcassets/custom_icon/caret-right-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/caret-right-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "caret-right-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "caret-right-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/caret-right-solid.imageset/caret-right-solid.png b/Shared/Assets.xcassets/custom_icon/caret-right-solid.imageset/caret-right-solid.png
index 67a6a43..690a7b5 100644
Binary files a/Shared/Assets.xcassets/custom_icon/caret-right-solid.imageset/caret-right-solid.png and b/Shared/Assets.xcassets/custom_icon/caret-right-solid.imageset/caret-right-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/caret-right-solid.imageset/caret-right-solid@2x.png b/Shared/Assets.xcassets/custom_icon/caret-right-solid.imageset/caret-right-solid@2x.png
new file mode 100644
index 0000000..8faf9c8
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/caret-right-solid.imageset/caret-right-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/caret-right-solid.imageset/caret-right-solid@3x.png b/Shared/Assets.xcassets/custom_icon/caret-right-solid.imageset/caret-right-solid@3x.png
new file mode 100644
index 0000000..106135d
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/caret-right-solid.imageset/caret-right-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/caret-up-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/caret-up-solid.imageset/Contents.json
index 3d48da8..3c8a232 100644
--- a/Shared/Assets.xcassets/custom_icon/caret-up-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/caret-up-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "caret-up-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "caret-up-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/caret-up-solid.imageset/caret-up-solid.png b/Shared/Assets.xcassets/custom_icon/caret-up-solid.imageset/caret-up-solid.png
index 85f0245..cc26759 100644
Binary files a/Shared/Assets.xcassets/custom_icon/caret-up-solid.imageset/caret-up-solid.png and b/Shared/Assets.xcassets/custom_icon/caret-up-solid.imageset/caret-up-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/caret-up-solid.imageset/caret-up-solid@2x.png b/Shared/Assets.xcassets/custom_icon/caret-up-solid.imageset/caret-up-solid@2x.png
new file mode 100644
index 0000000..1a26fac
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/caret-up-solid.imageset/caret-up-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/caret-up-solid.imageset/caret-up-solid@3x.png b/Shared/Assets.xcassets/custom_icon/caret-up-solid.imageset/caret-up-solid@3x.png
new file mode 100644
index 0000000..39c12cd
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/caret-up-solid.imageset/caret-up-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/chess-king-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/chess-king-solid.imageset/Contents.json
new file mode 100644
index 0000000..93fc0f0
--- /dev/null
+++ b/Shared/Assets.xcassets/custom_icon/chess-king-solid.imageset/Contents.json
@@ -0,0 +1,26 @@
+{
+ "images" : [
+ {
+ "filename" : "chess-king-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "chess-king-solid@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "chess-king-solid@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/Shared/Assets.xcassets/custom_icon/chess-king-solid.imageset/chess-king-solid.png b/Shared/Assets.xcassets/custom_icon/chess-king-solid.imageset/chess-king-solid.png
new file mode 100644
index 0000000..f5126a7
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/chess-king-solid.imageset/chess-king-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/chess-king-solid.imageset/chess-king-solid@2x.png b/Shared/Assets.xcassets/custom_icon/chess-king-solid.imageset/chess-king-solid@2x.png
new file mode 100644
index 0000000..0e2236c
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/chess-king-solid.imageset/chess-king-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/chess-king-solid.imageset/chess-king-solid@3x.png b/Shared/Assets.xcassets/custom_icon/chess-king-solid.imageset/chess-king-solid@3x.png
new file mode 100644
index 0000000..28c2096
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/chess-king-solid.imageset/chess-king-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/chess-queen-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/chess-queen-solid.imageset/Contents.json
index 171aa4e..550a412 100644
--- a/Shared/Assets.xcassets/custom_icon/chess-queen-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/chess-queen-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "chess-queen-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "chess-queen-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/chess-queen-solid.imageset/chess-queen-solid.png b/Shared/Assets.xcassets/custom_icon/chess-queen-solid.imageset/chess-queen-solid.png
index 13243e0..0c47678 100644
Binary files a/Shared/Assets.xcassets/custom_icon/chess-queen-solid.imageset/chess-queen-solid.png and b/Shared/Assets.xcassets/custom_icon/chess-queen-solid.imageset/chess-queen-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/chess-queen-solid.imageset/chess-queen-solid@2x.png b/Shared/Assets.xcassets/custom_icon/chess-queen-solid.imageset/chess-queen-solid@2x.png
new file mode 100644
index 0000000..e72207d
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/chess-queen-solid.imageset/chess-queen-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/chess-queen-solid.imageset/chess-queen-solid@3x.png b/Shared/Assets.xcassets/custom_icon/chess-queen-solid.imageset/chess-queen-solid@3x.png
new file mode 100644
index 0000000..dcfbbf3
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/chess-queen-solid.imageset/chess-queen-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/Contents.json
index c40f4cf..c2b4d21 100644
--- a/Shared/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "circle-xmark-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "circle-xmark-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/circle-xmark-solid.png b/Shared/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/circle-xmark-solid.png
index 378c369..2301b11 100644
Binary files a/Shared/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/circle-xmark-solid.png and b/Shared/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/circle-xmark-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/circle-xmark-solid@2x.png b/Shared/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/circle-xmark-solid@2x.png
new file mode 100644
index 0000000..3d20f76
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/circle-xmark-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/circle-xmark-solid@3x.png b/Shared/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/circle-xmark-solid@3x.png
new file mode 100644
index 0000000..1562d54
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/circle-xmark-solid.imageset/circle-xmark-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/clock-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/clock-solid.imageset/Contents.json
index 13a73bc..1297427 100644
--- a/Shared/Assets.xcassets/custom_icon/clock-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/clock-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "clock-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "clock-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/clock-solid.imageset/clock-solid.png b/Shared/Assets.xcassets/custom_icon/clock-solid.imageset/clock-solid.png
index e3afecc..4247be2 100644
Binary files a/Shared/Assets.xcassets/custom_icon/clock-solid.imageset/clock-solid.png and b/Shared/Assets.xcassets/custom_icon/clock-solid.imageset/clock-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/clock-solid.imageset/clock-solid@2x.png b/Shared/Assets.xcassets/custom_icon/clock-solid.imageset/clock-solid@2x.png
new file mode 100644
index 0000000..020cd20
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/clock-solid.imageset/clock-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/clock-solid.imageset/clock-solid@3x.png b/Shared/Assets.xcassets/custom_icon/clock-solid.imageset/clock-solid@3x.png
new file mode 100644
index 0000000..29b592c
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/clock-solid.imageset/clock-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/code-compare-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/code-compare-solid.imageset/Contents.json
index ea02326..a18b814 100644
--- a/Shared/Assets.xcassets/custom_icon/code-compare-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/code-compare-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "code-compare-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "code-compare-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/code-compare-solid.imageset/code-compare-solid.png b/Shared/Assets.xcassets/custom_icon/code-compare-solid.imageset/code-compare-solid.png
index c35995b..69e9860 100644
Binary files a/Shared/Assets.xcassets/custom_icon/code-compare-solid.imageset/code-compare-solid.png and b/Shared/Assets.xcassets/custom_icon/code-compare-solid.imageset/code-compare-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/code-compare-solid.imageset/code-compare-solid@2x.png b/Shared/Assets.xcassets/custom_icon/code-compare-solid.imageset/code-compare-solid@2x.png
new file mode 100644
index 0000000..de4822a
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/code-compare-solid.imageset/code-compare-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/code-compare-solid.imageset/code-compare-solid@3x.png b/Shared/Assets.xcassets/custom_icon/code-compare-solid.imageset/code-compare-solid@3x.png
new file mode 100644
index 0000000..b185eca
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/code-compare-solid.imageset/code-compare-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/code-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/code-solid.imageset/Contents.json
index a55156a..355ebb6 100644
--- a/Shared/Assets.xcassets/custom_icon/code-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/code-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "code-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "code-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/code-solid.imageset/code-solid.png b/Shared/Assets.xcassets/custom_icon/code-solid.imageset/code-solid.png
index 13a31c8..efdb8b2 100644
Binary files a/Shared/Assets.xcassets/custom_icon/code-solid.imageset/code-solid.png and b/Shared/Assets.xcassets/custom_icon/code-solid.imageset/code-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/code-solid.imageset/code-solid@2x.png b/Shared/Assets.xcassets/custom_icon/code-solid.imageset/code-solid@2x.png
new file mode 100644
index 0000000..0f7168e
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/code-solid.imageset/code-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/code-solid.imageset/code-solid@3x.png b/Shared/Assets.xcassets/custom_icon/code-solid.imageset/code-solid@3x.png
new file mode 100644
index 0000000..f526dbf
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/code-solid.imageset/code-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/cross-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/cross-solid.imageset/Contents.json
index 82b6c99..6b5b7c3 100644
--- a/Shared/Assets.xcassets/custom_icon/cross-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/cross-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "cross-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "cross-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/cross-solid.imageset/cross-solid.png b/Shared/Assets.xcassets/custom_icon/cross-solid.imageset/cross-solid.png
index 7d04525..b0b3a41 100644
Binary files a/Shared/Assets.xcassets/custom_icon/cross-solid.imageset/cross-solid.png and b/Shared/Assets.xcassets/custom_icon/cross-solid.imageset/cross-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/cross-solid.imageset/cross-solid@2x.png b/Shared/Assets.xcassets/custom_icon/cross-solid.imageset/cross-solid@2x.png
new file mode 100644
index 0000000..2f8e38c
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/cross-solid.imageset/cross-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/cross-solid.imageset/cross-solid@3x.png b/Shared/Assets.xcassets/custom_icon/cross-solid.imageset/cross-solid@3x.png
new file mode 100644
index 0000000..1820b44
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/cross-solid.imageset/cross-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/crosshairs-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/crosshairs-solid.imageset/Contents.json
index 2a7e31c..23c9262 100644
--- a/Shared/Assets.xcassets/custom_icon/crosshairs-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/crosshairs-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "crosshairs-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "crosshairs-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/crosshairs-solid.imageset/crosshairs-solid.png b/Shared/Assets.xcassets/custom_icon/crosshairs-solid.imageset/crosshairs-solid.png
index e400981..df39497 100644
Binary files a/Shared/Assets.xcassets/custom_icon/crosshairs-solid.imageset/crosshairs-solid.png and b/Shared/Assets.xcassets/custom_icon/crosshairs-solid.imageset/crosshairs-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/crosshairs-solid.imageset/crosshairs-solid@2x.png b/Shared/Assets.xcassets/custom_icon/crosshairs-solid.imageset/crosshairs-solid@2x.png
new file mode 100644
index 0000000..c677202
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/crosshairs-solid.imageset/crosshairs-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/crosshairs-solid.imageset/crosshairs-solid@3x.png b/Shared/Assets.xcassets/custom_icon/crosshairs-solid.imageset/crosshairs-solid@3x.png
new file mode 100644
index 0000000..9be7601
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/crosshairs-solid.imageset/crosshairs-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/crown-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/crown-solid.imageset/Contents.json
index cd842f1..aa86db7 100644
--- a/Shared/Assets.xcassets/custom_icon/crown-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/crown-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "crown-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "crown-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/crown-solid.imageset/crown-solid.png b/Shared/Assets.xcassets/custom_icon/crown-solid.imageset/crown-solid.png
index d9e6b28..63c1588 100644
Binary files a/Shared/Assets.xcassets/custom_icon/crown-solid.imageset/crown-solid.png and b/Shared/Assets.xcassets/custom_icon/crown-solid.imageset/crown-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/crown-solid.imageset/crown-solid@2x.png b/Shared/Assets.xcassets/custom_icon/crown-solid.imageset/crown-solid@2x.png
new file mode 100644
index 0000000..3cf2131
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/crown-solid.imageset/crown-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/crown-solid.imageset/crown-solid@3x.png b/Shared/Assets.xcassets/custom_icon/crown-solid.imageset/crown-solid@3x.png
new file mode 100644
index 0000000..43bbb04
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/crown-solid.imageset/crown-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/Contents.json
index f690980..d6676ac 100644
--- a/Shared/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "dharmachakra-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "dharmachakra-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/dharmachakra-solid.png b/Shared/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/dharmachakra-solid.png
index 1c6a00e..72cec6a 100644
Binary files a/Shared/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/dharmachakra-solid.png and b/Shared/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/dharmachakra-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/dharmachakra-solid@2x.png b/Shared/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/dharmachakra-solid@2x.png
new file mode 100644
index 0000000..de663c5
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/dharmachakra-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/dharmachakra-solid@3x.png b/Shared/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/dharmachakra-solid@3x.png
new file mode 100644
index 0000000..394e8c6
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/dharmachakra-solid.imageset/dharmachakra-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dice-d20-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/dice-d20-solid.imageset/Contents.json
index 9b10d53..842d010 100644
--- a/Shared/Assets.xcassets/custom_icon/dice-d20-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/dice-d20-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "dice-d20-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "dice-d20-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/dice-d20-solid.imageset/dice-d20-solid.png b/Shared/Assets.xcassets/custom_icon/dice-d20-solid.imageset/dice-d20-solid.png
index 124032e..6f69604 100644
Binary files a/Shared/Assets.xcassets/custom_icon/dice-d20-solid.imageset/dice-d20-solid.png and b/Shared/Assets.xcassets/custom_icon/dice-d20-solid.imageset/dice-d20-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dice-d20-solid.imageset/dice-d20-solid@2x.png b/Shared/Assets.xcassets/custom_icon/dice-d20-solid.imageset/dice-d20-solid@2x.png
new file mode 100644
index 0000000..eb03f0b
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/dice-d20-solid.imageset/dice-d20-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dice-d20-solid.imageset/dice-d20-solid@3x.png b/Shared/Assets.xcassets/custom_icon/dice-d20-solid.imageset/dice-d20-solid@3x.png
new file mode 100644
index 0000000..cb2a38f
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/dice-d20-solid.imageset/dice-d20-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dice-one-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/dice-one-solid.imageset/Contents.json
index c819401..e6a1b5a 100644
--- a/Shared/Assets.xcassets/custom_icon/dice-one-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/dice-one-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "dice-one-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "dice-one-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/dice-one-solid.imageset/dice-one-solid.png b/Shared/Assets.xcassets/custom_icon/dice-one-solid.imageset/dice-one-solid.png
index a0e1e62..e77d359 100644
Binary files a/Shared/Assets.xcassets/custom_icon/dice-one-solid.imageset/dice-one-solid.png and b/Shared/Assets.xcassets/custom_icon/dice-one-solid.imageset/dice-one-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dice-one-solid.imageset/dice-one-solid@2x.png b/Shared/Assets.xcassets/custom_icon/dice-one-solid.imageset/dice-one-solid@2x.png
new file mode 100644
index 0000000..236d27e
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/dice-one-solid.imageset/dice-one-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dice-one-solid.imageset/dice-one-solid@3x.png b/Shared/Assets.xcassets/custom_icon/dice-one-solid.imageset/dice-one-solid@3x.png
new file mode 100644
index 0000000..d324b13
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/dice-one-solid.imageset/dice-one-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/divide-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/divide-solid.imageset/Contents.json
index 46c47a5..792f703 100644
--- a/Shared/Assets.xcassets/custom_icon/divide-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/divide-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "divide-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "divide-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/divide-solid.imageset/divide-solid.png b/Shared/Assets.xcassets/custom_icon/divide-solid.imageset/divide-solid.png
index eb77016..67562d7 100644
Binary files a/Shared/Assets.xcassets/custom_icon/divide-solid.imageset/divide-solid.png and b/Shared/Assets.xcassets/custom_icon/divide-solid.imageset/divide-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/divide-solid.imageset/divide-solid@2x.png b/Shared/Assets.xcassets/custom_icon/divide-solid.imageset/divide-solid@2x.png
new file mode 100644
index 0000000..3793b23
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/divide-solid.imageset/divide-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/divide-solid.imageset/divide-solid@3x.png b/Shared/Assets.xcassets/custom_icon/divide-solid.imageset/divide-solid@3x.png
new file mode 100644
index 0000000..1e7590f
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/divide-solid.imageset/divide-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/Contents.json
index 373575b..d6571da 100644
--- a/Shared/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "dollar-sign-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "dollar-sign-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/dollar-sign-solid.png b/Shared/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/dollar-sign-solid.png
index 3bbf9a1..907cc09 100644
Binary files a/Shared/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/dollar-sign-solid.png and b/Shared/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/dollar-sign-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/dollar-sign-solid@2x.png b/Shared/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/dollar-sign-solid@2x.png
new file mode 100644
index 0000000..2718819
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/dollar-sign-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/dollar-sign-solid@3x.png b/Shared/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/dollar-sign-solid@3x.png
new file mode 100644
index 0000000..ea6299c
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/dollar-sign-solid.imageset/dollar-sign-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dragon-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/dragon-solid.imageset/Contents.json
index 1dd72ee..da6d56a 100644
--- a/Shared/Assets.xcassets/custom_icon/dragon-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/dragon-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "dragon-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "dragon-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/dragon-solid.imageset/dragon-solid.png b/Shared/Assets.xcassets/custom_icon/dragon-solid.imageset/dragon-solid.png
index 0a20f3c..0347b20 100644
Binary files a/Shared/Assets.xcassets/custom_icon/dragon-solid.imageset/dragon-solid.png and b/Shared/Assets.xcassets/custom_icon/dragon-solid.imageset/dragon-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dragon-solid.imageset/dragon-solid@2x.png b/Shared/Assets.xcassets/custom_icon/dragon-solid.imageset/dragon-solid@2x.png
new file mode 100644
index 0000000..923922a
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/dragon-solid.imageset/dragon-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/dragon-solid.imageset/dragon-solid@3x.png b/Shared/Assets.xcassets/custom_icon/dragon-solid.imageset/dragon-solid@3x.png
new file mode 100644
index 0000000..6fb31ba
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/dragon-solid.imageset/dragon-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/egg-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/egg-solid.imageset/Contents.json
index d9a06fa..c76832f 100644
--- a/Shared/Assets.xcassets/custom_icon/egg-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/egg-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "egg-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "egg-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/egg-solid.imageset/egg-solid.png b/Shared/Assets.xcassets/custom_icon/egg-solid.imageset/egg-solid.png
index ef6d745..f4d08cc 100644
Binary files a/Shared/Assets.xcassets/custom_icon/egg-solid.imageset/egg-solid.png and b/Shared/Assets.xcassets/custom_icon/egg-solid.imageset/egg-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/egg-solid.imageset/egg-solid@2x.png b/Shared/Assets.xcassets/custom_icon/egg-solid.imageset/egg-solid@2x.png
new file mode 100644
index 0000000..60996ec
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/egg-solid.imageset/egg-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/egg-solid.imageset/egg-solid@3x.png b/Shared/Assets.xcassets/custom_icon/egg-solid.imageset/egg-solid@3x.png
new file mode 100644
index 0000000..d4c560f
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/egg-solid.imageset/egg-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/empire-brands.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/empire-brands.imageset/Contents.json
index 4386ef2..6e7b618 100644
--- a/Shared/Assets.xcassets/custom_icon/empire-brands.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/empire-brands.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "empire-brands@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "empire-brands@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/empire-brands.imageset/empire-brands.png b/Shared/Assets.xcassets/custom_icon/empire-brands.imageset/empire-brands.png
index 2c1b194..5703c62 100644
Binary files a/Shared/Assets.xcassets/custom_icon/empire-brands.imageset/empire-brands.png and b/Shared/Assets.xcassets/custom_icon/empire-brands.imageset/empire-brands.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/empire-brands.imageset/empire-brands@2x.png b/Shared/Assets.xcassets/custom_icon/empire-brands.imageset/empire-brands@2x.png
new file mode 100644
index 0000000..8695855
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/empire-brands.imageset/empire-brands@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/empire-brands.imageset/empire-brands@3x.png b/Shared/Assets.xcassets/custom_icon/empire-brands.imageset/empire-brands@3x.png
new file mode 100644
index 0000000..cef3c86
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/empire-brands.imageset/empire-brands@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/exclamation-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/exclamation-solid.imageset/Contents.json
index f9215ea..0552c49 100644
--- a/Shared/Assets.xcassets/custom_icon/exclamation-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/exclamation-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "exclamation-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "exclamation-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/exclamation-solid.imageset/exclamation-solid.png b/Shared/Assets.xcassets/custom_icon/exclamation-solid.imageset/exclamation-solid.png
index 730a2f6..91dc8fd 100644
Binary files a/Shared/Assets.xcassets/custom_icon/exclamation-solid.imageset/exclamation-solid.png and b/Shared/Assets.xcassets/custom_icon/exclamation-solid.imageset/exclamation-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/exclamation-solid.imageset/exclamation-solid@2x.png b/Shared/Assets.xcassets/custom_icon/exclamation-solid.imageset/exclamation-solid@2x.png
new file mode 100644
index 0000000..b8173db
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/exclamation-solid.imageset/exclamation-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/exclamation-solid.imageset/exclamation-solid@3x.png b/Shared/Assets.xcassets/custom_icon/exclamation-solid.imageset/exclamation-solid@3x.png
new file mode 100644
index 0000000..e43a60c
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/exclamation-solid.imageset/exclamation-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/eye-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/eye-solid.imageset/Contents.json
index 7f5011c..22708f6 100644
--- a/Shared/Assets.xcassets/custom_icon/eye-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/eye-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "eye-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "eye-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/eye-solid.imageset/eye-solid.png b/Shared/Assets.xcassets/custom_icon/eye-solid.imageset/eye-solid.png
index ac7349a..829214e 100644
Binary files a/Shared/Assets.xcassets/custom_icon/eye-solid.imageset/eye-solid.png and b/Shared/Assets.xcassets/custom_icon/eye-solid.imageset/eye-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/eye-solid.imageset/eye-solid@2x.png b/Shared/Assets.xcassets/custom_icon/eye-solid.imageset/eye-solid@2x.png
new file mode 100644
index 0000000..0aca2f8
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/eye-solid.imageset/eye-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/eye-solid.imageset/eye-solid@3x.png b/Shared/Assets.xcassets/custom_icon/eye-solid.imageset/eye-solid@3x.png
new file mode 100644
index 0000000..3b937e6
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/eye-solid.imageset/eye-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/fan-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/fan-solid.imageset/Contents.json
index 4cbe0b3..4c9e8ed 100644
--- a/Shared/Assets.xcassets/custom_icon/fan-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/fan-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "fan-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "fan-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/fan-solid.imageset/fan-solid.png b/Shared/Assets.xcassets/custom_icon/fan-solid.imageset/fan-solid.png
index 279a801..82ba874 100644
Binary files a/Shared/Assets.xcassets/custom_icon/fan-solid.imageset/fan-solid.png and b/Shared/Assets.xcassets/custom_icon/fan-solid.imageset/fan-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/fan-solid.imageset/fan-solid@2x.png b/Shared/Assets.xcassets/custom_icon/fan-solid.imageset/fan-solid@2x.png
new file mode 100644
index 0000000..b1c6194
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/fan-solid.imageset/fan-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/fan-solid.imageset/fan-solid@3x.png b/Shared/Assets.xcassets/custom_icon/fan-solid.imageset/fan-solid@3x.png
new file mode 100644
index 0000000..1f280df
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/fan-solid.imageset/fan-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/fire-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/fire-solid.imageset/Contents.json
index baffe46..88184fe 100644
--- a/Shared/Assets.xcassets/custom_icon/fire-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/fire-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "fire-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "fire-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/fire-solid.imageset/fire-solid.png b/Shared/Assets.xcassets/custom_icon/fire-solid.imageset/fire-solid.png
index f42946f..3954b16 100644
Binary files a/Shared/Assets.xcassets/custom_icon/fire-solid.imageset/fire-solid.png and b/Shared/Assets.xcassets/custom_icon/fire-solid.imageset/fire-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/fire-solid.imageset/fire-solid@2x.png b/Shared/Assets.xcassets/custom_icon/fire-solid.imageset/fire-solid@2x.png
new file mode 100644
index 0000000..596e25d
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/fire-solid.imageset/fire-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/fire-solid.imageset/fire-solid@3x.png b/Shared/Assets.xcassets/custom_icon/fire-solid.imageset/fire-solid@3x.png
new file mode 100644
index 0000000..4dc0121
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/fire-solid.imageset/fire-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/Contents.json
index 0ef0534..480e238 100644
--- a/Shared/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "floppy-disk-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "floppy-disk-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/floppy-disk-solid.png b/Shared/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/floppy-disk-solid.png
index 134ac2b..24299aa 100644
Binary files a/Shared/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/floppy-disk-solid.png and b/Shared/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/floppy-disk-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/floppy-disk-solid@2x.png b/Shared/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/floppy-disk-solid@2x.png
new file mode 100644
index 0000000..7da8afe
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/floppy-disk-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/floppy-disk-solid@3x.png b/Shared/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/floppy-disk-solid@3x.png
new file mode 100644
index 0000000..72c7850
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/floppy-disk-solid.imageset/floppy-disk-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/fly-brands.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/fly-brands.imageset/Contents.json
index 1f490ef..b853890 100644
--- a/Shared/Assets.xcassets/custom_icon/fly-brands.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/fly-brands.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "fly-brands@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "fly-brands@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/fly-brands.imageset/fly-brands.png b/Shared/Assets.xcassets/custom_icon/fly-brands.imageset/fly-brands.png
index be4601a..f23614d 100644
Binary files a/Shared/Assets.xcassets/custom_icon/fly-brands.imageset/fly-brands.png and b/Shared/Assets.xcassets/custom_icon/fly-brands.imageset/fly-brands.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/fly-brands.imageset/fly-brands@2x.png b/Shared/Assets.xcassets/custom_icon/fly-brands.imageset/fly-brands@2x.png
new file mode 100644
index 0000000..d598627
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/fly-brands.imageset/fly-brands@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/fly-brands.imageset/fly-brands@3x.png b/Shared/Assets.xcassets/custom_icon/fly-brands.imageset/fly-brands@3x.png
new file mode 100644
index 0000000..8e7588b
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/fly-brands.imageset/fly-brands@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/Contents.json
index efd8ae1..01fb0dc 100644
--- a/Shared/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "fort-awesome-brands@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "fort-awesome-brands@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/fort-awesome-brands.png b/Shared/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/fort-awesome-brands.png
index f6d5d0a..4710433 100644
Binary files a/Shared/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/fort-awesome-brands.png and b/Shared/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/fort-awesome-brands.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/fort-awesome-brands@2x.png b/Shared/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/fort-awesome-brands@2x.png
new file mode 100644
index 0000000..c0d4de0
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/fort-awesome-brands@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/fort-awesome-brands@3x.png b/Shared/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/fort-awesome-brands@3x.png
new file mode 100644
index 0000000..18dcbbe
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/fort-awesome-brands.imageset/fort-awesome-brands@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/frown-regular 2.imageset/frown-regular 2.png b/Shared/Assets.xcassets/custom_icon/frown-regular 2.imageset/frown-regular 2.png
deleted file mode 100644
index 189b932..0000000
Binary files a/Shared/Assets.xcassets/custom_icon/frown-regular 2.imageset/frown-regular 2.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/custom_icon/frown-regular.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/frown-regular.imageset/Contents.json
new file mode 100644
index 0000000..0347e33
--- /dev/null
+++ b/Shared/Assets.xcassets/custom_icon/frown-regular.imageset/Contents.json
@@ -0,0 +1,26 @@
+{
+ "images" : [
+ {
+ "filename" : "frown-regular.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "frown-regular@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "frown-regular@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/Shared/Assets.xcassets/custom_icon/frown-regular.imageset/frown-regular.png b/Shared/Assets.xcassets/custom_icon/frown-regular.imageset/frown-regular.png
new file mode 100644
index 0000000..fd959e4
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/frown-regular.imageset/frown-regular.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/frown-regular.imageset/frown-regular@2x.png b/Shared/Assets.xcassets/custom_icon/frown-regular.imageset/frown-regular@2x.png
new file mode 100644
index 0000000..1364aa9
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/frown-regular.imageset/frown-regular@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/frown-regular.imageset/frown-regular@3x.png b/Shared/Assets.xcassets/custom_icon/frown-regular.imageset/frown-regular@3x.png
new file mode 100644
index 0000000..7918665
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/frown-regular.imageset/frown-regular@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/futbol-regular.imageset/futbol-regular.png b/Shared/Assets.xcassets/custom_icon/futbol-regular.imageset/futbol-regular.png
deleted file mode 100644
index 2c9c201..0000000
Binary files a/Shared/Assets.xcassets/custom_icon/futbol-regular.imageset/futbol-regular.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/custom_icon/futbol-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/futbol-solid.imageset/Contents.json
new file mode 100644
index 0000000..2f5c2fd
--- /dev/null
+++ b/Shared/Assets.xcassets/custom_icon/futbol-solid.imageset/Contents.json
@@ -0,0 +1,26 @@
+{
+ "images" : [
+ {
+ "filename" : "futbol-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "futbol-solid@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "futbol-solid@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/Shared/Assets.xcassets/custom_icon/futbol-solid.imageset/futbol-solid.png b/Shared/Assets.xcassets/custom_icon/futbol-solid.imageset/futbol-solid.png
new file mode 100644
index 0000000..3d76740
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/futbol-solid.imageset/futbol-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/futbol-solid.imageset/futbol-solid@2x.png b/Shared/Assets.xcassets/custom_icon/futbol-solid.imageset/futbol-solid@2x.png
new file mode 100644
index 0000000..5aca232
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/futbol-solid.imageset/futbol-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/futbol-solid.imageset/futbol-solid@3x.png b/Shared/Assets.xcassets/custom_icon/futbol-solid.imageset/futbol-solid@3x.png
new file mode 100644
index 0000000..e807a66
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/futbol-solid.imageset/futbol-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/gem-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/gem-solid.imageset/Contents.json
index 08ddd08..2a7a8b4 100644
--- a/Shared/Assets.xcassets/custom_icon/gem-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/gem-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "gem-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "gem-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/gem-solid.imageset/gem-solid.png b/Shared/Assets.xcassets/custom_icon/gem-solid.imageset/gem-solid.png
index e192414..53417c5 100644
Binary files a/Shared/Assets.xcassets/custom_icon/gem-solid.imageset/gem-solid.png and b/Shared/Assets.xcassets/custom_icon/gem-solid.imageset/gem-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/gem-solid.imageset/gem-solid@2x.png b/Shared/Assets.xcassets/custom_icon/gem-solid.imageset/gem-solid@2x.png
new file mode 100644
index 0000000..cf6c8b7
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/gem-solid.imageset/gem-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/gem-solid.imageset/gem-solid@3x.png b/Shared/Assets.xcassets/custom_icon/gem-solid.imageset/gem-solid@3x.png
new file mode 100644
index 0000000..2df122e
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/gem-solid.imageset/gem-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/grin-regular.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/grin-regular.imageset/Contents.json
index 6bed8a8..189d45b 100644
--- a/Shared/Assets.xcassets/custom_icon/grin-regular.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/grin-regular.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "grin-regular@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "grin-regular@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/grin-regular.imageset/grin-regular.png b/Shared/Assets.xcassets/custom_icon/grin-regular.imageset/grin-regular.png
index 2676aee..181cc39 100644
Binary files a/Shared/Assets.xcassets/custom_icon/grin-regular.imageset/grin-regular.png and b/Shared/Assets.xcassets/custom_icon/grin-regular.imageset/grin-regular.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/grin-regular.imageset/grin-regular@2x.png b/Shared/Assets.xcassets/custom_icon/grin-regular.imageset/grin-regular@2x.png
new file mode 100644
index 0000000..1ce2c4e
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/grin-regular.imageset/grin-regular@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/grin-regular.imageset/grin-regular@3x.png b/Shared/Assets.xcassets/custom_icon/grin-regular.imageset/grin-regular@3x.png
new file mode 100644
index 0000000..dc997d1
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/grin-regular.imageset/grin-regular@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/heart-crack-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/heart-crack-solid.imageset/Contents.json
index aabd266..76c700f 100644
--- a/Shared/Assets.xcassets/custom_icon/heart-crack-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/heart-crack-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "heart-crack-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "heart-crack-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/heart-crack-solid.imageset/heart-crack-solid.png b/Shared/Assets.xcassets/custom_icon/heart-crack-solid.imageset/heart-crack-solid.png
index 04ddd50..3c7b53a 100644
Binary files a/Shared/Assets.xcassets/custom_icon/heart-crack-solid.imageset/heart-crack-solid.png and b/Shared/Assets.xcassets/custom_icon/heart-crack-solid.imageset/heart-crack-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/heart-crack-solid.imageset/heart-crack-solid@2x.png b/Shared/Assets.xcassets/custom_icon/heart-crack-solid.imageset/heart-crack-solid@2x.png
new file mode 100644
index 0000000..6077f11
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/heart-crack-solid.imageset/heart-crack-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/heart-crack-solid.imageset/heart-crack-solid@3x.png b/Shared/Assets.xcassets/custom_icon/heart-crack-solid.imageset/heart-crack-solid@3x.png
new file mode 100644
index 0000000..2f154d8
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/heart-crack-solid.imageset/heart-crack-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/heart-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/heart-solid.imageset/Contents.json
index 929aca8..69cbc86 100644
--- a/Shared/Assets.xcassets/custom_icon/heart-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/heart-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "heart-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "heart-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/heart-solid.imageset/heart-solid.png b/Shared/Assets.xcassets/custom_icon/heart-solid.imageset/heart-solid.png
index 0024916..70a0293 100644
Binary files a/Shared/Assets.xcassets/custom_icon/heart-solid.imageset/heart-solid.png and b/Shared/Assets.xcassets/custom_icon/heart-solid.imageset/heart-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/heart-solid.imageset/heart-solid@2x.png b/Shared/Assets.xcassets/custom_icon/heart-solid.imageset/heart-solid@2x.png
new file mode 100644
index 0000000..f592ee3
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/heart-solid.imageset/heart-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/heart-solid.imageset/heart-solid@3x.png b/Shared/Assets.xcassets/custom_icon/heart-solid.imageset/heart-solid@3x.png
new file mode 100644
index 0000000..ddfd478
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/heart-solid.imageset/heart-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/hotjar-brands.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/hotjar-brands.imageset/Contents.json
index 77a5a12..179fe17 100644
--- a/Shared/Assets.xcassets/custom_icon/hotjar-brands.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/hotjar-brands.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "hotjar-brands@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "hotjar-brands@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/hotjar-brands.imageset/hotjar-brands.png b/Shared/Assets.xcassets/custom_icon/hotjar-brands.imageset/hotjar-brands.png
index a9b07d3..712779f 100644
Binary files a/Shared/Assets.xcassets/custom_icon/hotjar-brands.imageset/hotjar-brands.png and b/Shared/Assets.xcassets/custom_icon/hotjar-brands.imageset/hotjar-brands.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/hotjar-brands.imageset/hotjar-brands@2x.png b/Shared/Assets.xcassets/custom_icon/hotjar-brands.imageset/hotjar-brands@2x.png
new file mode 100644
index 0000000..112434c
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/hotjar-brands.imageset/hotjar-brands@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/hotjar-brands.imageset/hotjar-brands@3x.png b/Shared/Assets.xcassets/custom_icon/hotjar-brands.imageset/hotjar-brands@3x.png
new file mode 100644
index 0000000..fb8a9d3
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/hotjar-brands.imageset/hotjar-brands@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/Contents.json
index 364c506..22c92fa 100644
--- a/Shared/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "jet-fighter-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "jet-fighter-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/jet-fighter-solid.png b/Shared/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/jet-fighter-solid.png
index 678fef6..43e7f40 100644
Binary files a/Shared/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/jet-fighter-solid.png and b/Shared/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/jet-fighter-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/jet-fighter-solid@2x.png b/Shared/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/jet-fighter-solid@2x.png
new file mode 100644
index 0000000..eb6fcf6
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/jet-fighter-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/jet-fighter-solid@3x.png b/Shared/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/jet-fighter-solid@3x.png
new file mode 100644
index 0000000..5f03b9d
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/jet-fighter-solid.imageset/jet-fighter-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/lemon-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/lemon-solid.imageset/Contents.json
index 9af8145..fc2dc8a 100644
--- a/Shared/Assets.xcassets/custom_icon/lemon-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/lemon-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "lemon-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "lemon-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/lemon-solid.imageset/lemon-solid.png b/Shared/Assets.xcassets/custom_icon/lemon-solid.imageset/lemon-solid.png
index 544807e..1e368bc 100644
Binary files a/Shared/Assets.xcassets/custom_icon/lemon-solid.imageset/lemon-solid.png and b/Shared/Assets.xcassets/custom_icon/lemon-solid.imageset/lemon-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/lemon-solid.imageset/lemon-solid@2x.png b/Shared/Assets.xcassets/custom_icon/lemon-solid.imageset/lemon-solid@2x.png
new file mode 100644
index 0000000..eafc723
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/lemon-solid.imageset/lemon-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/lemon-solid.imageset/lemon-solid@3x.png b/Shared/Assets.xcassets/custom_icon/lemon-solid.imageset/lemon-solid@3x.png
new file mode 100644
index 0000000..486d962
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/lemon-solid.imageset/lemon-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/life-ring-regular.imageset/life-ring-regular.png b/Shared/Assets.xcassets/custom_icon/life-ring-regular.imageset/life-ring-regular.png
deleted file mode 100644
index 60e2102..0000000
Binary files a/Shared/Assets.xcassets/custom_icon/life-ring-regular.imageset/life-ring-regular.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/custom_icon/life-ring-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/life-ring-solid.imageset/Contents.json
new file mode 100644
index 0000000..719cd55
--- /dev/null
+++ b/Shared/Assets.xcassets/custom_icon/life-ring-solid.imageset/Contents.json
@@ -0,0 +1,26 @@
+{
+ "images" : [
+ {
+ "filename" : "life-ring-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "life-ring-solid@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "life-ring-solid@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/Shared/Assets.xcassets/custom_icon/life-ring-solid.imageset/life-ring-solid.png b/Shared/Assets.xcassets/custom_icon/life-ring-solid.imageset/life-ring-solid.png
new file mode 100644
index 0000000..18d8d9a
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/life-ring-solid.imageset/life-ring-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/life-ring-solid.imageset/life-ring-solid@2x.png b/Shared/Assets.xcassets/custom_icon/life-ring-solid.imageset/life-ring-solid@2x.png
new file mode 100644
index 0000000..ac55b29
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/life-ring-solid.imageset/life-ring-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/life-ring-solid.imageset/life-ring-solid@3x.png b/Shared/Assets.xcassets/custom_icon/life-ring-solid.imageset/life-ring-solid@3x.png
new file mode 100644
index 0000000..23f7306
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/life-ring-solid.imageset/life-ring-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/lightbulb-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/lightbulb-solid.imageset/Contents.json
index 0844e22..d1b744b 100644
--- a/Shared/Assets.xcassets/custom_icon/lightbulb-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/lightbulb-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "lightbulb-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "lightbulb-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/lightbulb-solid.imageset/lightbulb-solid.png b/Shared/Assets.xcassets/custom_icon/lightbulb-solid.imageset/lightbulb-solid.png
index 2bdeb58..e651fea 100644
Binary files a/Shared/Assets.xcassets/custom_icon/lightbulb-solid.imageset/lightbulb-solid.png and b/Shared/Assets.xcassets/custom_icon/lightbulb-solid.imageset/lightbulb-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/lightbulb-solid.imageset/lightbulb-solid@2x.png b/Shared/Assets.xcassets/custom_icon/lightbulb-solid.imageset/lightbulb-solid@2x.png
new file mode 100644
index 0000000..47f458a
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/lightbulb-solid.imageset/lightbulb-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/lightbulb-solid.imageset/lightbulb-solid@3x.png b/Shared/Assets.xcassets/custom_icon/lightbulb-solid.imageset/lightbulb-solid@3x.png
new file mode 100644
index 0000000..771ed28
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/lightbulb-solid.imageset/lightbulb-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/Contents.json
index 6ab250a..72344f2 100644
--- a/Shared/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "location-crosshairs-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "location-crosshairs-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/location-crosshairs-solid.png b/Shared/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/location-crosshairs-solid.png
index c216b18..7a876cb 100644
Binary files a/Shared/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/location-crosshairs-solid.png and b/Shared/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/location-crosshairs-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/location-crosshairs-solid@2x.png b/Shared/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/location-crosshairs-solid@2x.png
new file mode 100644
index 0000000..855f3e4
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/location-crosshairs-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/location-crosshairs-solid@3x.png b/Shared/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/location-crosshairs-solid@3x.png
new file mode 100644
index 0000000..547619b
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/location-crosshairs-solid.imageset/location-crosshairs-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/meh-regular.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/meh-regular.imageset/Contents.json
index c3534e4..23d7935 100644
--- a/Shared/Assets.xcassets/custom_icon/meh-regular.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/meh-regular.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "meh-regular@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "meh-regular@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/meh-regular.imageset/meh-regular.png b/Shared/Assets.xcassets/custom_icon/meh-regular.imageset/meh-regular.png
index da7bb84..3be0f95 100644
Binary files a/Shared/Assets.xcassets/custom_icon/meh-regular.imageset/meh-regular.png and b/Shared/Assets.xcassets/custom_icon/meh-regular.imageset/meh-regular.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/meh-regular.imageset/meh-regular@2x.png b/Shared/Assets.xcassets/custom_icon/meh-regular.imageset/meh-regular@2x.png
new file mode 100644
index 0000000..8b33397
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/meh-regular.imageset/meh-regular@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/meh-regular.imageset/meh-regular@3x.png b/Shared/Assets.xcassets/custom_icon/meh-regular.imageset/meh-regular@3x.png
new file mode 100644
index 0000000..aa96e77
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/meh-regular.imageset/meh-regular@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/meteor-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/meteor-solid.imageset/Contents.json
index a70409d..ea6e429 100644
--- a/Shared/Assets.xcassets/custom_icon/meteor-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/meteor-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "meteor-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "meteor-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/meteor-solid.imageset/meteor-solid.png b/Shared/Assets.xcassets/custom_icon/meteor-solid.imageset/meteor-solid.png
index 1547dff..48d5f26 100644
Binary files a/Shared/Assets.xcassets/custom_icon/meteor-solid.imageset/meteor-solid.png and b/Shared/Assets.xcassets/custom_icon/meteor-solid.imageset/meteor-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/meteor-solid.imageset/meteor-solid@2x.png b/Shared/Assets.xcassets/custom_icon/meteor-solid.imageset/meteor-solid@2x.png
new file mode 100644
index 0000000..4cd10a3
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/meteor-solid.imageset/meteor-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/meteor-solid.imageset/meteor-solid@3x.png b/Shared/Assets.xcassets/custom_icon/meteor-solid.imageset/meteor-solid@3x.png
new file mode 100644
index 0000000..5427ed6
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/meteor-solid.imageset/meteor-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/microphone-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/microphone-solid.imageset/Contents.json
index 7e7e54d..ceb9265 100644
--- a/Shared/Assets.xcassets/custom_icon/microphone-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/microphone-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "microphone-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "microphone-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/microphone-solid.imageset/microphone-solid.png b/Shared/Assets.xcassets/custom_icon/microphone-solid.imageset/microphone-solid.png
index 263f8c0..606669c 100644
Binary files a/Shared/Assets.xcassets/custom_icon/microphone-solid.imageset/microphone-solid.png and b/Shared/Assets.xcassets/custom_icon/microphone-solid.imageset/microphone-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/microphone-solid.imageset/microphone-solid@2x.png b/Shared/Assets.xcassets/custom_icon/microphone-solid.imageset/microphone-solid@2x.png
new file mode 100644
index 0000000..5414a0b
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/microphone-solid.imageset/microphone-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/microphone-solid.imageset/microphone-solid@3x.png b/Shared/Assets.xcassets/custom_icon/microphone-solid.imageset/microphone-solid@3x.png
new file mode 100644
index 0000000..443b667
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/microphone-solid.imageset/microphone-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/moon-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/moon-solid.imageset/Contents.json
index ecfeab2..1e12000 100644
--- a/Shared/Assets.xcassets/custom_icon/moon-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/moon-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "moon-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "moon-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/moon-solid.imageset/moon-solid.png b/Shared/Assets.xcassets/custom_icon/moon-solid.imageset/moon-solid.png
index 6673c19..d66157b 100644
Binary files a/Shared/Assets.xcassets/custom_icon/moon-solid.imageset/moon-solid.png and b/Shared/Assets.xcassets/custom_icon/moon-solid.imageset/moon-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/moon-solid.imageset/moon-solid@2x.png b/Shared/Assets.xcassets/custom_icon/moon-solid.imageset/moon-solid@2x.png
new file mode 100644
index 0000000..028fa1e
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/moon-solid.imageset/moon-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/moon-solid.imageset/moon-solid@3x.png b/Shared/Assets.xcassets/custom_icon/moon-solid.imageset/moon-solid@3x.png
new file mode 100644
index 0000000..b5b6398
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/moon-solid.imageset/moon-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/peace-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/peace-solid.imageset/Contents.json
index e9ae28f..7076f2a 100644
--- a/Shared/Assets.xcassets/custom_icon/peace-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/peace-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "peace-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "peace-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/peace-solid.imageset/peace-solid.png b/Shared/Assets.xcassets/custom_icon/peace-solid.imageset/peace-solid.png
index 5c40ce0..e0f9928 100644
Binary files a/Shared/Assets.xcassets/custom_icon/peace-solid.imageset/peace-solid.png and b/Shared/Assets.xcassets/custom_icon/peace-solid.imageset/peace-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/peace-solid.imageset/peace-solid@2x.png b/Shared/Assets.xcassets/custom_icon/peace-solid.imageset/peace-solid@2x.png
new file mode 100644
index 0000000..251f8fe
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/peace-solid.imageset/peace-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/peace-solid.imageset/peace-solid@3x.png b/Shared/Assets.xcassets/custom_icon/peace-solid.imageset/peace-solid@3x.png
new file mode 100644
index 0000000..d2f0548
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/peace-solid.imageset/peace-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/Contents.json
index 2db52e9..6273cc0 100644
--- a/Shared/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "pizza-slice-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "pizza-slice-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/pizza-slice-solid.png b/Shared/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/pizza-slice-solid.png
index 16068c5..8a4758a 100644
Binary files a/Shared/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/pizza-slice-solid.png and b/Shared/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/pizza-slice-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/pizza-slice-solid@2x.png b/Shared/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/pizza-slice-solid@2x.png
new file mode 100644
index 0000000..433555e
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/pizza-slice-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/pizza-slice-solid@3x.png b/Shared/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/pizza-slice-solid@3x.png
new file mode 100644
index 0000000..9d938ec
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/pizza-slice-solid.imageset/pizza-slice-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/poo-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/poo-solid.imageset/Contents.json
index 4d89cb7..7128c8e 100644
--- a/Shared/Assets.xcassets/custom_icon/poo-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/poo-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "poo-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "poo-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/poo-solid.imageset/poo-solid.png b/Shared/Assets.xcassets/custom_icon/poo-solid.imageset/poo-solid.png
index cafaefe..b6822bf 100644
Binary files a/Shared/Assets.xcassets/custom_icon/poo-solid.imageset/poo-solid.png and b/Shared/Assets.xcassets/custom_icon/poo-solid.imageset/poo-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/poo-solid.imageset/poo-solid@2x.png b/Shared/Assets.xcassets/custom_icon/poo-solid.imageset/poo-solid@2x.png
new file mode 100644
index 0000000..1cd3d1f
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/poo-solid.imageset/poo-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/poo-solid.imageset/poo-solid@3x.png b/Shared/Assets.xcassets/custom_icon/poo-solid.imageset/poo-solid@3x.png
new file mode 100644
index 0000000..16b1c7f
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/poo-solid.imageset/poo-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/poo-storm-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/poo-storm-solid.imageset/Contents.json
new file mode 100644
index 0000000..5a1819b
--- /dev/null
+++ b/Shared/Assets.xcassets/custom_icon/poo-storm-solid.imageset/Contents.json
@@ -0,0 +1,26 @@
+{
+ "images" : [
+ {
+ "filename" : "poo-storm-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "poo-storm-solid@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "poo-storm-solid@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/Shared/Assets.xcassets/custom_icon/poo-storm-solid.imageset/poo-storm-solid.png b/Shared/Assets.xcassets/custom_icon/poo-storm-solid.imageset/poo-storm-solid.png
new file mode 100644
index 0000000..f523e10
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/poo-storm-solid.imageset/poo-storm-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/poo-storm-solid.imageset/poo-storm-solid@2x.png b/Shared/Assets.xcassets/custom_icon/poo-storm-solid.imageset/poo-storm-solid@2x.png
new file mode 100644
index 0000000..f9391f2
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/poo-storm-solid.imageset/poo-storm-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/poo-storm-solid.imageset/poo-storm-solid@3x.png b/Shared/Assets.xcassets/custom_icon/poo-storm-solid.imageset/poo-storm-solid@3x.png
new file mode 100644
index 0000000..e0e2157
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/poo-storm-solid.imageset/poo-storm-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/rainbow-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/rainbow-solid.imageset/Contents.json
index 8734ddf..6897f98 100644
--- a/Shared/Assets.xcassets/custom_icon/rainbow-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/rainbow-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "rainbow-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "rainbow-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/rainbow-solid.imageset/rainbow-solid.png b/Shared/Assets.xcassets/custom_icon/rainbow-solid.imageset/rainbow-solid.png
index 44a1bbc..3f079f9 100644
Binary files a/Shared/Assets.xcassets/custom_icon/rainbow-solid.imageset/rainbow-solid.png and b/Shared/Assets.xcassets/custom_icon/rainbow-solid.imageset/rainbow-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/rainbow-solid.imageset/rainbow-solid@2x.png b/Shared/Assets.xcassets/custom_icon/rainbow-solid.imageset/rainbow-solid@2x.png
new file mode 100644
index 0000000..6f5fed5
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/rainbow-solid.imageset/rainbow-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/rainbow-solid.imageset/rainbow-solid@3x.png b/Shared/Assets.xcassets/custom_icon/rainbow-solid.imageset/rainbow-solid@3x.png
new file mode 100644
index 0000000..9cbe645
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/rainbow-solid.imageset/rainbow-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/sad-tear-regular.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/sad-tear-regular.imageset/Contents.json
index 14e62e5..60f34a3 100644
--- a/Shared/Assets.xcassets/custom_icon/sad-tear-regular.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/sad-tear-regular.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "sad-tear-regular@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "sad-tear-regular@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/sad-tear-regular.imageset/sad-tear-regular.png b/Shared/Assets.xcassets/custom_icon/sad-tear-regular.imageset/sad-tear-regular.png
index 0da0cbe..822d76d 100644
Binary files a/Shared/Assets.xcassets/custom_icon/sad-tear-regular.imageset/sad-tear-regular.png and b/Shared/Assets.xcassets/custom_icon/sad-tear-regular.imageset/sad-tear-regular.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/sad-tear-regular.imageset/sad-tear-regular@2x.png b/Shared/Assets.xcassets/custom_icon/sad-tear-regular.imageset/sad-tear-regular@2x.png
new file mode 100644
index 0000000..d14ede0
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/sad-tear-regular.imageset/sad-tear-regular@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/sad-tear-regular.imageset/sad-tear-regular@3x.png b/Shared/Assets.xcassets/custom_icon/sad-tear-regular.imageset/sad-tear-regular@3x.png
new file mode 100644
index 0000000..46832f6
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/sad-tear-regular.imageset/sad-tear-regular@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/Contents.json
index 6898896..9e0bf7c 100644
--- a/Shared/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "shuttle-space-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "shuttle-space-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/shuttle-space-solid.png b/Shared/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/shuttle-space-solid.png
index 24e2aa9..e5bfb71 100644
Binary files a/Shared/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/shuttle-space-solid.png and b/Shared/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/shuttle-space-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/shuttle-space-solid@2x.png b/Shared/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/shuttle-space-solid@2x.png
new file mode 100644
index 0000000..3a9c89c
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/shuttle-space-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/shuttle-space-solid@3x.png b/Shared/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/shuttle-space-solid@3x.png
new file mode 100644
index 0000000..4a8adb6
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/shuttle-space-solid.imageset/shuttle-space-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/Contents.json
index 76ebdd1..77becf3 100644
--- a/Shared/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "skull-crossbones-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "skull-crossbones-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/skull-crossbones-solid.png b/Shared/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/skull-crossbones-solid.png
index 18dadbc..99a58ff 100644
Binary files a/Shared/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/skull-crossbones-solid.png and b/Shared/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/skull-crossbones-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/skull-crossbones-solid@2x.png b/Shared/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/skull-crossbones-solid@2x.png
new file mode 100644
index 0000000..2c6313f
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/skull-crossbones-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/skull-crossbones-solid@3x.png b/Shared/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/skull-crossbones-solid@3x.png
new file mode 100644
index 0000000..32f692a
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/skull-crossbones-solid.imageset/skull-crossbones-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/skull-solid 2.imageset/skull-solid 2.png b/Shared/Assets.xcassets/custom_icon/skull-solid 2.imageset/skull-solid 2.png
deleted file mode 100644
index 0b224cb..0000000
Binary files a/Shared/Assets.xcassets/custom_icon/skull-solid 2.imageset/skull-solid 2.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/custom_icon/skull-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/skull-solid.imageset/Contents.json
index 1b0e2b0..0d111ee 100644
--- a/Shared/Assets.xcassets/custom_icon/skull-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/skull-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "skull-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "skull-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/skull-solid.imageset/skull-solid.png b/Shared/Assets.xcassets/custom_icon/skull-solid.imageset/skull-solid.png
index d92ad99..705b611 100644
Binary files a/Shared/Assets.xcassets/custom_icon/skull-solid.imageset/skull-solid.png and b/Shared/Assets.xcassets/custom_icon/skull-solid.imageset/skull-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/skull-solid.imageset/skull-solid@2x.png b/Shared/Assets.xcassets/custom_icon/skull-solid.imageset/skull-solid@2x.png
new file mode 100644
index 0000000..096c718
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/skull-solid.imageset/skull-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/skull-solid.imageset/skull-solid@3x.png b/Shared/Assets.xcassets/custom_icon/skull-solid.imageset/skull-solid@3x.png
new file mode 100644
index 0000000..e3dc2f3
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/skull-solid.imageset/skull-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/smile-beam-regular.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/smile-beam-regular.imageset/Contents.json
index fc7ace3..7a86c8a 100644
--- a/Shared/Assets.xcassets/custom_icon/smile-beam-regular.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/smile-beam-regular.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "smile-beam-regular@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "smile-beam-regular@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/smile-beam-regular.imageset/smile-beam-regular.png b/Shared/Assets.xcassets/custom_icon/smile-beam-regular.imageset/smile-beam-regular.png
index 244d006..59873c1 100644
Binary files a/Shared/Assets.xcassets/custom_icon/smile-beam-regular.imageset/smile-beam-regular.png and b/Shared/Assets.xcassets/custom_icon/smile-beam-regular.imageset/smile-beam-regular.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/smile-beam-regular.imageset/smile-beam-regular@2x.png b/Shared/Assets.xcassets/custom_icon/smile-beam-regular.imageset/smile-beam-regular@2x.png
new file mode 100644
index 0000000..fb3ee40
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/smile-beam-regular.imageset/smile-beam-regular@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/smile-beam-regular.imageset/smile-beam-regular@3x.png b/Shared/Assets.xcassets/custom_icon/smile-beam-regular.imageset/smile-beam-regular@3x.png
new file mode 100644
index 0000000..06f7d84
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/smile-beam-regular.imageset/smile-beam-regular@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/star-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/star-solid.imageset/Contents.json
index 85f1d54..89a897e 100644
--- a/Shared/Assets.xcassets/custom_icon/star-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/star-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "star-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "star-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/star-solid.imageset/star-solid.png b/Shared/Assets.xcassets/custom_icon/star-solid.imageset/star-solid.png
index 5d3b66a..0d538eb 100644
Binary files a/Shared/Assets.xcassets/custom_icon/star-solid.imageset/star-solid.png and b/Shared/Assets.xcassets/custom_icon/star-solid.imageset/star-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/star-solid.imageset/star-solid@2x.png b/Shared/Assets.xcassets/custom_icon/star-solid.imageset/star-solid@2x.png
new file mode 100644
index 0000000..c86256f
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/star-solid.imageset/star-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/star-solid.imageset/star-solid@3x.png b/Shared/Assets.xcassets/custom_icon/star-solid.imageset/star-solid@3x.png
new file mode 100644
index 0000000..2ae16dc
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/star-solid.imageset/star-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/times-solid.imageset/times-solid.png b/Shared/Assets.xcassets/custom_icon/times-solid.imageset/times-solid.png
deleted file mode 100644
index dfb19bd..0000000
Binary files a/Shared/Assets.xcassets/custom_icon/times-solid.imageset/times-solid.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/custom_icon/virus-covid-solid.imageset/Contents.json b/Shared/Assets.xcassets/custom_icon/virus-covid-solid.imageset/Contents.json
index 07735e1..b21242d 100644
--- a/Shared/Assets.xcassets/custom_icon/virus-covid-solid.imageset/Contents.json
+++ b/Shared/Assets.xcassets/custom_icon/virus-covid-solid.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "virus-covid-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "virus-covid-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/custom_icon/virus-covid-solid.imageset/virus-covid-solid.png b/Shared/Assets.xcassets/custom_icon/virus-covid-solid.imageset/virus-covid-solid.png
index 6a0762b..99e1748 100644
Binary files a/Shared/Assets.xcassets/custom_icon/virus-covid-solid.imageset/virus-covid-solid.png and b/Shared/Assets.xcassets/custom_icon/virus-covid-solid.imageset/virus-covid-solid.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/virus-covid-solid.imageset/virus-covid-solid@2x.png b/Shared/Assets.xcassets/custom_icon/virus-covid-solid.imageset/virus-covid-solid@2x.png
new file mode 100644
index 0000000..16a3e30
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/virus-covid-solid.imageset/virus-covid-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/virus-covid-solid.imageset/virus-covid-solid@3x.png b/Shared/Assets.xcassets/custom_icon/virus-covid-solid.imageset/virus-covid-solid@3x.png
new file mode 100644
index 0000000..ed4abac
Binary files /dev/null and b/Shared/Assets.xcassets/custom_icon/virus-covid-solid.imageset/virus-covid-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/custom_icon/x-solid.imageset/x-solid.png b/Shared/Assets.xcassets/custom_icon/x-solid.imageset/x-solid.png
deleted file mode 100644
index 05877e0..0000000
Binary files a/Shared/Assets.xcassets/custom_icon/x-solid.imageset/x-solid.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/default_image/average.imageset/Contents.json b/Shared/Assets.xcassets/default_image/average.imageset/Contents.json
index c3534e4..23d7935 100644
--- a/Shared/Assets.xcassets/default_image/average.imageset/Contents.json
+++ b/Shared/Assets.xcassets/default_image/average.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "meh-regular@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "meh-regular@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/default_image/average.imageset/meh-regular.png b/Shared/Assets.xcassets/default_image/average.imageset/meh-regular.png
index 614c214..6a59218 100644
Binary files a/Shared/Assets.xcassets/default_image/average.imageset/meh-regular.png and b/Shared/Assets.xcassets/default_image/average.imageset/meh-regular.png differ
diff --git a/Shared/Assets.xcassets/default_image/average.imageset/meh-regular@2x.png b/Shared/Assets.xcassets/default_image/average.imageset/meh-regular@2x.png
new file mode 100644
index 0000000..7c4ba3f
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/average.imageset/meh-regular@2x.png differ
diff --git a/Shared/Assets.xcassets/default_image/average.imageset/meh-regular@3x.png b/Shared/Assets.xcassets/default_image/average.imageset/meh-regular@3x.png
new file mode 100644
index 0000000..f107090
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/average.imageset/meh-regular@3x.png differ
diff --git a/Shared/Assets.xcassets/default_image/bad.imageset/Contents.json b/Shared/Assets.xcassets/default_image/bad.imageset/Contents.json
index 351d91f..0347e33 100644
--- a/Shared/Assets.xcassets/default_image/bad.imageset/Contents.json
+++ b/Shared/Assets.xcassets/default_image/bad.imageset/Contents.json
@@ -1,15 +1,17 @@
{
"images" : [
{
- "filename" : "frown-regular 2.png",
+ "filename" : "frown-regular.png",
"idiom" : "universal",
"scale" : "1x"
},
{
+ "filename" : "frown-regular@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "frown-regular@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/default_image/bad.imageset/frown-regular 2.png b/Shared/Assets.xcassets/default_image/bad.imageset/frown-regular 2.png
deleted file mode 100644
index b123d99..0000000
Binary files a/Shared/Assets.xcassets/default_image/bad.imageset/frown-regular 2.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/default_image/bad.imageset/frown-regular.png b/Shared/Assets.xcassets/default_image/bad.imageset/frown-regular.png
new file mode 100644
index 0000000..c85a63b
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/bad.imageset/frown-regular.png differ
diff --git a/Shared/Assets.xcassets/default_image/bad.imageset/frown-regular@2x.png b/Shared/Assets.xcassets/default_image/bad.imageset/frown-regular@2x.png
new file mode 100644
index 0000000..1fea592
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/bad.imageset/frown-regular@2x.png differ
diff --git a/Shared/Assets.xcassets/default_image/bad.imageset/frown-regular@3x.png b/Shared/Assets.xcassets/default_image/bad.imageset/frown-regular@3x.png
new file mode 100644
index 0000000..b57798f
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/bad.imageset/frown-regular@3x.png differ
diff --git a/Shared/Assets.xcassets/default_image/good.imageset/Contents.json b/Shared/Assets.xcassets/default_image/good.imageset/Contents.json
index 6bed8a8..189d45b 100644
--- a/Shared/Assets.xcassets/default_image/good.imageset/Contents.json
+++ b/Shared/Assets.xcassets/default_image/good.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "grin-regular@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "grin-regular@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/default_image/good.imageset/grin-regular.png b/Shared/Assets.xcassets/default_image/good.imageset/grin-regular.png
index de7d15e..181cc39 100644
Binary files a/Shared/Assets.xcassets/default_image/good.imageset/grin-regular.png and b/Shared/Assets.xcassets/default_image/good.imageset/grin-regular.png differ
diff --git a/Shared/Assets.xcassets/default_image/good.imageset/grin-regular@2x.png b/Shared/Assets.xcassets/default_image/good.imageset/grin-regular@2x.png
new file mode 100644
index 0000000..1ce2c4e
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/good.imageset/grin-regular@2x.png differ
diff --git a/Shared/Assets.xcassets/default_image/good.imageset/grin-regular@3x.png b/Shared/Assets.xcassets/default_image/good.imageset/grin-regular@3x.png
new file mode 100644
index 0000000..dc997d1
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/good.imageset/grin-regular@3x.png differ
diff --git a/Shared/Assets.xcassets/default_image/great.imageset/Contents.json b/Shared/Assets.xcassets/default_image/great.imageset/Contents.json
index fc7ace3..7a86c8a 100644
--- a/Shared/Assets.xcassets/default_image/great.imageset/Contents.json
+++ b/Shared/Assets.xcassets/default_image/great.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "smile-beam-regular@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "smile-beam-regular@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/default_image/great.imageset/smile-beam-regular.png b/Shared/Assets.xcassets/default_image/great.imageset/smile-beam-regular.png
index 0729730..f445029 100644
Binary files a/Shared/Assets.xcassets/default_image/great.imageset/smile-beam-regular.png and b/Shared/Assets.xcassets/default_image/great.imageset/smile-beam-regular.png differ
diff --git a/Shared/Assets.xcassets/default_image/great.imageset/smile-beam-regular@2x.png b/Shared/Assets.xcassets/default_image/great.imageset/smile-beam-regular@2x.png
new file mode 100644
index 0000000..b91cee1
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/great.imageset/smile-beam-regular@2x.png differ
diff --git a/Shared/Assets.xcassets/default_image/great.imageset/smile-beam-regular@3x.png b/Shared/Assets.xcassets/default_image/great.imageset/smile-beam-regular@3x.png
new file mode 100644
index 0000000..1d140b2
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/great.imageset/smile-beam-regular@3x.png differ
diff --git a/Shared/Assets.xcassets/default_image/horrible.imageset/Contents.json b/Shared/Assets.xcassets/default_image/horrible.imageset/Contents.json
index 14e62e5..60f34a3 100644
--- a/Shared/Assets.xcassets/default_image/horrible.imageset/Contents.json
+++ b/Shared/Assets.xcassets/default_image/horrible.imageset/Contents.json
@@ -6,10 +6,12 @@
"scale" : "1x"
},
{
+ "filename" : "sad-tear-regular@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "sad-tear-regular@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
diff --git a/Shared/Assets.xcassets/default_image/horrible.imageset/sad-tear-regular.png b/Shared/Assets.xcassets/default_image/horrible.imageset/sad-tear-regular.png
index 68eae26..1804bfa 100644
Binary files a/Shared/Assets.xcassets/default_image/horrible.imageset/sad-tear-regular.png and b/Shared/Assets.xcassets/default_image/horrible.imageset/sad-tear-regular.png differ
diff --git a/Shared/Assets.xcassets/default_image/horrible.imageset/sad-tear-regular@2x.png b/Shared/Assets.xcassets/default_image/horrible.imageset/sad-tear-regular@2x.png
new file mode 100644
index 0000000..0b669bd
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/horrible.imageset/sad-tear-regular@2x.png differ
diff --git a/Shared/Assets.xcassets/default_image/horrible.imageset/sad-tear-regular@3x.png b/Shared/Assets.xcassets/default_image/horrible.imageset/sad-tear-regular@3x.png
new file mode 100644
index 0000000..12ebbdc
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/horrible.imageset/sad-tear-regular@3x.png differ
diff --git a/Shared/Assets.xcassets/default_image/missing.imageset/Contents.json b/Shared/Assets.xcassets/default_image/missing.imageset/Contents.json
index 9a3b0fe..142b7c8 100644
--- a/Shared/Assets.xcassets/default_image/missing.imageset/Contents.json
+++ b/Shared/Assets.xcassets/default_image/missing.imageset/Contents.json
@@ -1,15 +1,17 @@
{
"images" : [
{
- "filename" : "x-solid.png",
+ "filename" : "xmark-solid.png",
"idiom" : "universal",
"scale" : "1x"
},
{
+ "filename" : "xmark-solid@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
+ "filename" : "xmark-solid@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
@@ -17,5 +19,8 @@
"info" : {
"author" : "xcode",
"version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
}
}
diff --git a/Shared/Assets.xcassets/default_image/missing.imageset/x-solid.png b/Shared/Assets.xcassets/default_image/missing.imageset/x-solid.png
deleted file mode 100644
index 05877e0..0000000
Binary files a/Shared/Assets.xcassets/default_image/missing.imageset/x-solid.png and /dev/null differ
diff --git a/Shared/Assets.xcassets/default_image/missing.imageset/xmark-solid.png b/Shared/Assets.xcassets/default_image/missing.imageset/xmark-solid.png
new file mode 100644
index 0000000..686a37b
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/missing.imageset/xmark-solid.png differ
diff --git a/Shared/Assets.xcassets/default_image/missing.imageset/xmark-solid@2x.png b/Shared/Assets.xcassets/default_image/missing.imageset/xmark-solid@2x.png
new file mode 100644
index 0000000..83ab452
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/missing.imageset/xmark-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/default_image/missing.imageset/xmark-solid@3x.png b/Shared/Assets.xcassets/default_image/missing.imageset/xmark-solid@3x.png
new file mode 100644
index 0000000..00c61b2
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/missing.imageset/xmark-solid@3x.png differ
diff --git a/Shared/Assets.xcassets/default_image/xmark-solid.imageset/Contents.json b/Shared/Assets.xcassets/default_image/xmark-solid.imageset/Contents.json
new file mode 100644
index 0000000..142b7c8
--- /dev/null
+++ b/Shared/Assets.xcassets/default_image/xmark-solid.imageset/Contents.json
@@ -0,0 +1,26 @@
+{
+ "images" : [
+ {
+ "filename" : "xmark-solid.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "xmark-solid@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "xmark-solid@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "template-rendering-intent" : "template"
+ }
+}
diff --git a/Shared/Assets.xcassets/default_image/xmark-solid.imageset/xmark-solid.png b/Shared/Assets.xcassets/default_image/xmark-solid.imageset/xmark-solid.png
new file mode 100644
index 0000000..686a37b
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/xmark-solid.imageset/xmark-solid.png differ
diff --git a/Shared/Assets.xcassets/default_image/xmark-solid.imageset/xmark-solid@2x.png b/Shared/Assets.xcassets/default_image/xmark-solid.imageset/xmark-solid@2x.png
new file mode 100644
index 0000000..83ab452
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/xmark-solid.imageset/xmark-solid@2x.png differ
diff --git a/Shared/Assets.xcassets/default_image/xmark-solid.imageset/xmark-solid@3x.png b/Shared/Assets.xcassets/default_image/xmark-solid.imageset/xmark-solid@3x.png
new file mode 100644
index 0000000..00c61b2
Binary files /dev/null and b/Shared/Assets.xcassets/default_image/xmark-solid.imageset/xmark-solid@3x.png differ
diff --git a/Shared/FeelsApp.swift b/Shared/FeelsApp.swift
index 4127855..040a93f 100644
--- a/Shared/FeelsApp.swift
+++ b/Shared/FeelsApp.swift
@@ -26,11 +26,16 @@ struct FeelsApp: App {
var body: some Scene {
WindowGroup {
- MainTabView()
- .environment(\.managedObjectContext, persistenceController.viewContext)
+ // build these here so when tints and other things get updated the views / their data dont
+ // have to get redrawn
+ MainTabView(dayView: DayView(viewModel: DayViewViewModel(addMonthStartWeekdayPadding: false)),
+ monthView: MonthView(viewModel: DayViewViewModel(addMonthStartWeekdayPadding: true)),
+ yearView: YearView(viewModel: YearViewModel()),
+ customizeView: CustomizeView())
+ .environment(\.managedObjectContext, persistenceController.viewContext)
}.onChange(of: scenePhase) { phase in
if phase == .background {
-// BGTask.scheduleBackgroundProcessing()
+ //BGTask.scheduleBackgroundProcessing()
WidgetCenter.shared.reloadAllTimelines()
}
diff --git a/Shared/GoogleService-Info.plist b/Shared/GoogleService-Info.plist
index e14813c..06b9041 100644
--- a/Shared/GoogleService-Info.plist
+++ b/Shared/GoogleService-Info.plist
@@ -3,21 +3,21 @@
CLIENT_ID
- 113402203908-pp7g3udve7koa6tmmovrdj83kq2egugd.apps.googleusercontent.com
+ 946071058799-ennch6m8d30cpio0lrug5v994rktr8m9.apps.googleusercontent.com
REVERSED_CLIENT_ID
- com.googleusercontent.apps.113402203908-pp7g3udve7koa6tmmovrdj83kq2egugd
+ com.googleusercontent.apps.946071058799-ennch6m8d30cpio0lrug5v994rktr8m9
API_KEY
- AIzaSyDtkxvslzC5Fv3n-JfXqvIY6rTZrNCOh5E
+ AIzaSyDRIs9buGGPWtECfyhCgFsNvYzvmQnhDr0
GCM_SENDER_ID
- 113402203908
+ 946071058799
PLIST_VERSION
1
BUNDLE_ID
- com.88oak.ifeelDebug2
+ com.88oakapps.ifeel
PROJECT_ID
- ifeeldev-5b1ad
+ ifeels
STORAGE_BUCKET
- ifeeldev-5b1ad.appspot.com
+ ifeels.appspot.com
IS_ADS_ENABLED
IS_ANALYTICS_ENABLED
@@ -29,6 +29,6 @@
IS_SIGNIN_ENABLED
GOOGLE_APP_ID
- 1:113402203908:ios:90d3fb2e367af0adab4a51
+ 1:946071058799:ios:10f66b0b5dfe758ab0509a
\ No newline at end of file
diff --git a/Shared/Models/DaysFilterClass.swift b/Shared/Models/DaysFilterClass.swift
new file mode 100644
index 0000000..f7c94c8
--- /dev/null
+++ b/Shared/Models/DaysFilterClass.swift
@@ -0,0 +1,31 @@
+//
+// DaysFilterClass.swift
+// Feels
+//
+// Created by Trey Tartt on 3/31/22.
+//
+
+import SwiftUI
+
+class DaysFilterClass: ObservableObject {
+ static let shared = DaysFilterClass()
+
+ @Published public var currentFilters = [Int]()
+
+ init() {
+ let storedDays = UserDefaultsStore.getDaysFilter()
+ currentFilters = storedDays
+ }
+
+ func addFilter(newFilter: Int) {
+ currentFilters.append(newFilter)
+ currentFilters = UserDefaultsStore.saveDaysFilter(days: currentFilters)
+ }
+
+ func removeFilter(filter: Int) {
+ if let index = currentFilters.firstIndex(of: filter) {
+ currentFilters.remove(at: index)
+ }
+ currentFilters = UserDefaultsStore.saveDaysFilter(days: currentFilters)
+ }
+}
diff --git a/Shared/Models/DiamondView.swift b/Shared/Models/DiamondView.swift
new file mode 100644
index 0000000..3f642c0
--- /dev/null
+++ b/Shared/Models/DiamondView.swift
@@ -0,0 +1,31 @@
+//
+// DiamondView.swift
+// Feels
+//
+// Created by Trey Tartt on 3/20/22.
+//
+
+import SwiftUI
+
+struct Diamond:Shape {
+
+ func path(in rect: CGRect) -> Path {
+ var path = Path()
+ // get the center of the rect
+ let center = CGPoint(x: rect.midX, y: rect.midY)
+ // get the starting of our drawing the right side of our diamond
+ let startingPoint = CGPoint(x: rect.maxX, y: center.y)
+ // move our start of drawing to the beggining point
+ path.move(to: startingPoint)
+ // distance / 2 is our height
+ // create all our points
+ let secondPoint = CGPoint(x: center.x, y: rect.maxY)
+ let thirdPoint = CGPoint(x: rect.minX , y: center.y)
+ let fourthPoint = CGPoint(x: center.x, y: rect.minY)
+ path.addLine(to: secondPoint)
+ path.addLine(to: thirdPoint)
+ path.addLine(to: fourthPoint)
+ path.addLine(to: startingPoint)
+ return path
+ }
+}
diff --git a/Shared/Models/MoodImagable.swift b/Shared/Models/MoodImagable.swift
index ec44d81..398de35 100644
--- a/Shared/Models/MoodImagable.swift
+++ b/Shared/Models/MoodImagable.swift
@@ -54,9 +54,9 @@ final class FontAwesomeMoodImages: MoodImagable {
case .great:
return Image("great", bundle: .main)
case .missing:
- return Image("missing", bundle: .main)
+ return Image("xmark-solid", bundle: .main)
case .placeholder:
- return Image("missing", bundle: .main)
+ return Image("xmark-solid", bundle: .main)
}
}
}
@@ -75,9 +75,9 @@ final class EmojiMoodImages: MoodImagable {
case .great:
return Image(uiImage: "😀".textToImage()!)
case .missing:
- return Image("x-solid", bundle: .main)
+ return Image("xmark-solid", bundle: .main)
case .placeholder:
- return Image("x-solid", bundle: .main)
+ return Image("xmark-solid", bundle: .main)
}
}
}
@@ -96,9 +96,9 @@ final class HandEmojiMoodImages: MoodImagable {
case .great:
return Image(uiImage: "🙏".textToImage()!)
case .missing:
- return Image("x-solid", bundle: .main)
+ return Image("xmark-solid", bundle: .main)
case .placeholder:
- return Image("x-solid", bundle: .main)
+ return Image("xmark-solid", bundle: .main)
}
}
}
diff --git a/Shared/Models/MoodTintable.swift b/Shared/Models/MoodTintable.swift
index c8620fb..d01f621 100644
--- a/Shared/Models/MoodTintable.swift
+++ b/Shared/Models/MoodTintable.swift
@@ -7,6 +7,12 @@
import SwiftUI
+struct DefaultTextColor {
+ static var textColor: Color {
+ Color(UIColor.label)
+ }
+}
+
protocol MoodTintable {
static func color(forMood mood: Mood) -> Color
static func secondary(forMood mood: Mood) -> Color
@@ -154,9 +160,9 @@ final class DefaultMoodTint: MoodTintable {
case .great:
return Color(hex: "31d158")
case .missing:
- return Color(uiColor: UIColor.lightGray)
+ return Color(uiColor: UIColor.systemGray2)
case .placeholder:
- return Color(uiColor: UIColor.lightGray)
+ return Color(uiColor: UIColor.systemGray2)
}
}
@@ -173,9 +179,9 @@ final class DefaultMoodTint: MoodTintable {
case .great:
return Color(hex: "208939")
case .missing:
- return Color(uiColor: UIColor.lightGray)
+ return Color(uiColor: UIColor.label)
case .placeholder:
- return Color(uiColor: UIColor.lightGray)
+ return Color(uiColor: UIColor.label)
}
}
}
@@ -316,7 +322,7 @@ final class PastelTint: MoodTintable {
case .missing:
return Color(uiColor: UIColor.systemGray2)
case .placeholder:
- return Color(uiColor: UIColor.systemGray4)
+ return Color(uiColor: UIColor.systemGray2)
}
}
@@ -333,9 +339,9 @@ final class PastelTint: MoodTintable {
case .great:
return Color(hex: "#6b7e6d")
case .missing:
- return Color(uiColor: UIColor.systemGray2)
+ return Color(uiColor: UIColor.label)
case .placeholder:
- return Color(uiColor: UIColor.systemGray4)
+ return Color(uiColor: UIColor.label)
}
}
}
diff --git a/Shared/Models/Shapes.swift b/Shared/Models/Shapes.swift
new file mode 100644
index 0000000..16ecd17
--- /dev/null
+++ b/Shared/Models/Shapes.swift
@@ -0,0 +1,95 @@
+//
+// Shapes.swift
+// Feels
+//
+// Created by Trey Tartt on 3/20/22.
+//
+
+import SwiftUI
+
+enum BGShape: Int, CaseIterable {
+ case circle
+ case diamond
+ case rectangle
+ case roundedRectangle
+
+ func view(withText text: Text, bgColor: Color, textColor: Color) -> some View{
+ return AnyView(
+ ZStack {
+ switch self {
+ case .circle:
+ Circle()
+ .fill(bgColor)
+ .frame(minWidth: 5,
+ maxWidth: 500,
+ minHeight: 5,
+ maxHeight: 500,
+ alignment: .center)
+ .overlay(
+ text
+ .font(.title2)
+ .fontWeight(.bold)
+ .lineLimit(1)
+ .foregroundColor(textColor)
+ .minimumScaleFactor(0.2)
+ .padding(10)
+ .frame(maxWidth: .infinity, alignment: .center)
+ )
+ case .diamond:
+ Diamond()
+ .fill(bgColor)
+ .frame(minWidth: 5,
+ maxWidth: 500,
+ minHeight: 5,
+ maxHeight: 500)
+ .aspectRatio(contentMode: .fit)
+ .overlay(
+ text
+ .font(.title2)
+ .fontWeight(.bold)
+ .lineLimit(1)
+ .foregroundColor(textColor)
+ .minimumScaleFactor(0.2)
+ .padding(10)
+ .frame(maxWidth: .infinity, alignment: .center)
+ )
+ case .rectangle:
+ Rectangle()
+ .fill(bgColor)
+ .frame(minWidth: 5,
+ maxWidth: 500,
+ minHeight: 5,
+ maxHeight: 500,
+ alignment: .center)
+ .overlay(
+ text
+ .font(.title2)
+ .fontWeight(.bold)
+ .lineLimit(1)
+ .foregroundColor(textColor)
+ .minimumScaleFactor(0.2)
+ .padding(10)
+ .frame(maxWidth: .infinity, alignment: .center)
+ )
+ case .roundedRectangle:
+ RoundedRectangle(cornerRadius: 8, style: .continuous)
+ .fill(bgColor)
+ .frame(minWidth: 5,
+ maxWidth: 500,
+ minHeight: 5,
+ maxHeight: 500,
+ alignment: .center)
+ .overlay(
+ text
+ .font(.title2)
+ .fontWeight(.bold)
+ .lineLimit(1)
+ .foregroundColor(textColor)
+ .minimumScaleFactor(0.2)
+ .padding(10)
+ .frame(maxWidth: .infinity, alignment: .center)
+ )
+ }
+ })
+ }
+}
diff --git a/Shared/Models/StupidAssCustomWidgetObservableObject.swift b/Shared/Models/StupidAssCustomWidgetObservableObject.swift
new file mode 100644
index 0000000..4991e28
--- /dev/null
+++ b/Shared/Models/StupidAssCustomWidgetObservableObject.swift
@@ -0,0 +1,13 @@
+//
+// StupidAssCustomWidgetObservableObject.swift
+// Feels
+//
+// Created by Trey Tartt on 3/31/22.
+//
+
+import Foundation
+
+class StupidAssCustomWidgetObservableObject: ObservableObject {
+ @Published var fuckingWrapped: CustomWidgetModel? = nil
+ @Published var showFuckingSheet = false
+}
diff --git a/Shared/Models/UserDefaultsStore.swift b/Shared/Models/UserDefaultsStore.swift
index d983abd..3cd03bb 100644
--- a/Shared/Models/UserDefaultsStore.swift
+++ b/Shared/Models/UserDefaultsStore.swift
@@ -23,6 +23,8 @@ class UserDefaultsStore {
case customMoodTintUpdateNumber
case textColor
case showNSFW
+ case shape
+ case daysFilter
case contentViewCurrentSelectedHeaderViewBackDays
case contentViewHeaderTag
@@ -190,6 +192,15 @@ class UserDefaultsStore {
return SavedMoodTint()
}
+ static func getCustomBGShape() -> BGShape {
+ if let data = GroupUserDefaults.groupDefaults.object(forKey: UserDefaultsStore.Keys.shape.rawValue) as? Int,
+ let model = BGShape.init(rawValue: data) {
+ return model
+ } else {
+ return BGShape.circle
+ }
+ }
+
@discardableResult
static func saveCustomMoodTint(customTint: SavedMoodTint) -> SavedMoodTint {
do {
@@ -201,5 +212,19 @@ class UserDefaultsStore {
fatalError("error saving")
}
}
+
+ @discardableResult
+ static func saveDaysFilter(days: [Int]) -> [Int] {
+ GroupUserDefaults.groupDefaults.set(days, forKey: UserDefaultsStore.Keys.daysFilter.rawValue)
+ return UserDefaultsStore.getDaysFilter()
+ }
+
+ static func getDaysFilter() -> [Int] {
+ if let data = GroupUserDefaults.groupDefaults.object(forKey: UserDefaultsStore.Keys.daysFilter.rawValue) as? [Int] {
+ return data
+ } else {
+ return [1,2,3,4,5,6,7]
+ }
+ }
}
diff --git a/Shared/Onboarding/views/OnboardingCustomizeOne.swift b/Shared/Onboarding/views/OnboardingCustomizeOne.swift
new file mode 100644
index 0000000..8a1dea5
--- /dev/null
+++ b/Shared/Onboarding/views/OnboardingCustomizeOne.swift
@@ -0,0 +1,74 @@
+//
+// OnboardingCustomizeOne.swift
+// Feels (iOS)
+//
+// Created by Trey Tartt on 4/5/22.
+//
+
+import SwiftUI
+
+struct OnboardingCustomizeOne: View {
+ @ObservedObject var onboardingData: OnboardingData
+
+ var formatter: DateFormatter {
+ let dateFormatter = DateFormatter()
+ dateFormatter.timeStyle = .short
+ return dateFormatter
+ }
+
+ var body: some View {
+ ZStack {
+ GeometryReader { geometry in
+ VStack {
+ Spacer()
+ Image("average", bundle: .main)
+ .foregroundColor(Color(UIColor.darkText))
+ .opacity(0.04)
+ .scaleEffect(1.2, anchor: .trailing)
+ Spacer()
+ }
+
+
+ ScrollView {
+ VStack(alignment: .leading) {
+ Text(String(localized: "onboarding_title_customize_one_title"))
+ .font(.title)
+ .padding()
+ .fixedSize(horizontal: false, vertical: true)
+ .foregroundColor(Color(UIColor.white))
+
+ Text(String(localized: "onboarding_title_customize_one_section_one_title"))
+ .font(.title3)
+ .fixedSize(horizontal: false, vertical: true)
+ .padding()
+ .foregroundColor(Color(UIColor.white))
+ .multilineTextAlignment(.leading)
+ IconPickerView()
+
+ Text(String(localized: "onboarding_title_customize_one_section_two_title"))
+ .font(.title3)
+ .padding()
+ .fixedSize(horizontal: false, vertical: true)
+ .foregroundColor(Color(UIColor.white))
+
+ DayFilterPickerView()
+
+ Text(String(localized: "onboarding_title_customize_one_section_two_note"))
+ .font(.title3)
+ .padding()
+ .fixedSize(horizontal: false, vertical: true)
+ .foregroundColor(Color(UIColor.white))
+ }
+ }
+ .padding()
+ }
+ }
+ .background(Color(hex: "0b84ff"))
+ }
+}
+
+struct OnboardingCustomizeOne_Previews: PreviewProvider {
+ static var previews: some View {
+ OnboardingCustomizeOne(onboardingData: OnboardingData())
+ }
+}
diff --git a/Shared/Onboarding/views/OnboardingCustomizeTwo.swift b/Shared/Onboarding/views/OnboardingCustomizeTwo.swift
new file mode 100644
index 0000000..9fb51c8
--- /dev/null
+++ b/Shared/Onboarding/views/OnboardingCustomizeTwo.swift
@@ -0,0 +1,82 @@
+//
+// OnboardingCustomizeTwo.swift
+// Feels (iOS)
+//
+// Created by Trey Tartt on 4/5/22.
+//
+
+import SwiftUI
+
+struct OnboardingCustomizeTwo: View {
+ @ObservedObject var onboardingData: OnboardingData
+
+ var formatter: DateFormatter {
+ let dateFormatter = DateFormatter()
+ dateFormatter.timeStyle = .short
+ return dateFormatter
+ }
+
+ var body: some View {
+ ZStack {
+ GeometryReader { geometry in
+ VStack {
+ Spacer()
+ Image("bad", bundle: .main)
+ .foregroundColor(Color(UIColor.darkText))
+ .opacity(0.04)
+ .scaleEffect(1.2, anchor: .trailing)
+ Spacer()
+ }
+
+ VStack {
+ SampleEntryView()
+ .padding([.top])
+
+ ScrollView {
+ VStack(alignment: .leading) {
+ Text(String(localized: "onboarding_title_customize_two_title"))
+ .font(.title)
+ .padding()
+ .fixedSize(horizontal: false, vertical: true)
+ .foregroundColor(Color(UIColor.white))
+
+
+ Text(String(localized: "onboarding_title_customize_two_section_one_title"))
+ .font(.title3)
+ .padding()
+ .fixedSize(horizontal: false, vertical: true)
+ .foregroundColor(Color(UIColor.white))
+ ImagePackPickerView()
+
+ Text(String(localized: "onboarding_title_customize_two_section_two_title"))
+ .font(.title3)
+ .padding()
+ .fixedSize(horizontal: false, vertical: true)
+ .foregroundColor(Color(UIColor.white))
+
+
+ TintPickerView()
+
+ Text(String(localized: "onboarding_title_customize_two_section_three_title"))
+ .font(.title3)
+ .padding()
+ .fixedSize(horizontal: false, vertical: true)
+ .foregroundColor(Color(UIColor.white))
+
+
+ TextColorPickerView()
+ }
+ }
+ }
+ .padding()
+ }
+ }
+ .background(Color(hex: "ff9e0b"))
+ }
+}
+
+struct OnboardingCustomizeTwo_Previews: PreviewProvider {
+ static var previews: some View {
+ OnboardingCustomizeTwo(onboardingData: OnboardingData())
+ }
+}
diff --git a/Shared/Onboarding/views/OnboardingDay.swift b/Shared/Onboarding/views/OnboardingDay.swift
index d05e113..450f502 100644
--- a/Shared/Onboarding/views/OnboardingDay.swift
+++ b/Shared/Onboarding/views/OnboardingDay.swift
@@ -36,51 +36,46 @@ struct OnboardingDay: View {
var body: some View {
ZStack {
-
- Image("average", bundle: .main)
- .foregroundColor(Color(UIColor.darkText))
- .opacity(0.04)
- .scaleEffect(1.2)
- .padding(.bottom, 55)
-
- ScrollView {
- VStack{
- Text(String(localized: "onboarding_day_title"))
- .font(.title)
- .foregroundColor(Color(UIColor.white))
- .padding([.trailing, .leading], 55)
- .padding([.top], 25)
-
- Picker(selection: $onboardingData.inputDay,
- label: Text("")) {
- ForEach(DayOptions.allCases, id: \.self) { day in
- Text(day.localizedValue)
- }
- }
- .padding()
- .colorScheme(.dark)
- .padding([.trailing, .leading], 55)
- .pickerStyle(SegmentedPickerStyle())
-
- Text(String(localized: "onboarding_day_body"))
- .font(.body)
- .foregroundColor(Color(UIColor.white))
- .padding([.trailing, .leading], 75)
- .padding([.top], 15)
-
- Text(previewText)
- .font(.body)
- .foregroundColor(Color(UIColor.white))
- .padding([.trailing, .leading], 75)
- .padding([.top], 15)
-
+ GeometryReader { geometry in
+ VStack {
+ Spacer()
+ Image("good", bundle: .main)
+ .foregroundColor(Color(UIColor.darkText))
+ .opacity(0.04)
+ .scaleEffect(1.2, anchor: .trailing)
Spacer()
-
-
}
+
+ ScrollView {
+ VStack(alignment: .leading) {
+ Text(String(localized: "onboarding_day_title"))
+ .font(.title)
+ .padding()
+ .fixedSize(horizontal: false, vertical: true)
+ .foregroundColor(.black)
+
+
+ Picker(selection: $onboardingData.inputDay,
+ label: Text("")) {
+ ForEach(DayOptions.allCases, id: \.self) { day in
+ Text(day.localizedValue)
+ }
+ }
+ .padding()
+ .padding([.trailing, .leading], 55)
+ .pickerStyle(SegmentedPickerStyle())
+
+ Text(previewText)
+ .font(.title3)
+ .padding()
+ .fixedSize(horizontal: false, vertical: true)
+ .foregroundColor(.black)
+ }
+ }
+ .padding()
}
}
- .background(.blue)
+ .background(Color(hex: "ffd709"))
}
}
diff --git a/Shared/Onboarding/views/OnboardingMain.swift b/Shared/Onboarding/views/OnboardingMain.swift
index 9ffe39e..980ec38 100644
--- a/Shared/Onboarding/views/OnboardingMain.swift
+++ b/Shared/Onboarding/views/OnboardingMain.swift
@@ -19,6 +19,10 @@ struct OnboardingMain: View {
OnboardingDay(onboardingData: onboardingData)
+ OnboardingCustomizeOne(onboardingData: onboardingData)
+
+ OnboardingCustomizeTwo(onboardingData: onboardingData)
+
// OnboardingTitle(onboardingData: onboardingData)
OnboardingWrapup(onboardingData: onboardingData,
diff --git a/Shared/Onboarding/views/OnboardingTime.swift b/Shared/Onboarding/views/OnboardingTime.swift
index b858471..f175c29 100644
--- a/Shared/Onboarding/views/OnboardingTime.swift
+++ b/Shared/Onboarding/views/OnboardingTime.swift
@@ -18,41 +18,44 @@ struct OnboardingTime: View {
var body: some View {
ZStack {
-
- Image("great", bundle: .main)
- .foregroundColor(Color(UIColor.darkText))
- .opacity(0.04)
- .scaleEffect(1.2)
-
- ScrollView {
- VStack {
+ GeometryReader { geometry in
+ VStack(alignment: .leading) {
+ Spacer()
+ Image("great", bundle: .main)
+ .foregroundColor(Color(UIColor.darkText))
+ .opacity(0.04)
+ .scaleEffect(1.2, anchor: .trailing)
+ Spacer()
+ }
+
+
+ ScrollView {
Text(String(localized: "onboarding_time_title"))
.font(.title)
- .padding([.trailing, .leading], 55)
- .padding([.top], 25)
+ .padding()
+ .fixedSize(horizontal: false, vertical: true)
.foregroundColor(Color(UIColor.white))
DatePicker("", selection: $onboardingData.date,
displayedComponents: .hourAndMinute)
- .scaleEffect(2)
- .labelsHidden()
- .frame(minWidth: 0, maxWidth: .infinity)
- .padding()
- .padding([.top, .bottom], 25)
- .colorScheme(.dark)
+ .scaleEffect(2)
+ .labelsHidden()
+ .frame(minWidth: 0, maxWidth: .infinity)
+ .padding()
+ .padding([.top, .bottom], 25)
+ .colorScheme(.dark)
Text(String(format: String(localized: "onboarding_time_body"),
formatter.string(from: onboardingData.date)))
- .font(.body)
- .padding([.top], 15)
- .padding([.trailing, .leading], 55)
- .foregroundColor(Color(UIColor.white))
-
- Spacer()
+ .font(.title3)
+ .fixedSize(horizontal: false, vertical: true)
+ .padding()
+ .foregroundColor(Color(UIColor.white))
}
+ .padding()
}
}
- .background(.green)
+ .background(Color(hex: "31d158"))
}
}
diff --git a/Shared/Onboarding/views/OnboardingWrapup.swift b/Shared/Onboarding/views/OnboardingWrapup.swift
index 4961a2e..5a8491f 100644
--- a/Shared/Onboarding/views/OnboardingWrapup.swift
+++ b/Shared/Onboarding/views/OnboardingWrapup.swift
@@ -20,77 +20,65 @@ struct OnboardingWrapup: View {
var body: some View {
ZStack {
-
- Image("good", bundle: .main)
- .foregroundColor(Color(UIColor.darkText))
- .opacity(0.04)
- .scaleEffect(1.2)
- .padding(.bottom, 55)
-
- ScrollView {
+ GeometryReader { geometry in
VStack {
Spacer()
+ Image("horrible", bundle: .main)
+ .foregroundColor(Color(UIColor.darkText))
+ .opacity(0.04)
+ .scaleEffect(1.2, anchor: .trailing)
+ Spacer()
+ }
+
+ VStack {
+ ScrollView {
- Text(String(localized: "onboarding_wrap_up_1"))
- .font(.title)
- .foregroundColor(Color(UIColor.white))
- .padding([.trailing, .leading], 55)
- .padding([.top], 15)
-
- Text(formatter.string(from: onboardingData.date))
- .font(.title)
- .fontWeight(.bold)
- .foregroundColor(Color(UIColor.white))
- .padding([.trailing, .leading], 55)
- .padding([.top], 15)
-
-// Text(String(localized: "onboarding_wrap_up_2"))
-// .font(.title)
-// .foregroundColor(Color(UIColor.white))
-// .padding([.trailing, .leading], 55)
-// .padding([.top], 15)
-
-// Text(onboardingData.title)
-// .font(.title)
-// .fontWeight(.bold)
-// .foregroundColor(Color(UIColor.white))
-// .padding([.trailing, .leading], 55)
-// .padding([.top], 15)
-
- Text(String(localized: "onboarding_wrap_up_3"))
- .font(.title)
- .foregroundColor(Color(UIColor.white))
- .padding([.trailing, .leading], 55)
- .padding([.top], 15)
-
- Text(onboardingData.inputDay.localizedValue)
- .font(.title)
- .fontWeight(.bold)
- .foregroundColor(Color(UIColor.white))
- .padding([.trailing, .leading], 55)
- .padding([.top], 15)
-
- Button(action: {
- EventLogger.log(event: "onboarding_complete")
- EventLogger.log(event: "onboarding_complete_day_id",
- withData: ["id": onboardingData.inputDay.rawValue])
- completionClosure(onboardingData)
- }, label: {
- Text(String(localized: "onboarding_wrap_up_complete_button"))
+ Spacer()
+
+ Text(String(localized: "onboarding_wrap_up_1"))
+ .padding()
+ .font(.title)
+ .foregroundColor(Color(UIColor.white))
+
+ Text(formatter.string(from: onboardingData.date))
.font(.title)
.fontWeight(.bold)
- .foregroundColor(.yellow)
- .padding(10)
- .padding([.leading, .trailing], 25)
- .background(RoundedRectangle(cornerRadius: 10).fill().foregroundColor(Color.white))
- .cornerRadius(10)
- })
+ .padding()
+ .foregroundColor(Color(UIColor.white))
+
+ Text(String(localized: "onboarding_wrap_up_3"))
+ .font(.title)
+ .padding()
+ .foregroundColor(Color(UIColor.white))
+
+ Text(onboardingData.inputDay.localizedValue)
+ .font(.title)
+ .fontWeight(.bold)
+ .padding()
+ .foregroundColor(Color(UIColor.white))
+
+ Button(action: {
+ EventLogger.log(event: "onboarding_complete")
+ EventLogger.log(event: "onboarding_complete_day_id",
+ withData: ["id": onboardingData.inputDay.rawValue])
+ completionClosure(onboardingData)
+ }, label: {
+ Text(String(localized: "onboarding_wrap_up_complete_button"))
+ .font(.title)
+ .fontWeight(.bold)
+ .foregroundColor(.yellow)
+ .padding()
+ .background(RoundedRectangle(cornerRadius: 10).fill().foregroundColor(Color.white))
+ .cornerRadius(10)
+ })
.padding([.top], 65)
+ }
+ .multilineTextAlignment(.center)
}
- .multilineTextAlignment(.center)
+ .frame(maxWidth: geometry.size.width)
}
}
- .background(.yellow)
+ .background(Color(hex: "ff453a"))
}
}
@@ -104,7 +92,7 @@ struct OnboardingWrapup_Previews: PreviewProvider {
OnboardingWrapup(onboardingData: OnboardingData(), completionClosure: { _ in
})
- .preferredColorScheme(.dark)
+ .preferredColorScheme(.dark)
}
}
}
diff --git a/Shared/Persisence/PersistenceADD.swift b/Shared/Persisence/PersistenceADD.swift
index 16c0cbb..ea7e0be 100644
--- a/Shared/Persisence/PersistenceADD.swift
+++ b/Shared/Persisence/PersistenceADD.swift
@@ -8,6 +8,19 @@
import CoreData
extension PersistenceController {
+ public func fixWrongWeekdays() {
+ let data = PersistenceController.shared.getData(startDate: Date(timeIntervalSince1970: 0),
+ endDate: Date(),
+ includedDays: []).sorted(by: {
+ $0.forDate! < $1.forDate!
+ })
+
+ data.forEach({
+ $0.weekDay = Int16(Calendar.current.component(.weekday, from: $0.forDate!))
+ })
+ try? viewContext.save()
+ }
+
public func add(mood: Mood, forDate date: Date, entryType: EntryType) {
if let existingEntry = getEntry(byDate: date) {
viewContext.delete(existingEntry)
@@ -30,7 +43,9 @@ extension PersistenceController {
func fillInMissingDates() {
let currentOnboarding = UserDefaultsStore.getOnboarding()
- let endDate = ShowBasedOnVoteLogics.getLastDateVoteShouldExist(onboardingData: currentOnboarding)
+ var endDate = ShowBasedOnVoteLogics.getCurrentVotingDate(onboardingData: currentOnboarding)
+ // since its for views take away the last date so vote is enabled
+ endDate = Calendar.current.date(byAdding: .day, value: -1, to: endDate)!
let fetchRequest = NSFetchRequest(entityName: "MoodEntry")
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "forDate", ascending: false)]
diff --git a/Shared/Persisence/PersistenceGET.swift b/Shared/Persisence/PersistenceGET.swift
index 98e3497..57cfde2 100644
--- a/Shared/Persisence/PersistenceGET.swift
+++ b/Shared/Persisence/PersistenceGET.swift
@@ -48,10 +48,10 @@ extension PersistenceController {
return data
}
- public func splitIntoYearMonth() -> [Int: [Int: [MoodEntry]]] {
+ public func splitIntoYearMonth(includedDays: [Int]) -> [Int: [Int: [MoodEntry]]] {
let data = PersistenceController.shared.getData(startDate: Date(timeIntervalSince1970: 0),
endDate: Date(),
- includedDays: [1,2,3,4,5,6,7]).sorted(by: {
+ includedDays: includedDays).sorted(by: {
$0.forDate! < $1.forDate!
})
var returnData = [Int: [Int: [MoodEntry]]]()
diff --git a/Shared/Protocols/ChartDataBuildable.swift b/Shared/Protocols/ChartDataBuildable.swift
index e05037a..9b4854b 100644
--- a/Shared/Protocols/ChartDataBuildable.swift
+++ b/Shared/Protocols/ChartDataBuildable.swift
@@ -81,13 +81,13 @@ extension ChartDataBuildable {
let view = ChartType(color: moodTint.color(forMood: item.mood),
weekDay: Int(item.weekDay),
- viewType: .square)
+ shape: UserDefaultsStore.getCustomBGShape())
filledOutArray.append(view)
} else {
let thisDate = Calendar.current.date(bySetting: .day, value: day, of: month)!
let view = ChartType(color: Mood.placeholder.color,
weekDay: Calendar.current.component(.weekday, from: thisDate),
- viewType: .square)
+ shape: UserDefaultsStore.getCustomBGShape())
filledOutArray.append(view)
}
}
@@ -95,7 +95,7 @@ extension ChartDataBuildable {
for _ in filledOutArray.count...32 {
let view = ChartType(color: Mood.placeholder.color,
weekDay: 2,
- viewType: .cicle)
+ shape: UserDefaultsStore.getCustomBGShape())
filledOutArray.append(view)
}
diff --git a/Shared/Protocols/ChartViewItemBuildable.swift b/Shared/Protocols/ChartViewItemBuildable.swift
index bad3a22..b7e2f8e 100644
--- a/Shared/Protocols/ChartViewItemBuildable.swift
+++ b/Shared/Protocols/ChartViewItemBuildable.swift
@@ -7,16 +7,10 @@
import SwiftUI
-enum ViewType: Hashable {
- case cicle
- case square
- case text(String)
-}
-
protocol ChartViewItemBuildable: View {
var color: Color { get }
var weekDay: Int { get }
- var viewType: ViewType { get }
+ var shape: BGShape { get }
- init(color: Color, weekDay: Int, viewType: ViewType)
+ init(color: Color, weekDay: Int, shape: BGShape)
}
diff --git a/Shared/Random.swift b/Shared/Random.swift
index 85fe0ea..08a9d15 100644
--- a/Shared/Random.swift
+++ b/Shared/Random.swift
@@ -9,8 +9,10 @@ import Foundation
import SwiftUI
struct Constants {
- static let groupShareId = "group.com.88oak.ifeel"
- static let groupShareIdDebug = "group.com.88oak.ifeelDebug"
+ static let groupShareId = "group.com.88oakapps.ifeel"
+ static let groupShareIdDebug = "group.com.88oakapps.ifeelDebug"
+
+ static let viewsCornerRaidus: CGFloat = 10
}
struct GroupUserDefaults {
diff --git a/Shared/ShowBasedOnVoteLogics.swift b/Shared/ShowBasedOnVoteLogics.swift
index 71d1267..bb6a2c5 100644
--- a/Shared/ShowBasedOnVoteLogics.swift
+++ b/Shared/ShowBasedOnVoteLogics.swift
@@ -28,110 +28,14 @@ import SwiftUI
*/
class ShowBasedOnVoteLogics {
- static func returnCurrentVoteStatus(onboardingData: OnboardingData) -> (Bool, DayOptions) {
- let passedTimeToVote = ShowBasedOnVoteLogics.ableToVoteBasedOnCurentTime(voteDate: onboardingData.date)
+ static private func returnCurrentVoteStatus(onboardingData: OnboardingData) -> (Bool, DayOptions) {
+ let passedTimeToVote = ShowBasedOnVoteLogics.passedTodaysVotingUnlock(voteDate: onboardingData.date)
let inputDay: DayOptions = onboardingData.inputDay
return (passedTimeToVote, inputDay)
}
- static func isMissingCurrentVote(onboardingData: OnboardingData) -> Bool {
- var startDate: Date?
-
- switch ShowBasedOnVoteLogics.returnCurrentVoteStatus(onboardingData: onboardingData) {
- case (false, .Today):
- // if we're NOT passed time to vote and the voting type is previous - last vote should be -1
- startDate = Calendar.current.date(byAdding: .day, value: -1, to: Date())!
- case (true, .Today):
- // if we're passed time to vote and the voting type is today - last vote should be current date
- startDate = Date()
-
- case (false, .Previous):
- // if we're NOT passed time to vote and the voting type is previous - last vote should be 2 days ago
- startDate = Calendar.current.date(byAdding: .day, value: -2, to: Date())!
- case (true, .Previous):
- // if we're passed time to vote and the voting type is previous - last vote should be -1
- startDate = Calendar.current.date(byAdding: .day, value: -1, to: Date())!
- }
-
- startDate = Calendar.current.startOfDay(for: startDate!)
- let endDate = Calendar.current.date(byAdding: .day, value: 1, to: startDate!)!
-
- let fetchRequest = NSFetchRequest(entityName: "MoodEntry")
- let fromPredicate = NSPredicate(format: "%@ <= %K", startDate!
- as NSDate, #keyPath(MoodEntry.forDate))
- let toPredicate = NSPredicate(format: "%K < %@", #keyPath(MoodEntry.forDate), endDate as NSDate)
- let datePredicate = NSCompoundPredicate(andPredicateWithSubpredicates: [fromPredicate, toPredicate])
- fetchRequest.predicate = datePredicate
- let entries = try! PersistenceController.shared.viewContext.count(for: fetchRequest)
-
- return entries < 1
- }
-
- static func getVotingTitle(onboardingData: OnboardingData) -> String {
- switch ShowBasedOnVoteLogics.returnCurrentVoteStatus(onboardingData: onboardingData) {
- case (false, .Today):
- return "how as yesterday"
- case (true, .Today):
- return "how is today"
-
- case (false, .Previous):
- let date = Calendar.current.date(byAdding: .day, value: -2, to: Date())!
- return "how was \(Random.weekdayName(fromDate: date))"
- case (true, .Previous):
- return "how was yesterday"
- }
- }
-
- static func dateForHeaderVote(onboardingData: OnboardingData) -> Date? {
- var date: Date?
-
- switch ShowBasedOnVoteLogics.returnCurrentVoteStatus(onboardingData: onboardingData) {
- case (false, .Today):
- // if we're passed time to vote and the voting type is previous - last vote should be -1
- date = Calendar.current.date(byAdding: .day, value: -1, to: Date())
- case (true, .Today):
- // if we're passed time to vote and the voting type is previous - last vote should be today
- date = Date()
-
- case (false, .Previous):
- // if we're passed time to vote and the voting type is previous - last vote should be -2
- date = Calendar.current.date(byAdding: .day, value: -2, to: Date())
- case (true, .Previous):
- // if we're passed time to vote and the voting type is previous - last vote should be -1
- date = Calendar.current.date(byAdding: .day, value: -1, to: Date())
- }
-
- if let date = date {
- return date
- }
-
- return nil
- }
-
- static func getLastDateVoteShouldExist(onboardingData: OnboardingData) -> Date {
- var date: Date?
-
- switch ShowBasedOnVoteLogics.returnCurrentVoteStatus(onboardingData: onboardingData) {
- case (false, .Today):
- // if we're passed time to vote and the voting type is previous - last vote should be -2
- date = Calendar.current.date(byAdding: .day, value: -2, to: Date())!
- case (true, .Today):
- // if we're passed time to vote and the voting type is previous - last vote should be -1
- date = Calendar.current.date(byAdding: .day, value: -1, to: Date())!
-
- case (false, .Previous):
- // if we're passed time to vote and the voting type is previous - last vote should be -3
- date = Calendar.current.date(byAdding: .day, value: -3, to: Date())!
- case (true, .Previous):
- // if we're passed time to vote and the voting type is previous - last vote should -2
- date = Calendar.current.date(byAdding: .day, value: -2, to: Date())!
- }
-
- return date!
- }
-
- static func ableToVoteBasedOnCurentTime(voteDate: Date) -> Bool {
+ static public func passedTodaysVotingUnlock(voteDate: Date) -> Bool {
let currentDateComp = Calendar.current.dateComponents([.hour, .minute], from: Date())
let savedDateComp = Calendar.current.dateComponents([.hour, .minute], from: voteDate)
@@ -151,4 +55,61 @@ class ShowBasedOnVoteLogics {
return false
}
+
+ static public func isMissingCurrentVote(onboardingData: OnboardingData) -> Bool {
+ let startDate = ShowBasedOnVoteLogics.getCurrentVotingDate(onboardingData: onboardingData).startOfDay
+ let endDate = startDate.endOfDay
+
+ let fetchRequest = NSFetchRequest(entityName: "MoodEntry")
+ let fromPredicate = NSPredicate(format: "%@ <= %K", startDate
+ as NSDate, #keyPath(MoodEntry.forDate))
+ let toPredicate = NSPredicate(format: "%K < %@", #keyPath(MoodEntry.forDate), endDate as NSDate)
+ let datePredicate = NSCompoundPredicate(andPredicateWithSubpredicates: [fromPredicate, toPredicate])
+ fetchRequest.predicate = datePredicate
+ let entries = try! PersistenceController.shared.viewContext.count(for: fetchRequest)
+
+ return entries < 1
+ }
+
+ static public func getCurrentVotingDate(onboardingData: OnboardingData) -> Date {
+ var date: Date?
+ // note to future self, this should account for midnight until next voting unlock
+ // the vote at 12:03 am will not be passed time, and will be for yesterday
+ switch ShowBasedOnVoteLogics.returnCurrentVoteStatus(onboardingData: onboardingData) {
+ case (false, .Today):
+ // if we're passed time to vote and the voting type is previous - last vote should be -1
+ date = Calendar.current.date(byAdding: .day, value: -1, to: Date())
+ case (true, .Today):
+ // if we're passed time to vote and the voting type is previous - last vote should be today
+ date = Date()
+
+ case (false, .Previous):
+ // if we're passed time to vote and the voting type is previous - last vote should be -2
+ date = Calendar.current.date(byAdding: .day, value: -2, to: Date())
+ case (true, .Previous):
+ // if we're passed time to vote and the voting type is previous - last vote should be -1
+ date = Calendar.current.date(byAdding: .day, value: -1, to: Date())
+ }
+
+ guard let date = date else {
+ fatalError("missing getCurrentVotingDate")
+ }
+
+ return date
+ }
+
+ static public func getVotingTitle(onboardingData: OnboardingData) -> String {
+ switch ShowBasedOnVoteLogics.returnCurrentVoteStatus(onboardingData: onboardingData) {
+ case (false, .Today):
+ return String(localized: "add_mood_header_view_title_yesterday")
+ case (true, .Today):
+ return String(localized: "add_mood_header_view_title_today")
+
+ case (false, .Previous):
+ let date = Calendar.current.date(byAdding: .day, value: -2, to: Date())!
+ return String(format: String(localized: "add_mood_header_view_title"), Random.weekdayName(fromDate: date))
+ case (true, .Previous):
+ return String(localized: "add_mood_header_view_title_yesterday")
+ }
+ }
}
diff --git a/Shared/views/AddMoodHeaderView.swift b/Shared/views/AddMoodHeaderView.swift
index 24a8989..a7d492c 100644
--- a/Shared/views/AddMoodHeaderView.swift
+++ b/Shared/views/AddMoodHeaderView.swift
@@ -13,7 +13,7 @@ import CoreData
struct AddMoodHeaderView: View {
@AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
@AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
@State var onboardingData = OnboardingDataDataManager.shared.savedOnboardingData
@@ -54,15 +54,14 @@ struct AddMoodHeaderView: View {
.background(
theme.currentTheme.secondaryBGColor
)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
.frame(minHeight: 88, maxHeight: 150)
.frame(minWidth: 0, maxWidth: .infinity)
}
private func addItem(withMood mood: Mood) {
- if let date = ShowBasedOnVoteLogics.dateForHeaderVote(onboardingData: onboardingData) {
- addItemHeaderClosure(mood, date)
- }
+ let date = ShowBasedOnVoteLogics.getCurrentVotingDate(onboardingData: onboardingData)
+ addItemHeaderClosure(mood, date)
}
}
diff --git a/Shared/views/CustomIcon/CreateWidgetView.swift b/Shared/views/CustomIcon/CreateWidgetView.swift
index 0f4cd09..ca8cb0f 100644
--- a/Shared/views/CustomIcon/CreateWidgetView.swift
+++ b/Shared/views/CustomIcon/CreateWidgetView.swift
@@ -10,15 +10,15 @@ import SwiftUI
struct CreateWidgetView: View {
@AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
@Environment(\.dismiss) var dismiss
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
-
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
+
@StateObject private var customWidget: CustomWidgetModel
@State private var mouth: CustomWidgetMouthOptions = CustomWidgetMouthOptions.defaultOption
@State private var showRightEyeImagePicker: Bool = false
@State private var showLeftEyeImagePicker: Bool = false
@State private var showMuthImagePicker: Bool = false
-
+
var widgetView: CustomWidgetView
private var randomElements: [AnyView]
@@ -26,17 +26,17 @@ struct CreateWidgetView: View {
init(customWidget: CustomWidgetModel, randomElements: [AnyView] = [AnyView]()) {
self.randomElements = [
AnyView(Image(CustomWidgetBackGroundOptions.selectable.randomElement()!.rawValue)
- .resizable()
- .frame(width: 20, height: 20)),
+ .resizable()
+ .frame(width: 20, height: 20)),
AnyView(Image(CustomWidgetBackGroundOptions.selectable.randomElement()!.rawValue)
- .resizable()
- .frame(width: 20, height: 20)),
+ .resizable()
+ .frame(width: 20, height: 20)),
AnyView(Image(CustomWidgetBackGroundOptions.selectable.randomElement()!.rawValue)
- .resizable()
- .frame(width: 20, height: 20)),
+ .resizable()
+ .frame(width: 20, height: 20)),
AnyView(Image(CustomWidgetBackGroundOptions.selectable.randomElement()!.rawValue)
- .resizable()
- .frame(width: 20, height: 20))
+ .resizable()
+ .frame(width: 20, height: 20))
]
_customWidget = StateObject(wrappedValue: customWidget)
@@ -98,239 +98,234 @@ struct CreateWidgetView: View {
}
var bottomBarButtons: some View {
- Group {
- HStack(alignment: .center, spacing: 0) {
- Button(action: {
- EventLogger.log(event: "create_widget_view_shuffle")
- createRandom()
- }, label: {
- Image(systemName: "shuffle")
- .font(.title)
- .foregroundColor(Color(UIColor.white))
-
- })
- .frame(minWidth: 0, maxWidth: .infinity)
- .frame(height: 40)
- .background(.blue)
+ HStack(alignment: .center, spacing: 0) {
+ Button(action: {
+ EventLogger.log(event: "create_widget_view_shuffle")
+ createRandom()
+ }, label: {
+ Image(systemName: "shuffle")
+ .font(.title)
+ .foregroundColor(Color(UIColor.white))
+ })
+ .frame(minWidth: 0, maxWidth: .infinity)
+ .frame(minHeight: 40, maxHeight: .infinity)
+ .background(.blue)
+
+ Button(action: {
+ EventLogger.log(event: "create_widget_view_save_widget")
+ UserDefaultsStore.saveCustomWidget(widgetModel: customWidget, inUse: false)
+ let impactMed = UIImpactFeedbackGenerator(style: .heavy)
+ impactMed.impactOccurred()
+ dismiss()
+ }, label: {
+ Text(String(localized: "create_widget_save"))
+ .font(.title)
+ .fontWeight(.bold)
+ .foregroundColor(Color(UIColor.white))
+
+ })
+ .frame(minWidth: 0, maxWidth: .infinity)
+ .frame(minHeight: 40, maxHeight: .infinity)
+ .background(.green)
+
+ Button(action: {
+ EventLogger.log(event: "customize_view_use_widget")
+ UserDefaultsStore.saveCustomWidget(widgetModel: customWidget, inUse: true)
+ let impactMed = UIImpactFeedbackGenerator(style: .heavy)
+ impactMed.impactOccurred()
+ dismiss()
+ }, label: {
+ Text(String(localized: "create_widget_use"))
+ .font(.title)
+ .fontWeight(.bold)
+ .foregroundColor(Color(UIColor.white))
+
+ })
+ .frame(minWidth: 0, maxWidth: .infinity)
+ .frame(minHeight: 40, maxHeight: .infinity)
+ .background(.pink)
+
+ if customWidget.isSaved {
Button(action: {
- EventLogger.log(event: "create_widget_view_save_widget")
- UserDefaultsStore.saveCustomWidget(widgetModel: customWidget, inUse: false)
+ EventLogger.log(event: "customize_view_delete_widget")
+ UserDefaultsStore.deleteCustomWidget(withUUID: customWidget.uuid)
let impactMed = UIImpactFeedbackGenerator(style: .heavy)
impactMed.impactOccurred()
dismiss()
}, label: {
- Text(String(localized: "create_widget_save"))
+ Image(systemName: "trash")
.font(.title)
- .fontWeight(.bold)
.foregroundColor(Color(UIColor.white))
})
- .frame(minWidth: 0, maxWidth: .infinity)
- .frame(height: 40)
- .background(.green)
-
- Button(action: {
- EventLogger.log(event: "customize_view_use_widget")
- UserDefaultsStore.saveCustomWidget(widgetModel: customWidget, inUse: true)
- let impactMed = UIImpactFeedbackGenerator(style: .heavy)
- impactMed.impactOccurred()
- dismiss()
- }, label: {
- Text(String(localized: "create_widget_use"))
- .font(.title)
- .fontWeight(.bold)
- .foregroundColor(Color(UIColor.white))
-
- })
- .frame(height: 40)
- .frame(minWidth: 0, maxWidth: .infinity)
- .background(.pink)
-
- if customWidget.isSaved {
- Button(action: {
- EventLogger.log(event: "customize_view_delete_widget")
- UserDefaultsStore.deleteCustomWidget(withUUID: customWidget.uuid)
- let impactMed = UIImpactFeedbackGenerator(style: .heavy)
- impactMed.impactOccurred()
- dismiss()
- }, label: {
- Image(systemName: "trash")
- .font(.title)
- .foregroundColor(Color(UIColor.white))
-
- })
- .frame(height: 40)
- .frame(minWidth: 0, maxWidth: .infinity)
- .background(.orange)
- }
+ .frame(minWidth: 0, maxWidth: .infinity)
+ .frame(minHeight: 40, maxHeight: .infinity)
+ .background(.orange)
}
}
+ .frame(minHeight: 40, maxHeight: .infinity)
}
var colorOptions: some View {
- Group {
- VStack {
- HStack(spacing: 0) {
- VStack(alignment: .center) {
- Text(String(localized: "create_widget_background_color"))
- ColorPicker("", selection: $customWidget.bgColor)
- .onChange(of: customWidget.mouthColor, perform: { newValue in
- EventLogger.log(event: "create_widget_view_update_background_color")
- })
- .labelsHidden()
- }
- .frame(minWidth: 0, maxWidth: .infinity)
-
- VStack(alignment: .center) {
- Text(String(localized: "create_widget_inner_color"))
- ColorPicker("", selection: $customWidget.innerColor)
- .onChange(of: customWidget.mouthColor, perform: { newValue in
- EventLogger.log(event: "create_widget_view_update_inner_color")
- })
- .labelsHidden()
- }
- .frame(minWidth: 0, maxWidth: .infinity)
-
- VStack(alignment: .center) {
- Text(String(localized: "create_widget_face_outline_color"))
- ColorPicker("", selection: $customWidget.circleStrokeColor)
- .onChange(of: customWidget.mouthColor, perform: { newValue in
- EventLogger.log(event: "create_widget_view_update_outline_color")
- })
- .labelsHidden()
- }
- .frame(minWidth: 0, maxWidth: .infinity)
+ VStack {
+ HStack(spacing: 0) {
+ VStack(alignment: .center) {
+ Text(String(localized: "create_widget_background_color"))
+ ColorPicker("", selection: $customWidget.bgColor)
+ .onChange(of: customWidget.mouthColor, perform: { newValue in
+ EventLogger.log(event: "create_widget_view_update_background_color")
+ })
+ .labelsHidden()
}
+ .frame(minWidth: 0, maxWidth: .infinity)
- HStack(spacing: 0) {
- VStack(alignment: .center) {
- Text(String(localized: "create_widget_view_left_eye_color"))
- ColorPicker("", selection: $customWidget.leftEyeColor)
- .onChange(of: customWidget.mouthColor, perform: { newValue in
- EventLogger.log(event: "create_widget_view_update_left_eye_color")
- })
- .labelsHidden()
- }
- .frame(minWidth: 0, maxWidth: .infinity)
-
- VStack(alignment: .center) {
- Text(String(localized: "create_widget_view_right_eye_color"))
- ColorPicker("", selection: $customWidget.rightEyeColor)
- .onChange(of: customWidget.mouthColor, perform: { newValue in
- EventLogger.log(event: "create_widget_view_update_right_eye_color")
- })
- .labelsHidden()
- }
- .frame(minWidth: 0, maxWidth: .infinity)
-
- VStack(alignment: .center) {
- Text(String(localized: "create_widget_view_mouth_color"))
- ColorPicker("", selection: $customWidget.mouthColor)
- .onChange(of: customWidget.mouthColor, perform: { newValue in
- EventLogger.log(event: "create_widget_view_update_mouth_color")
- })
- .labelsHidden()
- }
- .frame(minWidth: 0, maxWidth: .infinity)
+ VStack(alignment: .center) {
+ Text(String(localized: "create_widget_inner_color"))
+ ColorPicker("", selection: $customWidget.innerColor)
+ .onChange(of: customWidget.mouthColor, perform: { newValue in
+ EventLogger.log(event: "create_widget_view_update_inner_color")
+ })
+ .labelsHidden()
}
+ .frame(minWidth: 0, maxWidth: .infinity)
+
+ VStack(alignment: .center) {
+ Text(String(localized: "create_widget_face_outline_color"))
+ ColorPicker("", selection: $customWidget.circleStrokeColor)
+ .onChange(of: customWidget.mouthColor, perform: { newValue in
+ EventLogger.log(event: "create_widget_view_update_outline_color")
+ })
+ .labelsHidden()
+ }
+ .frame(minWidth: 0, maxWidth: .infinity)
+ }
+
+ HStack(spacing: 0) {
+ VStack(alignment: .center) {
+ Text(String(localized: "create_widget_view_left_eye_color"))
+ ColorPicker("", selection: $customWidget.leftEyeColor)
+ .onChange(of: customWidget.mouthColor, perform: { newValue in
+ EventLogger.log(event: "create_widget_view_update_left_eye_color")
+ })
+ .labelsHidden()
+ }
+ .frame(minWidth: 0, maxWidth: .infinity)
+
+ VStack(alignment: .center) {
+ Text(String(localized: "create_widget_view_right_eye_color"))
+ ColorPicker("", selection: $customWidget.rightEyeColor)
+ .onChange(of: customWidget.mouthColor, perform: { newValue in
+ EventLogger.log(event: "create_widget_view_update_right_eye_color")
+ })
+ .labelsHidden()
+ }
+ .frame(minWidth: 0, maxWidth: .infinity)
+
+ VStack(alignment: .center) {
+ Text(String(localized: "create_widget_view_mouth_color"))
+ ColorPicker("", selection: $customWidget.mouthColor)
+ .onChange(of: customWidget.mouthColor, perform: { newValue in
+ EventLogger.log(event: "create_widget_view_update_mouth_color")
+ })
+ .labelsHidden()
+ }
+ .frame(minWidth: 0, maxWidth: .infinity)
}
- .padding()
- .background(
- theme.currentTheme.secondaryBGColor
- )
}
+ .multilineTextAlignment(.center)
+ .padding()
+ .background(
+ theme.currentTheme.secondaryBGColor
+ )
}
var bgImageOptions: some View {
- Group {
- HStack {
- ForEach(CustomWidgetBackGroundOptions.selectable, id: \.self) { bg in
- Image(bg.rawValue, bundle: .main)
- .resizable()
- .aspectRatio(contentMode: .fill)
- .frame(minWidth: 10, idealWidth: 40, maxWidth: 40,
- minHeight: 10, idealHeight: 40, maxHeight: 40,
- alignment: .center)
- .onTapGesture {
- update(background: bg)
- }
- }
- mixBG
+ HStack {
+ ForEach(CustomWidgetBackGroundOptions.selectable, id: \.self) { bg in
+ Image(bg.rawValue, bundle: .main)
+ .resizable()
+ .aspectRatio(contentMode: .fill)
+ .frame(minWidth: 10, idealWidth: 40, maxWidth: 40,
+ minHeight: 10, idealHeight: 40, maxHeight: 40,
+ alignment: .center)
.onTapGesture {
- update(background: .random)
+ update(background: bg)
}
-
- ColorPicker("", selection: $customWidget.bgOverlayColor)
}
- .padding()
- .background(
- theme.currentTheme.secondaryBGColor
- )
+ mixBG
+ .onTapGesture {
+ update(background: .random)
+ }
+ Divider()
+ ColorPicker("", selection: $customWidget.bgOverlayColor)
}
+ .padding()
+ .background(
+ theme.currentTheme.secondaryBGColor
+ )
}
var faceImageOptions: some View {
- Group {
- HStack(alignment: .center) {
- Spacer()
- VStack(alignment: .center) {
- Text(String(localized: "create_widget_view_left_eye"))
- .onTapGesture(perform: {
- showLeftEyeImagePicker.toggle()
- })
- .foregroundColor(textColor)
- .foregroundColor(textColor)
- }
- Spacer()
- VStack(alignment: .center) {
- Text(String(localized: "create_widget_view_right_eye"))
- .onTapGesture(perform: {
- showRightEyeImagePicker.toggle()
- })
- .foregroundColor(textColor)
- }
- Spacer()
- VStack(alignment: .center) {
- Text(String(localized: "create_widget_view_mouth"))
- .onTapGesture(perform: {
- showMuthImagePicker.toggle()
- })
- .foregroundColor(textColor)
- .foregroundColor(textColor)
- }
- Spacer()
- }
- .padding()
- .background(
- theme.currentTheme.secondaryBGColor
- )
+ HStack(alignment: .center) {
+ Text(String(localized: "create_widget_view_left_eye"))
+ .onTapGesture(perform: {
+ showLeftEyeImagePicker.toggle()
+ })
+ .foregroundColor(textColor)
+ .foregroundColor(textColor)
+ .frame(minWidth: 0, maxWidth: .infinity)
+ Divider()
+ Text(String(localized: "create_widget_view_right_eye"))
+ .onTapGesture(perform: {
+ showRightEyeImagePicker.toggle()
+ })
+ .foregroundColor(textColor)
+ .frame(minWidth: 0, maxWidth: .infinity)
+ Divider()
+ Text(String(localized: "create_widget_view_mouth"))
+ .onTapGesture(perform: {
+ showMuthImagePicker.toggle()
+ })
+ .foregroundColor(textColor)
+ .foregroundColor(textColor)
+ .frame(minWidth: 0, maxWidth: .infinity)
}
+ .padding()
+ .background(
+ theme.currentTheme.secondaryBGColor
+ )
}
var body: some View {
- VStack(spacing: 0) {
- widgetView
- .cornerRadius(10)
- .padding()
-
- Spacer()
-
- Divider().background(Color(UIColor.tertiarySystemBackground))
-
- faceImageOptions
-
- Divider().background(Color(UIColor.tertiarySystemBackground))
-
- bgImageOptions
-
- Divider().background(Color(UIColor.tertiarySystemBackground))
-
- colorOptions
-
- Divider().background(Color(UIColor.tertiarySystemBackground))
-
- bottomBarButtons
+ GeometryReader { geo in
+ VStack(spacing: 0) {
+ widgetView
+ .cornerRadius(10)
+ .padding()
+ .frame(width: geo.size.width, height: geo.size.width)
+
+ Spacer()
+ ScrollView {
+ VStack(spacing: 0) {
+ Divider().background(Color(UIColor.tertiarySystemBackground))
+
+ faceImageOptions
+
+ Divider().background(Color(UIColor.tertiarySystemBackground))
+
+ bgImageOptions
+
+ Divider().background(Color(UIColor.tertiarySystemBackground))
+
+ colorOptions
+
+ Divider().background(Color(UIColor.tertiarySystemBackground))
+
+ bottomBarButtons
+ }
+ }
+ }
}
.sheet(isPresented: $showRightEyeImagePicker) {
ImagePickerGridView(pickedImageClosure: { image in
diff --git a/Shared/views/CustomWidget/CustomWidgetModel.swift b/Shared/views/CustomWidget/CustomWidgetModel.swift
index 578ac92..8bf2510 100644
--- a/Shared/views/CustomWidget/CustomWidgetModel.swift
+++ b/Shared/views/CustomWidget/CustomWidgetModel.swift
@@ -201,6 +201,7 @@ enum CustomWidgeImageOptions: String, CaseIterable, Codable {
case star_solid = "custom_icon/star-solid"
case jet_fighter_solid = "custom_icon/jet-fighter-solid"
case circle_xmark_solid = "custom_icon/circle-xmark-solid"
+ case frown_regular = "custom_icon/frown-regular"
case virus_covid_solid = "custom_icon/virus-covid-solid"
case bullhorn_solid = "custom_icon/bullhorn-solid"
case caret_down_solid = "custom_icon/caret-down-solid"
@@ -208,20 +209,20 @@ enum CustomWidgeImageOptions: String, CaseIterable, Codable {
case eye_solid = "custom_icon/eye-solid"
case battery_half_solid = "custom_icon/battery-half-solid"
case heart_crack_solid = "custom_icon/heart-crack-solid"
- case life_ring_regular = "custom_icon/life-ring-regular"
case heart_solid = "custom_icon/heart-solid"
case divide_solid = "custom_icon/divide-solid"
case location_crosshairs_solid = "custom_icon/location-crosshairs-solid"
case bitcoin_brands = "custom_icon/bitcoin-brands"
case baby_solid = "custom_icon/baby-solid"
case grin_regular = "custom_icon/grin-regular"
+ case poo_storm_solid = "custom_icon/poo-storm-solid"
case btc_brands = "custom_icon/btc-brands"
case shuttle_space_solid = "custom_icon/shuttle-space-solid"
+ case chess_king_solid = "custom_icon/chess-king-solid"
case chess_queen_solid = "custom_icon/chess-queen-solid"
case lightbulb_solid = "custom_icon/lightbulb-solid"
case skull_solid = "custom_icon/skull-solid"
case dice_one_solid = "custom_icon/dice-one-solid"
- case arrow_up_1_9_solid = "custom_icon/arrow-up-1-9-solid"
case fan_solid = "custom_icon/fan-solid"
case bolt_solid = "custom_icon/bolt-solid"
case dharmachakra_solid = "custom_icon/dharmachakra-solid"
@@ -229,7 +230,6 @@ enum CustomWidgeImageOptions: String, CaseIterable, Codable {
case skull_crossbones_solid = "custom_icon/skull-crossbones-solid"
case sad_tear_regular = "custom_icon/sad-tear-regular"
case floppy_disk_solid = "custom_icon/floppy-disk-solid"
- case futbol_regular = "custom_icon/futbol-regular"
case crosshairs_solid = "custom_icon/crosshairs-solid"
case exclamation_solid = "custom_icon/exclamation-solid"
case lemon_solid = "custom_icon/lemon-solid"
@@ -241,19 +241,21 @@ enum CustomWidgeImageOptions: String, CaseIterable, Codable {
case pizza_slice_solid = "custom_icon/pizza-slice-solid"
case empire_brands = "custom_icon/empire-brands"
case caret_up_solid = "custom_icon/caret-up-solid"
+ case life_ring_solid = "custom_icon/life-ring-solid"
case dragon_solid = "custom_icon/dragon-solid"
case cannabis_solid = "custom_icon/cannabis-solid"
- case times_solid = "custom_icon/times-solid"
case bullseye_solid = "custom_icon/bullseye-solid"
case code_compare_solid = "custom_icon/code-compare-solid"
case battery_empty_solid = "custom_icon/battery-empty-solid"
case moon_solid = "custom_icon/moon-solid"
case android_brands = "custom_icon/android-brands"
case smile_beam_regular = "custom_icon/smile-beam-regular"
+ case futbol_solid = "custom_icon/futbol-solid"
case dollar_sign_solid = "custom_icon/dollar-sign-solid"
case cross_solid = "custom_icon/cross-solid"
case bomb_solid = "custom_icon/bomb-solid"
case battery_full_solid = "custom_icon/battery-full-solid"
+ case arrow_up_solid = "custom_icon/arrow-up-solid"
case gem_solid = "custom_icon/gem-solid"
case code_solid = "custom_icon/code-solid"
case bolt_lightning_solid = "custom_icon/bolt-lightning-solid"
@@ -287,6 +289,7 @@ enum CustomWidgetMouthOptions: String, CaseIterable, Codable {
case star_solid = "custom_icon/star-solid"
case jet_fighter_solid = "custom_icon/jet-fighter-solid"
case circle_xmark_solid = "custom_icon/circle-xmark-solid"
+ case frown_regular = "custom_icon/frown-regular"
case virus_covid_solid = "custom_icon/virus-covid-solid"
case bullhorn_solid = "custom_icon/bullhorn-solid"
case caret_down_solid = "custom_icon/caret-down-solid"
@@ -294,20 +297,20 @@ enum CustomWidgetMouthOptions: String, CaseIterable, Codable {
case eye_solid = "custom_icon/eye-solid"
case battery_half_solid = "custom_icon/battery-half-solid"
case heart_crack_solid = "custom_icon/heart-crack-solid"
- case life_ring_regular = "custom_icon/life-ring-regular"
case heart_solid = "custom_icon/heart-solid"
case divide_solid = "custom_icon/divide-solid"
case location_crosshairs_solid = "custom_icon/location-crosshairs-solid"
case bitcoin_brands = "custom_icon/bitcoin-brands"
case baby_solid = "custom_icon/baby-solid"
case grin_regular = "custom_icon/grin-regular"
+ case poo_storm_solid = "custom_icon/poo-storm-solid"
case btc_brands = "custom_icon/btc-brands"
case shuttle_space_solid = "custom_icon/shuttle-space-solid"
+ case chess_king_solid = "custom_icon/chess-king-solid"
case chess_queen_solid = "custom_icon/chess-queen-solid"
case lightbulb_solid = "custom_icon/lightbulb-solid"
case skull_solid = "custom_icon/skull-solid"
case dice_one_solid = "custom_icon/dice-one-solid"
- case arrow_up_1_9_solid = "custom_icon/arrow-up-1-9-solid"
case fan_solid = "custom_icon/fan-solid"
case bolt_solid = "custom_icon/bolt-solid"
case dharmachakra_solid = "custom_icon/dharmachakra-solid"
@@ -315,7 +318,6 @@ enum CustomWidgetMouthOptions: String, CaseIterable, Codable {
case skull_crossbones_solid = "custom_icon/skull-crossbones-solid"
case sad_tear_regular = "custom_icon/sad-tear-regular"
case floppy_disk_solid = "custom_icon/floppy-disk-solid"
- case futbol_regular = "custom_icon/futbol-regular"
case crosshairs_solid = "custom_icon/crosshairs-solid"
case exclamation_solid = "custom_icon/exclamation-solid"
case lemon_solid = "custom_icon/lemon-solid"
@@ -327,19 +329,21 @@ enum CustomWidgetMouthOptions: String, CaseIterable, Codable {
case pizza_slice_solid = "custom_icon/pizza-slice-solid"
case empire_brands = "custom_icon/empire-brands"
case caret_up_solid = "custom_icon/caret-up-solid"
+ case life_ring_solid = "custom_icon/life-ring-solid"
case dragon_solid = "custom_icon/dragon-solid"
case cannabis_solid = "custom_icon/cannabis-solid"
- case times_solid = "custom_icon/times-solid"
case bullseye_solid = "custom_icon/bullseye-solid"
case code_compare_solid = "custom_icon/code-compare-solid"
case battery_empty_solid = "custom_icon/battery-empty-solid"
case moon_solid = "custom_icon/moon-solid"
case android_brands = "custom_icon/android-brands"
case smile_beam_regular = "custom_icon/smile-beam-regular"
+ case futbol_solid = "custom_icon/futbol-solid"
case dollar_sign_solid = "custom_icon/dollar-sign-solid"
case cross_solid = "custom_icon/cross-solid"
case bomb_solid = "custom_icon/bomb-solid"
case battery_full_solid = "custom_icon/battery-full-solid"
+ case arrow_up_solid = "custom_icon/arrow-up-solid"
case gem_solid = "custom_icon/gem-solid"
case code_solid = "custom_icon/code-solid"
case bolt_lightning_solid = "custom_icon/bolt-lightning-solid"
diff --git a/Shared/views/CustomizeView/CustomizeView.swift b/Shared/views/CustomizeView/CustomizeView.swift
index 60bc44a..c529591 100644
--- a/Shared/views/CustomizeView/CustomizeView.swift
+++ b/Shared/views/CustomizeView/CustomizeView.swift
@@ -8,447 +8,58 @@
import SwiftUI
struct CustomizeView: View {
+ @State private var showSettings = false
+
@AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
- @AppStorage(UserDefaultsStore.Keys.moodImages.rawValue, store: GroupUserDefaults.groupDefaults) private var imagePack: MoodImages = .FontAwesome
-
- @AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
-
- @AppStorage(UserDefaultsStore.Keys.personalityPack.rawValue, store: GroupUserDefaults.groupDefaults) private var personalityPack: PersonalityPack = .Default
-
- @AppStorage(UserDefaultsStore.Keys.customMoodTintUpdateNumber.rawValue, store: GroupUserDefaults.groupDefaults) private var customMoodTintUpdateNumber: Int = 0
-
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
-
- @AppStorage(UserDefaultsStore.Keys.showNSFW.rawValue, store: GroupUserDefaults.groupDefaults) private var showNSFW: Bool = false
-
- @State private var sampleListEntry = PersistenceController.shared.randomEntries(count: 1).first!
- @State private var showOver18Alert = false
-
- @StateObject private var customMoodTint = UserDefaultsStore.getCustomMoodTint()
-
- class StupidAssCustomWidgetObservableObject: ObservableObject {
- @Published var fuckingWrapped: CustomWidgetModel? = nil
- @Published var showFuckingSheet = false
- }
-
- @StateObject private var selectedWidget = StupidAssCustomWidgetObservableObject()
-
- let iconSets: [(String,String)] = [
- ("AppIconGoodImage", "AppIconGood"),
- ("AppIconAverageImage", "AppIconAverage"),
- ("AppIconBadImage", "AppIconBad"),
- ("AppIconBlueGreenImage", "AppIconBlueGreen"),
- ("AppIconNeonGreenImage", "AppIconNeonGreen"),
- ("AppIconPinkImage", "AppIconPink"),
- ("AppIconPurpleImage", "AppIconPurple")
- ]
-
var body: some View {
ScrollView {
+ settingsButtonView
VStack {
- createCustomWidget
- changeIcon
- themePicker
- Divider()
- sampleEntryView
- pickMoodImagePack
Group {
- pickMoodTintPack
- pickTextColor
+ CustomWigetView()
+ IconPickerView()
+ ThemePickerView()
+ Divider()
+ SampleEntryView()
+ ImagePackPickerView()
+ }
+ Group {
+ TintPickerView()
+ TextColorPickerView()
}
Divider()
- pickPeronsalityPack
+ DayFilterPickerView()
+ Divider()
+ ShapePickerView()
+ Divider()
+ PersonalityPackPickerView()
}
}
.onAppear(perform: {
EventLogger.log(event: "show_customize_view")
})
- .padding()
- .sheet(isPresented: $selectedWidget.showFuckingSheet) {
- if let fuckingWrapped = selectedWidget.fuckingWrapped {
- CreateWidgetView(customWidget: fuckingWrapped)
- }
+ .sheet(isPresented: $showSettings) {
+ SettingsView()
}
+ .padding()
.background(
theme.currentTheme.bg
.edgesIgnoringSafeArea(.all)
)
}
- private var changeIcon: some View {
- ZStack {
- theme.currentTheme.secondaryBGColor
- VStack {
- ScrollView(.horizontal) {
- HStack {
- Button(action: {
- UIApplication.shared.setAlternateIconName(nil)
- EventLogger.log(event: "change_icon_title", withData: ["title": "default"])
- }, label: {
- Image("AppIconImage", bundle: .main)
- .resizable()
- .frame(width: 50, height:50)
- .cornerRadius(10)
- })
-
-
- ForEach(iconSets, id: \.self.0){ iconSet in
- Button(action: {
- UIApplication.shared.setAlternateIconName(iconSet.1) { (error) in
- // FIXME: Handle error
- }
- EventLogger.log(event: "change_icon_title", withData: ["title": iconSet.1])
- }, label: {
- Image(iconSet.0, bundle: .main)
- .resizable()
- .frame(width: 50, height:50)
- .cornerRadius(10)
- })
- }
- }
- .padding()
- }
- .background(RoundedRectangle(cornerRadius: 10).fill().foregroundColor(theme.currentTheme.bgColor))
- .padding()
- .cornerRadius(10)
- }
+ private var settingsButtonView: some View {
+ HStack {
+ Spacer()
+ Button(action: {
+ showSettings.toggle()
+ }, label: {
+ Image(systemName: "gear")
+ .foregroundColor(Color(UIColor.darkGray))
+ .font(.system(size: 20))
+ }).padding(.trailing)
}
- .fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
- }
-
- private var themePicker: some View {
- ZStack {
- theme.currentTheme.secondaryBGColor
- VStack {
- HStack {
- Spacer()
- ForEach(Theme.allCases, id:\.rawValue) { aTheme in
- Button(action: {
- theme = aTheme
- EventLogger.log(event: "change_theme_id", withData: ["id": aTheme.rawValue])
- }, label: {
- VStack {
- aTheme.currentTheme.preview
- .overlay(
- Circle()
- .stroke(Color(UIColor.systemGray), style: StrokeStyle(lineWidth: 2))
- )
- Text(aTheme.title)
- .foregroundColor(textColor)
- .font(.body)
- }
- })
- .contentShape(Rectangle())
- .background(
- RoundedRectangle(cornerRadius: 10, style: .continuous)
- .fill(theme == aTheme ? theme.currentTheme.bgColor : .clear)
- .padding(-5)
-
- )
- Spacer()
- }
- }
- .padding(.top)
- }
- .padding()
- }
- .fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
- }
-
- private var createCustomWidget: some View {
- ZStack {
- theme.currentTheme.secondaryBGColor
- VStack {
- ScrollView(.horizontal) {
- HStack {
- ForEach(UserDefaultsStore.getCustomWidgets(), id: \.uuid) { widget in
- CustomWidgetView(customWidgetModel: widget)
- .frame(width: 50, height: 50)
- .cornerRadius(10)
- .onTapGesture {
- EventLogger.log(event: "show_widget")
- selectedWidget.fuckingWrapped = widget.copy() as? CustomWidgetModel
- selectedWidget.showFuckingSheet = true
- }
- }
- RoundedRectangle(cornerRadius: 10).fill().foregroundColor(theme.currentTheme.secondaryBGColor)
- .frame(width: 50, height: 50)
- .overlay(
- Image(systemName: "plus")
- )
- .onTapGesture {
- EventLogger.log(event: "tap_create_new_widget")
- selectedWidget.fuckingWrapped = CustomWidgetModel.randomWidget
- selectedWidget.showFuckingSheet = true
- }
- }
- .padding()
- }
- .background(RoundedRectangle(cornerRadius: 10).fill().foregroundColor(theme.currentTheme.bgColor))
- .padding()
- .cornerRadius(10)
-
- Text("[How to add widget](https://support.apple.com/guide/iphone/add-widgets-iphb8f1bf206/ios)")
- .accentColor(textColor)
- .padding(.bottom)
- }
- }
- .fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
- }
-
- private var pickMoodImagePack: some View {
- ZStack {
- theme.currentTheme.secondaryBGColor
- VStack {
- ForEach(MoodImages.allCases, id: \.rawValue) { images in
- ZStack {
- VStack {
- HStack {
- ForEach(Mood.allValues, id: \.self) { mood in
- images.icon(forMood: mood)
- .resizable()
- .aspectRatio(contentMode: .fit)
- .frame(width: 35, height: 35)
- .foregroundColor(
- moodTint.color(forMood: mood)
- )
- }
- .frame(minWidth: 0, maxWidth: .infinity)
- }
- .contentShape(Rectangle())
- .background(
- RoundedRectangle(cornerRadius: 10, style: .continuous)
- .fill(imagePack == images ? theme.currentTheme.bgColor : .clear)
- .padding([.top, .bottom], -3)
- )
- .onTapGesture {
- let impactMed = UIImpactFeedbackGenerator(style: .heavy)
- impactMed.impactOccurred()
- imagePack = images
- EventLogger.log(event: "change_image_pack_id", withData: ["id": images.rawValue])
- }
- if images.rawValue != (MoodImages.allCases.sorted(by: { $0.rawValue > $1.rawValue }).first?.rawValue) ?? 0 {
- Divider()
- }
- }
- }
- }
- }
- .padding()
- }
- .fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
- }
-
- private var pickMoodTintPack: some View {
- ZStack {
- theme.currentTheme.secondaryBGColor
- VStack {
- ForEach(MoodTints.defaultOptions, id: \.rawValue) { tint in
- HStack {
- ForEach(Mood.allValues, id: \.self) { mood in
- Circle()
- .frame(width: 35, height: 35)
- .foregroundColor(
- tint.color(forMood: mood)
- )
- }
- .frame(minWidth: 0, maxWidth: .infinity)
- }
- .contentShape(Rectangle())
- .background(
- RoundedRectangle(cornerRadius: 10, style: .continuous)
- .fill(moodTint == tint ? theme.currentTheme.bgColor : .clear)
- .padding([.top, .bottom], -3)
-
- )
- .onTapGesture {
- let impactMed = UIImpactFeedbackGenerator(style: .heavy)
- impactMed.impactOccurred()
- moodTint = tint
- EventLogger.log(event: "change_mood_tint_id", withData: ["id": tint.rawValue])
- }
- Divider()
- }
-
- ZStack {
- Color.clear
-
- Rectangle()
- .frame(height: 35)
- .frame(minWidth: 0, maxWidth: .infinity)
- .foregroundColor(.clear)
- .contentShape(Rectangle())
- .onTapGesture {
- moodTint = .Custom
- let impactMed = UIImpactFeedbackGenerator(style: .heavy)
- impactMed.impactOccurred()
- }
-
- HStack {
- ColorPicker("", selection: $customMoodTint.colorOne)
- .onChange(of: customMoodTint.colorOne, perform: { _ in
- saveCustomMoodTint()
- })
- .labelsHidden()
- .frame(minWidth: 0, maxWidth: .infinity)
-
- ColorPicker("", selection: $customMoodTint.colorTwo)
- .labelsHidden()
- .frame(minWidth: 0, maxWidth: .infinity)
- .onChange(of: customMoodTint.colorTwo, perform: { _ in
- saveCustomMoodTint()
- })
-
- ColorPicker("", selection: $customMoodTint.colorThree)
- .labelsHidden()
- .frame(minWidth: 0, maxWidth: .infinity)
- .onChange(of: customMoodTint.colorThree, perform: { _ in
- saveCustomMoodTint()
- })
-
- ColorPicker("", selection: $customMoodTint.colorFour)
- .labelsHidden()
- .frame(minWidth: 0, maxWidth: .infinity)
- .onChange(of: customMoodTint.colorFour, perform: { _ in
- saveCustomMoodTint()
- })
-
- ColorPicker("", selection: $customMoodTint.colorFive)
- .labelsHidden()
- .frame(minWidth: 0, maxWidth: .infinity)
- .onChange(of: customMoodTint.colorFive, perform: { _ in
- saveCustomMoodTint()
- })
- }
- .background(
- Color.clear
- )
- }
- .background(
- RoundedRectangle(cornerRadius: 10, style: .continuous)
- .fill(moodTint == .Custom ? theme.currentTheme.bgColor : .clear)
- .padding([.top, .bottom], -3)
- )
- }
- .padding()
- }
- .fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
- }
-
- private var pickTextColor: some View {
- ZStack {
- theme.currentTheme.secondaryBGColor
- ColorPicker(String(localized: "customize_view_view_text_color"), selection: $textColor)
- .padding()
- .foregroundColor(textColor)
- }
- .fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
- }
-
- private var sampleEntryView: some View {
- ZStack {
- theme.currentTheme.secondaryBGColor
-
- VStack {
- HStack {
- Spacer()
- Image(systemName: "arrow.triangle.2.circlepath.circle")
- .resizable()
- .frame(width: 20, height: 20, alignment: .trailing)
- .foregroundColor(Color(UIColor.systemGray))
- .onTapGesture {
- sampleListEntry = PersistenceController.shared.randomEntries(count: 1).first!
- }
- }
- Spacer()
- }.padding()
-
- VStack(alignment:.leading) {
- Text(String(localized: "customize_view_view_example_row"))
- .padding([.leading, .top])
- .foregroundColor(textColor)
- Divider()
- EntryListView(entry: sampleListEntry)
- .padding()
- }
- }
- .fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
- }
-
- private func saveCustomMoodTint() {
- UserDefaultsStore.saveCustomMoodTint(customTint: customMoodTint)
- moodTint = .Custom
- EventLogger.log(event: "change_mood_tint_id", withData: ["id": MoodTints.Custom.rawValue])
- customMoodTintUpdateNumber += 1
- }
-
- private var pickPeronsalityPack: some View {
- ZStack {
- theme.currentTheme.secondaryBGColor
- VStack {
- ForEach(PersonalityPack.allCases, id: \.self) { aPack in
- VStack(spacing: 10) {
- Text(String(aPack.title()))
- .font(.body)
- .foregroundColor(textColor)
-
- Text(aPack.randomPushNotificationStrings().title)
- .font(.body)
- .foregroundColor(Color(UIColor.systemGray))
- Text(aPack.randomPushNotificationStrings().body)
- .font(.body)
- .foregroundColor(Color(UIColor.systemGray))
- }
- .frame(minWidth: 0, maxWidth: .infinity)
- .padding()
- .contentShape(Rectangle())
- .background(
- RoundedRectangle(cornerRadius: 10, style: .continuous)
- .fill(personalityPack == aPack ? theme.currentTheme.bgColor : .clear)
- .padding(5)
- )
- .onTapGesture {
- if aPack.rawValue == PersonalityPack.Rude.rawValue && !showNSFW {
- showOver18Alert = true
- EventLogger.log(event: "show_over_18_alert")
- } else {
- let impactMed = UIImpactFeedbackGenerator(style: .heavy)
- impactMed.impactOccurred()
- personalityPack = aPack
- EventLogger.log(event: "change_personality_pack", withData: ["pack_title": aPack.title()])
- LocalNotification.rescheduleNotifiations()
- }
- }
- .blur(radius: aPack.rawValue == PersonalityPack.Rude.rawValue && !showNSFW ? 5 : 0)
- .alert(isPresented: $showOver18Alert) {
- let primaryButton = Alert.Button.default(Text(String(localized: "customize_view_over18alert_ok"))) {
- showNSFW = true
- }
- let secondaryButton = Alert.Button.cancel(Text(String(localized: "customize_view_over18alert_no"))) {
- showNSFW = false
- }
- return Alert(title: Text(String(localized: "customize_view_over18alert_title")),
- message: Text(String(localized: "customize_view_over18alert_body")),
- primaryButton: primaryButton,
- secondaryButton: secondaryButton)
- }
- if aPack.rawValue != (PersonalityPack.allCases.sorted(by: { $0.rawValue > $1.rawValue }).first?.rawValue) ?? 0 {
- Divider()
- }
- }
-
- }
- }
- .fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
}
}
diff --git a/Shared/views/CustomizeView/SubViews/CustomWigetView.swift b/Shared/views/CustomizeView/SubViews/CustomWigetView.swift
new file mode 100644
index 0000000..fcc64d2
--- /dev/null
+++ b/Shared/views/CustomizeView/SubViews/CustomWigetView.swift
@@ -0,0 +1,67 @@
+//
+// CustomWigetView.swift
+// Feels (iOS)
+//
+// Created by Trey Tartt on 4/2/22.
+//
+
+import SwiftUI
+
+struct CustomWigetView: View {
+ @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
+ @StateObject private var selectedWidget = StupidAssCustomWidgetObservableObject()
+
+ var body: some View {
+ ZStack {
+ theme.currentTheme.secondaryBGColor
+ VStack {
+ ScrollView(.horizontal) {
+ HStack {
+ ForEach(UserDefaultsStore.getCustomWidgets(), id: \.uuid) { widget in
+ CustomWidgetView(customWidgetModel: widget)
+ .frame(width: 50, height: 50)
+ .cornerRadius(10)
+ .onTapGesture {
+ EventLogger.log(event: "show_widget")
+ selectedWidget.fuckingWrapped = widget.copy() as? CustomWidgetModel
+ selectedWidget.showFuckingSheet = true
+ }
+ }
+ RoundedRectangle(cornerRadius: 10).fill().foregroundColor(theme.currentTheme.secondaryBGColor)
+ .frame(width: 50, height: 50)
+ .overlay(
+ Image(systemName: "plus")
+ )
+ .onTapGesture {
+ EventLogger.log(event: "tap_create_new_widget")
+ selectedWidget.fuckingWrapped = CustomWidgetModel.randomWidget
+ selectedWidget.showFuckingSheet = true
+ }
+ }
+ .padding()
+ }
+ .background(RoundedRectangle(cornerRadius: 10).fill().foregroundColor(theme.currentTheme.bgColor))
+ .padding()
+ .cornerRadius(10)
+
+ Text("[How to add widget](https://support.apple.com/guide/iphone/add-widgets-iphb8f1bf206/ios)")
+ .accentColor(textColor)
+ .padding(.bottom)
+ }
+ }
+ .fixedSize(horizontal: false, vertical: true)
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .sheet(isPresented: $selectedWidget.showFuckingSheet) {
+ if let fuckingWrapped = selectedWidget.fuckingWrapped {
+ CreateWidgetView(customWidget: fuckingWrapped)
+ }
+ }
+ }
+}
+
+struct CustomWigetView_Previews: PreviewProvider {
+ static var previews: some View {
+ CustomWigetView()
+ }
+}
diff --git a/Shared/views/CustomizeView/SubViews/DayFilterPickerView.swift b/Shared/views/CustomizeView/SubViews/DayFilterPickerView.swift
new file mode 100644
index 0000000..ae10229
--- /dev/null
+++ b/Shared/views/CustomizeView/SubViews/DayFilterPickerView.swift
@@ -0,0 +1,60 @@
+//
+// DayFilterPickerView.swift
+// Feels (iOS)
+//
+// Created by Trey Tartt on 4/2/22.
+//
+
+import SwiftUI
+
+struct DayFilterPickerView: View {
+ @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
+ @StateObject private var filteredDays = DaysFilterClass.shared
+
+ let weekdays = [(Calendar.current.shortWeekdaySymbols[0], 1),
+ (Calendar.current.shortWeekdaySymbols[1], 2),
+ (Calendar.current.shortWeekdaySymbols[2], 3),
+ (Calendar.current.shortWeekdaySymbols[3], 4),
+ (Calendar.current.shortWeekdaySymbols[4], 5),
+ (Calendar.current.shortWeekdaySymbols[5], 6),
+ (Calendar.current.shortWeekdaySymbols[6], 7)]
+
+ var body: some View {
+ ZStack {
+ theme.currentTheme.secondaryBGColor
+
+ VStack {
+ HStack {
+ ForEach(weekdays.indices, id: \.self) { dayIdx in
+ let day = String(weekdays[dayIdx].0)
+ let value = weekdays[dayIdx].1
+ Button(day.capitalized, action: {
+ if filteredDays.currentFilters.contains(value) {
+ filteredDays.removeFilter(filter: value)
+ } else {
+ filteredDays.addFilter(newFilter: value)
+ }
+ let impactMed = UIImpactFeedbackGenerator(style: .heavy)
+ impactMed.impactOccurred()
+ })
+ .frame(maxWidth: .infinity)
+ .foregroundColor(filteredDays.currentFilters.contains(value) ? .green : .red)
+ }
+ }
+ Text(String(localized: "day_picker_view_text"))
+ .padding(.top)
+ .foregroundColor(textColor)
+ }
+ .padding()
+ }
+ .fixedSize(horizontal: false, vertical: true)
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ }
+}
+
+struct DayFilterPickerView_Previews: PreviewProvider {
+ static var previews: some View {
+ DayFilterPickerView()
+ }
+}
diff --git a/Shared/views/CustomizeView/SubViews/IconPickerView.swift b/Shared/views/CustomizeView/SubViews/IconPickerView.swift
new file mode 100644
index 0000000..77b08be
--- /dev/null
+++ b/Shared/views/CustomizeView/SubViews/IconPickerView.swift
@@ -0,0 +1,70 @@
+//
+// IconPickerView.swift
+// Feels (iOS)
+//
+// Created by Trey Tartt on 4/2/22.
+//
+
+import SwiftUI
+
+struct IconPickerView: View {
+ @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
+
+ let iconSets: [(String,String)] = [
+ ("AppIconGoodImage", "AppIconGood"),
+ ("AppIconAverageImage", "AppIconAverage"),
+ ("AppIconBadImage", "AppIconBad"),
+ ("AppIconBlueGreenImage", "AppIconBlueGreen"),
+ ("AppIconNeonGreenImage", "AppIconNeonGreen"),
+ ("AppIconPinkImage", "AppIconPink"),
+ ("AppIconPurpleImage", "AppIconPurple")
+ ]
+
+ var body: some View {
+ ZStack {
+ theme.currentTheme.secondaryBGColor
+ VStack {
+ ScrollView(.horizontal) {
+ HStack {
+ Button(action: {
+ UIApplication.shared.setAlternateIconName(nil)
+ EventLogger.log(event: "change_icon_title", withData: ["title": "default"])
+ }, label: {
+ Image("AppIconImage", bundle: .main)
+ .resizable()
+ .frame(width: 50, height:50)
+ .cornerRadius(10)
+ })
+
+
+ ForEach(iconSets, id: \.self.0){ iconSet in
+ Button(action: {
+ UIApplication.shared.setAlternateIconName(iconSet.1) { (error) in
+ // FIXME: Handle error
+ }
+ EventLogger.log(event: "change_icon_title", withData: ["title": iconSet.1])
+ }, label: {
+ Image(iconSet.0, bundle: .main)
+ .resizable()
+ .frame(width: 50, height:50)
+ .cornerRadius(10)
+ })
+ }
+ }
+ .padding()
+ }
+ .background(RoundedRectangle(cornerRadius: 10).fill().foregroundColor(theme.currentTheme.bgColor))
+ .padding()
+ .cornerRadius(10)
+ }
+ }
+ .fixedSize(horizontal: false, vertical: true)
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ }
+}
+
+struct IconPickerView_Previews: PreviewProvider {
+ static var previews: some View {
+ IconPickerView()
+ }
+}
diff --git a/Shared/views/CustomizeView/SubViews/ImagePackPickerView.swift b/Shared/views/CustomizeView/SubViews/ImagePackPickerView.swift
new file mode 100644
index 0000000..7793cab
--- /dev/null
+++ b/Shared/views/CustomizeView/SubViews/ImagePackPickerView.swift
@@ -0,0 +1,67 @@
+//
+// ImagePackPickerView.swift
+// Feels (iOS)
+//
+// Created by Trey Tartt on 4/2/22.
+//
+
+import SwiftUI
+
+struct ImagePackPickerView: View {
+ @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
+ @AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
+ @AppStorage(UserDefaultsStore.Keys.moodImages.rawValue, store: GroupUserDefaults.groupDefaults) private var imagePack: MoodImages = .FontAwesome
+ @AppStorage(UserDefaultsStore.Keys.customMoodTintUpdateNumber.rawValue, store: GroupUserDefaults.groupDefaults) private var customMoodTintUpdateNumber: Int = 0
+
+ var body: some View {
+ ZStack {
+ Text(String(customMoodTintUpdateNumber))
+ .hidden()
+ theme.currentTheme.secondaryBGColor
+ VStack {
+ ForEach(MoodImages.allCases, id: \.rawValue) { images in
+ ZStack {
+ VStack {
+ HStack {
+ ForEach(Mood.allValues, id: \.self) { mood in
+ images.icon(forMood: mood)
+ .resizable()
+ .aspectRatio(contentMode: .fit)
+ .frame(width: 35, height: 35)
+ .foregroundColor(
+ moodTint.color(forMood: mood)
+ )
+ }
+ .frame(minWidth: 0, maxWidth: .infinity)
+ }
+ .contentShape(Rectangle())
+ .background(
+ RoundedRectangle(cornerRadius: 10, style: .continuous)
+ .fill(imagePack == images ? theme.currentTheme.bgColor : .clear)
+ .padding([.top, .bottom], -3)
+ )
+ .onTapGesture {
+ let impactMed = UIImpactFeedbackGenerator(style: .heavy)
+ impactMed.impactOccurred()
+ imagePack = images
+ EventLogger.log(event: "change_image_pack_id", withData: ["id": images.rawValue])
+ }
+ if images.rawValue != (MoodImages.allCases.sorted(by: { $0.rawValue > $1.rawValue }).first?.rawValue) ?? 0 {
+ Divider()
+ }
+ }
+ }
+ }
+ }
+ .padding()
+ }
+ .fixedSize(horizontal: false, vertical: true)
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ }
+}
+
+struct ImagePackPickerView_Previews: PreviewProvider {
+ static var previews: some View {
+ ImagePackPickerView()
+ }
+}
diff --git a/Shared/views/CustomizeView/SubViews/PersonalityPackPickerView.swift b/Shared/views/CustomizeView/SubViews/PersonalityPackPickerView.swift
new file mode 100644
index 0000000..652704c
--- /dev/null
+++ b/Shared/views/CustomizeView/SubViews/PersonalityPackPickerView.swift
@@ -0,0 +1,83 @@
+//
+// PersonalityPackPickerView.swift
+// Feels (iOS)
+//
+// Created by Trey Tartt on 4/2/22.
+//
+
+import SwiftUI
+
+struct PersonalityPackPickerView: View {
+ @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
+ @AppStorage(UserDefaultsStore.Keys.personalityPack.rawValue, store: GroupUserDefaults.groupDefaults) private var personalityPack: PersonalityPack = .Default
+ @State private var showOver18Alert = false
+ @AppStorage(UserDefaultsStore.Keys.showNSFW.rawValue, store: GroupUserDefaults.groupDefaults) private var showNSFW: Bool = false
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
+
+ var body: some View {
+ ZStack {
+ theme.currentTheme.secondaryBGColor
+ VStack {
+ ForEach(PersonalityPack.allCases, id: \.self) { aPack in
+ VStack(spacing: 10) {
+ Text(String(aPack.title()))
+ .font(.body)
+ .foregroundColor(textColor)
+
+ Text(aPack.randomPushNotificationStrings().title)
+ .font(.body)
+ .foregroundColor(Color(UIColor.systemGray))
+ Text(aPack.randomPushNotificationStrings().body)
+ .font(.body)
+ .foregroundColor(Color(UIColor.systemGray))
+ }
+ .frame(minWidth: 0, maxWidth: .infinity)
+ .padding()
+ .contentShape(Rectangle())
+ .background(
+ RoundedRectangle(cornerRadius: 10, style: .continuous)
+ .fill(personalityPack == aPack ? theme.currentTheme.bgColor : .clear)
+ .padding(5)
+ )
+ .onTapGesture {
+ if aPack.rawValue == PersonalityPack.Rude.rawValue && !showNSFW {
+ showOver18Alert = true
+ EventLogger.log(event: "show_over_18_alert")
+ } else {
+ let impactMed = UIImpactFeedbackGenerator(style: .heavy)
+ impactMed.impactOccurred()
+ personalityPack = aPack
+ EventLogger.log(event: "change_personality_pack", withData: ["pack_title": aPack.title()])
+ LocalNotification.rescheduleNotifiations()
+ }
+ }
+ .blur(radius: aPack.rawValue == PersonalityPack.Rude.rawValue && !showNSFW ? 5 : 0)
+ .alert(isPresented: $showOver18Alert) {
+ let primaryButton = Alert.Button.default(Text(String(localized: "customize_view_over18alert_ok"))) {
+ showNSFW = true
+ }
+ let secondaryButton = Alert.Button.cancel(Text(String(localized: "customize_view_over18alert_no"))) {
+ showNSFW = false
+ }
+ return Alert(title: Text(String(localized: "customize_view_over18alert_title")),
+ message: Text(String(localized: "customize_view_over18alert_body")),
+ primaryButton: primaryButton,
+ secondaryButton: secondaryButton)
+ }
+ if aPack.rawValue != (PersonalityPack.allCases.sorted(by: { $0.rawValue > $1.rawValue }).first?.rawValue) ?? 0 {
+ Divider()
+ }
+ }
+
+ }
+ }
+ .fixedSize(horizontal: false, vertical: true)
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ }
+}
+
+struct PersonalityPackPickerView_Previews: PreviewProvider {
+ static var previews: some View {
+ PersonalityPackPickerView()
+ }
+}
diff --git a/Shared/views/CustomizeView/SubViews/ShapePickerView.swift b/Shared/views/CustomizeView/SubViews/ShapePickerView.swift
new file mode 100644
index 0000000..b0890c7
--- /dev/null
+++ b/Shared/views/CustomizeView/SubViews/ShapePickerView.swift
@@ -0,0 +1,77 @@
+//
+// ShapePickerView.swift
+// Feels (iOS)
+//
+// Created by Trey Tartt on 4/2/22.
+//
+
+import SwiftUI
+
+struct ShapePickerView: View {
+ @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
+ @State var shapeRefreshToggleThing: Bool = false
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
+ @AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
+ @AppStorage(UserDefaultsStore.Keys.shape.rawValue, store: GroupUserDefaults.groupDefaults) private var shape: BGShape = .circle
+
+ var body: some View {
+ ZStack {
+ theme.currentTheme.secondaryBGColor
+
+ VStack {
+ HStack {
+ Spacer()
+ Text(shapeRefreshToggleThing.description.localizedLowercase)
+ .hidden()
+ Image(systemName: "arrow.triangle.2.circlepath.circle")
+ .resizable()
+ .frame(width: 20, height: 20, alignment: .trailing)
+ .foregroundColor(Color(UIColor.systemGray))
+ .onTapGesture {
+ shapeRefreshToggleThing.toggle()
+ }
+ }
+ Spacer()
+ }
+ .padding()
+
+ VStack(alignment:.leading) {
+ Text(String(localized: "customize_view_view_pick_shape"))
+ .padding([.leading])
+ .foregroundColor(textColor)
+
+ Divider()
+
+ HStack {
+ ForEach(BGShape.allCases, id: \.rawValue) { ashape in
+ ashape.view(withText: Text("20"),
+ bgColor: moodTint.color(forMood: Mood.allValues.randomElement()!), textColor: textColor)
+ .frame(height: 50)
+ .frame(minWidth: 0, maxWidth: .infinity)
+ .onTapGesture {
+ let impactMed = UIImpactFeedbackGenerator(style: .heavy)
+ impactMed.impactOccurred()
+ shape = ashape
+ EventLogger.log(event: "change_mood_shape_id", withData: ["id": shape.rawValue])
+ }
+ .contentShape(Rectangle())
+ .background(
+ RoundedRectangle(cornerRadius: 10, style: .continuous)
+ .fill(shape == ashape ? theme.currentTheme.bgColor : .clear)
+ .padding(-5)
+ )
+ }
+ }
+ }
+ .padding()
+ }
+ .fixedSize(horizontal: false, vertical: true)
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ }
+}
+
+struct ShapePickerView_Previews: PreviewProvider {
+ static var previews: some View {
+ ShapePickerView()
+ }
+}
diff --git a/Shared/views/CustomizeView/SubViews/TextColorPickerView.swift b/Shared/views/CustomizeView/SubViews/TextColorPickerView.swift
new file mode 100644
index 0000000..9fad18e
--- /dev/null
+++ b/Shared/views/CustomizeView/SubViews/TextColorPickerView.swift
@@ -0,0 +1,30 @@
+//
+// TextColorPickerView.swift
+// Feels (iOS)
+//
+// Created by Trey Tartt on 4/2/22.
+//
+
+import SwiftUI
+
+struct TextColorPickerView: View {
+ @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
+
+ var body: some View {
+ ZStack {
+ theme.currentTheme.secondaryBGColor
+ ColorPicker(String(localized: "customize_view_view_text_color"), selection: $textColor)
+ .padding()
+ .foregroundColor(textColor)
+ }
+ .fixedSize(horizontal: false, vertical: true)
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ }
+}
+
+struct TextColorPickerView_Previews: PreviewProvider {
+ static var previews: some View {
+ TextColorPickerView()
+ }
+}
diff --git a/Shared/views/CustomizeView/SubViews/ThemePickerView.swift b/Shared/views/CustomizeView/SubViews/ThemePickerView.swift
new file mode 100644
index 0000000..710a0ea
--- /dev/null
+++ b/Shared/views/CustomizeView/SubViews/ThemePickerView.swift
@@ -0,0 +1,59 @@
+//
+// ThemePicker.swift
+// Feels (iOS)
+//
+// Created by Trey Tartt on 4/2/22.
+//
+
+import SwiftUI
+
+struct ThemePickerView: View {
+ @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
+
+ var body: some View {
+ ZStack {
+ theme.currentTheme.secondaryBGColor
+ VStack {
+ HStack {
+ Spacer()
+ ForEach(Theme.allCases, id:\.rawValue) { aTheme in
+ Button(action: {
+ theme = aTheme
+ EventLogger.log(event: "change_theme_id", withData: ["id": aTheme.rawValue])
+ }, label: {
+ VStack {
+ aTheme.currentTheme.preview
+ .overlay(
+ Circle()
+ .stroke(Color(UIColor.systemGray), style: StrokeStyle(lineWidth: 2))
+ )
+ Text(aTheme.title)
+ .foregroundColor(textColor)
+ .font(.body)
+ }
+ })
+ .contentShape(Rectangle())
+ .background(
+ RoundedRectangle(cornerRadius: 10, style: .continuous)
+ .fill(theme == aTheme ? theme.currentTheme.bgColor : .clear)
+ .padding(-5)
+
+ )
+ Spacer()
+ }
+ }
+ .padding(.top)
+ }
+ .padding()
+ }
+ .fixedSize(horizontal: false, vertical: true)
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ }
+}
+
+struct ThemePickerView_Previews: PreviewProvider {
+ static var previews: some View {
+ ThemePickerView()
+ }
+}
diff --git a/Shared/views/CustomizeView/SubViews/TintPickerView.swift b/Shared/views/CustomizeView/SubViews/TintPickerView.swift
new file mode 100644
index 0000000..41185e1
--- /dev/null
+++ b/Shared/views/CustomizeView/SubViews/TintPickerView.swift
@@ -0,0 +1,125 @@
+//
+// TintPickerView.swift
+// Feels (iOS)
+//
+// Created by Trey Tartt on 4/2/22.
+//
+
+import SwiftUI
+
+struct TintPickerView: View {
+ @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
+ @AppStorage(UserDefaultsStore.Keys.customMoodTintUpdateNumber.rawValue, store: GroupUserDefaults.groupDefaults) private var customMoodTintUpdateNumber: Int = 0
+ @AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
+ @StateObject private var customMoodTint = UserDefaultsStore.getCustomMoodTint()
+
+ var body: some View {
+ ZStack {
+ theme.currentTheme.secondaryBGColor
+ VStack {
+ ForEach(MoodTints.defaultOptions, id: \.rawValue) { tint in
+ HStack {
+ ForEach(Mood.allValues, id: \.self) { mood in
+ Circle()
+ .frame(width: 35, height: 35)
+ .foregroundColor(
+ tint.color(forMood: mood)
+ )
+ }
+ .frame(minWidth: 0, maxWidth: .infinity)
+ }
+ .contentShape(Rectangle())
+ .background(
+ RoundedRectangle(cornerRadius: 10, style: .continuous)
+ .fill(moodTint == tint ? theme.currentTheme.bgColor : .clear)
+ .padding([.top, .bottom], -3)
+
+ )
+ .onTapGesture {
+ let impactMed = UIImpactFeedbackGenerator(style: .heavy)
+ impactMed.impactOccurred()
+ moodTint = tint
+ EventLogger.log(event: "change_mood_tint_id", withData: ["id": tint.rawValue])
+ }
+ Divider()
+ }
+
+ ZStack {
+ Color.clear
+
+ Rectangle()
+ .frame(height: 35)
+ .frame(minWidth: 0, maxWidth: .infinity)
+ .foregroundColor(.clear)
+ .contentShape(Rectangle())
+ .onTapGesture {
+ moodTint = .Custom
+ let impactMed = UIImpactFeedbackGenerator(style: .heavy)
+ impactMed.impactOccurred()
+ }
+
+ HStack {
+ ColorPicker("", selection: $customMoodTint.colorOne)
+ .onChange(of: customMoodTint.colorOne, perform: { _ in
+ saveCustomMoodTint()
+ })
+ .labelsHidden()
+ .frame(minWidth: 0, maxWidth: .infinity)
+
+ ColorPicker("", selection: $customMoodTint.colorTwo)
+ .labelsHidden()
+ .frame(minWidth: 0, maxWidth: .infinity)
+ .onChange(of: customMoodTint.colorTwo, perform: { _ in
+ saveCustomMoodTint()
+ })
+
+ ColorPicker("", selection: $customMoodTint.colorThree)
+ .labelsHidden()
+ .frame(minWidth: 0, maxWidth: .infinity)
+ .onChange(of: customMoodTint.colorThree, perform: { _ in
+ saveCustomMoodTint()
+ })
+
+ ColorPicker("", selection: $customMoodTint.colorFour)
+ .labelsHidden()
+ .frame(minWidth: 0, maxWidth: .infinity)
+ .onChange(of: customMoodTint.colorFour, perform: { _ in
+ saveCustomMoodTint()
+ })
+
+ ColorPicker("", selection: $customMoodTint.colorFive)
+ .labelsHidden()
+ .frame(minWidth: 0, maxWidth: .infinity)
+ .onChange(of: customMoodTint.colorFive, perform: { _ in
+ saveCustomMoodTint()
+ })
+ }
+ .background(
+ Color.clear
+ )
+ }
+ .background(
+ RoundedRectangle(cornerRadius: 10, style: .continuous)
+ .fill(moodTint == .Custom ? theme.currentTheme.bgColor : .clear)
+ .padding([.top, .bottom], -3)
+ )
+ }
+ .padding()
+ }
+ .fixedSize(horizontal: false, vertical: true)
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ }
+
+ private func saveCustomMoodTint() {
+ UserDefaultsStore.saveCustomMoodTint(customTint: customMoodTint)
+ moodTint = .Custom
+ EventLogger.log(event: "change_mood_tint_id", withData: ["id": MoodTints.Custom.rawValue])
+ customMoodTintUpdateNumber += 1
+ }
+}
+
+struct TintPickerView_Previews: PreviewProvider {
+ static var previews: some View {
+ TintPickerView()
+ }
+}
diff --git a/Shared/views/DayChartView.swift b/Shared/views/DayChartView.swift
index 96a6973..88b550c 100644
--- a/Shared/views/DayChartView.swift
+++ b/Shared/views/DayChartView.swift
@@ -9,32 +9,30 @@ import Foundation
import SwiftUI
struct DayChartView: ChartViewItemBuildable, View, Hashable {
- init(color: Color, weekDay: Int, viewType: ViewType) {
+ init(color: Color, weekDay: Int, shape: BGShape) {
self.color = color
self.weekDay = weekDay
- self.viewType = viewType
+ self.shape = shape
}
var id = UUID()
var color: Color
var weekDay: Int
- var viewType: ViewType
+ var shape: BGShape
var body: some View {
- switch viewType {
- case .cicle:
- Circle()
- .fill(color)
- .frame(minWidth: 5, idealWidth: 50, maxWidth: 50, minHeight: 5, idealHeight: 20, maxHeight: 50, alignment: .center)
- .opacity(color == Mood.missing.color ? 0.5 : 1.0)
- case .square:
- Rectangle()
- .fill(color)
- .frame(minWidth: 5, idealWidth: 50, maxWidth: 50, minHeight: 5, idealHeight: 20, maxHeight: 50, alignment: .center)
- case .text(let value):
- Text(value)
- .font(.footnote)
- .frame(minWidth: 5, idealWidth: 50, maxWidth: 50, minHeight: 5, idealHeight: 20, maxHeight: 50, alignment: .center)
- }
+ shape.view(withText: Text(""), bgColor: color, textColor: .clear)
+ .frame(minWidth: 5, idealWidth: 50, maxWidth: 50,
+ minHeight: 5, idealHeight: 20, maxHeight: 50,
+ alignment: .center)
+ .opacity(color == Mood.missing.color ? 0.5 : 1.0)
+ }
+
+ var filteredDaysView: some View {
+ shape.view(withText: Text(""), bgColor: Mood.missing.color, textColor: .clear)
+ .frame(minWidth: 5, idealWidth: 50, maxWidth: 50,
+ minHeight: 5, idealHeight: 20, maxHeight: 50,
+ alignment: .center)
+ .opacity(color == Mood.missing.color ? 0.5 : 1.0)
}
}
diff --git a/Shared/views/HomeView/HomeView.swift b/Shared/views/DayView/DayView.swift
similarity index 86%
rename from Shared/views/HomeView/HomeView.swift
rename to Shared/views/DayView/DayView.swift
index 488641d..286af45 100644
--- a/Shared/views/HomeView/HomeView.swift
+++ b/Shared/views/DayView/DayView.swift
@@ -9,21 +9,21 @@ import SwiftUI
import CoreData
import Charts
-struct HomeViewConstants {
+struct DayViewConstants {
static let maxHeaderHeight = 200.0
static let minHeaderHeight = 120.0
}
-struct HomeView: View {
+struct DayView: View {
@Environment(\.managedObjectContext) private var viewContext
-
+
@AppStorage(UserDefaultsStore.Keys.deleteEnable.rawValue, store: GroupUserDefaults.groupDefaults) private var deleteEnabled = true
@AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
@AppStorage(UserDefaultsStore.Keys.moodImages.rawValue, store: GroupUserDefaults.groupDefaults) private var imagePack: MoodImages = .FontAwesome
@AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
// store a value that gets changed when user updates custom colors to update the view since the moodTint doesn't change
@AppStorage(UserDefaultsStore.Keys.customMoodTintUpdateNumber.rawValue, store: GroupUserDefaults.groupDefaults) private var customMoodTintUpdateNumber: Int = 0
@@ -45,24 +45,25 @@ struct HomeView: View {
@State private var showTodayInput = true
@State private var showUpdateEntryAlert = false
@StateObject private var onboardingData = OnboardingDataDataManager.shared
+ @StateObject private var filteredDays = DaysFilterClass.shared
// MARK: header properties
- @State private var headerHeight: CGFloat = HomeViewConstants.maxHeaderHeight
+ @State private var headerHeight: CGFloat = DayViewConstants.maxHeaderHeight
@State private var headerViewType: MainSwitchableViewType = .total
@State private var headerOpacity: Double = 1.0
//
- @ObservedObject var viewModel = HomeViewViewModel(addMonthStartWeekdayPadding: false)
+ @ObservedObject var viewModel: DayViewViewModel
var body: some View {
- mainView
+ mainView
.onAppear(perform: {
EventLogger.log(event: "show_home_view")
})
.sheet(isPresented: $showingSheet) {
SettingsView()
}
- .alert(HomeViewViewModel.updateTitleHeader(forEntry: selectedEntry),
+ .alert(DayViewViewModel.updateTitleHeader(forEntry: selectedEntry),
isPresented: $showUpdateEntryAlert) {
ForEach(Mood.allValues) { mood in
Button(mood.strValue, action: {
@@ -92,7 +93,7 @@ struct HomeView: View {
// MARK: functions that do view type work
func calcuateViewAlpha() {
- let perc = (((Double(headerHeight) - HomeViewConstants.minHeaderHeight) * 100) / (HomeViewConstants.maxHeaderHeight - HomeViewConstants.minHeaderHeight)) / 100
+ let perc = (((Double(headerHeight) - DayViewConstants.minHeaderHeight) * 100) / (DayViewConstants.maxHeaderHeight - DayViewConstants.minHeaderHeight)) / 100
headerOpacity = perc
}
@@ -142,12 +143,12 @@ struct HomeView: View {
VStack {
SmallRollUpHeaderView(entries: getBackEntries(),
viewType: $currentSelectedHeaderViewViewType)
- .frame(height: HomeViewConstants.minHeaderHeight)
+ .frame(height: DayViewConstants.minHeaderHeight)
.padding([.trailing, .leading])
.background(
theme.currentTheme.secondaryBGColor
)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
Spacer()
}
@@ -186,11 +187,9 @@ struct HomeView: View {
private var headerView: some View {
VStack {
- if ShowBasedOnVoteLogics.isMissingCurrentVote(onboardingData: onboardingData.savedOnboardingData) {
+ if ShowBasedOnVoteLogics.isMissingCurrentVote(onboardingData: UserDefaultsStore.getOnboarding()) {
AddMoodHeaderView(addItemHeaderClosure: { (mood, date) in
- withAnimation {
- viewModel.add(mood: mood, forDate: date, entryType: .header)
- }
+ viewModel.add(mood: mood, forDate: date, entryType: .header)
})
.frame(height: headerHeight)
.frame(minWidth: 0, maxWidth: .infinity)
@@ -251,7 +250,8 @@ struct HomeView: View {
}
}
}
- }.background(
+ }
+ .background(
GeometryReader { proxy in
let offset = proxy.frame(in: .named("scroll")).minY
Color.clear.preference(key: ViewOffsetKey.self, value: offset)
@@ -264,12 +264,12 @@ struct HomeView: View {
.coordinateSpace(name: "scroll")
.onPreferenceChange(ViewOffsetKey.self) { value in
if viewModel.numberOfItems > 10 {
- calculateHeight(minHeight: HomeViewConstants.minHeaderHeight,
- maxHeight: HomeViewConstants.maxHeaderHeight,
+ calculateHeight(minHeight: DayViewConstants.minHeaderHeight,
+ maxHeight: DayViewConstants.maxHeaderHeight,
yOffset: value)
}
}
- .cornerRadius(10, corners: [.topLeft, .topRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight])
}
func getBackEntries() -> [MoodEntry] {
@@ -281,7 +281,7 @@ struct HomeView: View {
}
// view that make up the list body
-extension HomeView {
+extension DayView {
private func SectionHeaderView(month: Int, year: Int) -> some View {
Text("\(Random.monthName(fromMonthInt: month)) \(String(year))")
.font(.title)
@@ -299,12 +299,15 @@ extension HomeView {
ForEach(entries.sorted(by: {
return $0.forDate! > $1.forDate!
}), id: \.self) { entry in
- EntryListView(entry: entry)
- .contentShape(Rectangle())
- .onTapGesture(perform: {
- selectedEntry = entry
- showUpdateEntryAlert = true
- })
+ if filteredDays.currentFilters.contains(Int(entry.weekDay)) {
+// let _ = print(entry.forDate, entry.weekDay, filteredDays.currentFilters)
+ EntryListView(entry: entry)
+ .contentShape(Rectangle())
+ .onTapGesture(perform: {
+ selectedEntry = entry
+ showUpdateEntryAlert = true
+ })
+ }
}
}
}
@@ -318,21 +321,14 @@ struct ViewOffsetKey: PreferenceKey {
}
}
-private let itemFormatter: DateFormatter = {
- let formatter = DateFormatter()
- formatter.dateStyle = .short
- formatter.timeStyle = .medium
- return formatter
-}()
-
-struct ContentView_Previews: PreviewProvider {
+struct DayView_Previews: PreviewProvider {
static var previews: some View {
- HomeView().environment(\.managedObjectContext, PersistenceController.shared.viewContext)
+ DayView(viewModel: DayViewViewModel(addMonthStartWeekdayPadding: false)).environment(\.managedObjectContext, PersistenceController.shared.viewContext)
.onAppear(perform: {
PersistenceController.shared.populateMemory()
})
- HomeView()
+ DayView(viewModel: DayViewViewModel(addMonthStartWeekdayPadding: false))
.preferredColorScheme(.dark)
.environment(\.managedObjectContext, PersistenceController.shared.viewContext)
}
diff --git a/Shared/views/HomeView/HomeViewViewModel.swift b/Shared/views/DayView/DayViewViewModel.swift
similarity index 98%
rename from Shared/views/HomeView/HomeViewViewModel.swift
rename to Shared/views/DayView/DayViewViewModel.swift
index 718edcf..bf34740 100644
--- a/Shared/views/HomeView/HomeViewViewModel.swift
+++ b/Shared/views/DayView/DayViewViewModel.swift
@@ -8,7 +8,7 @@
import SwiftUI
import CoreData
-class HomeViewViewModel: ObservableObject {
+class DayViewViewModel: ObservableObject {
@Published var grouped = [Int: [Int: [MoodEntry]]]()
@Published var numberOfItems = 0
@@ -52,7 +52,7 @@ class HomeViewViewModel: ObservableObject {
}
private func getGroupedData(addMonthStartWeekdayPadding: Bool) {
- var newStuff = PersistenceController.shared.splitIntoYearMonth()
+ var newStuff = PersistenceController.shared.splitIntoYearMonth(includedDays: [1,2,3,4,5,6,7])
if addMonthStartWeekdayPadding {
newStuff = MoodEntryFunctions.padMoodEntriesForCalendar(entries: newStuff)
}
diff --git a/Shared/views/EmptyView.swift b/Shared/views/EmptyView.swift
index 1933373..3291de4 100644
--- a/Shared/views/EmptyView.swift
+++ b/Shared/views/EmptyView.swift
@@ -9,24 +9,15 @@ import SwiftUI
struct EmptyHomeView: View {
@AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
- let viewModel: HomeViewViewModel
+ let viewModel: DayViewViewModel
var body: some View {
ZStack {
theme.currentTheme.secondaryBGColor
VStack {
- Text(String(localized: "content_view_empty_title"))
- .font(.title)
- .foregroundColor(textColor)
- .padding()
-
- Text(String(localized: "content_view_empty_title"))
- .font(.body)
- .foregroundColor(textColor)
- .padding()
AddMoodHeaderView(addItemHeaderClosure: { (mood, date) in
withAnimation {
viewModel.add(mood: mood, forDate: date, entryType: .header)
@@ -35,12 +26,12 @@ struct EmptyHomeView: View {
}
}
.fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
}
}
struct EmptyHomeView_Previews: PreviewProvider {
static var previews: some View {
- EmptyHomeView(viewModel: HomeViewViewModel(addMonthStartWeekdayPadding: false))
+ EmptyHomeView(viewModel: DayViewViewModel(addMonthStartWeekdayPadding: false))
}
}
diff --git a/Shared/views/EntryListView.swift b/Shared/views/EntryListView.swift
index 8962f8f..d774866 100644
--- a/Shared/views/EntryListView.swift
+++ b/Shared/views/EntryListView.swift
@@ -10,7 +10,7 @@ import SwiftUI
struct EntryListView: View {
@AppStorage(UserDefaultsStore.Keys.moodImages.rawValue, store: GroupUserDefaults.groupDefaults) private var imagePack: MoodImages = .FontAwesome
@AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
public let entry: MoodEntry
diff --git a/Shared/views/FilterView/FilterView.swift b/Shared/views/FilterView/FilterView.swift
deleted file mode 100644
index 3953a44..0000000
--- a/Shared/views/FilterView/FilterView.swift
+++ /dev/null
@@ -1,281 +0,0 @@
-//
-// FilterView.swift
-// Feels
-//
-// Created by Trey Tartt on 1/12/22.
-//
-
-import SwiftUI
-import CoreData
-
-struct FilterView: View {
- let weekdays = [("Sun", 1), ("mon", 2), ("tue", 3), ("wed", 4), ("thur", 5), ("fri", 6), ("sat", 7)]
- let months = [(0, "J"), (1, "F"), (2,"M"), (3,"A"), (4,"M"), (5, "J"), (6,"J"), (7,"A"), (8,"S"), (9,"O"), (10, "N"), (11,"D")]
-
- @State private var toggle = true
- @State private var showFilter = false
-
- @FetchRequest(
- sortDescriptors: [NSSortDescriptor(keyPath: \MoodEntry.forDate, ascending: false)],
- animation: .spring())
- private var items: FetchedResults
-
- @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
- @AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
-
- @StateObject private var viewModel = FilterViewModel()
- //[
- // 2001: [0: [], 1: [], 2: []],
- // 2002: [0: [], 1: [], 2: []]
- // ]
- let columns = [
- GridItem(.flexible(minimum: 5, maximum: 50)),
- GridItem(.flexible(minimum: 5, maximum: 50)),
- GridItem(.flexible(minimum: 5, maximum: 50)),
- GridItem(.flexible(minimum: 5, maximum: 50)),
- GridItem(.flexible(minimum: 5, maximum: 50)),
- GridItem(.flexible(minimum: 5, maximum: 50)),
- GridItem(.flexible(minimum: 5, maximum: 50)),
- GridItem(.flexible(minimum: 5, maximum: 50)),
- GridItem(.flexible(minimum: 5, maximum: 50)),
- GridItem(.flexible(minimum: 5, maximum: 50)),
- GridItem(.flexible(minimum: 5, maximum: 50)),
- GridItem(.flexible(minimum: 5, maximum: 50)),
- ]
-
- var body: some View {
- VStack {
- filterButon
- .padding([.leading, .trailing, .top])
-
- statsView
- .frame(minWidth: 0, maxWidth: .infinity, minHeight: 90, maxHeight: 90)
- .cornerRadius(10)
- .padding()
-
- Text(String(localized: "filter_view_total") + ": \(self.viewModel.numberOfRatings)")
- .font(.title2)
- .foregroundColor(textColor)
-
- if showFilter {
- filterView
- }
-
- gridView
- .onAppear(perform: {
- self.viewModel.filterEntries(startDate: Date(timeIntervalSince1970: 0), endDate: Date())
- })
- }
- .padding(.bottom, 5)
- .background(
- theme.currentTheme.bg
- .edgesIgnoringSafeArea(.all)
- )
- }
-
- private var filterButon: some View {
- Button(action: {
- withAnimation{
- showFilter.toggle()
- }
- }, label: {
- Text(showFilter ? String(localized: "filter_view_hide_filters") : String(localized: "filter_view_show_filters"))
- .frame(maxWidth: .infinity)
- .frame(height: 44)
- .foregroundColor(textColor)
- .background(theme.currentTheme.secondaryBGColor)
- .cornerRadius(10)
- }).frame(maxWidth: .infinity)
- }
-
- struct StatsSubView: View {
- @AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
- @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
-
- let data: [MoodEntry]
- let mood: Mood
-
- var body: some View {
- VStack {
- Text(String(Stats.getCountFor(moodType: mood,
- inData: data)))
- .font(.title)
- .foregroundColor(textColor)
- Text(mood.strValue)
- .foregroundColor(moodTint.color(forMood: mood))
- }
- .onAppear(perform: {
- EventLogger.log(event: "show_filter_view")
- })
- }
- }
-
- private var statsView: some View {
- ZStack {
- theme.currentTheme.secondaryBGColor
-
- HStack {
- Spacer()
- ForEach(Mood.allValues, id: \.self) { mood in
- StatsSubView(data: self.viewModel.uncategorizedData, mood: mood)
- Spacer()
- }
- }
- }
- .cornerRadius(10)
- }
-
- private var filterView: some View {
- VStack {
- VStack {
- ZStack {
- theme.currentTheme.secondaryBGColor
- DatePicker(
- String(localized: "filter_view_begin_date"),
- selection: $viewModel.entryStartDate,
- displayedComponents: [.date]
- ).onChange(of: viewModel.entryStartDate, perform: { value in
- viewModel.filterEntries(startDate: viewModel.entryStartDate, endDate: viewModel.entryEndDate)
- })
- .padding()
- }
- .frame(minWidth: 0, maxWidth: .infinity, minHeight: 44, maxHeight: 44)
- .cornerRadius(10)
- .padding([.leading, .trailing])
- .foregroundColor(textColor)
- .accentColor(textColor)
-
- ZStack {
- theme.currentTheme.secondaryBGColor
- DatePicker(
- String(localized: "filter_view_end_date"),
- selection: $viewModel.entryEndDate,
- displayedComponents: [.date]
- ).onChange(of: viewModel.entryStartDate, perform: { value in
- viewModel.filterEntries(startDate: viewModel.entryStartDate, endDate: viewModel.entryEndDate)
- })
- .padding()
- }
- .frame(minWidth: 0, maxWidth: .infinity, minHeight: 44, maxHeight: 44)
- .cornerRadius(10)
- .padding([.leading, .trailing])
- .foregroundColor(textColor)
- .accentColor(textColor)
-
- ZStack {
- theme.currentTheme.secondaryBGColor
- HStack {
- Spacer()
- ForEach(weekdays.indices, id: \.self) { dayIdx in
- let day = String(weekdays[dayIdx].0)
- let value = weekdays[dayIdx].1
-
- Button(day.capitalized, action: {
- if let index = viewModel.selectedDays.firstIndex(of: value) {
- viewModel.selectedDays.remove(at: index)
- } else {
- viewModel.selectedDays.append(value)
- }
- viewModel.filterEntries(startDate: viewModel.entryStartDate,
- endDate: viewModel.entryEndDate)
- })
- .frame(maxWidth: .infinity)
- .foregroundColor(viewModel.selectedDays.contains(value) || viewModel.selectedDays.isEmpty ? .green : .red)
- }
- Spacer()
- }
- }
- .frame(minWidth: 0, maxWidth: .infinity, minHeight: 44, maxHeight: 44)
- .cornerRadius(10)
- .padding([ .leading, .trailing])
- }
- filterButon
- .padding([.leading, .trailing, .top])
- }
- }
-
- private var monthsHeader: some View {
- LazyVGrid(columns: columns, spacing: 0) {
- ForEach(months, id: \.self.0) { item in
- Text(item.1)
- .textCase(.uppercase)
- .foregroundColor(textColor)
- }
- }.padding([.leading, .trailing, .top])
- }
-
- private var gridView: some View {
- VStack {
- monthsHeader
- .cornerRadius(10)
- .padding([.leading, .trailing])
-
- VStack {
- ScrollView {
- ForEach(Array(self.viewModel.data.keys.sorted(by: >)), id: \.self) { yearKey in
- let yearData = self.viewModel.data[yearKey]!
- Text(String(yearKey))
- .font(.title)
- .foregroundColor(textColor)
- yearGridView(yearData: yearData, columns: columns)
- .background(
- theme.currentTheme.secondaryBGColor
- )
- .cornerRadius(10)
- }
- }
- .simultaneousGesture(DragGesture().onChanged({ _ in
- withAnimation{
- showFilter = false
- }
- }))
- .padding([.top, .leading, .trailing])
- }
- }
- }
-
- private struct yearGridView: View {
- let yearData: [Int: [DayChartView]]
- let columns: [GridItem]
-
- var body: some View {
- VStack {
- LazyVGrid(columns: columns, spacing: 0) {
- ForEach(Array(yearData.keys.sorted(by: <)), id: \.self) { monthKey in
- let monthData = yearData[monthKey]!
- VStack {
- monthGridView(monthData: monthData)
- }
- }
- }
- .padding([.leading, .trailing, .top, .bottom])
- }
- .cornerRadius(10)
- }
- }
-
- private struct monthGridView: View {
- let monthData: [DayChartView]
-
- var body: some View {
- VStack {
- ForEach(monthData, id: \.self) { view in
- view
- }
- }
- }
- }
-}
-
-struct FilterView_Previews: PreviewProvider {
- static var previews: some View {
- Group {
- FilterView()
-
- FilterView()
- .preferredColorScheme(.dark)
- }
- }
-}
diff --git a/Shared/views/GraphView.swift b/Shared/views/GraphView.swift
index bf82c6b..e62c58d 100644
--- a/Shared/views/GraphView.swift
+++ b/Shared/views/GraphView.swift
@@ -27,7 +27,7 @@ struct GraphView: View {
BarChartDataEntry(x: 5, y: Double(Int.random(in: 0...10)))
])
}
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
.padding()
ZStack {
@@ -40,7 +40,7 @@ struct GraphView: View {
BarChartDataEntry(x: 5, y: Double(Int.random(in: 0...10)))
])
}
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
.padding()
}
@@ -54,7 +54,7 @@ struct GraphView: View {
BarChartDataEntry(x: 5, y: Double(Int.random(in: 0...10)))
])
}
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
.padding()
ZStack {
@@ -67,7 +67,7 @@ struct GraphView: View {
BarChartDataEntry(x: 5, y: Double(Int.random(in: 0...10)))
])
}
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
.padding()
}
}
diff --git a/Shared/views/HeaderPercView.swift b/Shared/views/HeaderPercView.swift
index f43c5e5..537a80c 100644
--- a/Shared/views/HeaderPercView.swift
+++ b/Shared/views/HeaderPercView.swift
@@ -9,13 +9,15 @@ import SwiftUI
enum PercViewType {
case text
- case circular
+ case shape
}
struct HeaderPercView: View {
@AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
+
+ @AppStorage(UserDefaultsStore.Keys.shape.rawValue, store: GroupUserDefaults.groupDefaults) private var shape: BGShape = .circle
@State private var entries = [MoodMetrics]()
let backDays: Int
@@ -70,28 +72,24 @@ struct HeaderPercView: View {
}
}
- private var circularViews: some View {
+ private var shapeViews: some View {
VStack {
Spacer()
HStack {
ForEach(entries.prefix(3), id: \.id) { model in
- Text("\(model.percent, specifier: "%.0f")%")
- .font(.title2)
- .fontWeight(.bold)
- .padding()
- .background(Circle().fill(moodTint.color(forMood: model.mood)))
- .frame(maxWidth: .infinity)
+ shape.view(withText: Text("\(model.percent, specifier: "%.0f")%"),
+ bgColor: moodTint.color(forMood: model.mood),
+ textColor: textColor)
+ .frame(maxWidth: .infinity, maxHeight: .infinity)
}
}
Spacer()
HStack {
ForEach(entries.suffix(2), id: \.id) { model in
- Text("\(model.percent, specifier: "%.0f")%")
- .font(.title2)
- .fontWeight(.bold)
- .padding()
- .background(Circle().fill(moodTint.color(forMood: model.mood)))
- .frame(maxWidth: .infinity)
+ shape.view(withText: Text("\(model.percent, specifier: "%.0f")%"),
+ bgColor: moodTint.color(forMood: model.mood),
+ textColor: textColor)
+ .frame(maxWidth: .infinity, maxHeight: .infinity)
}
}
Spacer()
@@ -104,8 +102,9 @@ struct HeaderPercView: View {
switch self.type {
case .text:
textViews
- case .circular:
- circularViews
+ case .shape:
+ shapeViews
+ .padding([.leading, .trailing])
}
}
}
@@ -115,6 +114,6 @@ struct HeaderPercView_Previews: PreviewProvider {
static var previews: some View {
HeaderPercView(fakeData: true, backDays: 30, type: .text)
- HeaderPercView(fakeData: true, backDays: 30, type: .circular)
+ HeaderPercView(fakeData: true, backDays: 30, type: .shape)
}
}
diff --git a/Shared/views/ImagePickerGridView.swift b/Shared/views/ImagePickerGridView.swift
index 06a52a6..f63252b 100644
--- a/Shared/views/ImagePickerGridView.swift
+++ b/Shared/views/ImagePickerGridView.swift
@@ -12,7 +12,7 @@ struct ImagePickerGridView: View {
@Environment(\.presentationMode) var presentationMode
@State var column = Array(repeating: GridItem(.flexible(), spacing: 10), count: 7)
let pickedImageClosure: ((CustomWidgeImageOptions) -> Void)
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
let imageOptions = CustomWidgeImageOptions.allCases.sorted(by: {
$0.rawValue < $1.rawValue
diff --git a/Shared/views/MainTabView.swift b/Shared/views/MainTabView.swift
index e40cab0..00ee10c 100644
--- a/Shared/views/MainTabView.swift
+++ b/Shared/views/MainTabView.swift
@@ -9,58 +9,61 @@ import SwiftUI
struct MainTabView: View {
@AppStorage(UserDefaultsStore.Keys.needsOnboarding.rawValue, store: GroupUserDefaults.groupDefaults) private var needsOnboarding = true
-
@AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
-
@AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
+
let onboardingData = OnboardingDataDataManager.shared.savedOnboardingData
+ let dayView: DayView
+ let monthView: MonthView
+ let yearView: YearView
+ let customizeView: CustomizeView
+
var body: some View {
- TabView {
- HomeView()
+ return TabView {
+ dayView
.tabItem {
Label(String(localized: "content_view_tab_main"), systemImage: "list.dash")
}
- MonthView()
+ monthView
.tabItem {
Label(String(localized: "content_view_tab_month"), systemImage: "calendar")
}
-
- FilterView()
+
+ yearView
.tabItem {
Label(String(localized: "content_view_tab_filter"), systemImage: "line.3.horizontal.decrease.circle")
}
- CustomizeView()
+ customizeView
.tabItem {
Label(String(localized: "content_view_tab_customize"), systemImage: "pencil")
}
}
- .accentColor(moodTint.color(forMood: .average))
- .sheet(isPresented: $needsOnboarding, onDismiss: {
-
- }, content: {
+ .accentColor(textColor)
+ .sheet(isPresented: $needsOnboarding, onDismiss: { }, content: {
OnboardingMain(onboardingData: onboardingData,
updateBoardingDataClosure: { onboardingData in
needsOnboarding = false
OnboardingDataDataManager.shared.updateOnboardingData(onboardingData: onboardingData)
})
})
- .onAppear(perform: {
- switch theme {
- case .system:
- UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .unspecified
- case .iFeel:
- UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .unspecified
- case .dark:
- UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .dark
- case .light:
- UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .light
- }
+ .onAppear(perform: {
+ switch theme {
+ case .system:
+ UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .unspecified
+ case .iFeel:
+ UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .unspecified
+ case .dark:
+ UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .dark
+ case .light:
+ UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .light
+ }
})
- .onChange(of: theme, perform: { value in
+ .onChange(of: theme, perform: { value in
switch theme {
case .system:
UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .unspecified
@@ -77,6 +80,9 @@ struct MainTabView: View {
struct MainTabView_Previews: PreviewProvider {
static var previews: some View {
- MainTabView()
+ MainTabView(dayView: DayView(viewModel: DayViewViewModel(addMonthStartWeekdayPadding: false)),
+ monthView: MonthView(viewModel: DayViewViewModel(addMonthStartWeekdayPadding: true)),
+ yearView: YearView(viewModel: YearViewModel()),
+ customizeView: CustomizeView())
}
}
diff --git a/Shared/views/MonthView/MonthDetailView.swift b/Shared/views/MonthView/MonthDetailView.swift
index 1789160..309f21a 100644
--- a/Shared/views/MonthView/MonthDetailView.swift
+++ b/Shared/views/MonthView/MonthDetailView.swift
@@ -11,7 +11,7 @@ struct MonthDetailView: View {
@AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
@AppStorage(UserDefaultsStore.Keys.deleteEnable.rawValue, store: GroupUserDefaults.groupDefaults) private var deleteEnabled = true
@AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
@StateObject private var shareImage = StupidAssShareObservableObject()
@@ -23,7 +23,7 @@ struct MonthDetailView: View {
let monthInt: Int
let yearInt: Int
@State var entries: [MoodEntry]
- var parentViewModel: HomeViewViewModel
+ var parentViewModel: DayViewViewModel
let columns = [
GridItem(.flexible(minimum: 5, maximum: 500)),
@@ -86,7 +86,7 @@ struct MonthDetailView: View {
ShareSheet(photo: uiImage)
}
}
- .alert(HomeViewViewModel.updateTitleHeader(forEntry: selectedEntry), isPresented: $showUpdateEntryAlert) {
+ .alert(DayViewViewModel.updateTitleHeader(forEntry: selectedEntry), isPresented: $showUpdateEntryAlert) {
ForEach(Mood.allValues) { mood in
Button(mood.strValue, action: {
if let selectedEntry = selectedEntry {
@@ -211,7 +211,7 @@ struct MonthDetailView: View {
.frame(minHeight: 0, maxHeight: 100)
SmallRollUpHeaderView(entries: entries,
- viewType: .constant(.percentageCircle))
+ viewType: .constant(.percentageShape))
.frame(minHeight: 0, maxHeight: 100)
.padding(.top, -20)
}
@@ -225,6 +225,6 @@ struct MonthDetailView_Previews: PreviewProvider {
MonthDetailView(monthInt: 5, yearInt: 2022, entries:
PersistenceController.shared.randomEntries(count: 30).sorted(by: {
$0.forDate! < $1.forDate!
- }), parentViewModel: HomeViewViewModel(addMonthStartWeekdayPadding: true))
+ }), parentViewModel: DayViewViewModel(addMonthStartWeekdayPadding: true))
}
}
diff --git a/Shared/views/MonthView/MonthView.swift b/Shared/views/MonthView/MonthView.swift
index 06aaf58..47caf14 100644
--- a/Shared/views/MonthView/MonthView.swift
+++ b/Shared/views/MonthView/MonthView.swift
@@ -13,19 +13,21 @@ struct MonthView: View {
@AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
@AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
+ @AppStorage(UserDefaultsStore.Keys.shape.rawValue, store: GroupUserDefaults.groupDefaults) private var shape: BGShape = .circle
+
@StateObject private var shareImage = StupidAssShareObservableObject()
// store a value that gets changed when user updates custom colors to update the view since the moodTint doesn't change
@AppStorage(UserDefaultsStore.Keys.customMoodTintUpdateNumber.rawValue, store: GroupUserDefaults.groupDefaults) private var customMoodTintUpdateNumber: Int = 0
- @ObservedObject var viewModel = HomeViewViewModel(addMonthStartWeekdayPadding: true)
@StateObject private var selectedDetail = StupidAssDetailViewObservableObject()
@State private var showingSheet = false
@StateObject private var onboardingData = OnboardingDataDataManager.shared
-
+ @StateObject private var filteredDays = DaysFilterClass.shared
+
class StupidAssDetailViewObservableObject: ObservableObject {
@Published var fuckingWrapped: MonthDetailView? = nil
@Published var showFuckingSheet = false
@@ -41,13 +43,18 @@ struct MonthView: View {
GridItem(.flexible(minimum: 5, maximum: 400))
]
+ @ObservedObject var viewModel: DayViewViewModel
+
var body: some View {
ZStack {
if viewModel.hasNoData {
VStack {
Spacer()
- EmptyHomeView(viewModel: viewModel)
+ Text(String(localized: "month_view_no_data"))
+ .font(.title)
.padding()
+ .fixedSize(horizontal: false, vertical: true)
+ .foregroundColor(textColor)
Spacer()
}
} else {
@@ -102,16 +109,6 @@ struct MonthView: View {
}
extension MonthView {
- private var topView: some View {
- VStack {
- if ShowBasedOnVoteLogics.isMissingCurrentVote(onboardingData: onboardingData.savedOnboardingData) {
- Text("Vote")
- }
- Text("dis top")
- .foregroundColor(theme.currentTheme.secondaryBGColor)
- }
- }
-
private var settingsButtonView: some View {
HStack {
Spacer()
@@ -155,9 +152,9 @@ extension MonthView {
Divider()
LazyVGrid(columns: columns, spacing: 15) {
ForEach(entries, id: \.self) { entry in
- Circle()
- .foregroundColor(entry.mood == .placeholder ? .clear : moodTint.color(forMood: entry.mood))
- .frame(minHeight: 5, idealHeight: 20, maxHeight: 50, alignment: .center)
+ shape.view(withText: Text(""), bgColor: entry.mood == .placeholder ? .clear : moodTint.color(forMood: entry.mood),
+ textColor: .clear)
+ .frame(minHeight: 25, idealHeight: 25, maxHeight: 50, alignment: .center)
}
}
Spacer()
@@ -182,23 +179,31 @@ extension MonthView {
HStack {
homeViewTwoSectionHeaderView(month: month, year: year)
- Image(systemName: "square.and.arrow.up")
- .foregroundColor(textColor)
- .onTapGesture {
- let impactMed = UIImpactFeedbackGenerator(style: .heavy)
- impactMed.impactOccurred()
-
- let _image = shareViewImage(month: month, year: year, entries: entries).asImage(size: CGSize(width: 400, height: 260))
- self.shareImage.showFuckingSheet = true
- self.shareImage.fuckingWrappedShrable = _image
- }
+// Image(systemName: "square.and.arrow.up")
+// .foregroundColor(textColor)
+// .onTapGesture {
+// let impactMed = UIImpactFeedbackGenerator(style: .heavy)
+// impactMed.impactOccurred()
+//
+// let _image = shareViewImage(month: month, year: year, entries: entries).asImage(size: CGSize(width: 400, height: 260))
+// self.shareImage.showFuckingSheet = true
+// self.shareImage.fuckingWrappedShrable = _image
+// }
}
Divider()
LazyVGrid(columns: columns, spacing: 15) {
ForEach(entries, id: \.self) { entry in
- Circle()
- .foregroundColor(entry.mood == .placeholder ? .clear : moodTint.color(forMood: entry.mood))
- .frame(minHeight: 5, idealHeight: 20, maxHeight: 50, alignment: .center)
+ if filteredDays.currentFilters.contains(Int(entry.weekDay)) {
+ shape.view(withText: Text(""),
+ bgColor: entry.mood == .placeholder ? .clear : moodTint.color(forMood: entry.mood),
+ textColor: .clear)
+ .frame(minHeight: 25, idealHeight: 25, maxHeight: 50, alignment: .center)
+ } else {
+ shape.view(withText: Text(""),
+ bgColor: .clear,
+ textColor: .clear)
+ .frame(minHeight: 25, idealHeight: 25, maxHeight: 50, alignment: .center)
+ }
}
}
}
@@ -217,6 +222,6 @@ extension MonthView {
struct HomeViewTwo_Previews: PreviewProvider {
static var previews: some View {
- MonthView()
+ MonthView(viewModel: DayViewViewModel(addMonthStartWeekdayPadding: true))
}
}
diff --git a/Shared/views/SampleEntryView.swift b/Shared/views/SampleEntryView.swift
new file mode 100644
index 0000000..5b1f956
--- /dev/null
+++ b/Shared/views/SampleEntryView.swift
@@ -0,0 +1,51 @@
+//
+// SampleEntryView.swift
+// Feels (iOS)
+//
+// Created by Trey Tartt on 4/5/22.
+//
+
+import SwiftUI
+
+struct SampleEntryView: View {
+ @State private var sampleListEntry = PersistenceController.shared.randomEntries(count: 1).first!
+ @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
+
+ var body: some View {
+ ZStack {
+ theme.currentTheme.secondaryBGColor
+
+ VStack {
+ HStack {
+ Spacer()
+ Image(systemName: "arrow.triangle.2.circlepath.circle")
+ .resizable()
+ .frame(width: 20, height: 20, alignment: .trailing)
+ .foregroundColor(Color(UIColor.systemGray))
+ .onTapGesture {
+ sampleListEntry = PersistenceController.shared.randomEntries(count: 1).first!
+ }
+ }
+ Spacer()
+ }.padding()
+
+ VStack(alignment:.leading) {
+ Text(String(localized: "customize_view_view_example_row"))
+ .padding([.leading, .top])
+ .foregroundColor(textColor)
+ Divider()
+ EntryListView(entry: sampleListEntry)
+ .padding()
+ }
+ }
+ .fixedSize(horizontal: false, vertical: true)
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ }
+}
+
+struct SampleEntryView_Previews: PreviewProvider {
+ static var previews: some View {
+ SampleEntryView()
+ }
+}
diff --git a/Shared/views/SettingsView/SettingsView.swift b/Shared/views/SettingsView/SettingsView.swift
index 4e03023..c3eccd8 100644
--- a/Shared/views/SettingsView/SettingsView.swift
+++ b/Shared/views/SettingsView/SettingsView.swift
@@ -25,7 +25,7 @@ struct SettingsView: View {
@AppStorage(UserDefaultsStore.Keys.useCloudKit.rawValue, store: GroupUserDefaults.groupDefaults) private var useCloudKit = false
@AppStorage(UserDefaultsStore.Keys.deleteEnable.rawValue, store: GroupUserDefaults.groupDefaults) private var deleteEnabled = true
@AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
var body: some View {
ScrollView {
@@ -45,12 +45,12 @@ struct SettingsView: View {
Text("Test builds only")
addTestDataCell
clearDB
- randomIcons
+// randomIcons
if useCloudKit {
cloudKitStatus
}
-
+ fixWeekday
exportData
importData
Divider()
@@ -95,7 +95,8 @@ struct SettingsView: View {
guard let selectedFile: URL = try result.get().first else { return }
if selectedFile.startAccessingSecurityScopedResource() {
let dateFormatter = DateFormatter()
- dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss +0000"
+ dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
+ dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
guard let input = String(data: try Data(contentsOf: selectedFile), encoding: .utf8) else { return }
defer { selectedFile.stopAccessingSecurityScopedResource() }
@@ -103,7 +104,8 @@ struct SettingsView: View {
var rows = input.components(separatedBy: "\n")
rows.removeFirst()
for row in rows {
- let columns = row.components(separatedBy: ",")
+ let stripped = row.replacingOccurrences(of: " +0000", with: "")
+ let columns = stripped.components(separatedBy: ",")
if columns.count != 7 {
continue
}
@@ -111,10 +113,13 @@ struct SettingsView: View {
moodEntry.canDelete = Bool(columns[0])!
moodEntry.canEdit = Bool(columns[1])!
moodEntry.entryType = Int16(columns[2])!
- moodEntry.forDate = dateFormatter.date(from: columns[3])
+ moodEntry.forDate = dateFormatter.date(from: columns[3])!
moodEntry.moodValue = Int16(columns[4])!
- moodEntry.timestamp = dateFormatter.date(from: columns[5])
- moodEntry.weekDay = Int16(columns[6])!
+ moodEntry.timestamp = dateFormatter.date(from: columns[5])!
+
+ let localTime = dateFormatter.date(from: columns[3])!
+ moodEntry.weekDay = Int16(Calendar.current.component(.weekday, from: localTime))
+// let _ = print("import info: ", columns[3], dateFormatter.date(from: columns[3]), localTime, Int16(Calendar.current.component(.weekday, from: localTime)))
try! PersistenceController.shared.viewContext.save()
}
PersistenceController.shared.saveAndRunDataListerners()
@@ -175,7 +180,7 @@ struct SettingsView: View {
}
}
.frame(minWidth: 0, maxWidth: .infinity)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
}
private var addTestDataCell: some View {
@@ -190,7 +195,7 @@ struct SettingsView: View {
.padding()
}
.fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
}
private var clearDB: some View {
@@ -205,7 +210,22 @@ struct SettingsView: View {
.padding()
}
.fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ }
+
+ private var fixWeekday: some View {
+ ZStack {
+ theme.currentTheme.secondaryBGColor
+ Button(action: {
+ PersistenceController.shared.fixWrongWeekdays()
+ }, label: {
+ Text("Fix Weekday")
+ .foregroundColor(textColor)
+ })
+ .padding()
+ }
+ .fixedSize(horizontal: false, vertical: true)
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
}
private var whyBackgroundMode: some View {
@@ -229,7 +249,7 @@ struct SettingsView: View {
}
}
.fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
}
private var showOnboardingButton: some View {
@@ -245,7 +265,7 @@ struct SettingsView: View {
.padding()
}
.fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
}
private var cloudKitEnable: some View {
@@ -266,7 +286,7 @@ struct SettingsView: View {
.padding(.bottom)
}
.fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
}
private var cloudKitStatus: some View {
@@ -281,7 +301,7 @@ struct SettingsView: View {
.padding()
}
.fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
}
private var canDelete: some View {
@@ -298,7 +318,7 @@ struct SettingsView: View {
}
}
.fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
}
private var exportData: some View {
@@ -314,7 +334,7 @@ struct SettingsView: View {
.padding()
}
.fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
}
private var importData: some View {
@@ -330,7 +350,7 @@ struct SettingsView: View {
.padding()
}
.fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
}
private var randomIcons: some View {
@@ -461,7 +481,7 @@ struct SettingsView: View {
.padding()
}
.fixedSize(horizontal: false, vertical: true)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
}
}
@@ -489,7 +509,7 @@ struct TextFile: FileDocument {
let weekDay = entry.weekDay
let dataString = "\(canDelete),\(canEdit),\(entryType),\(String(describing: forDate)),\(moodValue),\(String(describing:timestamp)),\(weekDay)\n"
- print("DATA: \(dataString)")
+// print("DATA: \(dataString)")
csvString = csvString.appending(dataString)
}
text = csvString
diff --git a/Shared/views/Sharing/SharingListView.swift b/Shared/views/Sharing/SharingListView.swift
index 091aeb0..59a0e87 100644
--- a/Shared/views/Sharing/SharingListView.swift
+++ b/Shared/views/Sharing/SharingListView.swift
@@ -24,7 +24,7 @@ struct WrappedSharable: Hashable, Equatable {
struct SharingListView: View {
@AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
class StupidAssObservableObject: ObservableObject {
@Published var fuckingWrappedShrable: WrappedSharable? = nil
@@ -123,7 +123,7 @@ struct SharingListView: View {
}
}
.frame(height: 88)
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
.scaledToFill()
.clipped()
.contentShape(Path(CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 88)))
diff --git a/Shared/views/SharingTemplates/CurrentStreakTemplate.swift b/Shared/views/SharingTemplates/CurrentStreakTemplate.swift
index 7609fb2..cb8efd7 100644
--- a/Shared/views/SharingTemplates/CurrentStreakTemplate.swift
+++ b/Shared/views/SharingTemplates/CurrentStreakTemplate.swift
@@ -23,7 +23,7 @@ struct CurrentStreakTemplate: View, SharingTemplate {
@Environment(\.presentationMode) var presentationMode
@AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
@AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
let columns = [
GridItem(.flexible(minimum: 5, maximum: .infinity), alignment: .center),
diff --git a/Shared/views/SmallRollUpHeaderView.swift b/Shared/views/SmallRollUpHeaderView.swift
index 29c1dfa..39c223a 100644
--- a/Shared/views/SmallRollUpHeaderView.swift
+++ b/Shared/views/SmallRollUpHeaderView.swift
@@ -11,7 +11,9 @@ struct SmallRollUpHeaderView: View {
@Binding var viewType: MainSwitchableViewType
@AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
- @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = .black
+ @AppStorage(UserDefaultsStore.Keys.shape.rawValue, store: GroupUserDefaults.groupDefaults) private var shape: BGShape = .circle
+
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
let entries: [MoodEntry]
private var moodMetrics = [MoodMetrics]()
@@ -27,14 +29,14 @@ struct SmallRollUpHeaderView: View {
switch viewType {
case .total:
return Text(String(model.total))
- case .percentageCircle:
+ case .percentageShape:
return Text("\(model.percent, specifier: "%.0f")%")
case .percentage:
return Text("\(model.percent, specifier: "%.0f")%")
}
}
- private var textViews: some View {
+ private var onlyTextView: some View {
HStack() {
ForEach(moodMetrics, id: \.id) { model in
textView(forModel: model)
@@ -49,25 +51,14 @@ struct SmallRollUpHeaderView: View {
.padding([.top, .bottom])
}
- private var circularViews: some View {
+ private var shapeView: some View {
HStack {
ForEach(moodMetrics, id: \.id) { model in
- ZStack {
- Circle().fill(moodTint.color(forMood: model.mood))
- .frame(minWidth: 5,
- maxWidth: 500,
- minHeight: 5,
- maxHeight: 500,
- alignment: .center)
- .overlay(
- textView(forModel: model)
- .font(.title3)
- .fontWeight(.bold)
- .lineLimit(1)
- .clipShape(ContainerRelativeShape())
- .foregroundColor(textColor)
- .minimumScaleFactor(0.7)
- )
+ HStack {
+ shape.view(withText: textView(forModel: model),
+ bgColor: moodTint.color(forMood: model.mood),
+ textColor: textColor)
+ .frame(maxWidth: .infinity, maxHeight: .infinity)
}
}
}
@@ -77,10 +68,10 @@ struct SmallRollUpHeaderView: View {
private var viewOnViewtype : some View {
HStack {
switch viewType {
- case .total, .percentageCircle:
- circularViews
+ case .total, .percentageShape:
+ shapeView
case .percentage:
- textViews
+ onlyTextView
}
}
}
@@ -98,7 +89,7 @@ struct SmallHeaderView_Previews: PreviewProvider {
viewType: .constant(.total))
SmallRollUpHeaderView(entries: PersistenceController.shared.randomEntries(count: 10),
- viewType: .constant(.percentageCircle))
+ viewType: .constant(.percentageShape))
.background(.gray)
SmallRollUpHeaderView(entries: PersistenceController.shared.randomEntries(count: 10),
diff --git a/Shared/views/SwitchableView.swift b/Shared/views/SwitchableView.swift
index c9fe04a..8fccafd 100644
--- a/Shared/views/SwitchableView.swift
+++ b/Shared/views/SwitchableView.swift
@@ -9,7 +9,7 @@ import SwiftUI
enum MainSwitchableViewType: Int, CaseIterable {
case total
- case percentageCircle
+ case percentageShape
case percentage
func next() -> MainSwitchableViewType {
@@ -40,31 +40,38 @@ struct SwitchableView: View {
self._viewType = viewType
}
+ private var mainViews: some View {
+ switch viewType {
+ case .total:
+ return AnyView(
+ HeaderStatsView(fakeData: false, backDays: daysBack, moodTint: [
+ moodTint.color(forMood: .great),
+ moodTint.color(forMood: .good),
+ moodTint.color(forMood: .average),
+ moodTint.color(forMood: .bad),
+ moodTint.color(forMood: .horrible)
+ ], textColor: textColor))
+ .allowsHitTesting(false)
+ case .percentageShape:
+ return AnyView(
+ HeaderPercView(fakeData: false, backDays: daysBack, type: .shape))
+ .allowsHitTesting(false)
+ case .percentage:
+ return AnyView(
+ HeaderPercView(fakeData: false, backDays: daysBack, type: .text))
+ .allowsHitTesting(false)
+ }
+ }
+
var body: some View {
VStack {
ZStack {
Text(String(customMoodTintUpdateNumber))
- .hidden()
- switch viewType {
- case .total:
- HeaderStatsView(fakeData: false, backDays: daysBack, moodTint: [
- moodTint.color(forMood: .great),
- moodTint.color(forMood: .good),
- moodTint.color(forMood: .average),
- moodTint.color(forMood: .bad),
- moodTint.color(forMood: .horrible)
- ], textColor: textColor)
- .padding([.leading, .trailing], -15)
- .padding([.top, .bottom], 8)
- .allowsHitTesting(false)
- case .percentageCircle:
- HeaderPercView(fakeData: false, backDays: daysBack, type: .circular)
- .allowsHitTesting(false)
- case .percentage:
- HeaderPercView(fakeData: false, backDays: daysBack, type: .text)
- .allowsHitTesting(false)
- }
-
+ .hidden()
+
+ mainViews
+ .padding([.top, .bottom])
+
VStack {
HStack {
Spacer()
@@ -91,7 +98,7 @@ struct SwitchableView: View {
theme.currentTheme.secondaryBGColor
)
.contentShape(Rectangle())
- .cornerRadius(10, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
+ .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
.padding(.bottom, 30)
.onTapGesture {
viewType = viewType.next()
diff --git a/Shared/views/YearView/YearView.swift b/Shared/views/YearView/YearView.swift
new file mode 100644
index 0000000..0e7ad98
--- /dev/null
+++ b/Shared/views/YearView/YearView.swift
@@ -0,0 +1,173 @@
+//
+// FilterView.swift
+// Feels
+//
+// Created by Trey Tartt on 1/12/22.
+//
+
+import SwiftUI
+import CoreData
+
+struct YearView: View {
+ let months = [(0, "J"), (1, "F"), (2,"M"), (3,"A"), (4,"M"), (5, "J"), (6,"J"), (7,"A"), (8,"S"), (9,"O"), (10, "N"), (11,"D")]
+
+ @State private var toggle = true
+
+ @FetchRequest(
+ sortDescriptors: [NSSortDescriptor(keyPath: \MoodEntry.forDate, ascending: false)],
+ animation: .spring())
+ private var items: FetchedResults
+
+ @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system
+ @AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default
+ @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
+
+ @StateObject public var viewModel: YearViewModel
+ @StateObject private var filteredDays = DaysFilterClass.shared
+ //[
+ // 2001: [0: [], 1: [], 2: []],
+ // 2002: [0: [], 1: [], 2: []]
+ // ]
+ let columns = [
+ GridItem(.flexible(minimum: 5, maximum: 50)),
+ GridItem(.flexible(minimum: 5, maximum: 50)),
+ GridItem(.flexible(minimum: 5, maximum: 50)),
+ GridItem(.flexible(minimum: 5, maximum: 50)),
+ GridItem(.flexible(minimum: 5, maximum: 50)),
+ GridItem(.flexible(minimum: 5, maximum: 50)),
+ GridItem(.flexible(minimum: 5, maximum: 50)),
+ GridItem(.flexible(minimum: 5, maximum: 50)),
+ GridItem(.flexible(minimum: 5, maximum: 50)),
+ GridItem(.flexible(minimum: 5, maximum: 50)),
+ GridItem(.flexible(minimum: 5, maximum: 50)),
+ GridItem(.flexible(minimum: 5, maximum: 50)),
+ ]
+
+ var body: some View {
+ ScrollView {
+ gridView
+ .onAppear(perform: {
+ self.viewModel.filterEntries(startDate: Date(timeIntervalSince1970: 0), endDate: Date())
+ })
+ }
+ .padding(.bottom, 5)
+ .background(
+ theme.currentTheme.bg
+ .edgesIgnoringSafeArea(.all)
+ )
+ }
+
+ private var monthsHeader: some View {
+ LazyVGrid(columns: columns, spacing: 0) {
+ ForEach(months, id: \.self.0) { item in
+ Text(item.1)
+ .textCase(.uppercase)
+ .foregroundColor(textColor)
+ }
+ }.padding([.leading, .trailing, .top])
+ }
+
+ private var gridView: some View {
+ VStack {
+ VStack {
+ ForEach(Array(self.viewModel.data.keys.sorted(by: >)), id: \.self) { yearKey in
+ let yearData = self.viewModel.data[yearKey]!
+
+ let firstOfYear = Calendar.current.date(from: DateComponents(year: Int(yearKey), month: 1, day: 1))!
+ let lastOfYear = Calendar.current.date(from: DateComponents(year: Int(yearKey)+1, month: 1, day: 1))!
+
+ let yearEntries = PersistenceController.shared.getData(startDate: firstOfYear,
+ endDate: lastOfYear,
+ includedDays: filteredDays.currentFilters)
+ Text(String(yearKey))
+ .font(.title)
+ .foregroundColor(textColor)
+
+ ZStack {
+ theme.currentTheme.secondaryBGColor
+
+ HStack {
+ Spacer()
+ ForEach(Mood.allValues, id: \.self) { mood in
+ VStack {
+ Text(String(Stats.getCountFor(moodType: mood,
+ inData: yearEntries)))
+ .font(.title)
+ .foregroundColor(textColor)
+ Text(mood.strValue)
+ .foregroundColor(moodTint.color(forMood: mood))
+ }
+ Spacer()
+ }
+ }
+ }
+ .cornerRadius(10)
+ .frame(minWidth: 0, maxWidth: .infinity, minHeight: 90, maxHeight: 90)
+ .cornerRadius(10)
+ .padding()
+
+ Text(String(localized: "filter_view_total") + ": \(yearEntries.count)")
+ .font(.title2)
+ .foregroundColor(textColor)
+ monthsHeader
+ .cornerRadius(10)
+ yearGridView(yearData: yearData, columns: columns)
+ .background(
+ theme.currentTheme.secondaryBGColor
+ )
+ .cornerRadius(10)
+ }
+ .padding([.top, .leading, .trailing])
+ }
+ }
+ }
+
+ private struct yearGridView: View {
+ let yearData: [Int: [DayChartView]]
+ let columns: [GridItem]
+
+ var body: some View {
+ VStack {
+ LazyVGrid(columns: columns, spacing: 0) {
+ ForEach(Array(yearData.keys.sorted(by: <)), id: \.self) { monthKey in
+ let monthData = yearData[monthKey]!
+ VStack {
+ monthGridView(monthData: monthData)
+ }
+ }
+ }
+ .padding([.leading, .trailing, .top, .bottom])
+ }
+ .cornerRadius(10)
+ }
+ }
+
+ private struct monthGridView: View {
+ @StateObject private var filteredDays = DaysFilterClass.shared
+
+ let monthData: [DayChartView]
+
+ var body: some View {
+ VStack {
+ ForEach(monthData, id: \.self) { view in
+ if filteredDays.currentFilters.contains(view.weekDay) {
+ view
+ } else {
+ view.filteredDaysView
+ }
+ }
+ }
+ }
+ }
+}
+
+struct YearView_Previews: PreviewProvider {
+ static var previews: some View {
+ Group {
+ YearView(viewModel: YearViewModel())
+
+ YearView(viewModel: YearViewModel())
+ .preferredColorScheme(.dark)
+ }
+ }
+}
diff --git a/Shared/views/FilterView/FilterViewModel.swift b/Shared/views/YearView/YearViewModel.swift
similarity index 94%
rename from Shared/views/FilterView/FilterViewModel.swift
rename to Shared/views/YearView/YearViewModel.swift
index df2e815..3a6a72d 100644
--- a/Shared/views/FilterView/FilterViewModel.swift
+++ b/Shared/views/YearView/YearViewModel.swift
@@ -7,7 +7,7 @@
import Foundation
-class FilterViewModel: ObservableObject {
+class YearViewModel: ObservableObject {
@Published public var entryStartDate: Date = Date()
@Published public var entryEndDate: Date = Date()
@Published var selectedDays = [Int]()
@@ -22,6 +22,10 @@ class FilterViewModel: ObservableObject {
}
init() {
+ updateData()
+ }
+
+ private func updateData() {
let filteredEntries = PersistenceController.shared.getData(startDate: Date(timeIntervalSince1970: 0),
endDate: Date(),
includedDays: selectedDays)
diff --git a/en.lproj/Localizable.strings b/en.lproj/Localizable.strings
index 067a0f1..3cffa6c 100644
--- a/en.lproj/Localizable.strings
+++ b/en.lproj/Localizable.strings
@@ -7,13 +7,13 @@
*/
"onboarding_time_title" = "What time do you want to unlock your rating";
-"onboarding_time_body" = "Your shit will be unlocked at %@ daily";
+"onboarding_time_body" = "Voting will be unlocked at %@ daily, you will also recieve a notification at this time";
"onboarding_day_title" = "Will this rating be for current day or previous day";
"onboarding_day_body" = "When you vote your vote will be for the %@";
"onboarding_day_preview_text_today" = "Example: If you pick on a Tuesday, the value will be recorded for Tuesday";
-"onboarding_day_preview_text_yesterday" = "Example: If you pick on a Tuesday, the value will be recorded for Monday, the day before";
-"onboarding_day_options_today" = "Same Day";
+"onboarding_day_preview_text_yesterday" = "Example: If you pick on a Tuesday, the value will be recorded for Monday, the day before.";
+"onboarding_day_options_today" = "Current Day";
"onboarding_day_options_yesterday" = "Previous Day";
"onboarding_title_title" = "What would you like the reminder to say?";
@@ -22,25 +22,36 @@
"onboarding_title_title_option_2" = "Pick your shit!";
"onboarding_title_title_option_3" = "How was your day?";
+"onboarding_title_customize_one_title" = "Lets make ifeel yours";
+"onboarding_title_customize_one_section_one_title" = "Pick an app icon";
+"onboarding_title_customize_one_section_two_title" = "What days would you like to see on the charts?";
+"onboarding_title_customize_one_section_two_note" = "Note: you will still be asked to pick a feeling for every day";
+
+"onboarding_title_customize_two_title" = "";
+"onboarding_title_customize_two_section_one_title" = "What icon set would you like to use?";
+"onboarding_title_customize_two_section_two_title" = "Pick colors for each feeling or create your own";
+"onboarding_title_customize_two_section_three_title" = "Pick a text color";
+
+
"onboarding_wrap_up_1" = "At";
"onboarding_wrap_up_2" = "you will get notified that";
-"onboarding_wrap_up_3" = "and when you vote it will be counted for the";
+"onboarding_wrap_up_3" = "you'll be notified its time to pick a mood for the";
"onboarding_wrap_up_complete_button" = "Complete";
"add_mood_header_view_title_today" = "How is today?";
"add_mood_header_view_title_yesterday" = "How was yesterday?";
+"add_mood_header_view_title" = "How was %@?";
-"content_view_tab_main" = "Main";
+"content_view_tab_main" = "Day";
"content_view_tab_month" = "Months";
-"content_view_tab_filter" = "Filter";
+"content_view_tab_filter" = "Year";
"content_view_tab_share" = "Share";
"content_view_tab_customize" = "Customize";
"content_view_fill_in_missing_entry" = "Update %@";
"content_view_fill_in_missing_entry_cancel" = "Cancel";
"content_view_delete_entry" = "Delete this entry";
"content_view_header_title" = "Past %d days";
-"content_view_empty_title" = "You aint done shit";
-"content_view_empty_body" = "Fucking vote or something?!?!? How the fuck was yesterday?";
+"content_view_empty_title" = "There are no entries to display.";
"filter_view_total" = "Total";
"filter_view_show_filters" = "Show Filters";
@@ -82,6 +93,7 @@
"customize_view_over18alert_body" = "Some of this is explicit, are you over 18?";
"customize_view_over18alert_ok" = "Sure";
"customize_view_over18alert_no" = "Nah, I'm good";
+"customize_view_view_pick_shape" = "Pick a shape";
"create_widget_view_left_eye" = "Left Eye";
"create_widget_view_right_eye" = "Right Eye";
@@ -94,3 +106,6 @@
"create_widget_view_mouth_color" = "Mouth";
"create_widget_save" = "Save";
"create_widget_use" = "Use";
+
+"month_view_no_data" = "There are no entries to display.";
+"day_picker_view_text" = "Only shows these days";