Skip to content

Commit 587ec89

Browse files
committed
feat: New default Android, iOS and Mac Catalyst Uno Platform app icons
1 parent 0789a59 commit 587ec89

File tree

92 files changed

+263
-138
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+263
-138
lines changed

src/SolutionTemplate/UnoSolutionTemplate.net6/Mobile/Android/Assets/AboutAssets.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
To add cross-platform image assets for your Uno Platform app, use the Assets folder
2+
in the shared project instead. Assets in this folder are Android-only assets.
3+
14
Any raw assets you want to be deployed with your application can be placed in
25
this directory (and child directories) and given a Build Action of "AndroidAsset".
36

@@ -16,4 +19,4 @@ public class ReadAsset : Activity
1619

1720
Additionally, some Android functions will automatically load asset files:
1821

19-
Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
22+
Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");

src/SolutionTemplate/UnoSolutionTemplate.net6/Mobile/Android/Main.Android.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using System.Text;
5-
65
using Android.App;
76
using Android.Content;
87
using Android.OS;
@@ -16,6 +15,7 @@ namespace $ext_safeprojectname$.Droid
1615
{
1716
[global::Android.App.ApplicationAttribute(
1817
Label = "@string/ApplicationName",
18+
Icon = "@mipmap/icon",
1919
LargeHeap = true,
2020
HardwareAccelerated = true,
2121
Theme = "@style/AppTheme"

src/SolutionTemplate/UnoSolutionTemplate.net6/Mobile/Android/Resources/AboutResources.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
To add cross-platform image assets for your Uno Platform app, use the Assets folder
2+
in the shared project instead. Resources in this folder are Android-only.
3+
14
Images, layout descriptions, binary blobs and string dictionaries can be included
25
in your application as resource files. Various Android APIs are designed to
36
operate on the resource IDs instead of dealing with images, strings or binary blobs
@@ -41,4 +44,4 @@ public class R {
4144

4245
You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main
4346
to reference the layout/main.axml file, or R.strings.first_string to reference the first
44-
string in the dictionary file values/strings.xml.
47+
string in the dictionary file values/strings.xml.

src/SolutionTemplate/UnoSolutionTemplate.net6/Mobile/MacCatalyst/Media.xcassets/AppIcons.appiconset/Contents.json

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,99 +3,110 @@
33
{
44
"scale": "2x",
55
"size": "29x29",
6-
"idiom": "iphone"
6+
"idiom": "iphone",
7+
"filename": "Icon58.png"
78
},
89
{
910
"scale": "3x",
1011
"size": "29x29",
11-
"idiom": "iphone"
12+
"idiom": "iphone",
13+
"filename": "Icon87.png"
1214
},
1315
{
1416
"scale": "2x",
1517
"size": "40x40",
16-
"idiom": "iphone"
18+
"idiom": "iphone",
19+
"filename": "Icon80.png"
1720
},
1821
{
1922
"scale": "3x",
2023
"size": "60x60",
21-
"idiom": "iphone"
24+
"idiom": "iphone",
25+
"filename": "Icon180.png"
2226
},
2327
{
2428
"scale": "1x",
2529
"size": "20x20",
26-
"idiom": "ipad"
30+
"idiom": "ipad",
31+
"filename": "Icon20.png"
2732
},
2833
{
2934
"scale": "2x",
3035
"size": "20x20",
31-
"idiom": "ipad"
36+
"idiom": "ipad",
37+
"filename": "Icon40.png"
3238
},
3339
{
3440
"scale": "1x",
3541
"size": "29x29",
36-
"idiom": "ipad"
42+
"idiom": "ipad",
43+
"filename": "Icon29.png"
3744
},
3845
{
3946
"scale": "2x",
4047
"size": "29x29",
41-
"idiom": "ipad"
48+
"idiom": "ipad",
49+
"filename": "Icon58.png"
4250
},
4351
{
4452
"scale": "1x",
4553
"size": "40x40",
46-
"idiom": "ipad"
54+
"idiom": "ipad",
55+
"filename": "Icon40.png"
4756
},
4857
{
4958
"scale": "2x",
5059
"size": "40x40",
51-
"idiom": "ipad"
60+
"idiom": "ipad",
61+
"filename": "Icon80.png"
5262
},
5363
{
5464
"scale": "1x",
5565
"size": "76x76",
56-
"idiom": "ipad"
66+
"idiom": "ipad",
67+
"filename": "Icon76.png"
5768
},
5869
{
5970
"scale": "2x",
6071
"size": "20x20",
6172
"idiom": "iphone",
62-
"filename": "iPhone-20x20@2x.png"
73+
"filename": "Icon40.png"
6374
},
6475
{
6576
"scale": "3x",
6677
"size": "20x20",
6778
"idiom": "iphone",
68-
"filename": "iPhone-20x20@3x.png"
79+
"filename": "Icon60.png"
6980
},
7081
{
7182
"scale": "3x",
7283
"size": "40x40",
7384
"idiom": "iphone",
74-
"filename": "iPhone-40x40@3x.png"
85+
"filename": "Icon120.png"
7586
},
7687
{
7788
"scale": "2x",
7889
"size": "60x60",
7990
"idiom": "iphone",
80-
"filename": "iPhone-60x60@2x.png"
91+
"filename": "Icon120.png"
8192
},
8293
{
8394
"scale": "2x",
8495
"size": "76x76",
8596
"idiom": "ipad",
86-
"filename": "[email protected] squaretile-sdk-ipad.png"
97+
"filename": "Icon152.png"
8798
},
8899
{
89100
"scale": "2x",
90101
"size": "83.5x83.5",
91102
"idiom": "ipad",
92-
"filename": "iPad-84x84@2x.png"
103+
"filename": "Icon167.png"
93104
},
94105
{
95106
"scale": "1x",
96107
"size": "1024x1024",
97108
"idiom": "ios-marketing",
98-
"filename": "ios-marketing-1024x1024@1x.png"
109+
"filename": "Icon1024.png"
99110
}
100111
],
101112
"properties": {},

src/SolutionTemplate/UnoSolutionTemplate.net6/Mobile/Mobile.vstemplate

Lines changed: 51 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,22 @@
2424
<ProjectItem ReplaceParameters="true" TargetFileName="Main.iOS.cs">Main.iOS.cs</ProjectItem>
2525
<ProjectItem ReplaceParameters="true" TargetFileName="LaunchScreen.storyboard">LaunchScreen.storyboard</ProjectItem>
2626
<Folder Name="Media.xcassets" TargetFolderName="Media.xcassets">
27-
<Folder Name="AppIcons.appiconset" TargetFolderName="AppIcons.appiconset">
28-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Contents.json">Contents.json</ProjectItem>
29-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="[email protected]">[email protected]</ProjectItem>
30-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="[email protected]">[email protected]</ProjectItem>
31-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="[email protected]">[email protected]</ProjectItem>
32-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="[email protected]">[email protected]</ProjectItem>
33-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="[email protected]">[email protected]</ProjectItem>
34-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="[email protected]">[email protected]</ProjectItem>
35-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="[email protected]">[email protected]</ProjectItem>
36-
</Folder>
27+
<Folder Name="AppIcons.appiconset" TargetFolderName="AppIcons.appiconset">
28+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Contents.json">Contents.json</ProjectItem>
29+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon20.png">Icon20.png</ProjectItem>
30+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon29.png">Icon29.png</ProjectItem>
31+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon40.png">Icon40.png</ProjectItem>
32+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon58.png">Icon58.png</ProjectItem>
33+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon60.png">Icon60.png</ProjectItem>
34+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon76.png">Icon76.png</ProjectItem>
35+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon80.png">Icon80.png</ProjectItem>
36+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon87.png">Icon87.png</ProjectItem>
37+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon120.png">Icon120.png</ProjectItem>
38+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon152.png">Icon152.png</ProjectItem>
39+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon167.png">Icon167.png</ProjectItem>
40+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon180.png">Icon180.png</ProjectItem>
41+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon1024.png">Icon1024.png</ProjectItem>
42+
</Folder>
3743
<Folder Name="LaunchImages.launchimage" TargetFolderName="LaunchImages.launchimage">
3844
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Contents.json">Contents.json</ProjectItem>
3945
</Folder>
@@ -60,9 +66,27 @@
6066
<ProjectItem ReplaceParameters="true" TargetFileName="AndroidManifest.xml">AndroidManifest.xml</ProjectItem>
6167
<Folder Name="Resources" TargetFolderName="Resources">
6268
<ProjectItem ReplaceParameters="true" TargetFileName="AboutResources.txt">AboutResources.txt</ProjectItem>
63-
<Folder Name="drawable" TargetFolderName="drawable">
64-
<ProjectItem ReplaceParameters="false" TargetFileName="Icon.png">Icon.png</ProjectItem>
65-
</Folder>
69+
<Folder Name="mipmap-hdpi" TargetFolderName="mipmap-hdpi">
70+
<ProjectItem ReplaceParameters="false" TargetFileName="icon.png">icon.png</ProjectItem>
71+
</Folder>
72+
<Folder Name="mipmap-ldpi" TargetFolderName="mipmap-ldpi">
73+
<ProjectItem ReplaceParameters="false" TargetFileName="icon.png">icon.png</ProjectItem>
74+
</Folder>
75+
<Folder Name="mipmap-mdpi" TargetFolderName="mipmap-mdpi">
76+
<ProjectItem ReplaceParameters="false" TargetFileName="icon.png">icon.png</ProjectItem>
77+
</Folder>
78+
<Folder Name="mipmap-tvdpi" TargetFolderName="mipmap-tvdpi">
79+
<ProjectItem ReplaceParameters="false" TargetFileName="icon.png">icon.png</ProjectItem>
80+
</Folder>
81+
<Folder Name="mipmap-xhdpi" TargetFolderName="mipmap-xhdpi">
82+
<ProjectItem ReplaceParameters="false" TargetFileName="icon.png">icon.png</ProjectItem>
83+
</Folder>
84+
<Folder Name="mipmap-xxhdpi" TargetFolderName="mipmap-xxhdpi">
85+
<ProjectItem ReplaceParameters="false" TargetFileName="icon.png">icon.png</ProjectItem>
86+
</Folder>
87+
<Folder Name="mipmap-xxxhdpi" TargetFolderName="mipmap-xxxhdpi">
88+
<ProjectItem ReplaceParameters="false" TargetFileName="icon.png">icon.png</ProjectItem>
89+
</Folder>
6690
<Folder Name="values" TargetFolderName="values">
6791
<ProjectItem ReplaceParameters="true" TargetFileName="Strings.xml">Strings.xml</ProjectItem>
6892
<ProjectItem ReplaceParameters="true" TargetFileName="Styles.xml">Styles.xml</ProjectItem>
@@ -77,14 +101,20 @@
77101
<ProjectItem ReplaceParameters="true" TargetFileName="LaunchScreen.storyboard">LaunchScreen.storyboard</ProjectItem>
78102
<Folder Name="Media.xcassets" TargetFolderName="Media.xcassets">
79103
<Folder Name="AppIcons.appiconset" TargetFolderName="AppIcons.appiconset">
80-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Contents.json">Contents.json</ProjectItem>
81-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="[email protected]">[email protected]</ProjectItem>
82-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="[email protected]">[email protected]</ProjectItem>
83-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="[email protected]">[email protected]</ProjectItem>
84-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="[email protected]">[email protected]</ProjectItem>
85-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="[email protected]">[email protected]</ProjectItem>
86-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="[email protected]">[email protected]</ProjectItem>
87-
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="[email protected]">[email protected]</ProjectItem>
104+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Contents.json">Contents.json</ProjectItem>
105+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon20.png">Icon20.png</ProjectItem>
106+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon29.png">Icon29.png</ProjectItem>
107+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon40.png">Icon40.png</ProjectItem>
108+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon58.png">Icon58.png</ProjectItem>
109+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon60.png">Icon60.png</ProjectItem>
110+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon76.png">Icon76.png</ProjectItem>
111+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon80.png">Icon80.png</ProjectItem>
112+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon87.png">Icon87.png</ProjectItem>
113+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon120.png">Icon120.png</ProjectItem>
114+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon152.png">Icon152.png</ProjectItem>
115+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon167.png">Icon167.png</ProjectItem>
116+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon180.png">Icon180.png</ProjectItem>
117+
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Icon1024.png">Icon1024.png</ProjectItem>
88118
</Folder>
89119
<Folder Name="LaunchImages.launchimage" TargetFolderName="LaunchImages.launchimage">
90120
<ProjectItem ReplaceParameters="false" ItemType="ImageAsset" TargetFileName="Contents.json">Contents.json</ProjectItem>

src/SolutionTemplate/UnoSolutionTemplate.net6/Mobile/iOS/Media.xcassets/AppIcons.appiconset/Contents.json

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,99 +3,110 @@
33
{
44
"scale": "2x",
55
"size": "29x29",
6-
"idiom": "iphone"
6+
"idiom": "iphone",
7+
"filename": "Icon58.png"
78
},
89
{
910
"scale": "3x",
1011
"size": "29x29",
11-
"idiom": "iphone"
12+
"idiom": "iphone",
13+
"filename": "Icon87.png"
1214
},
1315
{
1416
"scale": "2x",
1517
"size": "40x40",
16-
"idiom": "iphone"
18+
"idiom": "iphone",
19+
"filename": "Icon80.png"
1720
},
1821
{
1922
"scale": "3x",
2023
"size": "60x60",
21-
"idiom": "iphone"
24+
"idiom": "iphone",
25+
"filename": "Icon180.png"
2226
},
2327
{
2428
"scale": "1x",
2529
"size": "20x20",
26-
"idiom": "ipad"
30+
"idiom": "ipad",
31+
"filename": "Icon20.png"
2732
},
2833
{
2934
"scale": "2x",
3035
"size": "20x20",
31-
"idiom": "ipad"
36+
"idiom": "ipad",
37+
"filename": "Icon40.png"
3238
},
3339
{
3440
"scale": "1x",
3541
"size": "29x29",
36-
"idiom": "ipad"
42+
"idiom": "ipad",
43+
"filename": "Icon29.png"
3744
},
3845
{
3946
"scale": "2x",
4047
"size": "29x29",
41-
"idiom": "ipad"
48+
"idiom": "ipad",
49+
"filename": "Icon58.png"
4250
},
4351
{
4452
"scale": "1x",
4553
"size": "40x40",
46-
"idiom": "ipad"
54+
"idiom": "ipad",
55+
"filename": "Icon40.png"
4756
},
4857
{
4958
"scale": "2x",
5059
"size": "40x40",
51-
"idiom": "ipad"
60+
"idiom": "ipad",
61+
"filename": "Icon80.png"
5262
},
5363
{
5464
"scale": "1x",
5565
"size": "76x76",
56-
"idiom": "ipad"
66+
"idiom": "ipad",
67+
"filename": "Icon76.png"
5768
},
5869
{
5970
"scale": "2x",
6071
"size": "20x20",
6172
"idiom": "iphone",
62-
"filename": "iPhone-20x20@2x.png"
73+
"filename": "Icon40.png"
6374
},
6475
{
6576
"scale": "3x",
6677
"size": "20x20",
6778
"idiom": "iphone",
68-
"filename": "iPhone-20x20@3x.png"
79+
"filename": "Icon60.png"
6980
},
7081
{
7182
"scale": "3x",
7283
"size": "40x40",
7384
"idiom": "iphone",
74-
"filename": "iPhone-40x40@3x.png"
85+
"filename": "Icon120.png"
7586
},
7687
{
7788
"scale": "2x",
7889
"size": "60x60",
7990
"idiom": "iphone",
80-
"filename": "iPhone-60x60@2x.png"
91+
"filename": "Icon120.png"
8192
},
8293
{
8394
"scale": "2x",
8495
"size": "76x76",
8596
"idiom": "ipad",
86-
"filename": "[email protected] squaretile-sdk-ipad.png"
97+
"filename": "Icon152.png"
8798
},
8899
{
89100
"scale": "2x",
90101
"size": "83.5x83.5",
91102
"idiom": "ipad",
92-
"filename": "iPad-84x84@2x.png"
103+
"filename": "Icon167.png"
93104
},
94105
{
95106
"scale": "1x",
96107
"size": "1024x1024",
97108
"idiom": "ios-marketing",
98-
"filename": "ios-marketing-1024x1024@1x.png"
109+
"filename": "Icon1024.png"
99110
}
100111
],
101112
"properties": {},

0 commit comments

Comments
 (0)