diff --git a/FrontRowTrailersIcon.png b/Design Assets/FrontRowTrailersIcon.png similarity index 100% rename from FrontRowTrailersIcon.png rename to Design Assets/FrontRowTrailersIcon.png diff --git a/FrontRowTrailersIcon.pxd/QuickLook/Icon.tiff b/Design Assets/FrontRowTrailersIcon.pxd/QuickLook/Icon.tiff similarity index 100% rename from FrontRowTrailersIcon.pxd/QuickLook/Icon.tiff rename to Design Assets/FrontRowTrailersIcon.pxd/QuickLook/Icon.tiff diff --git a/FrontRowTrailersIcon.pxd/QuickLook/Thumbnail.tiff b/Design Assets/FrontRowTrailersIcon.pxd/QuickLook/Thumbnail.tiff similarity index 100% rename from FrontRowTrailersIcon.pxd/QuickLook/Thumbnail.tiff rename to Design Assets/FrontRowTrailersIcon.pxd/QuickLook/Thumbnail.tiff diff --git a/FrontRowTrailersIcon.pxd/data/078A6F16-62A5-49F3-8504-AF7C459F47B4 b/Design Assets/FrontRowTrailersIcon.pxd/data/078A6F16-62A5-49F3-8504-AF7C459F47B4 similarity index 100% rename from FrontRowTrailersIcon.pxd/data/078A6F16-62A5-49F3-8504-AF7C459F47B4 rename to Design Assets/FrontRowTrailersIcon.pxd/data/078A6F16-62A5-49F3-8504-AF7C459F47B4 diff --git a/FrontRowTrailersIcon.pxd/data/181C90B3-42F6-497F-A305-F5EF9243DF99 b/Design Assets/FrontRowTrailersIcon.pxd/data/181C90B3-42F6-497F-A305-F5EF9243DF99 similarity index 100% rename from FrontRowTrailersIcon.pxd/data/181C90B3-42F6-497F-A305-F5EF9243DF99 rename to Design Assets/FrontRowTrailersIcon.pxd/data/181C90B3-42F6-497F-A305-F5EF9243DF99 diff --git a/FrontRowTrailersIcon.pxd/data/3B49F82D-F560-4DFD-88A3-E14073B6CAA3 b/Design Assets/FrontRowTrailersIcon.pxd/data/3B49F82D-F560-4DFD-88A3-E14073B6CAA3 similarity index 100% rename from FrontRowTrailersIcon.pxd/data/3B49F82D-F560-4DFD-88A3-E14073B6CAA3 rename to Design Assets/FrontRowTrailersIcon.pxd/data/3B49F82D-F560-4DFD-88A3-E14073B6CAA3 diff --git a/FrontRowTrailersIcon.pxd/data/57792EE9-F72F-4DB5-9B51-D94D6F91D96D b/Design Assets/FrontRowTrailersIcon.pxd/data/57792EE9-F72F-4DB5-9B51-D94D6F91D96D similarity index 100% rename from FrontRowTrailersIcon.pxd/data/57792EE9-F72F-4DB5-9B51-D94D6F91D96D rename to Design Assets/FrontRowTrailersIcon.pxd/data/57792EE9-F72F-4DB5-9B51-D94D6F91D96D diff --git a/FrontRowTrailersIcon.pxd/data/7125E196-D67B-416F-906F-3385B0191E5E b/Design Assets/FrontRowTrailersIcon.pxd/data/7125E196-D67B-416F-906F-3385B0191E5E similarity index 100% rename from FrontRowTrailersIcon.pxd/data/7125E196-D67B-416F-906F-3385B0191E5E rename to Design Assets/FrontRowTrailersIcon.pxd/data/7125E196-D67B-416F-906F-3385B0191E5E diff --git a/FrontRowTrailersIcon.pxd/data/7BC9B605-12F7-4B11-B220-72C306879F42 b/Design Assets/FrontRowTrailersIcon.pxd/data/7BC9B605-12F7-4B11-B220-72C306879F42 similarity index 100% rename from FrontRowTrailersIcon.pxd/data/7BC9B605-12F7-4B11-B220-72C306879F42 rename to Design Assets/FrontRowTrailersIcon.pxd/data/7BC9B605-12F7-4B11-B220-72C306879F42 diff --git a/FrontRowTrailersIcon.pxd/data/95E072A3-7433-4426-988A-0D1AD6ACE0E7-PTEffectsImagesKeyPrefix.4D09E887-230F-4550-9FB7-94E65B3C5D63.inputFillImage b/Design Assets/FrontRowTrailersIcon.pxd/data/95E072A3-7433-4426-988A-0D1AD6ACE0E7-PTEffectsImagesKeyPrefix.4D09E887-230F-4550-9FB7-94E65B3C5D63.inputFillImage similarity index 100% rename from FrontRowTrailersIcon.pxd/data/95E072A3-7433-4426-988A-0D1AD6ACE0E7-PTEffectsImagesKeyPrefix.4D09E887-230F-4550-9FB7-94E65B3C5D63.inputFillImage rename to Design Assets/FrontRowTrailersIcon.pxd/data/95E072A3-7433-4426-988A-0D1AD6ACE0E7-PTEffectsImagesKeyPrefix.4D09E887-230F-4550-9FB7-94E65B3C5D63.inputFillImage diff --git a/FrontRowTrailersIcon.pxd/data/9F658B48-4405-4935-862A-714E053EAF73 b/Design Assets/FrontRowTrailersIcon.pxd/data/9F658B48-4405-4935-862A-714E053EAF73 similarity index 100% rename from FrontRowTrailersIcon.pxd/data/9F658B48-4405-4935-862A-714E053EAF73 rename to Design Assets/FrontRowTrailersIcon.pxd/data/9F658B48-4405-4935-862A-714E053EAF73 diff --git a/FrontRowTrailersIcon.pxd/data/9FCDD43F-D492-413D-96B4-C0C3B5AFE5A1 b/Design Assets/FrontRowTrailersIcon.pxd/data/9FCDD43F-D492-413D-96B4-C0C3B5AFE5A1 similarity index 100% rename from FrontRowTrailersIcon.pxd/data/9FCDD43F-D492-413D-96B4-C0C3B5AFE5A1 rename to Design Assets/FrontRowTrailersIcon.pxd/data/9FCDD43F-D492-413D-96B4-C0C3B5AFE5A1 diff --git a/FrontRowTrailersIcon.pxd/data/AA93C3D2-27B6-4DEE-A85A-631D701814D7 b/Design Assets/FrontRowTrailersIcon.pxd/data/AA93C3D2-27B6-4DEE-A85A-631D701814D7 similarity index 100% rename from FrontRowTrailersIcon.pxd/data/AA93C3D2-27B6-4DEE-A85A-631D701814D7 rename to Design Assets/FrontRowTrailersIcon.pxd/data/AA93C3D2-27B6-4DEE-A85A-631D701814D7 diff --git a/FrontRowTrailersIcon.pxd/data/C9B8484E-9C56-4016-A419-82D6E1EA21D9 b/Design Assets/FrontRowTrailersIcon.pxd/data/C9B8484E-9C56-4016-A419-82D6E1EA21D9 similarity index 100% rename from FrontRowTrailersIcon.pxd/data/C9B8484E-9C56-4016-A419-82D6E1EA21D9 rename to Design Assets/FrontRowTrailersIcon.pxd/data/C9B8484E-9C56-4016-A419-82D6E1EA21D9 diff --git a/FrontRowTrailersIcon.pxd/data/CF2AE119-0F46-408F-9ADB-4BB083E4F75F b/Design Assets/FrontRowTrailersIcon.pxd/data/CF2AE119-0F46-408F-9ADB-4BB083E4F75F similarity index 100% rename from FrontRowTrailersIcon.pxd/data/CF2AE119-0F46-408F-9ADB-4BB083E4F75F rename to Design Assets/FrontRowTrailersIcon.pxd/data/CF2AE119-0F46-408F-9ADB-4BB083E4F75F diff --git a/FrontRowTrailersIcon.pxd/data/D193F921-674C-4079-8726-47CA702C0E5D b/Design Assets/FrontRowTrailersIcon.pxd/data/D193F921-674C-4079-8726-47CA702C0E5D similarity index 100% rename from FrontRowTrailersIcon.pxd/data/D193F921-674C-4079-8726-47CA702C0E5D rename to Design Assets/FrontRowTrailersIcon.pxd/data/D193F921-674C-4079-8726-47CA702C0E5D diff --git a/FrontRowTrailersIcon.pxd/data/D8AB72EE-7618-4B64-A02B-D0F9F15EF623 b/Design Assets/FrontRowTrailersIcon.pxd/data/D8AB72EE-7618-4B64-A02B-D0F9F15EF623 similarity index 100% rename from FrontRowTrailersIcon.pxd/data/D8AB72EE-7618-4B64-A02B-D0F9F15EF623 rename to Design Assets/FrontRowTrailersIcon.pxd/data/D8AB72EE-7618-4B64-A02B-D0F9F15EF623 diff --git a/FrontRowTrailersIcon.pxd/data/EB32C11D-121F-42E4-8348-4FD4AE5FF7F1 b/Design Assets/FrontRowTrailersIcon.pxd/data/EB32C11D-121F-42E4-8348-4FD4AE5FF7F1 similarity index 100% rename from FrontRowTrailersIcon.pxd/data/EB32C11D-121F-42E4-8348-4FD4AE5FF7F1 rename to Design Assets/FrontRowTrailersIcon.pxd/data/EB32C11D-121F-42E4-8348-4FD4AE5FF7F1 diff --git a/FrontRowTrailersIcon.pxd/data/EEAE44AA-8F71-42A1-B647-6D158BF24E6E b/Design Assets/FrontRowTrailersIcon.pxd/data/EEAE44AA-8F71-42A1-B647-6D158BF24E6E similarity index 100% rename from FrontRowTrailersIcon.pxd/data/EEAE44AA-8F71-42A1-B647-6D158BF24E6E rename to Design Assets/FrontRowTrailersIcon.pxd/data/EEAE44AA-8F71-42A1-B647-6D158BF24E6E diff --git a/FrontRowTrailersIcon.pxd/data/F2F03FA8-C11B-4D6F-9EC5-DE0E8ADC54B7 b/Design Assets/FrontRowTrailersIcon.pxd/data/F2F03FA8-C11B-4D6F-9EC5-DE0E8ADC54B7 similarity index 100% rename from FrontRowTrailersIcon.pxd/data/F2F03FA8-C11B-4D6F-9EC5-DE0E8ADC54B7 rename to Design Assets/FrontRowTrailersIcon.pxd/data/F2F03FA8-C11B-4D6F-9EC5-DE0E8ADC54B7 diff --git a/FrontRowTrailersIcon.pxd/metadata.info b/Design Assets/FrontRowTrailersIcon.pxd/metadata.info similarity index 100% rename from FrontRowTrailersIcon.pxd/metadata.info rename to Design Assets/FrontRowTrailersIcon.pxd/metadata.info diff --git a/FrontRowTrailersMac-new.pxd/QuickLook/Icon.tiff b/Design Assets/FrontRowTrailersMac-new.pxd/QuickLook/Icon.tiff similarity index 100% rename from FrontRowTrailersMac-new.pxd/QuickLook/Icon.tiff rename to Design Assets/FrontRowTrailersMac-new.pxd/QuickLook/Icon.tiff diff --git a/FrontRowTrailersMac-new.pxd/QuickLook/Thumbnail.tiff b/Design Assets/FrontRowTrailersMac-new.pxd/QuickLook/Thumbnail.tiff similarity index 100% rename from FrontRowTrailersMac-new.pxd/QuickLook/Thumbnail.tiff rename to Design Assets/FrontRowTrailersMac-new.pxd/QuickLook/Thumbnail.tiff diff --git a/FrontRowTrailersMac-new.pxd/data/0C16052B-3605-48EC-98E9-E99C3AAC9412 b/Design Assets/FrontRowTrailersMac-new.pxd/data/0C16052B-3605-48EC-98E9-E99C3AAC9412 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/0C16052B-3605-48EC-98E9-E99C3AAC9412 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/0C16052B-3605-48EC-98E9-E99C3AAC9412 diff --git a/FrontRowTrailersMac-new.pxd/data/10412498-BFE8-4BAD-83E1-60A57677C890 b/Design Assets/FrontRowTrailersMac-new.pxd/data/10412498-BFE8-4BAD-83E1-60A57677C890 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/10412498-BFE8-4BAD-83E1-60A57677C890 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/10412498-BFE8-4BAD-83E1-60A57677C890 diff --git a/FrontRowTrailersMac-new.pxd/data/155F743C-190B-4C54-ADDE-D53C443AD367 b/Design Assets/FrontRowTrailersMac-new.pxd/data/155F743C-190B-4C54-ADDE-D53C443AD367 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/155F743C-190B-4C54-ADDE-D53C443AD367 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/155F743C-190B-4C54-ADDE-D53C443AD367 diff --git a/FrontRowTrailersMac-new.pxd/data/1BCB652B-1ACC-4F27-9451-93535228CC6F b/Design Assets/FrontRowTrailersMac-new.pxd/data/1BCB652B-1ACC-4F27-9451-93535228CC6F similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/1BCB652B-1ACC-4F27-9451-93535228CC6F rename to Design Assets/FrontRowTrailersMac-new.pxd/data/1BCB652B-1ACC-4F27-9451-93535228CC6F diff --git a/FrontRowTrailersMac-new.pxd/data/1C63280D-A29B-41C6-85CA-0B90517484B0 b/Design Assets/FrontRowTrailersMac-new.pxd/data/1C63280D-A29B-41C6-85CA-0B90517484B0 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/1C63280D-A29B-41C6-85CA-0B90517484B0 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/1C63280D-A29B-41C6-85CA-0B90517484B0 diff --git a/FrontRowTrailersMac-new.pxd/data/278D7451-4F5E-473C-8CC0-26A838C94714-PTEffectsImagesKeyPrefix.2371CCA2-6347-42B5-A9C6-16266B5C1619.inputFillImage b/Design Assets/FrontRowTrailersMac-new.pxd/data/278D7451-4F5E-473C-8CC0-26A838C94714-PTEffectsImagesKeyPrefix.2371CCA2-6347-42B5-A9C6-16266B5C1619.inputFillImage similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/278D7451-4F5E-473C-8CC0-26A838C94714-PTEffectsImagesKeyPrefix.2371CCA2-6347-42B5-A9C6-16266B5C1619.inputFillImage rename to Design Assets/FrontRowTrailersMac-new.pxd/data/278D7451-4F5E-473C-8CC0-26A838C94714-PTEffectsImagesKeyPrefix.2371CCA2-6347-42B5-A9C6-16266B5C1619.inputFillImage diff --git a/FrontRowTrailersMac-new.pxd/data/380F561E-4579-47B8-B147-5261612F4096 b/Design Assets/FrontRowTrailersMac-new.pxd/data/380F561E-4579-47B8-B147-5261612F4096 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/380F561E-4579-47B8-B147-5261612F4096 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/380F561E-4579-47B8-B147-5261612F4096 diff --git a/FrontRowTrailersMac-new.pxd/data/40558170-7FD2-42A1-9887-D0F63942608D b/Design Assets/FrontRowTrailersMac-new.pxd/data/40558170-7FD2-42A1-9887-D0F63942608D similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/40558170-7FD2-42A1-9887-D0F63942608D rename to Design Assets/FrontRowTrailersMac-new.pxd/data/40558170-7FD2-42A1-9887-D0F63942608D diff --git a/FrontRowTrailersMac-new.pxd/data/41656D3D-ACF1-4196-B277-48B6F6319274 b/Design Assets/FrontRowTrailersMac-new.pxd/data/41656D3D-ACF1-4196-B277-48B6F6319274 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/41656D3D-ACF1-4196-B277-48B6F6319274 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/41656D3D-ACF1-4196-B277-48B6F6319274 diff --git a/FrontRowTrailersMac-new.pxd/data/46B3811D-56BC-4DE8-8CD1-BF89C544C1AF b/Design Assets/FrontRowTrailersMac-new.pxd/data/46B3811D-56BC-4DE8-8CD1-BF89C544C1AF similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/46B3811D-56BC-4DE8-8CD1-BF89C544C1AF rename to Design Assets/FrontRowTrailersMac-new.pxd/data/46B3811D-56BC-4DE8-8CD1-BF89C544C1AF diff --git a/FrontRowTrailersMac-new.pxd/data/593580E4-05A3-46AB-9999-4F4513A2F538 b/Design Assets/FrontRowTrailersMac-new.pxd/data/593580E4-05A3-46AB-9999-4F4513A2F538 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/593580E4-05A3-46AB-9999-4F4513A2F538 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/593580E4-05A3-46AB-9999-4F4513A2F538 diff --git a/FrontRowTrailersMac-new.pxd/data/78F3DBFB-D035-4225-ABF0-56AFD35DCBD2 b/Design Assets/FrontRowTrailersMac-new.pxd/data/78F3DBFB-D035-4225-ABF0-56AFD35DCBD2 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/78F3DBFB-D035-4225-ABF0-56AFD35DCBD2 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/78F3DBFB-D035-4225-ABF0-56AFD35DCBD2 diff --git a/FrontRowTrailersMac-new.pxd/data/83B89697-0CFD-4364-94FB-8F4625DF68C6-PTEffectsImagesKeyPrefix.580D18EB-4EA7-428D-AABF-117402A8BF78.inputFillImage b/Design Assets/FrontRowTrailersMac-new.pxd/data/83B89697-0CFD-4364-94FB-8F4625DF68C6-PTEffectsImagesKeyPrefix.580D18EB-4EA7-428D-AABF-117402A8BF78.inputFillImage similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/83B89697-0CFD-4364-94FB-8F4625DF68C6-PTEffectsImagesKeyPrefix.580D18EB-4EA7-428D-AABF-117402A8BF78.inputFillImage rename to Design Assets/FrontRowTrailersMac-new.pxd/data/83B89697-0CFD-4364-94FB-8F4625DF68C6-PTEffectsImagesKeyPrefix.580D18EB-4EA7-428D-AABF-117402A8BF78.inputFillImage diff --git a/FrontRowTrailersMac-new.pxd/data/9824B0A3-9027-4268-80D7-B71C7173653A-PTEffectsImagesKeyPrefix.4D09E887-230F-4550-9FB7-94E65B3C5D63.inputFillImage b/Design Assets/FrontRowTrailersMac-new.pxd/data/9824B0A3-9027-4268-80D7-B71C7173653A-PTEffectsImagesKeyPrefix.4D09E887-230F-4550-9FB7-94E65B3C5D63.inputFillImage similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/9824B0A3-9027-4268-80D7-B71C7173653A-PTEffectsImagesKeyPrefix.4D09E887-230F-4550-9FB7-94E65B3C5D63.inputFillImage rename to Design Assets/FrontRowTrailersMac-new.pxd/data/9824B0A3-9027-4268-80D7-B71C7173653A-PTEffectsImagesKeyPrefix.4D09E887-230F-4550-9FB7-94E65B3C5D63.inputFillImage diff --git a/FrontRowTrailersMac-new.pxd/data/98C9A0DB-D9A8-4017-AD2D-20998B59CCD6 b/Design Assets/FrontRowTrailersMac-new.pxd/data/98C9A0DB-D9A8-4017-AD2D-20998B59CCD6 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/98C9A0DB-D9A8-4017-AD2D-20998B59CCD6 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/98C9A0DB-D9A8-4017-AD2D-20998B59CCD6 diff --git a/FrontRowTrailersMac-new.pxd/data/B0C3816B-74DA-4F0C-923D-F1B8A8305997 b/Design Assets/FrontRowTrailersMac-new.pxd/data/B0C3816B-74DA-4F0C-923D-F1B8A8305997 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/B0C3816B-74DA-4F0C-923D-F1B8A8305997 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/B0C3816B-74DA-4F0C-923D-F1B8A8305997 diff --git a/FrontRowTrailersMac-new.pxd/data/BF712DE6-868A-4800-9D03-E248A2BEB282 b/Design Assets/FrontRowTrailersMac-new.pxd/data/BF712DE6-868A-4800-9D03-E248A2BEB282 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/BF712DE6-868A-4800-9D03-E248A2BEB282 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/BF712DE6-868A-4800-9D03-E248A2BEB282 diff --git a/FrontRowTrailersMac-new.pxd/data/C309F652-917D-47B8-9788-31C7EC95A164 b/Design Assets/FrontRowTrailersMac-new.pxd/data/C309F652-917D-47B8-9788-31C7EC95A164 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/C309F652-917D-47B8-9788-31C7EC95A164 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/C309F652-917D-47B8-9788-31C7EC95A164 diff --git a/FrontRowTrailersMac-new.pxd/data/C66F9A85-E0D4-4A5E-8E8A-02F4A958AF94 b/Design Assets/FrontRowTrailersMac-new.pxd/data/C66F9A85-E0D4-4A5E-8E8A-02F4A958AF94 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/C66F9A85-E0D4-4A5E-8E8A-02F4A958AF94 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/C66F9A85-E0D4-4A5E-8E8A-02F4A958AF94 diff --git a/FrontRowTrailersMac-new.pxd/data/CE9582FB-6813-45C1-A6B8-C497096B9553 b/Design Assets/FrontRowTrailersMac-new.pxd/data/CE9582FB-6813-45C1-A6B8-C497096B9553 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/CE9582FB-6813-45C1-A6B8-C497096B9553 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/CE9582FB-6813-45C1-A6B8-C497096B9553 diff --git a/FrontRowTrailersMac-new.pxd/data/D339FFF1-B47A-4066-93D9-08D9D75A09BB b/Design Assets/FrontRowTrailersMac-new.pxd/data/D339FFF1-B47A-4066-93D9-08D9D75A09BB similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/D339FFF1-B47A-4066-93D9-08D9D75A09BB rename to Design Assets/FrontRowTrailersMac-new.pxd/data/D339FFF1-B47A-4066-93D9-08D9D75A09BB diff --git a/FrontRowTrailersMac-new.pxd/data/DFCC2063-2BAF-41F5-BF19-22FE34774BA9 b/Design Assets/FrontRowTrailersMac-new.pxd/data/DFCC2063-2BAF-41F5-BF19-22FE34774BA9 similarity index 100% rename from FrontRowTrailersMac-new.pxd/data/DFCC2063-2BAF-41F5-BF19-22FE34774BA9 rename to Design Assets/FrontRowTrailersMac-new.pxd/data/DFCC2063-2BAF-41F5-BF19-22FE34774BA9 diff --git a/FrontRowTrailersMac-new.pxd/metadata.info b/Design Assets/FrontRowTrailersMac-new.pxd/metadata.info similarity index 100% rename from FrontRowTrailersMac-new.pxd/metadata.info rename to Design Assets/FrontRowTrailersMac-new.pxd/metadata.info diff --git a/Design Assets/moviePosterPlaceholder.pxd/QuickLook/Icon.tiff b/Design Assets/moviePosterPlaceholder.pxd/QuickLook/Icon.tiff new file mode 100644 index 0000000..39162c0 Binary files /dev/null and b/Design Assets/moviePosterPlaceholder.pxd/QuickLook/Icon.tiff differ diff --git a/Design Assets/moviePosterPlaceholder.pxd/QuickLook/Thumbnail.tiff b/Design Assets/moviePosterPlaceholder.pxd/QuickLook/Thumbnail.tiff new file mode 100644 index 0000000..0bce00b Binary files /dev/null and b/Design Assets/moviePosterPlaceholder.pxd/QuickLook/Thumbnail.tiff differ diff --git a/Design Assets/moviePosterPlaceholder.pxd/data/A646682E-4254-484F-BC4C-551943919ACF b/Design Assets/moviePosterPlaceholder.pxd/data/A646682E-4254-484F-BC4C-551943919ACF new file mode 100644 index 0000000..c4e9c5f Binary files /dev/null and b/Design Assets/moviePosterPlaceholder.pxd/data/A646682E-4254-484F-BC4C-551943919ACF differ diff --git a/Design Assets/moviePosterPlaceholder.pxd/data/ADC5E32F-B0F4-4AAB-959F-B1EAE7A312AD b/Design Assets/moviePosterPlaceholder.pxd/data/ADC5E32F-B0F4-4AAB-959F-B1EAE7A312AD new file mode 100644 index 0000000..81c7b0c Binary files /dev/null and b/Design Assets/moviePosterPlaceholder.pxd/data/ADC5E32F-B0F4-4AAB-959F-B1EAE7A312AD differ diff --git a/Design Assets/moviePosterPlaceholder.pxd/data/D544136C-18F1-4CB4-A60C-B36E90FA3784 b/Design Assets/moviePosterPlaceholder.pxd/data/D544136C-18F1-4CB4-A60C-B36E90FA3784 new file mode 100644 index 0000000..16d9eb9 Binary files /dev/null and b/Design Assets/moviePosterPlaceholder.pxd/data/D544136C-18F1-4CB4-A60C-B36E90FA3784 differ diff --git a/Design Assets/moviePosterPlaceholder.pxd/data/originalImportedContentDocumentInfo b/Design Assets/moviePosterPlaceholder.pxd/data/originalImportedContentDocumentInfo new file mode 100644 index 0000000..ef287f7 Binary files /dev/null and b/Design Assets/moviePosterPlaceholder.pxd/data/originalImportedContentDocumentInfo differ diff --git a/Design Assets/moviePosterPlaceholder.pxd/metadata.info b/Design Assets/moviePosterPlaceholder.pxd/metadata.info new file mode 100644 index 0000000..2c687c9 Binary files /dev/null and b/Design Assets/moviePosterPlaceholder.pxd/metadata.info differ diff --git a/posterMirrorImageGradientMask.pxd/QuickLook/Icon.tiff b/Design Assets/posterMirrorImageGradientMask.pxd/QuickLook/Icon.tiff similarity index 100% rename from posterMirrorImageGradientMask.pxd/QuickLook/Icon.tiff rename to Design Assets/posterMirrorImageGradientMask.pxd/QuickLook/Icon.tiff diff --git a/posterMirrorImageGradientMask.pxd/QuickLook/Thumbnail.tiff b/Design Assets/posterMirrorImageGradientMask.pxd/QuickLook/Thumbnail.tiff similarity index 100% rename from posterMirrorImageGradientMask.pxd/QuickLook/Thumbnail.tiff rename to Design Assets/posterMirrorImageGradientMask.pxd/QuickLook/Thumbnail.tiff diff --git a/posterMirrorImageGradientMask.pxd/data/originalImportedContentDocumentInfo b/Design Assets/posterMirrorImageGradientMask.pxd/data/originalImportedContentDocumentInfo similarity index 100% rename from posterMirrorImageGradientMask.pxd/data/originalImportedContentDocumentInfo rename to Design Assets/posterMirrorImageGradientMask.pxd/data/originalImportedContentDocumentInfo diff --git a/posterMirrorImageGradientMask.pxd/metadata.info b/Design Assets/posterMirrorImageGradientMask.pxd/metadata.info similarity index 100% rename from posterMirrorImageGradientMask.pxd/metadata.info rename to Design Assets/posterMirrorImageGradientMask.pxd/metadata.info diff --git a/README.md b/README.md index f3189e4..cb7b844 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ On TV (via AirPlay or adapter): The latest release version of this app is [available on the App Store](https://apps.apple.com/app/id1534845010) and beta versions are sometimes available on [TestFlight](https://testflight.apple.com/join/Wnlesgzr). It appears on your homescreen as "Front Row". -App Icon. It is dark red and black color with a white lens flare at the top. It is designed to resemble a movie theatre. +App Icon. It is dark red and black color with a white lens flare at the top. It is designed to resemble a movie theatre. To build from source, you need Xcode 12 and an Apple Developer account. Clone or download the repository, open the Xcode project and change the bunde identifier and development team. Then build and run. diff --git a/TMT Mac/Assets.xcassets/MoviePosterPlaceholder.imageset/moviePosterPlaceholder@2x.png b/TMT Mac/Assets.xcassets/MoviePosterPlaceholder.imageset/moviePosterPlaceholder@2x.png index 98b0ae0..4754167 100644 Binary files a/TMT Mac/Assets.xcassets/MoviePosterPlaceholder.imageset/moviePosterPlaceholder@2x.png and b/TMT Mac/Assets.xcassets/MoviePosterPlaceholder.imageset/moviePosterPlaceholder@2x.png differ diff --git a/TMT Mac/ContentView.swift b/TMT Mac/ContentView.swift index 3491cac..24b9dd9 100644 --- a/TMT Mac/ContentView.swift +++ b/TMT Mac/ContentView.swift @@ -78,6 +78,12 @@ struct ContentView: View { .frame(maxWidth: .infinity, maxHeight: .infinity) .background(Color.black) .transition(.opacity) + .onDisappear { + /// user played trailer, request review + DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { + AppStoreReviewsManager.requestReviewIfAppropriate() + } + } } } ) diff --git a/TMT Mac/TMT_MacApp.swift b/TMT Mac/TMT_MacApp.swift index 53d7c10..4dcd052 100644 --- a/TMT Mac/TMT_MacApp.swift +++ b/TMT Mac/TMT_MacApp.swift @@ -6,6 +6,7 @@ // import SwiftUI +import TelemetryClient @main struct TMT_MacApp: App { @@ -15,6 +16,11 @@ struct TMT_MacApp: App { ContentView() .environmentObject(dataStore) .onAppear { + /// initialize telemetry + let configuration = TelemetryManagerConfiguration(appID: TelemetryAppId) + TelemetryManager.initialize(with: configuration) + TelemetryManager.send("appLaunchedRegularly") + /// put window into full screen DispatchQueue.main.asyncAfter(0.1) { if let window = NSApplication.shared.windows.last { window.toggleFullScreen(nil) diff --git a/TMT Mac/Utilities/AppStoreReviewsManager.swift b/TMT Mac/Utilities/AppStoreReviewsManager.swift new file mode 100644 index 0000000..12f084e --- /dev/null +++ b/TMT Mac/Utilities/AppStoreReviewsManager.swift @@ -0,0 +1,37 @@ +// +// AppStoreReviewManager.swift +// TheatricalMovieTrailers +// +// Created by Christoph Parstorfer on 20.02.22. +// + +import StoreKit + +/** + Shows the App Store review prompt if appropriate. + Appropriate means: + - app launched > 1 minute ago + - has not been asked to review this version + */ +class AppStoreReviewsManager { + static func requestReviewIfAppropriate() { + let settings = Settings.instance + // check if app was first launched more than one minute ago + guard Date().timeIntervalSince(settings.firstLaunchedDate) > 1 * 60/* seconds */ else { + return + } + + // check that no request for review of this app version has been made + let currentVersion = NSApplication.version + let lastVersion = settings.lastReviewRequestAppVersion + guard lastVersion == nil || lastVersion! != currentVersion else { + return + } + + // request for the review popup to be shown + SKStoreReviewController.requestReview() + + // update last requested version number + settings.lastReviewRequestAppVersion = currentVersion + } +} diff --git a/TMT Mac/Views/MovieTrailerListView.swift b/TMT Mac/Views/MovieTrailerListView.swift index 443293d..4ad148e 100644 --- a/TMT Mac/Views/MovieTrailerListView.swift +++ b/TMT Mac/Views/MovieTrailerListView.swift @@ -6,6 +6,7 @@ // import SwiftUI +import TelemetryClient struct MovieTrailerListView: View { @ObservedObject private var settings = Settings.instance @@ -162,5 +163,6 @@ struct MovieTrailerListView: View { dataStore.selectedTrailerModel = movieInfo dataStore.isPlaying = true } + dataStore.setWatchedTrailer(movieInfo) } } diff --git a/TheatricalMovieTrailers.xcodeproj/project.pbxproj b/TheatricalMovieTrailers.xcodeproj/project.pbxproj index d9c08d3..c6c7a80 100644 --- a/TheatricalMovieTrailers.xcodeproj/project.pbxproj +++ b/TheatricalMovieTrailers.xcodeproj/project.pbxproj @@ -103,6 +103,8 @@ 83FA29FF2748909B00445816 /* NSApplication+version+build.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83FA29FE2748909B00445816 /* NSApplication+version+build.swift */; }; 83FA2A002748930100445816 /* CustomDarkAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 831CD8FA24ABEC36008EDC6F /* CustomDarkAppearance.swift */; }; 83FA2A012748933F00445816 /* DispatchQueue+async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83AC6275255018F700197B0B /* DispatchQueue+async.swift */; }; + 83FD3F3927C2ACF00083F354 /* Secrets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8300055C2541B34A0069A8D1 /* Secrets.swift */; }; + 83FD3F3C27C2AE640083F354 /* AppStoreReviewsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83FD3F3B27C2AE640083F354 /* AppStoreReviewsManager.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -205,6 +207,7 @@ 83FA29EB274889C400445816 /* Settings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = ""; }; 83FA29FC2748905800445816 /* Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = ""; }; 83FA29FE2748909B00445816 /* NSApplication+version+build.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSApplication+version+build.swift"; sourceTree = ""; }; + 83FD3F3B27C2AE640083F354 /* AppStoreReviewsManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStoreReviewsManager.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -361,6 +364,7 @@ 837E13E527680356004B564B /* Utilities */ = { isa = PBXGroup; children = ( + 83FD3F3B27C2AE640083F354 /* AppStoreReviewsManager.swift */, 837E13E627680374004B564B /* KeyEventHandling.swift */, ); path = Utilities; @@ -678,6 +682,7 @@ 83FA29F7274889D900445816 /* MovieInfo.swift in Sources */, 83FA29FD2748905800445816 /* Settings.swift in Sources */, 83FA2A012748933F00445816 /* DispatchQueue+async.swift in Sources */, + 83FD3F3C27C2AE640083F354 /* AppStoreReviewsManager.swift in Sources */, 833A78AB27B72B60009A91A6 /* MacFont.swift in Sources */, 8354861827760D8E0039A29C /* MoviePosterView.swift in Sources */, 837E13E12767FD5C004B564B /* MovieTrailerListView.swift in Sources */, @@ -685,6 +690,7 @@ 83FA29FA27488F2700445816 /* MovieInfoDataStore.swift in Sources */, 83FA29F6274889D900445816 /* SortingMode.swift in Sources */, 837E13E4276800A5004B564B /* SelectionIndicator.swift in Sources */, + 83FD3F3927C2ACF00083F354 /* Secrets.swift in Sources */, 83FA29FF2748909B00445816 /* NSApplication+version+build.swift in Sources */, 83AB8429278CDF9800428FB4 /* MovieInfoContainerView.swift in Sources */, ); @@ -837,7 +843,7 @@ CODE_SIGN_ENTITLEMENTS = TheatricalMovieTrailers/TheatricalMovieTrailers.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 43; + CURRENT_PROJECT_VERSION = 46; DEVELOPMENT_ASSET_PATHS = "\"TheatricalMovieTrailers/Preview Content\""; DEVELOPMENT_TEAM = U96PJYMZWW; ENABLE_PREVIEWS = YES; @@ -847,7 +853,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 2.0.0; + MARKETING_VERSION = 2.0.1; PRODUCT_BUNDLE_IDENTIFIER = cafe.chrisp.tmt; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -865,7 +871,7 @@ CODE_SIGN_ENTITLEMENTS = TheatricalMovieTrailers/TheatricalMovieTrailers.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 43; + CURRENT_PROJECT_VERSION = 46; DEVELOPMENT_ASSET_PATHS = "\"TheatricalMovieTrailers/Preview Content\""; DEVELOPMENT_TEAM = U96PJYMZWW; ENABLE_PREVIEWS = YES; @@ -875,7 +881,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 2.0.0; + MARKETING_VERSION = 2.0.1; PRODUCT_BUNDLE_IDENTIFIER = cafe.chrisp.tmt; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -892,7 +898,7 @@ CODE_SIGN_ENTITLEMENTS = TrailersWidget/TrailersWidgetExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 43; + CURRENT_PROJECT_VERSION = 46; DEVELOPMENT_TEAM = U96PJYMZWW; INFOPLIST_FILE = TrailersWidget/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.1; @@ -901,7 +907,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 2.0.0; + MARKETING_VERSION = 2.0.1; PRODUCT_BUNDLE_IDENTIFIER = cafe.chrisp.tmt.TrailersWidget; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -918,7 +924,7 @@ CODE_SIGN_ENTITLEMENTS = TrailersWidget/TrailersWidgetExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 43; + CURRENT_PROJECT_VERSION = 46; DEVELOPMENT_TEAM = U96PJYMZWW; INFOPLIST_FILE = TrailersWidget/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.1; @@ -927,7 +933,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 2.0.0; + MARKETING_VERSION = 2.0.1; PRODUCT_BUNDLE_IDENTIFIER = cafe.chrisp.tmt.TrailersWidget; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -947,7 +953,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 8; + CURRENT_PROJECT_VERSION = 10; DEVELOPMENT_ASSET_PATHS = "\"TMT Mac/Preview Content\""; DEVELOPMENT_TEAM = U96PJYMZWW; ENABLE_HARDENED_RUNTIME = YES; @@ -962,7 +968,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 12.0; - MARKETING_VERSION = 1.0; + MARKETING_VERSION = 1.0.1; PRODUCT_BUNDLE_IDENTIFIER = cafe.chrisp.tmt; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; @@ -982,7 +988,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 8; + CURRENT_PROJECT_VERSION = 10; DEVELOPMENT_ASSET_PATHS = "\"TMT Mac/Preview Content\""; DEVELOPMENT_TEAM = U96PJYMZWW; ENABLE_HARDENED_RUNTIME = YES; @@ -997,7 +1003,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 12.0; - MARKETING_VERSION = 1.0; + MARKETING_VERSION = 1.0.1; PRODUCT_BUNDLE_IDENTIFIER = cafe.chrisp.tmt; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; diff --git a/TheatricalMovieTrailers/ContentView.swift b/TheatricalMovieTrailers/ContentView.swift index 08050ea..1022053 100644 --- a/TheatricalMovieTrailers/ContentView.swift +++ b/TheatricalMovieTrailers/ContentView.swift @@ -15,43 +15,43 @@ struct ContentView: View { var body: some View { CoverFlowScrollView(model: $dataStore.model, sortingMode: $sortingMode) - .overlay( - Group { - if loading { - ZStack { - ProgressView("Loading Trailers…") - .frame(width: 200, height: 44) + .overlay( + Group { + if loading { + ZStack { + ProgressView("Loading Trailers…") + .frame(width: 200, height: 44) + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background(Color.init(UIColor.systemBackground)) + .edgesIgnoringSafeArea(.all) } - .frame(maxWidth: .infinity, maxHeight: .infinity) - .background(Color.init(UIColor.systemBackground)) - .edgesIgnoringSafeArea(.all) } + ) + .alert(item: $dataStore.error, content: { error -> Alert in + error.makeAlert() + }) + .transition(.opacity) + .modifier(CustomDarkAppearance()) + .statusBar(hidden: true) + .onChange(of: sortingMode) { sortingMode in + dataStore.model.sort(by: sortingMode.predicate) } - ) - .alert(item: $dataStore.error, content: { error -> Alert in - error.makeAlert() - }) - .transition(.opacity) - .modifier(CustomDarkAppearance()) - .statusBar(hidden: true) - .onChange(of: sortingMode) { sortingMode in - dataStore.model.sort(by: sortingMode.predicate) - } - .onAppear { - if !dataStore.moviesAvailable { - DispatchQueue.main.asyncAfter(0.5) { - if !dataStore.moviesAvailable { - withAnimation { - loading = true + .onAppear { + if !dataStore.moviesAvailable { + DispatchQueue.main.asyncAfter(0.5) { + if !dataStore.moviesAvailable { + withAnimation { + loading = true + } } } } } - } - .onChange(of: dataStore.moviesAvailable, perform: { moviesAvailable in - withAnimation { - loading = !moviesAvailable - } - }) + .onChange(of: dataStore.moviesAvailable, perform: { moviesAvailable in + withAnimation { + loading = !moviesAvailable + } + }) } } diff --git a/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/RatingLogo.imageset/512x512.png b/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/RatingLogo.imageset/512x512.png deleted file mode 100644 index 715a0ba..0000000 Binary files a/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/RatingLogo.imageset/512x512.png and /dev/null differ diff --git a/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/TheatreLogo.imageset/512x512.png b/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/TheatreLogo.imageset/512x512.png new file mode 100644 index 0000000..28cc445 Binary files /dev/null and b/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/TheatreLogo.imageset/512x512.png differ diff --git a/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/RatingLogo.imageset/Contents.json b/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/TheatreLogo.imageset/Contents.json similarity index 100% rename from TheatricalMovieTrailers/Supporting Files/Assets.xcassets/RatingLogo.imageset/Contents.json rename to TheatricalMovieTrailers/Supporting Files/Assets.xcassets/TheatreLogo.imageset/Contents.json diff --git a/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/tmtGreen.colorset/Contents.json b/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/frontRowTrailersBackground.colorset/Contents.json similarity index 76% rename from TheatricalMovieTrailers/Supporting Files/Assets.xcassets/tmtGreen.colorset/Contents.json rename to TheatricalMovieTrailers/Supporting Files/Assets.xcassets/frontRowTrailersBackground.colorset/Contents.json index 581160b..784f603 100644 --- a/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/tmtGreen.colorset/Contents.json +++ b/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/frontRowTrailersBackground.colorset/Contents.json @@ -5,9 +5,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0.059", - "green" : "0.357", - "red" : "0.043" + "blue" : "0.000", + "green" : "0.000", + "red" : "0.000" } }, "idiom" : "universal" @@ -23,9 +23,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0.059", - "green" : "0.357", - "red" : "0.043" + "blue" : "0.000", + "green" : "0.000", + "red" : "0.000" } }, "idiom" : "universal" diff --git a/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/frontRowTrailersRed.colorset/Contents.json b/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/frontRowTrailersRed.colorset/Contents.json new file mode 100644 index 0000000..1d153c7 --- /dev/null +++ b/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/frontRowTrailersRed.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "4", + "green" : "11", + "red" : "194" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.016", + "green" : "0.043", + "red" : "0.761" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/moviePosterPlaceholder.imageset/moviePosterPlaceholder@2x.png b/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/moviePosterPlaceholder.imageset/moviePosterPlaceholder@2x.png index 98b0ae0..be43b21 100644 Binary files a/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/moviePosterPlaceholder.imageset/moviePosterPlaceholder@2x.png and b/TheatricalMovieTrailers/Supporting Files/Assets.xcassets/moviePosterPlaceholder.imageset/moviePosterPlaceholder@2x.png differ diff --git a/TheatricalMovieTrailers/Supporting Files/Base.lproj/LaunchScreen.storyboard b/TheatricalMovieTrailers/Supporting Files/Base.lproj/LaunchScreen.storyboard index 3f8c94c..66571ec 100644 --- a/TheatricalMovieTrailers/Supporting Files/Base.lproj/LaunchScreen.storyboard +++ b/TheatricalMovieTrailers/Supporting Files/Base.lproj/LaunchScreen.storyboard @@ -1,8 +1,10 @@ - + - + + + @@ -16,20 +18,18 @@ - - + + - + - - - - - - + + + + @@ -39,7 +39,10 @@ - + + + + diff --git a/TheatricalMovieTrailers/Views/CoverFlowListView.swift b/TheatricalMovieTrailers/Views/CoverFlowListView.swift index c44e6f2..7a9e024 100644 --- a/TheatricalMovieTrailers/Views/CoverFlowListView.swift +++ b/TheatricalMovieTrailers/Views/CoverFlowListView.swift @@ -16,9 +16,9 @@ struct CoverFlowListView: View { var body: some View { VStack { Spacer().frame(height: frame.size.height * 0.1) - HStack(alignment: .center, spacing: itemWidth(frame) * -0.25) { + HStack(alignment: .center, spacing: 0) { Spacer() - .frame(width: frame.size.width * 0.15, height: 100) + .frame(width: itemWidth(frame) * 0.5, height: 100) ForEach(model) { info in CoverFlowItemView(frame: frame, model: info, onSelected: { (isCentered: Bool) in onSelected(info, isCentered) @@ -28,15 +28,12 @@ struct CoverFlowListView: View { .frame(width: itemWidth(frame), height: frame.size.height * 0.8) .id(info.id) } - Spacer() - .frame(width: frame.size.width * 0.15, height: 100) } - .padding(.horizontal, frame.size.width * 0.25) } } private func itemWidth(_ geo: GeometryProxy) -> CGFloat { - return min(geo.size.width * 0.75, 450) + return min(geo.size.width * 0.5, 450) } private func isCenteredX(container frame: GeometryProxy, _ geo: GeometryProxy, allowance: CGFloat = 0.1) -> Bool { diff --git a/TheatricalMovieTrailers/Views/CoverFlowScrollView.swift b/TheatricalMovieTrailers/Views/CoverFlowScrollView.swift index fffcbe7..12a0ca3 100644 --- a/TheatricalMovieTrailers/Views/CoverFlowScrollView.swift +++ b/TheatricalMovieTrailers/Views/CoverFlowScrollView.swift @@ -12,11 +12,7 @@ import TelemetryClient struct CoverFlowScrollView: View { private var scrollAnchor: UnitPoint { get { - if #available(iOS 15, *) { - return UnitPoint(x: 1.5, y: 2.0) - } else { - return UnitPoint(x: 0.5, y: 1.0) - } + return UnitPoint(x: 0.5, y: 2.0) } } diff --git a/TheatricalMovieTrailers/Views/ExternalView.swift b/TheatricalMovieTrailers/Views/ExternalView.swift index 870a423..5755ce0 100644 --- a/TheatricalMovieTrailers/Views/ExternalView.swift +++ b/TheatricalMovieTrailers/Views/ExternalView.swift @@ -112,11 +112,11 @@ struct ExternalView: View { .transition(.opacity) } else { /// Logo moves around the screen - Image("RatingLogo") + Image("TheatreLogo") .resizable() .frame(width: geo.size.height / 3, height: geo.size.height / 3) .cornerRadius(geo.size.height / 20, antialiased: true) - .shadow(color: Color("TMTGreen"), radius: 20, x: 0, y: 0) + .shadow(color: Color("frontRowTrailersRed"), radius: 20, x: 0, y: 0) .onChange(of: fps.time) { _ in withAnimation { updateOffset(geo) diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/100.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/100.png new file mode 100644 index 0000000..fd8c317 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/100.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/1024.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 0000000..d6f766e Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/1024.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/114.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/114.png new file mode 100644 index 0000000..f67ffca Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/114.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/120-1.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/120-1.png new file mode 100644 index 0000000..393e742 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/120-1.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/120.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/120.png new file mode 100644 index 0000000..393e742 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/120.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/144.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/144.png new file mode 100644 index 0000000..3dd56dc Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/144.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/152.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/152.png new file mode 100644 index 0000000..221bae6 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/152.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/167.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/167.png new file mode 100644 index 0000000..b395489 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/167.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/180.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/180.png new file mode 100644 index 0000000..5b32834 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/180.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/20.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/20.png new file mode 100644 index 0000000..414b2b2 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/20.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/29-1.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/29-1.png new file mode 100644 index 0000000..5d8906b Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/29-1.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/29.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/29.png new file mode 100644 index 0000000..5d8906b Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/29.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/40-1.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/40-1.png new file mode 100644 index 0000000..f9fbbd7 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/40-1.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/40-2.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/40-2.png new file mode 100644 index 0000000..f9fbbd7 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/40-2.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/40.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/40.png new file mode 100644 index 0000000..f9fbbd7 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/40.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/50.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/50.png new file mode 100644 index 0000000..8f9382e Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/50.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/57.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/57.png new file mode 100644 index 0000000..e3055ea Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/57.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/58-1.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/58-1.png new file mode 100644 index 0000000..a5fa2d9 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/58-1.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/58.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/58.png new file mode 100644 index 0000000..a5fa2d9 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/58.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/60.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/60.png new file mode 100644 index 0000000..226f44f Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/60.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/72.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/72.png new file mode 100644 index 0000000..753af71 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/72.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/76.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/76.png new file mode 100644 index 0000000..8c0b565 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/76.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/80-1.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/80-1.png new file mode 100644 index 0000000..78b009c Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/80-1.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/80.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/80.png new file mode 100644 index 0000000..78b009c Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/80.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/87.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/87.png new file mode 100644 index 0000000..cd5ada8 Binary files /dev/null and b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/87.png differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Contents.json b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Contents.json index fe55f71..cc98510 100644 --- a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,102 +1,151 @@ { "images" : [ { + "filename" : "40.png", "idiom" : "iphone", "scale" : "2x", "size" : "20x20" }, { + "filename" : "60.png", "idiom" : "iphone", "scale" : "3x", "size" : "20x20" }, { - "filename" : "Icon-Small@2x-1.png", + "filename" : "29-1.png", + "idiom" : "iphone", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "58.png", "idiom" : "iphone", "scale" : "2x", "size" : "29x29" }, { - "filename" : "Icon-Small@3x.png", + "filename" : "87.png", "idiom" : "iphone", "scale" : "3x", "size" : "29x29" }, { - "filename" : "Icon-Small-40@2x-1.png", + "filename" : "80.png", "idiom" : "iphone", "scale" : "2x", "size" : "40x40" }, { - "filename" : "Icon-60@2x-1.png", + "filename" : "120.png", "idiom" : "iphone", "scale" : "3x", "size" : "40x40" }, { - "filename" : "Icon-60@2x.png", + "filename" : "57.png", + "idiom" : "iphone", + "scale" : "1x", + "size" : "57x57" + }, + { + "filename" : "114.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "57x57" + }, + { + "filename" : "120-1.png", "idiom" : "iphone", "scale" : "2x", "size" : "60x60" }, { - "filename" : "Icon-60@3x.png", + "filename" : "180.png", "idiom" : "iphone", "scale" : "3x", "size" : "60x60" }, { + "filename" : "20.png", "idiom" : "ipad", "scale" : "1x", "size" : "20x20" }, { + "filename" : "40-1.png", "idiom" : "ipad", "scale" : "2x", "size" : "20x20" }, { + "filename" : "29.png", "idiom" : "ipad", "scale" : "1x", "size" : "29x29" }, { - "filename" : "Icon-Small@2x.png", + "filename" : "58-1.png", "idiom" : "ipad", "scale" : "2x", "size" : "29x29" }, { + "filename" : "40-2.png", "idiom" : "ipad", "scale" : "1x", "size" : "40x40" }, { - "filename" : "Icon-Small-40@2x.png", + "filename" : "80-1.png", "idiom" : "ipad", "scale" : "2x", "size" : "40x40" }, { + "filename" : "50.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "50x50" + }, + { + "filename" : "100.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "50x50" + }, + { + "filename" : "72.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "72x72" + }, + { + "filename" : "144.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "72x72" + }, + { + "filename" : "76.png", "idiom" : "ipad", "scale" : "1x", "size" : "76x76" }, { - "filename" : "Icon-76@2x.png", + "filename" : "152.png", "idiom" : "ipad", "scale" : "2x", "size" : "76x76" }, { - "filename" : "Icon-83.5@2x.png", + "filename" : "167.png", "idiom" : "ipad", "scale" : "2x", "size" : "83.5x83.5" }, { - "filename" : "iTunesArtwork@2x.png", + "filename" : "1024.png", "idiom" : "ios-marketing", "scale" : "1x", "size" : "1024x1024" diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-60@2x-1.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-60@2x-1.png deleted file mode 100644 index f08c679..0000000 Binary files a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-60@2x-1.png and /dev/null differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png deleted file mode 100644 index f08c679..0000000 Binary files a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png and /dev/null differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png deleted file mode 100644 index 0a0077d..0000000 Binary files a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png and /dev/null differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png deleted file mode 100644 index a7edefa..0000000 Binary files a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png and /dev/null differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png deleted file mode 100644 index a6ea63d..0000000 Binary files a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png and /dev/null differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x-1.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x-1.png deleted file mode 100644 index 5ce3e1c..0000000 Binary files a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x-1.png and /dev/null differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png deleted file mode 100644 index 5ce3e1c..0000000 Binary files a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png and /dev/null differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png deleted file mode 100644 index 69536d3..0000000 Binary files a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png and /dev/null differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png deleted file mode 100644 index 69536d3..0000000 Binary files a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png and /dev/null differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png deleted file mode 100644 index 54d395c..0000000 Binary files a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png and /dev/null differ diff --git a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png b/TrailersWidget/Assets.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png deleted file mode 100644 index 8b90037..0000000 Binary files a/TrailersWidget/Assets.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png and /dev/null differ diff --git a/TrailersWidget/Assets.xcassets/moviePosterPlaceholder.imageset/moviePosterPlaceholder@2x.png b/TrailersWidget/Assets.xcassets/moviePosterPlaceholder.imageset/moviePosterPlaceholder@2x.png index 98b0ae0..be43b21 100644 Binary files a/TrailersWidget/Assets.xcassets/moviePosterPlaceholder.imageset/moviePosterPlaceholder@2x.png and b/TrailersWidget/Assets.xcassets/moviePosterPlaceholder.imageset/moviePosterPlaceholder@2x.png differ