diff --git a/src/Demo/Demo.Droid/Demo.Droid.csproj b/src/Demo/Demo.Droid/Demo.Droid.csproj
index dee7fd8..921b63f 100644
--- a/src/Demo/Demo.Droid/Demo.Droid.csproj
+++ b/src/Demo/Demo.Droid/Demo.Droid.csproj
@@ -14,9 +14,9 @@
Resources\Resource.Designer.cs
Off
True
- v5.0
+ v5.1
Properties\AndroidManifest.xml
- e08ce7ee
+ 7efdbe4c
true
@@ -50,7 +50,7 @@
- ..\..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\FormsViewGroup.dll
+ ..\..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\FormsViewGroup.dll
@@ -58,33 +58,29 @@
-
- ..\..\packages\Xamarin.Android.Support.Design.22.2.0.0\lib\MonoAndroid403\Xamarin.Android.Support.Design.dll
- True
+
+ ..\..\packages\Xamarin.Android.Support.Design.22.2.1.0\lib\MonoAndroid403\Xamarin.Android.Support.Design.dll
-
- ..\..\packages\Xamarin.Android.Support.v4.22.2.0.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll
- True
+
+ ..\..\packages\Xamarin.Android.Support.v4.22.2.1.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll
-
- ..\..\packages\Xamarin.Android.Support.v7.AppCompat.22.2.0.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll
- True
+
+ ..\..\packages\Xamarin.Android.Support.v7.AppCompat.22.2.1.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll
-
- ..\..\packages\Xamarin.Android.Support.v7.CardView.22.2.0.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.CardView.dll
- True
+
+ ..\..\packages\Xamarin.Android.Support.v7.CardView.22.2.1.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.CardView.dll
- ..\..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\Xamarin.Forms.Core.dll
+ ..\..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\Xamarin.Forms.Core.dll
- ..\..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\Xamarin.Forms.Platform.dll
+ ..\..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\Xamarin.Forms.Platform.dll
- ..\..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll
+ ..\..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll
- ..\..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll
+ ..\..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll
@@ -131,11 +127,11 @@
-
+
This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
+
\ No newline at end of file
diff --git a/src/Demo/Demo.Droid/MainActivity.cs b/src/Demo/Demo.Droid/MainActivity.cs
index 62a91b5..aeb7fab 100644
--- a/src/Demo/Demo.Droid/MainActivity.cs
+++ b/src/Demo/Demo.Droid/MainActivity.cs
@@ -9,7 +9,7 @@
using Xamarin.Forms;
- [Activity(ConfigurationChanges = AppConfig, MainLauncher = true, Theme = CompatThemeLightDarkActionBar)]
+ [Activity(ConfigurationChanges = AppConfig, MainLauncher = true, Theme = "@style/Theme.AppCompat.NoActionBar")]
public class MainActivity : AppCompatFormsApplicationActivity
{
private const ConfigChanges AppConfig = ConfigChanges.Orientation | ConfigChanges.ScreenSize;
@@ -21,7 +21,7 @@ protected override void OnCreate(Bundle savedInstanceState)
base.OnCreate(savedInstanceState);
Forms.Init(this, savedInstanceState);
- FormsAppCompat.EnableAll();
+ FormsAppCompat.Init();
this.LoadApplication(new App());
}
diff --git a/src/Demo/Demo.Droid/Properties/AndroidManifest.xml b/src/Demo/Demo.Droid/Properties/AndroidManifest.xml
index e3a4a60..89f23d4 100644
--- a/src/Demo/Demo.Droid/Properties/AndroidManifest.xml
+++ b/src/Demo/Demo.Droid/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/src/Demo/Demo.Droid/Resources/Resource.Designer.cs b/src/Demo/Demo.Droid/Resources/Resource.Designer.cs
index f5217a6..39a4d9b 100644
--- a/src/Demo/Demo.Droid/Resources/Resource.Designer.cs
+++ b/src/Demo/Demo.Droid/Resources/Resource.Designer.cs
@@ -692,6 +692,8 @@ public static void UpdateIdValues()
global::NativeCode.Mobile.AppCompat.Resource.Layout.design_navigation_menu = global::Demo.Droid.Resource.Layout.design_navigation_menu;
global::NativeCode.Mobile.AppCompat.Resource.Layout.layout_snackbar = global::Demo.Droid.Resource.Layout.layout_snackbar;
global::NativeCode.Mobile.AppCompat.Resource.Layout.layout_snackbar_include = global::Demo.Droid.Resource.Layout.layout_snackbar_include;
+ global::NativeCode.Mobile.AppCompat.Resource.Layout.layout_tab_icon = global::Demo.Droid.Resource.Layout.layout_tab_icon;
+ global::NativeCode.Mobile.AppCompat.Resource.Layout.layout_tab_text = global::Demo.Droid.Resource.Layout.layout_tab_text;
global::NativeCode.Mobile.AppCompat.Resource.Layout.notification_media_action = global::Demo.Droid.Resource.Layout.notification_media_action;
global::NativeCode.Mobile.AppCompat.Resource.Layout.notification_media_cancel_action = global::Demo.Droid.Resource.Layout.notification_media_cancel_action;
global::NativeCode.Mobile.AppCompat.Resource.Layout.notification_template_big_media = global::Demo.Droid.Resource.Layout.notification_template_big_media;
@@ -935,6 +937,7 @@ public static void UpdateIdValues()
global::NativeCode.Mobile.AppCompat.Resource.Style.TextAppearance_AppCompat_Widget_PopupMenu_Small = global::Demo.Droid.Resource.Style.TextAppearance_AppCompat_Widget_PopupMenu_Small;
global::NativeCode.Mobile.AppCompat.Resource.Style.TextAppearance_AppCompat_Widget_Switch = global::Demo.Droid.Resource.Style.TextAppearance_AppCompat_Widget_Switch;
global::NativeCode.Mobile.AppCompat.Resource.Style.TextAppearance_AppCompat_Widget_TextView_SpinnerItem = global::Demo.Droid.Resource.Style.TextAppearance_AppCompat_Widget_TextView_SpinnerItem;
+ global::NativeCode.Mobile.AppCompat.Resource.Style.TextAppearance_Design_CollapsingToolbar_Expanded = global::Demo.Droid.Resource.Style.TextAppearance_Design_CollapsingToolbar_Expanded;
global::NativeCode.Mobile.AppCompat.Resource.Style.TextAppearance_Design_Error = global::Demo.Droid.Resource.Style.TextAppearance_Design_Error;
global::NativeCode.Mobile.AppCompat.Resource.Style.TextAppearance_Design_Hint = global::Demo.Droid.Resource.Style.TextAppearance_Design_Hint;
global::NativeCode.Mobile.AppCompat.Resource.Style.TextAppearance_Design_Snackbar_Action = global::Demo.Droid.Resource.Style.TextAppearance_Design_Snackbar_Action;
@@ -2118,6 +2121,8 @@ public static void UpdateIdValues()
global::NativeCode.Mobile.AppCompat.Renderers.Resource.Layout.fab_normal = global::Demo.Droid.Resource.Layout.fab_normal;
global::NativeCode.Mobile.AppCompat.Renderers.Resource.Layout.layout_snackbar = global::Demo.Droid.Resource.Layout.layout_snackbar;
global::NativeCode.Mobile.AppCompat.Renderers.Resource.Layout.layout_snackbar_include = global::Demo.Droid.Resource.Layout.layout_snackbar_include;
+ global::NativeCode.Mobile.AppCompat.Renderers.Resource.Layout.layout_tab_icon = global::Demo.Droid.Resource.Layout.layout_tab_icon;
+ global::NativeCode.Mobile.AppCompat.Renderers.Resource.Layout.layout_tab_text = global::Demo.Droid.Resource.Layout.layout_tab_text;
global::NativeCode.Mobile.AppCompat.Renderers.Resource.Layout.notification_media_action = global::Demo.Droid.Resource.Layout.notification_media_action;
global::NativeCode.Mobile.AppCompat.Renderers.Resource.Layout.notification_media_cancel_action = global::Demo.Droid.Resource.Layout.notification_media_cancel_action;
global::NativeCode.Mobile.AppCompat.Renderers.Resource.Layout.notification_template_big_media = global::Demo.Droid.Resource.Layout.notification_template_big_media;
@@ -2367,6 +2372,7 @@ public static void UpdateIdValues()
global::NativeCode.Mobile.AppCompat.Renderers.Resource.Style.TextAppearance_AppCompat_Widget_PopupMenu_Small = global::Demo.Droid.Resource.Style.TextAppearance_AppCompat_Widget_PopupMenu_Small;
global::NativeCode.Mobile.AppCompat.Renderers.Resource.Style.TextAppearance_AppCompat_Widget_Switch = global::Demo.Droid.Resource.Style.TextAppearance_AppCompat_Widget_Switch;
global::NativeCode.Mobile.AppCompat.Renderers.Resource.Style.TextAppearance_AppCompat_Widget_TextView_SpinnerItem = global::Demo.Droid.Resource.Style.TextAppearance_AppCompat_Widget_TextView_SpinnerItem;
+ global::NativeCode.Mobile.AppCompat.Renderers.Resource.Style.TextAppearance_Design_CollapsingToolbar_Expanded = global::Demo.Droid.Resource.Style.TextAppearance_Design_CollapsingToolbar_Expanded;
global::NativeCode.Mobile.AppCompat.Renderers.Resource.Style.TextAppearance_Design_Error = global::Demo.Droid.Resource.Style.TextAppearance_Design_Error;
global::NativeCode.Mobile.AppCompat.Renderers.Resource.Style.TextAppearance_Design_Hint = global::Demo.Droid.Resource.Style.TextAppearance_Design_Hint;
global::NativeCode.Mobile.AppCompat.Renderers.Resource.Style.TextAppearance_Design_Snackbar_Action = global::Demo.Droid.Resource.Style.TextAppearance_Design_Snackbar_Action;
@@ -5065,43 +5071,49 @@ public partial class Layout
public const int layout_snackbar_include = 2130903074;
// aapt resource value: 0x7f030023
- public const int notification_media_action = 2130903075;
+ public const int layout_tab_icon = 2130903075;
// aapt resource value: 0x7f030024
- public const int notification_media_cancel_action = 2130903076;
+ public const int layout_tab_text = 2130903076;
// aapt resource value: 0x7f030025
- public const int notification_template_big_media = 2130903077;
+ public const int notification_media_action = 2130903077;
// aapt resource value: 0x7f030026
- public const int notification_template_big_media_narrow = 2130903078;
+ public const int notification_media_cancel_action = 2130903078;
// aapt resource value: 0x7f030027
- public const int notification_template_lines = 2130903079;
+ public const int notification_template_big_media = 2130903079;
// aapt resource value: 0x7f030028
- public const int notification_template_media = 2130903080;
+ public const int notification_template_big_media_narrow = 2130903080;
// aapt resource value: 0x7f030029
- public const int notification_template_part_chronometer = 2130903081;
+ public const int notification_template_lines = 2130903081;
// aapt resource value: 0x7f03002a
- public const int notification_template_part_time = 2130903082;
+ public const int notification_template_media = 2130903082;
// aapt resource value: 0x7f03002b
- public const int select_dialog_item_material = 2130903083;
+ public const int notification_template_part_chronometer = 2130903083;
// aapt resource value: 0x7f03002c
- public const int select_dialog_multichoice_material = 2130903084;
+ public const int notification_template_part_time = 2130903084;
// aapt resource value: 0x7f03002d
- public const int select_dialog_singlechoice_material = 2130903085;
+ public const int select_dialog_item_material = 2130903085;
// aapt resource value: 0x7f03002e
- public const int spinner = 2130903086;
+ public const int select_dialog_multichoice_material = 2130903086;
// aapt resource value: 0x7f03002f
- public const int support_simple_spinner_dropdown_item = 2130903087;
+ public const int select_dialog_singlechoice_material = 2130903087;
+
+ // aapt resource value: 0x7f030030
+ public const int spinner = 2130903088;
+
+ // aapt resource value: 0x7f030031
+ public const int support_simple_spinner_dropdown_item = 2130903089;
static Layout()
{
@@ -5210,14 +5222,14 @@ public partial class Style
// aapt resource value: 0x7f070079
public const int Animation_AppCompat_DropDownUp = 2131165305;
- // aapt resource value: 0x7f070139
- public const int AppTheme = 2131165497;
-
// aapt resource value: 0x7f07013a
- public const int AppTheme_Light = 2131165498;
+ public const int AppTheme = 2131165498;
// aapt resource value: 0x7f07013b
- public const int AppTheme_Light_DarkActionBar = 2131165499;
+ public const int AppTheme_Light = 2131165499;
+
+ // aapt resource value: 0x7f07013c
+ public const int AppTheme_Light_DarkActionBar = 2131165500;
// aapt resource value: 0x7f07007a
public const int Base_AlertDialog_AppCompat = 2131165306;
@@ -5231,20 +5243,20 @@ public partial class Style
// aapt resource value: 0x7f07007d
public const int Base_Animation_AppCompat_DropDownUp = 2131165309;
- // aapt resource value: 0x7f070136
- public const int Base_AppTheme = 2131165494;
-
- // aapt resource value: 0x7f07013d
- public const int Base_AppTheme_EditTextStyle = 2131165501;
+ // aapt resource value: 0x7f070137
+ public const int Base_AppTheme = 2131165495;
// aapt resource value: 0x7f07013e
- public const int Base_AppTheme_EditTextStyle_Light = 2131165502;
+ public const int Base_AppTheme_EditTextStyle = 2131165502;
- // aapt resource value: 0x7f070137
- public const int Base_AppTheme_Light = 2131165495;
+ // aapt resource value: 0x7f07013f
+ public const int Base_AppTheme_EditTextStyle_Light = 2131165503;
// aapt resource value: 0x7f070138
- public const int Base_AppTheme_Light_DarkActionBar = 2131165496;
+ public const int Base_AppTheme_Light = 2131165496;
+
+ // aapt resource value: 0x7f070139
+ public const int Base_AppTheme_Light_DarkActionBar = 2131165497;
// aapt resource value: 0x7f07007e
public const int Base_DialogWindowTitle_AppCompat = 2131165310;
@@ -5642,8 +5654,8 @@ public partial class Style
// aapt resource value: 0x7f070002
public const int CardView_Light = 2131165186;
- // aapt resource value: 0x7f07013c
- public const int DrawerArrowStyle = 2131165500;
+ // aapt resource value: 0x7f07013d
+ public const int DrawerArrowStyle = 2131165501;
// aapt resource value: 0x7f070013
public const int Platform_AppCompat = 2131165203;
@@ -5838,19 +5850,22 @@ public partial class Style
public const int TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131165391;
// aapt resource value: 0x7f070129
- public const int TextAppearance_Design_Error = 2131165481;
+ public const int TextAppearance_Design_CollapsingToolbar_Expanded = 2131165481;
// aapt resource value: 0x7f07012a
- public const int TextAppearance_Design_Hint = 2131165482;
+ public const int TextAppearance_Design_Error = 2131165482;
// aapt resource value: 0x7f07012b
- public const int TextAppearance_Design_Snackbar_Action = 2131165483;
+ public const int TextAppearance_Design_Hint = 2131165483;
// aapt resource value: 0x7f07012c
- public const int TextAppearance_Design_Snackbar_Message = 2131165484;
+ public const int TextAppearance_Design_Snackbar_Action = 2131165484;
// aapt resource value: 0x7f07012d
- public const int TextAppearance_Design_Tab = 2131165485;
+ public const int TextAppearance_Design_Snackbar_Message = 2131165485;
+
+ // aapt resource value: 0x7f07012e
+ public const int TextAppearance_Design_Tab = 2131165486;
// aapt resource value: 0x7f07001e
public const int TextAppearance_StatusBar_EventContent = 2131165214;
@@ -6128,32 +6143,32 @@ public partial class Style
// aapt resource value: 0x7f070126
public const int Widget_AppCompat_Toolbar_Button_Navigation = 2131165478;
- // aapt resource value: 0x7f07012e
- public const int Widget_Design_AppBarLayout = 2131165486;
-
// aapt resource value: 0x7f07012f
- public const int Widget_Design_CollapsingToolbar = 2131165487;
+ public const int Widget_Design_AppBarLayout = 2131165487;
// aapt resource value: 0x7f070130
- public const int Widget_Design_CoordinatorLayout = 2131165488;
+ public const int Widget_Design_CollapsingToolbar = 2131165488;
// aapt resource value: 0x7f070131
- public const int Widget_Design_FloatingActionButton = 2131165489;
+ public const int Widget_Design_CoordinatorLayout = 2131165489;
// aapt resource value: 0x7f070132
- public const int Widget_Design_NavigationView = 2131165490;
+ public const int Widget_Design_FloatingActionButton = 2131165490;
// aapt resource value: 0x7f070133
- public const int Widget_Design_ScrimInsetsFrameLayout = 2131165491;
+ public const int Widget_Design_NavigationView = 2131165491;
// aapt resource value: 0x7f070134
- public const int Widget_Design_Snackbar = 2131165492;
+ public const int Widget_Design_ScrimInsetsFrameLayout = 2131165492;
+
+ // aapt resource value: 0x7f070135
+ public const int Widget_Design_Snackbar = 2131165493;
// aapt resource value: 0x7f070127
public const int Widget_Design_TabLayout = 2131165479;
- // aapt resource value: 0x7f070135
- public const int Widget_Design_TextInputLayout = 2131165493;
+ // aapt resource value: 0x7f070136
+ public const int Widget_Design_TextInputLayout = 2131165494;
static Style()
{
diff --git a/src/Demo/Demo.Droid/packages.config b/src/Demo/Demo.Droid/packages.config
index 2332755..ba7de1c 100644
--- a/src/Demo/Demo.Droid/packages.config
+++ b/src/Demo/Demo.Droid/packages.config
@@ -1,9 +1,9 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/Demo/Demo/Demo.csproj b/src/Demo/Demo/Demo.csproj
index d4e1584..eaf67de 100644
--- a/src/Demo/Demo/Demo.csproj
+++ b/src/Demo/Demo/Demo.csproj
@@ -15,7 +15,7 @@
{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
Profile78
v4.5
- bf239a56
+ f9abc86c
true
@@ -72,18 +72,17 @@
-
- ..\..\packages\PropertyChanged.Fody.1.50.1\Lib\portable-net4+sl4+wp8+win8+wpa81+MonoAndroid16+MonoTouch40\PropertyChanged.dll
- False
+
+ ..\..\packages\PropertyChanged.Fody.1.50.3\Lib\portable-net4+sl4+wp8+win8+wpa81+MonoAndroid16+MonoTouch40\PropertyChanged.dll
- ..\..\packages\Xamarin.Forms.1.4.3.6376\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Core.dll
+ ..\..\packages\Xamarin.Forms.1.5.0.6446\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Core.dll
- ..\..\packages\Xamarin.Forms.1.4.3.6376\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Platform.dll
+ ..\..\packages\Xamarin.Forms.1.5.0.6446\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Platform.dll
- ..\..\packages\Xamarin.Forms.1.4.3.6376\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Xaml.dll
+ ..\..\packages\Xamarin.Forms.1.5.0.6446\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Xaml.dll
@@ -142,16 +141,9 @@
This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
+
+
-
-
-
-
\ No newline at end of file
+
+
+
diff --git a/src/Demo/Demo/Views/MainView.xaml b/src/Demo/Demo/Views/MainView.xaml
index 2d85fb9..5a86373 100644
--- a/src/Demo/Demo/Views/MainView.xaml
+++ b/src/Demo/Demo/Views/MainView.xaml
@@ -19,13 +19,17 @@
Item 9
+
+
+
-
+
+
@@ -34,20 +38,23 @@
-
+
-
+
+
-
+
+
-
+
+
diff --git a/src/Demo/Demo/Views/Shared/MenuHeaderView.xaml b/src/Demo/Demo/Views/Shared/MenuHeaderView.xaml
index e7a2ce1..628bc84 100644
--- a/src/Demo/Demo/Views/Shared/MenuHeaderView.xaml
+++ b/src/Demo/Demo/Views/Shared/MenuHeaderView.xaml
@@ -1,7 +1,6 @@
-
+
-
+
diff --git a/src/Demo/Demo/Views/Shared/MenuHeaderView.xaml.cs b/src/Demo/Demo/Views/Shared/MenuHeaderView.xaml.cs
index 862cacf..5c87aa4 100644
--- a/src/Demo/Demo/Views/Shared/MenuHeaderView.xaml.cs
+++ b/src/Demo/Demo/Views/Shared/MenuHeaderView.xaml.cs
@@ -1,8 +1,8 @@
namespace Demo.Views.Shared
{
- using NativeCode.Mobile.AppCompat.Controls;
+ using Xamarin.Forms;
- public partial class MenuHeaderView : NavigationLayoutHeader
+ public partial class MenuHeaderView : ContentView
{
public MenuHeaderView()
{
diff --git a/src/Demo/Demo/packages.config b/src/Demo/Demo/packages.config
index 4390ca3..90469e4 100644
--- a/src/Demo/Demo/packages.config
+++ b/src/Demo/Demo/packages.config
@@ -1,7 +1,7 @@
-
-
-
+
+
+
diff --git a/src/NativeCode.Mobile.AppCompat.Controls/NativeCode.Mobile.AppCompat.Controls.csproj b/src/NativeCode.Mobile.AppCompat.Controls/NativeCode.Mobile.AppCompat.Controls.csproj
index 31dc4fa..9b1271d 100644
--- a/src/NativeCode.Mobile.AppCompat.Controls/NativeCode.Mobile.AppCompat.Controls.csproj
+++ b/src/NativeCode.Mobile.AppCompat.Controls/NativeCode.Mobile.AppCompat.Controls.csproj
@@ -15,7 +15,7 @@
{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
Profile78
v4.5
- 6a5a2cac
+ 6d9b02e8
true
@@ -43,7 +43,6 @@
-
@@ -52,28 +51,21 @@
- ..\packages\Xamarin.Forms.1.4.3.6376\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Core.dll
+ ..\packages\Xamarin.Forms.1.5.0.6446\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Core.dll
- ..\packages\Xamarin.Forms.1.4.3.6376\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Platform.dll
+ ..\packages\Xamarin.Forms.1.5.0.6446\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Platform.dll
- ..\packages\Xamarin.Forms.1.4.3.6376\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Xaml.dll
+ ..\packages\Xamarin.Forms.1.5.0.6446\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Xaml.dll
-
+
This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
+
-
-
\ No newline at end of file
+
diff --git a/src/NativeCode.Mobile.AppCompat.Controls/NavigationLayout.cs b/src/NativeCode.Mobile.AppCompat.Controls/NavigationLayout.cs
index 428fa6c..57fcf7b 100644
--- a/src/NativeCode.Mobile.AppCompat.Controls/NavigationLayout.cs
+++ b/src/NativeCode.Mobile.AppCompat.Controls/NavigationLayout.cs
@@ -1,18 +1,16 @@
namespace NativeCode.Mobile.AppCompat.Controls
{
- using NativeCode.Mobile.AppCompat.Controls.Platforms;
-
using Xamarin.Forms;
public class NavigationLayout : Layout
{
- public static readonly BindableProperty HeaderViewProperty = BindableProperty.Create(
+ public static readonly BindableProperty HeaderViewProperty = BindableProperty.Create(
x => x.HeaderView,
- default(NavigationLayoutHeader));
+ default(ContentView));
- public NavigationLayoutHeader HeaderView
+ public ContentView HeaderView
{
- get { return (NavigationLayoutHeader)this.GetValue(HeaderViewProperty); }
+ get { return (ContentView)this.GetValue(HeaderViewProperty); }
set { this.SetValue(HeaderViewProperty, value); }
}
diff --git a/src/NativeCode.Mobile.AppCompat.Controls/NavigationLayoutHeader.cs b/src/NativeCode.Mobile.AppCompat.Controls/NavigationLayoutHeader.cs
deleted file mode 100644
index ae19022..0000000
--- a/src/NativeCode.Mobile.AppCompat.Controls/NavigationLayoutHeader.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace NativeCode.Mobile.AppCompat.Controls
-{
- using Xamarin.Forms;
-
- public class NavigationLayoutHeader : ContentView
- {
- }
-}
\ No newline at end of file
diff --git a/src/NativeCode.Mobile.AppCompat.Controls/packages.config b/src/NativeCode.Mobile.AppCompat.Controls/packages.config
index 44715e8..dec89f7 100644
--- a/src/NativeCode.Mobile.AppCompat.Controls/packages.config
+++ b/src/NativeCode.Mobile.AppCompat.Controls/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/src/NativeCode.Mobile.AppCompat.Renderers/AppCompatOption.cs b/src/NativeCode.Mobile.AppCompat.Renderers/AppCompatOption.cs
new file mode 100644
index 0000000..20b520d
--- /dev/null
+++ b/src/NativeCode.Mobile.AppCompat.Renderers/AppCompatOption.cs
@@ -0,0 +1,28 @@
+namespace NativeCode.Mobile.AppCompat.Renderers
+{
+ using System;
+
+ [Flags]
+ public enum AppCompatOption
+ {
+ All = AppCompatButtonSupport | AppCompatEntrySupport | AppCompatMasterDetailSupport | AppCompatSpinnerSupport | AppCompatSwitchSupport | CardViewSupport | FloatingActionButtonSupport | NavigationLayoutSupport,
+
+ None = 0,
+
+ AppCompatButtonSupport = 1 << 0,
+
+ AppCompatEntrySupport = 1 << 1,
+
+ AppCompatMasterDetailSupport = 1 << 2,
+
+ AppCompatSpinnerSupport = 1 << 3,
+
+ AppCompatSwitchSupport = 1 << 4,
+
+ CardViewSupport = 1 << 5,
+
+ FloatingActionButtonSupport = 1 << 6,
+
+ NavigationLayoutSupport = 1 << 7
+ }
+}
\ No newline at end of file
diff --git a/src/NativeCode.Mobile.AppCompat.Renderers/FormsAppCompat.cs b/src/NativeCode.Mobile.AppCompat.Renderers/FormsAppCompat.cs
index 8eb13e0..7d0c5ef 100644
--- a/src/NativeCode.Mobile.AppCompat.Renderers/FormsAppCompat.cs
+++ b/src/NativeCode.Mobile.AppCompat.Renderers/FormsAppCompat.cs
@@ -1,6 +1,7 @@
namespace NativeCode.Mobile.AppCompat.Renderers
{
using System;
+ using System.Diagnostics;
using System.Reflection;
using NativeCode.Mobile.AppCompat.Controls;
@@ -9,6 +10,8 @@ namespace NativeCode.Mobile.AppCompat.Renderers
using Xamarin.Forms;
+ using Switch = Xamarin.Forms.Switch;
+
///
/// Enables renderers for various aspects of the library.
///
@@ -21,7 +24,7 @@ public static class FormsAppCompat
private static readonly MethodInfo RegisterMethod;
///
- /// Initializes static members of the class.
+ /// Initializes static members of the class.
///
static FormsAppCompat()
{
@@ -34,45 +37,91 @@ static FormsAppCompat()
///
/// Enables registration of all renderers.
///
+ [Obsolete("Prefer to use Init.", false)]
public static void EnableAll()
{
- EnableAndroidRenderers();
- EnableAppCompatRenderers();
- EnableMasterDetailRenderer();
+ Init();
}
///
/// Enables Android-specific renderers.
///
+ [Obsolete("Prefer to use Init.", false)]
public static void EnableAndroidRenderers()
{
- RegisterType(typeof(Card), typeof(CardRenderer));
- RegisterType(typeof(FloatingButton), typeof(FloatingButtonRenderer));
- RegisterType(typeof(NavigationLayout), typeof(NavigationLayoutRenderer));
+ Init(AppCompatOption.CardViewSupport | AppCompatOption.FloatingActionButtonSupport | AppCompatOption.NavigationLayoutSupport);
}
///
/// Enables compatibility renderers.
///
+ [Obsolete("Prefer to use Init.", false)]
public static void EnableAppCompatRenderers()
{
- RegisterType(typeof(Button), typeof(AppCompatButtonRenderer));
- RegisterType(typeof(Entry), typeof(AppCompatEntryRenderer));
- RegisterType(typeof(Picker), typeof(AppCompatSpinnerRenderer));
- RegisterType(typeof(Switch), typeof(AppCompatSwitchRenderer));
+ Init(AppCompatOption.AppCompatButtonSupport | AppCompatOption.AppCompatEntrySupport | AppCompatOption.AppCompatSpinnerSupport | AppCompatOption.AppCompatSwitchSupport);
}
///
- /// Enables the .
+ /// Enables the .
///
+ [Obsolete("Prefer to use Init.", false)]
public static void EnableMasterDetailRenderer()
{
- RegisterType(typeof(MasterDetailPage), typeof(AppCompatMasterDetailRenderer));
+ Init(AppCompatOption.AppCompatMasterDetailSupport);
+ }
+
+ public static void Init(AppCompatOption options = AppCompatOption.All)
+ {
+ if (options == AppCompatOption.None)
+ {
+ return;
+ }
+
+ if (options.HasFlag(AppCompatOption.AppCompatButtonSupport))
+ {
+ RegisterType(typeof(Button), typeof(AppCompatButtonRenderer));
+ }
+
+ if (options.HasFlag(AppCompatOption.AppCompatEntrySupport))
+ {
+ RegisterType(typeof(Entry), typeof(AppCompatEntryLayoutRenderer));
+ }
+
+ if (options.HasFlag(AppCompatOption.AppCompatMasterDetailSupport))
+ {
+ RegisterType(typeof(MasterDetailPage), typeof(AppCompatMasterDetailRenderer));
+ }
+
+ if (options.HasFlag(AppCompatOption.AppCompatSpinnerSupport))
+ {
+ RegisterType(typeof(Picker), typeof(AppCompatSpinnerRenderer));
+ }
+
+ if (options.HasFlag(AppCompatOption.AppCompatSwitchSupport))
+ {
+ RegisterType(typeof(Switch), typeof(AppCompatSwitchRenderer));
+ }
+
+ if (options.HasFlag(AppCompatOption.CardViewSupport))
+ {
+ RegisterType(typeof(Card), typeof(CardRenderer));
+ }
+
+ if (options.HasFlag(AppCompatOption.FloatingActionButtonSupport))
+ {
+ RegisterType(typeof(FloatingButton), typeof(FloatingButtonRenderer));
+ }
+
+ if (options.HasFlag(AppCompatOption.NavigationLayoutSupport))
+ {
+ RegisterType(typeof(NavigationLayout), typeof(NavigationLayoutRenderer));
+ }
}
private static void RegisterType(Type handler, Type target)
{
RegisterMethod.Invoke(RegistrarInstance, new object[] { handler, target });
+ Debug.WriteLine("Registered renderer {0} for {1}.", target.Name, handler.Name);
}
}
}
\ No newline at end of file
diff --git a/src/NativeCode.Mobile.AppCompat.Renderers/NativeCode.Mobile.AppCompat.Renderers.csproj b/src/NativeCode.Mobile.AppCompat.Renderers/NativeCode.Mobile.AppCompat.Renderers.csproj
index abf7fd0..0d120f0 100644
--- a/src/NativeCode.Mobile.AppCompat.Renderers/NativeCode.Mobile.AppCompat.Renderers.csproj
+++ b/src/NativeCode.Mobile.AppCompat.Renderers/NativeCode.Mobile.AppCompat.Renderers.csproj
@@ -15,8 +15,8 @@
Resources\Resource.Designer.cs
Off
True
- v5.0
- 4a0cd084
+ v5.1
+ 7452d65e
true
@@ -37,7 +37,7 @@
- ..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\FormsViewGroup.dll
+ ..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\FormsViewGroup.dll
@@ -45,42 +45,40 @@
-
- ..\packages\Xamarin.Android.Support.Design.22.2.0.0\lib\MonoAndroid403\Xamarin.Android.Support.Design.dll
- True
+
+ ..\packages\Xamarin.Android.Support.Design.22.2.1.0\lib\MonoAndroid403\Xamarin.Android.Support.Design.dll
-
- ..\packages\Xamarin.Android.Support.v4.22.2.0.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll
- True
+
+ ..\packages\Xamarin.Android.Support.v4.22.2.1.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll
-
- ..\packages\Xamarin.Android.Support.v7.AppCompat.22.2.0.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll
- True
+
+ ..\packages\Xamarin.Android.Support.v7.AppCompat.22.2.1.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll
-
- ..\packages\Xamarin.Android.Support.v7.CardView.22.2.0.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.CardView.dll
- True
+
+ ..\packages\Xamarin.Android.Support.v7.CardView.22.2.1.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.CardView.dll
- ..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\Xamarin.Forms.Core.dll
+ ..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\Xamarin.Forms.Core.dll
- ..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\Xamarin.Forms.Platform.dll
+ ..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\Xamarin.Forms.Platform.dll
- ..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll
+ ..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll
- ..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll
+ ..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll
+
+
@@ -89,7 +87,6 @@
-
@@ -147,18 +144,11 @@
-
+
This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
+
-
-
\ No newline at end of file
+
diff --git a/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/AppCompatButtonRenderer.cs b/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/AppCompatButtonRenderer.cs
index c41d8c9..84b0dde 100644
--- a/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/AppCompatButtonRenderer.cs
+++ b/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/AppCompatButtonRenderer.cs
@@ -43,21 +43,13 @@ private class ButtonClickListener : JavaObject, IOnClickListener
{
private static readonly Lazy DefaultInstance = new Lazy(() => new ButtonClickListener());
- public static ButtonClickListener Instance
- {
- get { return DefaultInstance.Value; }
- }
+ public static ButtonClickListener Instance => DefaultInstance.Value;
public void OnClick(View view)
{
var renderer = view.Tag as AppCompatButtonRenderer;
- if (renderer == null)
- {
- return;
- }
-
- renderer.Element.InvokeSendClicked();
+ renderer?.Element.InvokeSendClicked();
}
}
}
diff --git a/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/AppCompatEntryLayoutRenderer.cs b/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/AppCompatEntryLayoutRenderer.cs
new file mode 100644
index 0000000..4d29b65
--- /dev/null
+++ b/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/AppCompatEntryLayoutRenderer.cs
@@ -0,0 +1,129 @@
+namespace NativeCode.Mobile.AppCompat.Renderers.Renderers
+{
+ using System.ComponentModel;
+
+ using Android.Content.Res;
+ using Android.Support.Design.Widget;
+ using Android.Text;
+ using Android.Views;
+ using Android.Views.InputMethods;
+ using Android.Widget;
+
+ using NativeCode.Mobile.AppCompat.Extensions;
+ using NativeCode.Mobile.AppCompat.Helpers;
+ using NativeCode.Mobile.AppCompat.Renderers.Extensions;
+ using NativeCode.Mobile.AppCompat.Renderers.Renderers.Controls;
+
+ using Xamarin.Forms;
+ using Xamarin.Forms.Platform.Android;
+
+ public class AppCompatEntryLayoutRenderer : ViewRenderer, TextView.IOnEditorActionListener
+ {
+ private ColorStateList textColorDefault;
+
+ public bool OnEditorAction(TextView v, ImeAction actionId, KeyEvent e)
+ {
+ if (actionId == ImeAction.Done || (actionId == ImeAction.ImeNull && e.KeyCode == Keycode.Enter))
+ {
+ this.Element.InvokeSendCompleted();
+ this.Control.ClearFocus();
+ KeyboardHelper.HideKeyboard(v);
+ }
+
+ return true;
+ }
+
+ protected override void OnElementChanged(ElementChangedEventArgs e)
+ {
+ base.OnElementChanged(e);
+
+ if (this.Control == null)
+ {
+ var context = this.Context.GetAppCompatThemedContext();
+ var control = new TextInputLayout(context);
+ control.AddView(new AppCompatEntryEditText(context));
+ control.EditText.ImeOptions = ImeAction.Done;
+ control.EditText.SetOnEditorActionListener(this);
+
+ this.textColorDefault = control.EditText.TextColors;
+ this.SetNativeControl(control);
+ }
+
+ this.Control.EditText.Hint = this.Element.Placeholder;
+ this.Control.EditText.Text = this.Element.Text;
+
+ this.UpdateColor();
+ this.UpdateHint();
+ this.UpdateInputType();
+ }
+
+ protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
+ {
+ if (e.PropertyName == Entry.PlaceholderProperty.PropertyName)
+ {
+ this.UpdateHint();
+ }
+ else if (e.PropertyName == Entry.IsPasswordProperty.PropertyName)
+ {
+ this.UpdateInputType();
+ }
+ else if (e.PropertyName == Entry.TextProperty.PropertyName)
+ {
+ if (this.Control.EditText.Text != this.Element.Text)
+ {
+ this.Control.EditText.Text = this.Element.Text;
+
+ if (this.Control.IsFocused)
+ {
+ this.Control.EditText.SetSelection(this.Control.EditText.Text.Length);
+ KeyboardHelper.ShowKeyboard(this.Control);
+ }
+ }
+ }
+ else if (e.PropertyName == Entry.TextColorProperty.PropertyName)
+ {
+ this.UpdateColor();
+ }
+ else if (e.PropertyName == InputView.KeyboardProperty.PropertyName)
+ {
+ this.UpdateInputType();
+ }
+
+ base.OnElementPropertyChanged(sender, e);
+ }
+
+ private void UpdateColor()
+ {
+ if (this.Element.TextColor == Color.Default)
+ {
+ this.Control.EditText.SetTextColor(this.textColorDefault);
+ }
+ else
+ {
+ this.Control.EditText.SetTextColor(this.Element.TextColor.ToAndroid());
+ }
+ }
+
+ private void UpdateHint()
+ {
+ this.Control.EditText.Hint = this.Element.Placeholder;
+ }
+
+ private void UpdateInputType()
+ {
+ this.Control.EditText.InputType = KeyboardHelper.GetInputType(this.Element.Keyboard);
+
+ if (this.Element.IsPassword && (this.Control.EditText.InputType & InputTypes.ClassText) == InputTypes.ClassText)
+ {
+ this.Control.EditText.InputType = this.Control.EditText.InputType | InputTypes.TextVariationPassword;
+ }
+
+ if (!this.Element.IsPassword || (this.Control.EditText.InputType & InputTypes.ClassNumber) != InputTypes.ClassNumber)
+ {
+ return;
+ }
+
+ this.Control.EditText.InputType = this.Control.EditText.InputType | InputTypes.DatetimeVariationDate;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/AppCompatMasterDetailRenderer.cs b/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/AppCompatMasterDetailRenderer.cs
index 0272dfa..6c343e8 100644
--- a/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/AppCompatMasterDetailRenderer.cs
+++ b/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/AppCompatMasterDetailRenderer.cs
@@ -3,7 +3,6 @@ namespace NativeCode.Mobile.AppCompat.Renderers.Renderers
using System.ComponentModel;
using Android.App;
- using Android.Provider;
using Android.Support.V4.Widget;
using Android.Support.V7.App;
diff --git a/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/NavigationLayoutHeaderRenderer.cs b/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/NavigationLayoutHeaderRenderer.cs
deleted file mode 100644
index e6afa1d..0000000
--- a/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/NavigationLayoutHeaderRenderer.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using NativeCode.Mobile.AppCompat.Controls;
-using NativeCode.Mobile.AppCompat.Controls.Platforms;
-using NativeCode.Mobile.AppCompat.Renderers.Renderers;
-
-using Xamarin.Forms;
-
-[assembly: ExportRenderer(typeof(NavigationLayoutHeader), typeof(NavigationLayoutHeaderRenderer))]
-
-namespace NativeCode.Mobile.AppCompat.Renderers.Renderers
-{
- using Android.Widget;
-
- using NativeCode.Mobile.AppCompat.Controls.Platforms;
- using NativeCode.Mobile.AppCompat.Extensions;
-
- using Xamarin.Forms.Platform.Android;
-
- public class NavigationLayoutHeaderRenderer : ViewRenderer
- {
- protected override void OnElementChanged(ElementChangedEventArgs e)
- {
- base.OnElementChanged(e);
-
- if (this.Control == null)
- {
- var context = this.Context.GetAppCompatThemedContext();
- var control = new FrameLayout(context);
-
- this.SetNativeControl(control);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/NavigationLayoutRenderer.cs b/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/NavigationLayoutRenderer.cs
index fadd4ef..f5c72ce 100644
--- a/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/NavigationLayoutRenderer.cs
+++ b/src/NativeCode.Mobile.AppCompat.Renderers/Renderers/NavigationLayoutRenderer.cs
@@ -3,16 +3,13 @@ namespace NativeCode.Mobile.AppCompat.Renderers.Renderers
using System.Collections.Generic;
using System.Linq;
- using Android.Content;
using Android.Support.Design.Widget;
using Android.Views;
using NativeCode.Mobile.AppCompat.Controls;
using NativeCode.Mobile.AppCompat.Extensions;
using NativeCode.Mobile.AppCompat.Renderers.Extensions;
- using NativeCode.Mobile.AppCompat.Renderers.Helpers;
- using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
public class NavigationLayoutRenderer : ViewRenderer, NavigationView.IOnNavigationItemSelectedListener
@@ -74,12 +71,14 @@ private void Reset()
private void UpdateHeaderView()
{
- if (this.Element.HeaderView != null)
+ if (this.Element.HeaderView == null)
{
- // TODO: It's adding it, but it never shows up in the XML in monitor.
- var renderer = this.Element.HeaderView.GetRenderer();
- this.Control.AddHeaderView(new HeaderContainer(this.Context, renderer));
+ return;
}
+
+ // TODO: It's adding it, but it never shows up in the XML in monitor.
+ var header = this.Element.HeaderView.GetNativeView();
+ this.Control.AddHeaderView(header);
}
private void UpdateMenuItems()
@@ -99,49 +98,5 @@ private void UpdateMenuItems()
this.mappings.Add(item, menu);
}
}
-
- internal class HeaderContainer : ViewGroup
- {
- private readonly IVisualElementRenderer child;
-
- public HeaderContainer(Context context, IVisualElementRenderer child)
- : base(context)
- {
- this.child = child;
- }
-
- protected override void OnMeasure(int widthMeasureSpec, int heightMeasureSpec)
- {
- if (this.child == null)
- {
- this.SetMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
- }
- else
- {
- var element = this.child.Element;
- var context = this.Context;
- var width = (int)context.FromPixels(MeasureSpecFactory.GetSize(widthMeasureSpec));
- var size = this.child.Element.GetSizeRequest(width, double.PositiveInfinity);
-
- this.child.Element.Layout(new Rectangle(0.0, 0.0, width, size.Request.Height));
-
- var measuredWidth = MeasureSpecFactory.MakeMeasureSpec((int)context.ToPixels(element.Width), MeasureSpecMode.Exactly);
- var measuredHeight = MeasureSpecFactory.MakeMeasureSpec((int)context.ToPixels(element.Height), MeasureSpecMode.Exactly);
-
- this.child.ViewGroup.Measure(widthMeasureSpec, heightMeasureSpec);
- this.SetMeasuredDimension(measuredWidth, measuredHeight);
- }
- }
-
- protected override void OnLayout(bool changed, int l, int t, int r, int b)
- {
- if (this.child == null)
- {
- return;
- }
-
- this.child.UpdateLayout();
- }
- }
}
}
\ No newline at end of file
diff --git a/src/NativeCode.Mobile.AppCompat.Renderers/Resources/Resource.Designer.cs b/src/NativeCode.Mobile.AppCompat.Renderers/Resources/Resource.Designer.cs
index 62b61cd..977299c 100644
--- a/src/NativeCode.Mobile.AppCompat.Renderers/Resources/Resource.Designer.cs
+++ b/src/NativeCode.Mobile.AppCompat.Renderers/Resources/Resource.Designer.cs
@@ -2205,43 +2205,49 @@ public partial class Layout
public static int layout_snackbar_include = 2130903074;
// aapt resource value: 0x7f030023
- public static int notification_media_action = 2130903075;
+ public static int layout_tab_icon = 2130903075;
// aapt resource value: 0x7f030024
- public static int notification_media_cancel_action = 2130903076;
+ public static int layout_tab_text = 2130903076;
// aapt resource value: 0x7f030025
- public static int notification_template_big_media = 2130903077;
+ public static int notification_media_action = 2130903077;
// aapt resource value: 0x7f030026
- public static int notification_template_big_media_narrow = 2130903078;
+ public static int notification_media_cancel_action = 2130903078;
// aapt resource value: 0x7f030027
- public static int notification_template_lines = 2130903079;
+ public static int notification_template_big_media = 2130903079;
// aapt resource value: 0x7f030028
- public static int notification_template_media = 2130903080;
+ public static int notification_template_big_media_narrow = 2130903080;
// aapt resource value: 0x7f030029
- public static int notification_template_part_chronometer = 2130903081;
+ public static int notification_template_lines = 2130903081;
// aapt resource value: 0x7f03002a
- public static int notification_template_part_time = 2130903082;
+ public static int notification_template_media = 2130903082;
// aapt resource value: 0x7f03002b
- public static int select_dialog_item_material = 2130903083;
+ public static int notification_template_part_chronometer = 2130903083;
// aapt resource value: 0x7f03002c
- public static int select_dialog_multichoice_material = 2130903084;
+ public static int notification_template_part_time = 2130903084;
// aapt resource value: 0x7f03002d
- public static int select_dialog_singlechoice_material = 2130903085;
+ public static int select_dialog_item_material = 2130903085;
// aapt resource value: 0x7f03002e
- public static int spinner = 2130903086;
+ public static int select_dialog_multichoice_material = 2130903086;
// aapt resource value: 0x7f03002f
- public static int support_simple_spinner_dropdown_item = 2130903087;
+ public static int select_dialog_singlechoice_material = 2130903087;
+
+ // aapt resource value: 0x7f030030
+ public static int spinner = 2130903088;
+
+ // aapt resource value: 0x7f030031
+ public static int support_simple_spinner_dropdown_item = 2130903089;
static Layout()
{
@@ -2350,14 +2356,14 @@ public partial class Style
// aapt resource value: 0x7f070079
public static int Animation_AppCompat_DropDownUp = 2131165305;
- // aapt resource value: 0x7f070139
- public static int AppTheme = 2131165497;
-
// aapt resource value: 0x7f07013a
- public static int AppTheme_Light = 2131165498;
+ public static int AppTheme = 2131165498;
// aapt resource value: 0x7f07013b
- public static int AppTheme_Light_DarkActionBar = 2131165499;
+ public static int AppTheme_Light = 2131165499;
+
+ // aapt resource value: 0x7f07013c
+ public static int AppTheme_Light_DarkActionBar = 2131165500;
// aapt resource value: 0x7f07007a
public static int Base_AlertDialog_AppCompat = 2131165306;
@@ -2371,20 +2377,20 @@ public partial class Style
// aapt resource value: 0x7f07007d
public static int Base_Animation_AppCompat_DropDownUp = 2131165309;
- // aapt resource value: 0x7f070136
- public static int Base_AppTheme = 2131165494;
-
- // aapt resource value: 0x7f07013d
- public static int Base_AppTheme_EditTextStyle = 2131165501;
+ // aapt resource value: 0x7f070137
+ public static int Base_AppTheme = 2131165495;
// aapt resource value: 0x7f07013e
- public static int Base_AppTheme_EditTextStyle_Light = 2131165502;
+ public static int Base_AppTheme_EditTextStyle = 2131165502;
- // aapt resource value: 0x7f070137
- public static int Base_AppTheme_Light = 2131165495;
+ // aapt resource value: 0x7f07013f
+ public static int Base_AppTheme_EditTextStyle_Light = 2131165503;
// aapt resource value: 0x7f070138
- public static int Base_AppTheme_Light_DarkActionBar = 2131165496;
+ public static int Base_AppTheme_Light = 2131165496;
+
+ // aapt resource value: 0x7f070139
+ public static int Base_AppTheme_Light_DarkActionBar = 2131165497;
// aapt resource value: 0x7f07007e
public static int Base_DialogWindowTitle_AppCompat = 2131165310;
@@ -2782,8 +2788,8 @@ public partial class Style
// aapt resource value: 0x7f070002
public static int CardView_Light = 2131165186;
- // aapt resource value: 0x7f07013c
- public static int DrawerArrowStyle = 2131165500;
+ // aapt resource value: 0x7f07013d
+ public static int DrawerArrowStyle = 2131165501;
// aapt resource value: 0x7f070013
public static int Platform_AppCompat = 2131165203;
@@ -2978,19 +2984,22 @@ public partial class Style
public static int TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131165391;
// aapt resource value: 0x7f070129
- public static int TextAppearance_Design_Error = 2131165481;
+ public static int TextAppearance_Design_CollapsingToolbar_Expanded = 2131165481;
// aapt resource value: 0x7f07012a
- public static int TextAppearance_Design_Hint = 2131165482;
+ public static int TextAppearance_Design_Error = 2131165482;
// aapt resource value: 0x7f07012b
- public static int TextAppearance_Design_Snackbar_Action = 2131165483;
+ public static int TextAppearance_Design_Hint = 2131165483;
// aapt resource value: 0x7f07012c
- public static int TextAppearance_Design_Snackbar_Message = 2131165484;
+ public static int TextAppearance_Design_Snackbar_Action = 2131165484;
// aapt resource value: 0x7f07012d
- public static int TextAppearance_Design_Tab = 2131165485;
+ public static int TextAppearance_Design_Snackbar_Message = 2131165485;
+
+ // aapt resource value: 0x7f07012e
+ public static int TextAppearance_Design_Tab = 2131165486;
// aapt resource value: 0x7f07001e
public static int TextAppearance_StatusBar_EventContent = 2131165214;
@@ -3268,32 +3277,32 @@ public partial class Style
// aapt resource value: 0x7f070126
public static int Widget_AppCompat_Toolbar_Button_Navigation = 2131165478;
- // aapt resource value: 0x7f07012e
- public static int Widget_Design_AppBarLayout = 2131165486;
-
// aapt resource value: 0x7f07012f
- public static int Widget_Design_CollapsingToolbar = 2131165487;
+ public static int Widget_Design_AppBarLayout = 2131165487;
// aapt resource value: 0x7f070130
- public static int Widget_Design_CoordinatorLayout = 2131165488;
+ public static int Widget_Design_CollapsingToolbar = 2131165488;
// aapt resource value: 0x7f070131
- public static int Widget_Design_FloatingActionButton = 2131165489;
+ public static int Widget_Design_CoordinatorLayout = 2131165489;
// aapt resource value: 0x7f070132
- public static int Widget_Design_NavigationView = 2131165490;
+ public static int Widget_Design_FloatingActionButton = 2131165490;
// aapt resource value: 0x7f070133
- public static int Widget_Design_ScrimInsetsFrameLayout = 2131165491;
+ public static int Widget_Design_NavigationView = 2131165491;
// aapt resource value: 0x7f070134
- public static int Widget_Design_Snackbar = 2131165492;
+ public static int Widget_Design_ScrimInsetsFrameLayout = 2131165492;
+
+ // aapt resource value: 0x7f070135
+ public static int Widget_Design_Snackbar = 2131165493;
// aapt resource value: 0x7f070127
public static int Widget_Design_TabLayout = 2131165479;
- // aapt resource value: 0x7f070135
- public static int Widget_Design_TextInputLayout = 2131165493;
+ // aapt resource value: 0x7f070136
+ public static int Widget_Design_TextInputLayout = 2131165494;
static Style()
{
diff --git a/src/NativeCode.Mobile.AppCompat.Renderers/packages.config b/src/NativeCode.Mobile.AppCompat.Renderers/packages.config
index 2332755..ba7de1c 100644
--- a/src/NativeCode.Mobile.AppCompat.Renderers/packages.config
+++ b/src/NativeCode.Mobile.AppCompat.Renderers/packages.config
@@ -1,9 +1,9 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/NativeCode.Mobile.AppCompat/FormsAppCompat/Adapters/ActionBarAdapter.cs b/src/NativeCode.Mobile.AppCompat/FormsAppCompat/Adapters/ActionBarAdapter.cs
index 6d5dfd6..d35d4f3 100644
--- a/src/NativeCode.Mobile.AppCompat/FormsAppCompat/Adapters/ActionBarAdapter.cs
+++ b/src/NativeCode.Mobile.AppCompat/FormsAppCompat/Adapters/ActionBarAdapter.cs
@@ -8,12 +8,12 @@ namespace NativeCode.Mobile.AppCompat.FormsAppCompat.Adapters
using Android.App;
using Android.Graphics.Drawables;
using Android.Support.V7.App;
- using Android.Views;
using Android.Widget;
using Java.Lang;
using ActionBar = Android.App.ActionBar;
+ using View = Android.Views.View;
///
/// Adapts a to a .
@@ -127,7 +127,7 @@ protected AppCompatDelegate AppCompatDelegate
private Android.Support.V7.App.ActionBar SupportActionBar
{
- get { return this.AppCompatDelegateProvider.AppCompatDelegate.SupportActionBar; }
+ get { return this.AppCompatDelegate.SupportActionBar; }
}
public override void AddOnMenuVisibilityListener(IOnMenuVisibilityListener listener)
diff --git a/src/NativeCode.Mobile.AppCompat/FormsAppCompat/AppCompatFormsActivity.cs b/src/NativeCode.Mobile.AppCompat/FormsAppCompat/AppCompatFormsActivity.cs
index f17b3a2..094fea9 100644
--- a/src/NativeCode.Mobile.AppCompat/FormsAppCompat/AppCompatFormsActivity.cs
+++ b/src/NativeCode.Mobile.AppCompat/FormsAppCompat/AppCompatFormsActivity.cs
@@ -6,6 +6,7 @@ namespace NativeCode.Mobile.AppCompat.FormsAppCompat
using Android.OS;
using Android.Support.V4.App;
using Android.Support.V7.App;
+ using Android.Support.V7.Widget;
using Android.Views;
using Java.Lang;
@@ -52,18 +53,17 @@ public abstract class AppCompatFormsActivity : FormsApplicationActivity,
/// Retrieve a reference to this activity's ActionBar.
///
///
- /// Retrieve a reference to this activity's ActionBar.
- ///
- ///
- /// [Android Documentation]
- ///
- ///
+ ///
+ /// Retrieve a reference to this activity's ActionBar.
+ ///
+ ///
+ /// [Android Documentation]
+ ///
+ ///
+ ///
public override ActionBar ActionBar
{
- get
- {
- return this.actionBarAdapter ?? this.disposables.Add(this.actionBarAdapter = new ActionBarAdapter(this));
- }
+ get { return this.actionBarAdapter ?? this.disposables.Add(this.actionBarAdapter = new ActionBarAdapter(this)); }
}
///
@@ -71,10 +71,7 @@ public override ActionBar ActionBar
///
public AppCompatDelegate AppCompatDelegate
{
- get
- {
- return this.appCompatDelegate ?? this.disposables.Add(this.appCompatDelegate = AppCompatDelegate.Create(this, this));
- }
+ get { return this.appCompatDelegate ?? this.disposables.Add(this.appCompatDelegate = AppCompatDelegate.Create(this, this)); }
}
///
@@ -82,29 +79,30 @@ public AppCompatDelegate AppCompatDelegate
///
public virtual ActionBarDrawerToggle.IDelegate DrawerToggleDelegate
{
- get
- {
- return this.AppCompatDelegate.DrawerToggleDelegate;
- }
+ get { return this.AppCompatDelegate.DrawerToggleDelegate; }
}
///
- /// Returns a with this context.
+ /// Returns a
+ ///
+ /// with this context.
///
///
- /// Returns a with this context.
- ///
- ///
- ///
- /// [Android Documentation]
- ///
- ///
+ ///
+ ///
+ /// Returns a
+ ///
+ /// with this context.
+ ///
+ ///
+ ///
+ /// [Android Documentation]
+ ///
+ ///
+ ///
public override MenuInflater MenuInflater
{
- get
- {
- return this.AppCompatDelegate.MenuInflater;
- }
+ get { return this.AppCompatDelegate.MenuInflater; }
}
///
@@ -112,30 +110,32 @@ public override MenuInflater MenuInflater
///
public virtual Intent SupportParentActivityIntent
{
- get
- {
- return NavUtils.GetParentActivityIntent(this);
- }
+ get { return NavUtils.GetParentActivityIntent(this); }
}
///
- /// Retrieve the current for the activity.
+ /// Retrieve the current
+ ///
+ /// for the activity.
///
///
- /// Retrieve the current for the activity.
- /// This can be used to directly access parts of the Window API that
- /// are not available through Activity/Screen.
- ///
- ///
- /// [Android Documentation]
- ///
- ///
+ ///
+ ///
+ /// Retrieve the current
+ ///
+ /// for the activity.
+ /// This can be used to directly access parts of the Window API that
+ /// are not available through Activity/Screen.
+ ///
+ ///
+ ///
+ /// [Android Documentation]
+ ///
+ ///
+ ///
public override Window Window
{
- get
- {
- return this.windowAdapter ?? this.disposables.Add(this.windowAdapter = new WindowAdapter(base.Window, this));
- }
+ get { return this.windowAdapter ?? this.disposables.Add(this.windowAdapter = new WindowAdapter(base.Window, this)); }
}
///
@@ -143,12 +143,11 @@ public override Window Window
///
protected DisposableContainer Disposables
{
- get
- {
- return this.disposables;
- }
+ get { return this.disposables; }
}
+ protected Toolbar Toolbar { get; private set; }
+
public override void AddContentView(View view, ViewGroup.LayoutParams @params)
{
this.AppCompatDelegate.AddContentView(view, @params);
@@ -288,8 +287,8 @@ protected override void Dispose(bool disposing)
}
///
- /// Allows initialization prior to the receiving the
- /// OnCreate call but after the is initialized.
+ /// Allows initialization prior to the receiving the
+ /// OnCreate call but after the is initialized.
///
/// State of the saved instance.
protected virtual void BeforeOnCreate(Bundle savedInstanceState)
@@ -304,6 +303,12 @@ protected override void OnCreate(Bundle savedInstanceState)
// we make the base call so that the SetContentView works properly for Forms.
this.AppCompatDelegate.OnCreate(savedInstanceState);
+ if (this.Toolbar == null)
+ {
+ this.Toolbar = new Toolbar(this);
+ this.AppCompatDelegate.SetSupportActionBar(this.Toolbar);
+ }
+
// Allow additional initialization before we call FormsApplicationActivity.
this.BeforeOnCreate(savedInstanceState);
diff --git a/src/NativeCode.Mobile.AppCompat/FormsAppCompat/AppCompatFormsApplicationActivity.cs b/src/NativeCode.Mobile.AppCompat/FormsAppCompat/AppCompatFormsApplicationActivity.cs
index f242413..8f99f1e 100644
--- a/src/NativeCode.Mobile.AppCompat/FormsAppCompat/AppCompatFormsApplicationActivity.cs
+++ b/src/NativeCode.Mobile.AppCompat/FormsAppCompat/AppCompatFormsApplicationActivity.cs
@@ -6,9 +6,9 @@ namespace NativeCode.Mobile.AppCompat.FormsAppCompat
using Android.Widget;
///
- /// Provides a -backed activity while maintaining compatibility with $Xamarin.Forms$.
+ /// Provides a -backed activity while maintaining compatibility with $Xamarin.Forms$.
///
- /// See for information on implementation.
+ /// See for information on implementation.
public class AppCompatFormsApplicationActivity : AppCompatFormsActivity, IAppCompatCoordinatorLayoutProvider
{
private CoordinatorLayout coordinator;
@@ -30,6 +30,7 @@ public override void SetContentView(View view)
if (content is LinearLayout && this.EnableCoordinatorLayout)
{
this.coordinator = this.Inflate(Resource.Layout.appcompat_coordinator, null);
+ this.coordinator.AddView(this.Toolbar);
this.coordinator.AddView(view);
this.Disposables.Add(this.coordinator);
diff --git a/src/NativeCode.Mobile.AppCompat/FormsAppCompat/IAppCompatCoordinatorLayoutProvider.cs b/src/NativeCode.Mobile.AppCompat/FormsAppCompat/IAppCompatCoordinatorLayoutProvider.cs
index 67b30c7..c7aa830 100644
--- a/src/NativeCode.Mobile.AppCompat/FormsAppCompat/IAppCompatCoordinatorLayoutProvider.cs
+++ b/src/NativeCode.Mobile.AppCompat/FormsAppCompat/IAppCompatCoordinatorLayoutProvider.cs
@@ -5,7 +5,7 @@
public interface IAppCompatCoordinatorLayoutProvider
{
///
- /// Gets the used by .
+ /// Gets the used by .
///
/// Returns a .
CoordinatorLayout GetCoordinatorLayout();
diff --git a/src/NativeCode.Mobile.AppCompat/Helpers/KeyboardHelper.cs b/src/NativeCode.Mobile.AppCompat/Helpers/KeyboardHelper.cs
index 4a23f68..a11d24f 100644
--- a/src/NativeCode.Mobile.AppCompat/Helpers/KeyboardHelper.cs
+++ b/src/NativeCode.Mobile.AppCompat/Helpers/KeyboardHelper.cs
@@ -28,7 +28,7 @@ public static class KeyboardHelper
private static readonly MethodInfo MethodShowKeyboard;
///
- /// Initializes static members of the class.
+ /// Initializes static members of the class.
///
static KeyboardHelper()
{
diff --git a/src/NativeCode.Mobile.AppCompat/InflateViewRenderer.cs b/src/NativeCode.Mobile.AppCompat/InflateViewRenderer.cs
index f64abec..6171b38 100644
--- a/src/NativeCode.Mobile.AppCompat/InflateViewRenderer.cs
+++ b/src/NativeCode.Mobile.AppCompat/InflateViewRenderer.cs
@@ -25,7 +25,7 @@ public abstract class InflateViewRenderer : ViewRenderer disposables = new List();
///
- /// Gets the instance.
+ /// Gets the instance.
///
protected Activity Activity
{
@@ -33,7 +33,7 @@ protected Activity Activity
}
///
- /// Gets the instance.
+ /// Gets the instance.
///
protected LayoutInflater LayoutInflater
{
diff --git a/src/NativeCode.Mobile.AppCompat/NativeCode.Mobile.AppCompat.csproj b/src/NativeCode.Mobile.AppCompat/NativeCode.Mobile.AppCompat.csproj
index 55ccd2b..fefe128 100644
--- a/src/NativeCode.Mobile.AppCompat/NativeCode.Mobile.AppCompat.csproj
+++ b/src/NativeCode.Mobile.AppCompat/NativeCode.Mobile.AppCompat.csproj
@@ -13,8 +13,8 @@
Resources\Resource.Designer.cs
Off
True
- v5.0
- e22b311f
+ v5.1
+ 70494a0d
true
@@ -35,7 +35,7 @@
- ..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\FormsViewGroup.dll
+ ..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\FormsViewGroup.dll
@@ -43,29 +43,26 @@
-
- ..\packages\Xamarin.Android.Support.Design.22.2.0.0\lib\MonoAndroid403\Xamarin.Android.Support.Design.dll
- True
+
+ ..\packages\Xamarin.Android.Support.Design.22.2.1.0\lib\MonoAndroid403\Xamarin.Android.Support.Design.dll
-
- ..\packages\Xamarin.Android.Support.v4.22.2.0.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll
- True
+
+ ..\packages\Xamarin.Android.Support.v4.22.2.1.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll
-
- ..\packages\Xamarin.Android.Support.v7.AppCompat.22.2.0.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll
- True
+
+ ..\packages\Xamarin.Android.Support.v7.AppCompat.22.2.1.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll
- ..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\Xamarin.Forms.Core.dll
+ ..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\Xamarin.Forms.Core.dll
- ..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\Xamarin.Forms.Platform.dll
+ ..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\Xamarin.Forms.Platform.dll
- ..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll
+ ..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll
- ..\packages\Xamarin.Forms.1.4.3.6376\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll
+ ..\packages\Xamarin.Forms.1.5.0.6446\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll
@@ -121,18 +118,11 @@
-
+
This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
+
-
-
\ No newline at end of file
+
diff --git a/src/NativeCode.Mobile.AppCompat/Resources/Resource.Designer.cs b/src/NativeCode.Mobile.AppCompat/Resources/Resource.Designer.cs
index 8f12bbe..a2373ee 100644
--- a/src/NativeCode.Mobile.AppCompat/Resources/Resource.Designer.cs
+++ b/src/NativeCode.Mobile.AppCompat/Resources/Resource.Designer.cs
@@ -2130,40 +2130,46 @@ public partial class Layout
public static int layout_snackbar_include = 2130903072;
// aapt resource value: 0x7f030021
- public static int notification_media_action = 2130903073;
+ public static int layout_tab_icon = 2130903073;
// aapt resource value: 0x7f030022
- public static int notification_media_cancel_action = 2130903074;
+ public static int layout_tab_text = 2130903074;
// aapt resource value: 0x7f030023
- public static int notification_template_big_media = 2130903075;
+ public static int notification_media_action = 2130903075;
// aapt resource value: 0x7f030024
- public static int notification_template_big_media_narrow = 2130903076;
+ public static int notification_media_cancel_action = 2130903076;
// aapt resource value: 0x7f030025
- public static int notification_template_lines = 2130903077;
+ public static int notification_template_big_media = 2130903077;
// aapt resource value: 0x7f030026
- public static int notification_template_media = 2130903078;
+ public static int notification_template_big_media_narrow = 2130903078;
// aapt resource value: 0x7f030027
- public static int notification_template_part_chronometer = 2130903079;
+ public static int notification_template_lines = 2130903079;
// aapt resource value: 0x7f030028
- public static int notification_template_part_time = 2130903080;
+ public static int notification_template_media = 2130903080;
// aapt resource value: 0x7f030029
- public static int select_dialog_item_material = 2130903081;
+ public static int notification_template_part_chronometer = 2130903081;
// aapt resource value: 0x7f03002a
- public static int select_dialog_multichoice_material = 2130903082;
+ public static int notification_template_part_time = 2130903082;
// aapt resource value: 0x7f03002b
- public static int select_dialog_singlechoice_material = 2130903083;
+ public static int select_dialog_item_material = 2130903083;
// aapt resource value: 0x7f03002c
- public static int support_simple_spinner_dropdown_item = 2130903084;
+ public static int select_dialog_multichoice_material = 2130903084;
+
+ // aapt resource value: 0x7f03002d
+ public static int select_dialog_singlechoice_material = 2130903085;
+
+ // aapt resource value: 0x7f03002e
+ public static int support_simple_spinner_dropdown_item = 2130903086;
static Layout()
{
@@ -2266,14 +2272,14 @@ public partial class Style
// aapt resource value: 0x7f070076
public static int Animation_AppCompat_DropDownUp = 2131165302;
- // aapt resource value: 0x7f070136
- public static int AppTheme = 2131165494;
-
// aapt resource value: 0x7f070137
- public static int AppTheme_Light = 2131165495;
+ public static int AppTheme = 2131165495;
// aapt resource value: 0x7f070138
- public static int AppTheme_Light_DarkActionBar = 2131165496;
+ public static int AppTheme_Light = 2131165496;
+
+ // aapt resource value: 0x7f070139
+ public static int AppTheme_Light_DarkActionBar = 2131165497;
// aapt resource value: 0x7f070077
public static int Base_AlertDialog_AppCompat = 2131165303;
@@ -2287,20 +2293,20 @@ public partial class Style
// aapt resource value: 0x7f07007a
public static int Base_Animation_AppCompat_DropDownUp = 2131165306;
- // aapt resource value: 0x7f070133
- public static int Base_AppTheme = 2131165491;
-
- // aapt resource value: 0x7f07013a
- public static int Base_AppTheme_EditTextStyle = 2131165498;
+ // aapt resource value: 0x7f070134
+ public static int Base_AppTheme = 2131165492;
// aapt resource value: 0x7f07013b
- public static int Base_AppTheme_EditTextStyle_Light = 2131165499;
+ public static int Base_AppTheme_EditTextStyle = 2131165499;
- // aapt resource value: 0x7f070134
- public static int Base_AppTheme_Light = 2131165492;
+ // aapt resource value: 0x7f07013c
+ public static int Base_AppTheme_EditTextStyle_Light = 2131165500;
// aapt resource value: 0x7f070135
- public static int Base_AppTheme_Light_DarkActionBar = 2131165493;
+ public static int Base_AppTheme_Light = 2131165493;
+
+ // aapt resource value: 0x7f070136
+ public static int Base_AppTheme_Light_DarkActionBar = 2131165494;
// aapt resource value: 0x7f07007b
public static int Base_DialogWindowTitle_AppCompat = 2131165307;
@@ -2689,8 +2695,8 @@ public partial class Style
// aapt resource value: 0x7f070125
public static int Base_Widget_Design_TabLayout = 2131165477;
- // aapt resource value: 0x7f070139
- public static int DrawerArrowStyle = 2131165497;
+ // aapt resource value: 0x7f07013a
+ public static int DrawerArrowStyle = 2131165498;
// aapt resource value: 0x7f070010
public static int Platform_AppCompat = 2131165200;
@@ -2885,19 +2891,22 @@ public partial class Style
public static int TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131165388;
// aapt resource value: 0x7f070126
- public static int TextAppearance_Design_Error = 2131165478;
+ public static int TextAppearance_Design_CollapsingToolbar_Expanded = 2131165478;
// aapt resource value: 0x7f070127
- public static int TextAppearance_Design_Hint = 2131165479;
+ public static int TextAppearance_Design_Error = 2131165479;
// aapt resource value: 0x7f070128
- public static int TextAppearance_Design_Snackbar_Action = 2131165480;
+ public static int TextAppearance_Design_Hint = 2131165480;
// aapt resource value: 0x7f070129
- public static int TextAppearance_Design_Snackbar_Message = 2131165481;
+ public static int TextAppearance_Design_Snackbar_Action = 2131165481;
// aapt resource value: 0x7f07012a
- public static int TextAppearance_Design_Tab = 2131165482;
+ public static int TextAppearance_Design_Snackbar_Message = 2131165482;
+
+ // aapt resource value: 0x7f07012b
+ public static int TextAppearance_Design_Tab = 2131165483;
// aapt resource value: 0x7f07001b
public static int TextAppearance_StatusBar_EventContent = 2131165211;
@@ -3175,32 +3184,32 @@ public partial class Style
// aapt resource value: 0x7f070123
public static int Widget_AppCompat_Toolbar_Button_Navigation = 2131165475;
- // aapt resource value: 0x7f07012b
- public static int Widget_Design_AppBarLayout = 2131165483;
-
// aapt resource value: 0x7f07012c
- public static int Widget_Design_CollapsingToolbar = 2131165484;
+ public static int Widget_Design_AppBarLayout = 2131165484;
// aapt resource value: 0x7f07012d
- public static int Widget_Design_CoordinatorLayout = 2131165485;
+ public static int Widget_Design_CollapsingToolbar = 2131165485;
// aapt resource value: 0x7f07012e
- public static int Widget_Design_FloatingActionButton = 2131165486;
+ public static int Widget_Design_CoordinatorLayout = 2131165486;
// aapt resource value: 0x7f07012f
- public static int Widget_Design_NavigationView = 2131165487;
+ public static int Widget_Design_FloatingActionButton = 2131165487;
// aapt resource value: 0x7f070130
- public static int Widget_Design_ScrimInsetsFrameLayout = 2131165488;
+ public static int Widget_Design_NavigationView = 2131165488;
// aapt resource value: 0x7f070131
- public static int Widget_Design_Snackbar = 2131165489;
+ public static int Widget_Design_ScrimInsetsFrameLayout = 2131165489;
+
+ // aapt resource value: 0x7f070132
+ public static int Widget_Design_Snackbar = 2131165490;
// aapt resource value: 0x7f070124
public static int Widget_Design_TabLayout = 2131165476;
- // aapt resource value: 0x7f070132
- public static int Widget_Design_TextInputLayout = 2131165490;
+ // aapt resource value: 0x7f070133
+ public static int Widget_Design_TextInputLayout = 2131165491;
static Style()
{
diff --git a/src/NativeCode.Mobile.AppCompat/packages.config b/src/NativeCode.Mobile.AppCompat/packages.config
index f93951d..26e9572 100644
--- a/src/NativeCode.Mobile.AppCompat/packages.config
+++ b/src/NativeCode.Mobile.AppCompat/packages.config
@@ -1,8 +1,8 @@
-
-
-
-
+
+
+
+
diff --git a/src/Xamarin.sln.DotSettings b/src/Xamarin.sln.DotSettings
new file mode 100644
index 0000000..eaf3583
--- /dev/null
+++ b/src/Xamarin.sln.DotSettings
@@ -0,0 +1,438 @@
+
+ True
+ True
+ <?xml version="1.0" encoding="utf-16"?><Profile name="NativeCode"><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CSEnforceVarKeywordUsageSettings>True</CSEnforceVarKeywordUsageSettings><CSReorderTypeMembers>True</CSReorderTypeMembers><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings><EmbraceInRegion>False</EmbraceInRegion><RegionName></RegionName></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><HtmlReformatCode>True</HtmlReformatCode><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><JsInsertSemicolon>True</JsInsertSemicolon><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><XMLReformatCode>True</XMLReformatCode><CssAlphabetizeProperties>True</CssAlphabetizeProperties><CssReformatCode>True</CssReformatCode><VBOptimizeImports>True</VBOptimizeImports><VBShortenReferences>True</VBShortenReferences><VBReformatCode>True</VBReformatCode><VBFormatDocComments>True</VBFormatDocComments><StyleCop.Documentation><SA1600ElementsMustBeDocumented>True</SA1600ElementsMustBeDocumented><SA1604ElementDocumentationMustHaveSummary>True</SA1604ElementDocumentationMustHaveSummary><SA1609PropertyDocumentationMustHaveValueDocumented>True</SA1609PropertyDocumentationMustHaveValueDocumented><SA1611ElementParametersMustBeDocumented>True</SA1611ElementParametersMustBeDocumented><SA1615ElementReturnValueMustBeDocumented>True</SA1615ElementReturnValueMustBeDocumented><SA1617VoidReturnValueMustNotBeDocumented>True</SA1617VoidReturnValueMustNotBeDocumented><SA1618GenericTypeParametersMustBeDocumented>True</SA1618GenericTypeParametersMustBeDocumented><SA1626SingleLineCommentsMustNotUseDocumentationStyleSlashes>True</SA1626SingleLineCommentsMustNotUseDocumentationStyleSlashes><SA1628DocumentationTextMustBeginWithACapitalLetter>True</SA1628DocumentationTextMustBeginWithACapitalLetter><SA1629DocumentationTextMustEndWithAPeriod>True</SA1629DocumentationTextMustEndWithAPeriod><SA1633SA1641UpdateFileHeader>False</SA1633SA1641UpdateFileHeader><SA1639FileHeaderMustHaveSummary>True</SA1639FileHeaderMustHaveSummary><SA1642ConstructorSummaryDocumentationMustBeginWithStandardText>True</SA1642ConstructorSummaryDocumentationMustBeginWithStandardText><SA1643DestructorSummaryDocumentationMustBeginWithStandardText>True</SA1643DestructorSummaryDocumentationMustBeginWithStandardText><SA1644DocumentationHeadersMustNotContainBlankLines>True</SA1644DocumentationHeadersMustNotContainBlankLines></StyleCop.Documentation></Profile>
+ NativeCode
+ NativeCode
+ Field, Property, Event, Method
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ 1
+ 1
+ 1
+ 1
+ 1
+ SEPARATE
+ ALWAYS_ADD
+ ALWAYS_ADD
+ ALWAYS_ADD
+ ALWAYS_ADD
+ ALWAYS_ADD
+ ALWAYS_ADD
+ 1
+ 1
+ False
+ public protected internal private static new abstract virtual override sealed readonly extern unsafe volatile async
+ False
+ True
+ LINE_BREAK
+ False
+ True
+ False
+ False
+ True
+ False
+ True
+ True
+ CHOP_IF_LONG
+ CHOP_IF_LONG
+ True
+ True
+ CHOP_IF_LONG
+ 160
+ CHOP_IF_LONG
+ ZeroIndent
+ False
+ ByFirstAttr
+ 160
+ <?xml version="1.0" encoding="utf-16"?>
+<Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns">
+ <TypePattern DisplayName="COM interfaces">
+ <TypePattern.Match>
+ <Or>
+ <And>
+ <Kind Is="Interface" />
+ <Or>
+ <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute" />
+ <HasAttribute Name="System.Runtime.InteropServices.ComImport" />
+ </Or>
+ </And>
+ </Or>
+ </TypePattern.Match>
+ </TypePattern>
+ <TypePattern DisplayName="P/Invoke structs">
+ <TypePattern.Match>
+ <And>
+ <Or>
+ <Kind Is="Struct" />
+ <Kind Is="Class" />
+ </Or>
+ <HasAttribute Name="System.Runtime.InteropServices.StructLayoutAttribute" />
+ </And>
+ </TypePattern.Match>
+ </TypePattern>
+ <TypePattern DisplayName="P/Invoke classes (called xxxNativeMethods)">
+ <TypePattern.Match>
+ <And>
+ <Kind Is="Class" />
+ <Name Is=".*NativeMethods" />
+ </And>
+ </TypePattern.Match>
+ </TypePattern>
+ <TypePattern DisplayName="StyleCop pattern" RemoveRegions="AllExceptGenerated" Priority="100">
+ <TypePattern.Match>
+ <Or>
+ <Kind Is="Class" />
+ <Kind Is="Struct" />
+ <Kind Is="Interface" />
+ </Or>
+ </TypePattern.Match>
+ <Entry DisplayName="Constants">
+ <Entry.Match>
+ <Kind Is="Constant" />
+ </Entry.Match>
+ <Entry.SortBy>
+ <Access Order="Public Internal ProtectedInternal Protected Private" />
+ </Entry.SortBy>
+ </Entry>
+ <Entry DisplayName="Static Fields">
+ <Entry.Match>
+ <And>
+ <Kind Is="Field" />
+ <Static />
+ </And>
+ </Entry.Match>
+ <Entry.SortBy>
+ <Access Order="Public Internal ProtectedInternal Protected Private" />
+ <Readonly />
+ </Entry.SortBy>
+ </Entry>
+ <Entry DisplayName="Fields">
+ <Entry.Match>
+ <Kind Is="Field" />
+ </Entry.Match>
+ <Entry.SortBy>
+ <Access Order="Public Internal ProtectedInternal Protected Private" />
+ <Readonly />
+ </Entry.SortBy>
+ </Entry>
+ <Entry DisplayName="Constructors and destructors" Priority="150">
+ <Entry.Match>
+ <Or>
+ <Kind Is="Constructor" />
+ <Kind Is="Destructor" />
+ </Or>
+ </Entry.Match>
+ <Entry.SortBy>
+ <Static />
+ <Kind Order="Constructor Destructor" />
+ <Access Order="Public Internal ProtectedInternal Protected Private" />
+ </Entry.SortBy>
+ </Entry>
+
+ <Entry DisplayName="Delegates">
+ <Entry.Match>
+ <Kind Is="delegate"/>
+ </Entry.Match>
+ <Entry.SortBy>
+ <Access Order="Public Internal ProtectedInternal Protected Private" />
+ <Static />
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Delegates"/> -->
+ </Entry>
+
+ <Entry DisplayName="Public Events">
+ <Entry.Match>
+ <And>
+ <Kind Is="event"/>
+ <Access Is="public"/>
+ </And>
+ </Entry.Match>
+ <Entry.SortBy>
+ <Static />
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Public Events"/> -->
+ </Entry>
+
+ <Entry DisplayName="Interface events">
+ <Entry.Match>
+ <And>
+ <Kind Is="event"/>
+ <ImplementsInterface/>
+ </And>
+ </Entry.Match>
+ <Entry.SortBy>
+ <ImplementsInterface Immediate="true"/>
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Explicit Interface Events" /> -->
+ </Entry>
+
+ <Entry DisplayName="Other events">
+ <Entry.Match>
+ <Kind Is="event"/>
+ </Entry.Match>
+ <Entry.SortBy>
+ <Access Order="Public Internal ProtectedInternal Protected Private" />
+ <Static />
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Events"/> -->
+ </Entry>
+
+ <Entry DisplayName= "Enums">
+ <Entry.Match>
+ <Kind Is="enum"/>
+ </Entry.Match>
+ <Entry.SortBy>
+ <Access Order="Public Internal ProtectedInternal Protected Private" />
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Enums"/> -->
+ </Entry>
+
+ <Entry DisplayName = "Interfaces">
+ <Entry.Match>
+ <Kind Is="interface" />
+ </Entry.Match>
+ <Entry.SortBy>
+ <Access Order="Public Internal ProtectedInternal Protected Private" />
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Interfaces"/> -->
+ </Entry>
+
+ <Entry DisplayName = "Public properties">
+ <Entry.Match>
+ <And>
+ <Kind Is="property"/>
+ <Access Is="public"/>
+ </And>
+ </Entry.Match>
+ <Entry.SortBy>
+ <Static/>
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Public Properties"/> -->
+ </Entry>
+
+ <Entry DisplayName = "Interface properties">
+ <Entry.Match>
+ <And>
+ <Kind Is="property"/>
+ <ImplementsInterface/>
+ </And>
+ </Entry.Match>
+ <Entry.SortBy>
+ <ImplementsInterface Immediate="true"/>
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Explicit Interface Properties" /> -->
+ </Entry>
+
+ <Entry DisplayName="Other properties">
+ <Entry.Match>
+ <Kind Is="property"/>
+ </Entry.Match>
+ <Entry.SortBy>
+ <Access Order="Public Internal ProtectedInternal Protected Private"/>
+ <Static/>
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Properties"/> -->
+ </Entry>
+
+ <Entry DisplayName="Public indexers" Priority="100">
+ <Entry.Match>
+ <And>
+ <Kind Is="indexer"/>
+ <Access Is="public"/>
+ </And>
+ </Entry.Match>
+ <Entry.SortBy>
+ <Static/>
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Public Indexers"/> -->
+ </Entry>
+
+ <Entry DisplayName="Interface indexers">
+ <Entry.Match>
+ <And>
+ <Kind Is="indexer"/>
+ <ImplementsInterface/>
+ </And>
+ </Entry.Match>
+ <Entry.SortBy>
+ <ImplementsInterface Immediate="true"/>
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Explicit Interface Indexers" /> -->
+ </Entry>
+
+ <Entry DisplayName = "Other indexers" Priority = "100">
+ <Entry.Match>
+ <Kind Is="indexer"/>
+ </Entry.Match>
+ <Entry.SortBy>
+ <Access Order="Public Internal ProtectedInternal Protected Private" />
+ <Static/>
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Indexers"/> -->
+ </Entry>
+
+ <Entry DisplayName="Public methods (includes operators)">
+ <Entry.Match>
+ <And>
+ <Or>
+ <Kind Is="method"/>
+ <Kind Is="operator"/>
+ </Or>
+ <Access Is="public"/>
+ </And>
+ </Entry.Match>
+ <Entry.SortBy>
+ <Static/>
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Public Methods and Operators"/> -->
+ </Entry>
+
+ <Entry DisplayName = "Interface methods">
+ <Entry.Match>
+ <And>
+ <Kind Is="method"/>
+ <ImplementsInterface/>
+ </And>
+ </Entry.Match>
+ <Entry.SortBy>
+ <ImplementsInterface Immediate="true"/>
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Explicit Interface Methods" /> -->
+ </Entry>
+
+ <Entry DisplayName = "Other methods">
+ <Entry.Match>
+ <Kind Is="method"/>
+ </Entry.Match>
+ <Entry.SortBy>
+ <Access Order="Public Internal ProtectedInternal Protected Private"/>
+ <Static/>
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Methods"/> -->
+ </Entry>
+
+ <Entry DisplayName = "Operators">
+ <Entry.Match>
+ <Kind Is="operator"/>
+ </Entry.Match>
+ <Entry.SortBy>
+ <Access Order="Public Internal ProtectedInternal Protected Private" />
+ <Static/>
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ <!-- <Group Region="Operators"/> -->
+ </Entry>
+
+ <Entry DisplayName = "Nested structs" Priority = "60">
+ <Entry.Match>
+ <Kind Is="struct" />
+ </Entry.Match>
+ <Entry.SortBy>
+ <Static />
+ <Access Order="Public Internal ProtectedInternal Protected Private" />
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ </Entry>
+
+ <Entry DisplayName = "Nested classes" Priority = "70">
+ <Entry.Match>
+ <Kind Is="class"/>
+ </Entry.Match>
+ <Entry.SortBy>
+ <Static />
+ <Access Order="Public Internal ProtectedInternal Protected Private" />
+ <!-- <Name/> -->
+ </Entry.SortBy>
+ </Entry>
+
+ <Entry DisplayName = "All other members"/>
+
+ </TypePattern>
+</Patterns>
+ True
+ True
+ $object$_On$event$
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ True
+ False
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ D:\Projects\Repositories\oss-xamarin\src\Xamarin.sln.DotSettings
+
+ True
+ 1
+ True
+ True
+ True
+ True
+ 07/17/2015 15:34:01
+ True
+ [1,0](1024,768)
+ CSharpLineBreaksAndWrappingPage
+ 0,-199
+ True
+ True
+ True
+ True
+ Creates Xamarin bindable property.
+ True
+ typeName()
+ 1
+ True
+ 0
+ True
+ 2
+ True
+ True
+ 2.0
+ InCSharpFile
+ bindprop
+ True
+ public static readonly BindableProperty $Name$Property = BindableProperty.Create<$Class$, $Type$>(x => x.$Name$, default($Type$));
+
+public $Type$ $Name$
+{
+ get { return ($Type$)this.GetValue($Name$Property); }
+ set { this.SetValue($Name$Property, value); }
+}
\ No newline at end of file