3
3
using System . IO ;
4
4
using System . Diagnostics ;
5
5
using System . Runtime . CompilerServices ;
6
+ using System . Linq ;
6
7
7
8
namespace Xamarin . ProjectTools
8
9
{
10
+ /// <summary>
11
+ /// Migrated from Android.Support to AndroidX
12
+ /// see: https://android-developers.googleblog.com/2016/04/build-beautifully-for-android-wear.html
13
+ /// </summary>
9
14
public class XamarinAndroidWearApplicationProject : XamarinAndroidApplicationProject
10
15
{
11
16
static readonly string default_strings_xml , default_main_activity ;
12
- static readonly string default_layout_main , default_layout_rect_main , default_layout_round_main ;
17
+ static readonly string default_layout_rect_main , default_layout_round_main ;
13
18
14
19
static XamarinAndroidWearApplicationProject ( )
15
20
{
16
21
using ( var sr = new StreamReader ( typeof ( XamarinAndroidApplicationProject ) . Assembly . GetManifestResourceStream ( "Xamarin.ProjectTools.Resources.Wear.MainActivity.cs" ) ) )
17
22
default_main_activity = sr . ReadToEnd ( ) ;
18
23
using ( var sr = new StreamReader ( typeof ( XamarinAndroidApplicationProject ) . Assembly . GetManifestResourceStream ( "Xamarin.ProjectTools.Resources.Wear.Strings.xml" ) ) )
19
24
default_strings_xml = sr . ReadToEnd ( ) ;
20
- using ( var sr = new StreamReader ( typeof ( XamarinAndroidApplicationProject ) . Assembly . GetManifestResourceStream ( "Xamarin.ProjectTools.Resources.Wear.LayoutMain.axml" ) ) )
21
- default_layout_main = sr . ReadToEnd ( ) ;
22
25
using ( var sr = new StreamReader ( typeof ( XamarinAndroidApplicationProject ) . Assembly . GetManifestResourceStream ( "Xamarin.ProjectTools.Resources.Wear.LayoutRectMain.axml" ) ) )
23
26
default_layout_rect_main = sr . ReadToEnd ( ) ;
24
27
using ( var sr = new StreamReader ( typeof ( XamarinAndroidApplicationProject ) . Assembly . GetManifestResourceStream ( "Xamarin.ProjectTools.Resources.Wear.LayoutRoundMain.axml" ) ) )
@@ -30,14 +33,21 @@ public XamarinAndroidWearApplicationProject (string debugConfigurationName = "De
30
33
{
31
34
PackageReferences . Add ( KnownPackages . XamarinAndroidXWear ) ;
32
35
36
+ // uses-sdk:minSdkVersion 21 cannot be smaller than version 23 declared in library androidx.wear.wear.aar as the library might be using APIs not available in 21
37
+ SupportedOSPlatformVersion = "23" ;
38
+
33
39
MainActivity = default_main_activity ;
34
40
StringsXml = default_strings_xml ;
35
- LayoutMain = default_layout_main ;
36
41
LayoutRectMain = default_layout_rect_main ;
37
42
LayoutRoundMain = default_layout_round_main ;
38
43
39
- AndroidResources . Add ( new AndroidItem . AndroidResource ( "Resources\\ layout\\ RectangleMain.axml" ) { TextContent = ( ) => LayoutRectMain } ) ;
40
- AndroidResources . Add ( new AndroidItem . AndroidResource ( "Resources\\ layout\\ RoundMain.axml" ) { TextContent = ( ) => LayoutRoundMain } ) ;
44
+ // Remove Resources\layout\Main.axml
45
+ var main = AndroidResources . FirstOrDefault ( a => a . Include ( ) == "Resources\\ layout\\ Main.axml" ) ;
46
+ if ( main != null )
47
+ AndroidResources . Remove ( main ) ;
48
+
49
+ AndroidResources . Add ( new AndroidItem . AndroidResource ( "Resources\\ layout-notround\\ activity_main.axml" ) { TextContent = ( ) => LayoutRectMain } ) ;
50
+ AndroidResources . Add ( new AndroidItem . AndroidResource ( "Resources\\ layout-round\\ activity_main.axml" ) { TextContent = ( ) => LayoutRoundMain } ) ;
41
51
}
42
52
43
53
public string LayoutRectMain { get ; set ; }
0 commit comments