From 25191127f398e4b538c11102ba053c4407aaae88 Mon Sep 17 00:00:00 2001 From: Tsanie Lily <tsorgy@gmail.com> Date: Thu, 3 Mar 2022 15:10:36 +0800 Subject: [PATCH] first test-flight version --- Billing.Shared/App.cs | 15 +- Billing.Shared/Languages/Resource.cs | 18 ++ Billing.Shared/Languages/en.xml | 21 ++ Billing.Shared/Languages/zh-CN.xml | 21 ++ Billing.Shared/Store/StoreHelper.cs | 18 +- Billing.Shared/Themes/BaseTheme.cs | 18 +- Billing.Shared/Themes/Light.cs | 22 +- Billing.Shared/UI/Converters.cs | 28 ++- Billing.Shared/UI/CustomControl.cs | 31 +++ Billing.Shared/UI/Definition.cs | 9 + Billing.Shared/UI/GroupStackLayout.cs | 2 +- Billing.Shared/UI/ItemSelectPage.cs | 6 +- Billing.Shared/UI/OptionsCells.cs | 44 +++- Billing.Shared/Views/AccountPage.xaml | 17 +- Billing.Shared/Views/AccountPage.xaml.cs | 41 +++- Billing.Shared/Views/AddAccountPage.xaml.cs | 3 +- Billing.Shared/Views/AddBillPage.xaml | 8 +- Billing.Shared/Views/AddBillPage.xaml.cs | 89 ++++++-- Billing.Shared/Views/BillPage.xaml | 58 +++-- Billing.Shared/Views/BillPage.xaml.cs | 47 ++++ Billing.Shared/Views/IconSelectPage.xaml.cs | 6 +- Billing.Shared/Views/SettingPage.xaml | 27 ++- Billing.Shared/Views/SettingPage.xaml.cs | 49 +++++ .../Billing.Android/Billing.Android.csproj | 135 ++++++++++++ Billing/Billing.Android/Definition.cs | 11 + Billing/Billing.Android/MainActivity.cs | 1 + .../Properties/AndroidManifest.xml | 2 +- .../Renderers/LongPressButtonRenderer.cs | 12 +- .../Renderers/LongPressGridRenderer.cs | 63 ++++++ .../Renderers/OptionDatePickerRenderer.cs | 28 +++ .../Renderers/OptionTimePickerRenderer.cs | 28 +++ .../Resources/Resource.designer.cs | 201 ++++++++++-------- .../Resources/drawable-mdpi/clothes.png | Bin 0 -> 319 bytes .../Resources/drawable-mdpi/cmb.png | Bin 0 -> 1582 bytes .../Resources/drawable-mdpi/daily.png | Bin 0 -> 482 bytes .../Resources/drawable-mdpi/drink.png | Bin 0 -> 377 bytes .../Resources/drawable-mdpi/food.png | Bin 0 -> 435 bytes .../Resources/drawable-mdpi/learn.png | Bin 0 -> 391 bytes .../Resources/drawable-mdpi/medical.png | Bin 0 -> 510 bytes .../Resources/drawable-mdpi/rcb.png | Bin 0 -> 1256 bytes .../Resources/drawable-mdpi/trans.png | Bin 0 -> 474 bytes .../Resources/drawable-mdpi/yuebao.png | Bin 0 -> 634 bytes .../Resources/drawable-mdpi/zhaozhaoying.png | Bin 0 -> 1495 bytes .../Resources/drawable-xhdpi/clothes.png | Bin 0 -> 551 bytes .../Resources/drawable-xhdpi/cmb.png | Bin 0 -> 3304 bytes .../Resources/drawable-xhdpi/daily.png | Bin 0 -> 862 bytes .../Resources/drawable-xhdpi/drink.png | Bin 0 -> 732 bytes .../Resources/drawable-xhdpi/food.png | Bin 0 -> 880 bytes .../Resources/drawable-xhdpi/learn.png | Bin 0 -> 718 bytes .../Resources/drawable-xhdpi/medical.png | Bin 0 -> 885 bytes .../Resources/drawable-xhdpi/rcb.png | Bin 0 -> 2609 bytes .../Resources/drawable-xhdpi/trans.png | Bin 0 -> 844 bytes .../Resources/drawable-xhdpi/yuebao.png | Bin 0 -> 1139 bytes .../Resources/drawable-xhdpi/zhaozhaoying.png | Bin 0 -> 3256 bytes .../Resources/drawable-xxhdpi/clothes.png | Bin 0 -> 1095 bytes .../Resources/drawable-xxhdpi/cmb.png | Bin 0 -> 5998 bytes .../Resources/drawable-xxhdpi/daily.png | Bin 0 -> 1406 bytes .../Resources/drawable-xxhdpi/drink.png | Bin 0 -> 1305 bytes .../Resources/drawable-xxhdpi/food.png | Bin 0 -> 1629 bytes .../Resources/drawable-xxhdpi/learn.png | Bin 0 -> 1191 bytes .../Resources/drawable-xxhdpi/medical.png | Bin 0 -> 1490 bytes .../Resources/drawable-xxhdpi/rcb.png | Bin 0 -> 3449 bytes .../Resources/drawable-xxhdpi/trans.png | Bin 0 -> 1394 bytes .../Resources/drawable-xxhdpi/yuebao.png | Bin 0 -> 2077 bytes .../drawable-xxhdpi/zhaozhaoying.png | Bin 0 -> 6123 bytes .../Resources/drawable/clothes.png | Bin 0 -> 526 bytes .../Resources/drawable/cmb.png | Bin 0 -> 2843 bytes .../Resources/drawable/daily.png | Bin 0 -> 808 bytes .../Resources/drawable/drink.png | Bin 0 -> 684 bytes .../Resources/drawable/food.png | Bin 0 -> 786 bytes .../Resources/drawable/learn.png | Bin 0 -> 674 bytes .../Resources/drawable/medical.png | Bin 0 -> 901 bytes .../Resources/drawable/rcb.png | Bin 0 -> 1730 bytes .../Resources/drawable/trans.png | Bin 0 -> 771 bytes .../Resources/drawable/yuebao.png | Bin 0 -> 1080 bytes .../Resources/drawable/zhaozhaoying.png | Bin 0 -> 2787 bytes Billing/Billing.iOS/Billing.iOS.csproj | 102 +++++++++ Billing/Billing.iOS/Definition.cs | 4 + Billing/Billing.iOS/Info.plist | 8 +- .../Renderers/LongPressButtonRenderer.cs | 8 +- .../Renderers/LongPressGridRenderer.cs | 50 +++++ .../Renderers/OptionDatePickerRenderer.cs | 23 ++ .../Renderers/OptionTimePickerRenderer.cs | 23 ++ Billing/Billing.iOS/Resources/clothes.png | Bin 0 -> 319 bytes Billing/Billing.iOS/Resources/clothes@2x.png | Bin 0 -> 551 bytes Billing/Billing.iOS/Resources/clothes@3x.png | Bin 0 -> 1095 bytes Billing/Billing.iOS/Resources/cmb.png | Bin 0 -> 1582 bytes Billing/Billing.iOS/Resources/cmb@2x.png | Bin 0 -> 3304 bytes Billing/Billing.iOS/Resources/cmb@3x.png | Bin 0 -> 5998 bytes Billing/Billing.iOS/Resources/daily.png | Bin 0 -> 482 bytes Billing/Billing.iOS/Resources/daily@2x.png | Bin 0 -> 862 bytes Billing/Billing.iOS/Resources/daily@3x.png | Bin 0 -> 1406 bytes Billing/Billing.iOS/Resources/drink.png | Bin 0 -> 377 bytes Billing/Billing.iOS/Resources/drink@2x.png | Bin 0 -> 732 bytes Billing/Billing.iOS/Resources/drink@3x.png | Bin 0 -> 1305 bytes Billing/Billing.iOS/Resources/food.png | Bin 0 -> 435 bytes Billing/Billing.iOS/Resources/food@2x.png | Bin 0 -> 880 bytes Billing/Billing.iOS/Resources/food@3x.png | Bin 0 -> 1629 bytes Billing/Billing.iOS/Resources/learn.png | Bin 0 -> 391 bytes Billing/Billing.iOS/Resources/learn@2x.png | Bin 0 -> 718 bytes Billing/Billing.iOS/Resources/learn@3x.png | Bin 0 -> 1191 bytes Billing/Billing.iOS/Resources/medical.png | Bin 0 -> 510 bytes Billing/Billing.iOS/Resources/medical@2x.png | Bin 0 -> 885 bytes Billing/Billing.iOS/Resources/medical@3x.png | Bin 0 -> 1490 bytes Billing/Billing.iOS/Resources/rcb.png | Bin 0 -> 1256 bytes Billing/Billing.iOS/Resources/rcb@2x.png | Bin 0 -> 2609 bytes Billing/Billing.iOS/Resources/rcb@3x.png | Bin 0 -> 3449 bytes Billing/Billing.iOS/Resources/trans.png | Bin 0 -> 474 bytes Billing/Billing.iOS/Resources/trans@2x.png | Bin 0 -> 844 bytes Billing/Billing.iOS/Resources/trans@3x.png | Bin 0 -> 1394 bytes Billing/Billing.iOS/Resources/yuebao.png | Bin 0 -> 634 bytes Billing/Billing.iOS/Resources/yuebao@2x.png | Bin 0 -> 1139 bytes Billing/Billing.iOS/Resources/yuebao@3x.png | Bin 0 -> 2077 bytes .../Billing.iOS/Resources/zhaozhaoying.png | Bin 0 -> 1495 bytes .../Billing.iOS/Resources/zhaozhaoying@2x.png | Bin 0 -> 3256 bytes .../Billing.iOS/Resources/zhaozhaoying@3x.png | Bin 0 -> 6123 bytes 116 files changed, 1124 insertions(+), 173 deletions(-) create mode 100644 Billing/Billing.Android/Renderers/LongPressGridRenderer.cs create mode 100644 Billing/Billing.Android/Renderers/OptionDatePickerRenderer.cs create mode 100644 Billing/Billing.Android/Renderers/OptionTimePickerRenderer.cs create mode 100644 Billing/Billing.Android/Resources/drawable-mdpi/clothes.png create mode 100644 Billing/Billing.Android/Resources/drawable-mdpi/cmb.png create mode 100644 Billing/Billing.Android/Resources/drawable-mdpi/daily.png create mode 100644 Billing/Billing.Android/Resources/drawable-mdpi/drink.png create mode 100644 Billing/Billing.Android/Resources/drawable-mdpi/food.png create mode 100644 Billing/Billing.Android/Resources/drawable-mdpi/learn.png create mode 100644 Billing/Billing.Android/Resources/drawable-mdpi/medical.png create mode 100644 Billing/Billing.Android/Resources/drawable-mdpi/rcb.png create mode 100644 Billing/Billing.Android/Resources/drawable-mdpi/trans.png create mode 100644 Billing/Billing.Android/Resources/drawable-mdpi/yuebao.png create mode 100644 Billing/Billing.Android/Resources/drawable-mdpi/zhaozhaoying.png create mode 100644 Billing/Billing.Android/Resources/drawable-xhdpi/clothes.png create mode 100644 Billing/Billing.Android/Resources/drawable-xhdpi/cmb.png create mode 100644 Billing/Billing.Android/Resources/drawable-xhdpi/daily.png create mode 100644 Billing/Billing.Android/Resources/drawable-xhdpi/drink.png create mode 100644 Billing/Billing.Android/Resources/drawable-xhdpi/food.png create mode 100644 Billing/Billing.Android/Resources/drawable-xhdpi/learn.png create mode 100644 Billing/Billing.Android/Resources/drawable-xhdpi/medical.png create mode 100644 Billing/Billing.Android/Resources/drawable-xhdpi/rcb.png create mode 100644 Billing/Billing.Android/Resources/drawable-xhdpi/trans.png create mode 100644 Billing/Billing.Android/Resources/drawable-xhdpi/yuebao.png create mode 100644 Billing/Billing.Android/Resources/drawable-xhdpi/zhaozhaoying.png create mode 100644 Billing/Billing.Android/Resources/drawable-xxhdpi/clothes.png create mode 100644 Billing/Billing.Android/Resources/drawable-xxhdpi/cmb.png create mode 100644 Billing/Billing.Android/Resources/drawable-xxhdpi/daily.png create mode 100644 Billing/Billing.Android/Resources/drawable-xxhdpi/drink.png create mode 100644 Billing/Billing.Android/Resources/drawable-xxhdpi/food.png create mode 100644 Billing/Billing.Android/Resources/drawable-xxhdpi/learn.png create mode 100644 Billing/Billing.Android/Resources/drawable-xxhdpi/medical.png create mode 100644 Billing/Billing.Android/Resources/drawable-xxhdpi/rcb.png create mode 100644 Billing/Billing.Android/Resources/drawable-xxhdpi/trans.png create mode 100644 Billing/Billing.Android/Resources/drawable-xxhdpi/yuebao.png create mode 100644 Billing/Billing.Android/Resources/drawable-xxhdpi/zhaozhaoying.png create mode 100644 Billing/Billing.Android/Resources/drawable/clothes.png create mode 100644 Billing/Billing.Android/Resources/drawable/cmb.png create mode 100644 Billing/Billing.Android/Resources/drawable/daily.png create mode 100644 Billing/Billing.Android/Resources/drawable/drink.png create mode 100644 Billing/Billing.Android/Resources/drawable/food.png create mode 100644 Billing/Billing.Android/Resources/drawable/learn.png create mode 100644 Billing/Billing.Android/Resources/drawable/medical.png create mode 100644 Billing/Billing.Android/Resources/drawable/rcb.png create mode 100644 Billing/Billing.Android/Resources/drawable/trans.png create mode 100644 Billing/Billing.Android/Resources/drawable/yuebao.png create mode 100644 Billing/Billing.Android/Resources/drawable/zhaozhaoying.png create mode 100644 Billing/Billing.iOS/Renderers/LongPressGridRenderer.cs create mode 100644 Billing/Billing.iOS/Renderers/OptionDatePickerRenderer.cs create mode 100644 Billing/Billing.iOS/Renderers/OptionTimePickerRenderer.cs create mode 100644 Billing/Billing.iOS/Resources/clothes.png create mode 100644 Billing/Billing.iOS/Resources/clothes@2x.png create mode 100644 Billing/Billing.iOS/Resources/clothes@3x.png create mode 100644 Billing/Billing.iOS/Resources/cmb.png create mode 100644 Billing/Billing.iOS/Resources/cmb@2x.png create mode 100644 Billing/Billing.iOS/Resources/cmb@3x.png create mode 100644 Billing/Billing.iOS/Resources/daily.png create mode 100644 Billing/Billing.iOS/Resources/daily@2x.png create mode 100644 Billing/Billing.iOS/Resources/daily@3x.png create mode 100644 Billing/Billing.iOS/Resources/drink.png create mode 100644 Billing/Billing.iOS/Resources/drink@2x.png create mode 100644 Billing/Billing.iOS/Resources/drink@3x.png create mode 100644 Billing/Billing.iOS/Resources/food.png create mode 100644 Billing/Billing.iOS/Resources/food@2x.png create mode 100644 Billing/Billing.iOS/Resources/food@3x.png create mode 100644 Billing/Billing.iOS/Resources/learn.png create mode 100644 Billing/Billing.iOS/Resources/learn@2x.png create mode 100644 Billing/Billing.iOS/Resources/learn@3x.png create mode 100644 Billing/Billing.iOS/Resources/medical.png create mode 100644 Billing/Billing.iOS/Resources/medical@2x.png create mode 100644 Billing/Billing.iOS/Resources/medical@3x.png create mode 100644 Billing/Billing.iOS/Resources/rcb.png create mode 100644 Billing/Billing.iOS/Resources/rcb@2x.png create mode 100644 Billing/Billing.iOS/Resources/rcb@3x.png create mode 100644 Billing/Billing.iOS/Resources/trans.png create mode 100644 Billing/Billing.iOS/Resources/trans@2x.png create mode 100644 Billing/Billing.iOS/Resources/trans@3x.png create mode 100644 Billing/Billing.iOS/Resources/yuebao.png create mode 100644 Billing/Billing.iOS/Resources/yuebao@2x.png create mode 100644 Billing/Billing.iOS/Resources/yuebao@3x.png create mode 100644 Billing/Billing.iOS/Resources/zhaozhaoying.png create mode 100644 Billing/Billing.iOS/Resources/zhaozhaoying@2x.png create mode 100644 Billing/Billing.iOS/Resources/zhaozhaoying@3x.png diff --git a/Billing.Shared/App.cs b/Billing.Shared/App.cs index 5bb2751..17e2bce 100644 --- a/Billing.Shared/App.cs +++ b/Billing.Shared/App.cs @@ -27,7 +27,7 @@ namespace Billing InitResources(); MainPage = new MainShell(); - Shell.Current.GoToAsync("//Bills"); + Shell.Current.GoToAsync("//Settings"); } public static void WriteAccounts() => StoreHelper.WriteAccounts(accounts); @@ -37,14 +37,13 @@ namespace Billing protected override void OnStart() { Helper.Debug($"personal folder: {StoreHelper.PersonalFolder}"); - Helper.Debug($"cache folder: {StoreHelper.CacheFolder}"); + Helper.Debug($"cache folder: {StoreHelper.CacheFolder}"); + + accounts = StoreHelper.GetAccounts(); + categories = StoreHelper.GetCategories(); + bills = StoreHelper.GetBills(); - Task.Run(() => - { - accounts = StoreHelper.GetAccounts(); - categories = StoreHelper.GetCategories(); - bills = StoreHelper.GetBills(); - }); + Shell.Current.GoToAsync("//Bills"); } protected override void OnResume() diff --git a/Billing.Shared/Languages/Resource.cs b/Billing.Shared/Languages/Resource.cs index 4ce5e2e..f802456 100644 --- a/Billing.Shared/Languages/Resource.cs +++ b/Billing.Shared/Languages/Resource.cs @@ -10,6 +10,10 @@ namespace Billing.Languages internal class Resource { public static string Ok => Text(nameof(Ok)); + public static string Yes => Text(nameof(Yes)); + public static string No => Text(nameof(No)); + public static string ConfirmDeleteAccount => Text(nameof(ConfirmDeleteAccount)); + public static string ConfirmDeleteBill => Text(nameof(ConfirmDeleteBill)); public static string TitleDateFormat => Text(nameof(TitleDateFormat)); public static string Cash => Text(nameof(Cash)); public static string CreditCard => Text(nameof(CreditCard)); @@ -23,6 +27,20 @@ namespace Billing.Languages public static string NeedAccount => Text(nameof(NeedAccount)); public static string AmountRequired => Text(nameof(AmountRequired)); + #region Categories + public static string Clothing => Text(nameof(Clothing)); + public static string Food => Text(nameof(Food)); + public static string Drinks => Text(nameof(Drinks)); + public static string Daily => Text(nameof(Daily)); + public static string Trans => Text(nameof(Trans)); + public static string Entertainment => Text(nameof(Entertainment)); + public static string Learn => Text(nameof(Learn)); + public static string Medical => Text(nameof(Medical)); + public static string Salary => Text(nameof(Salary)); + public static string Earnings => Text(nameof(Earnings)); + public static string Bonus => Text(nameof(Bonus)); + #endregion + static readonly Dictionary<string, LanguageResource> dict = new(); public static string Text(string name, params object[] args) diff --git a/Billing.Shared/Languages/en.xml b/Billing.Shared/Languages/en.xml index a5e2626..587d386 100644 --- a/Billing.Shared/Languages/en.xml +++ b/Billing.Shared/Languages/en.xml @@ -1,6 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <root> <Ok>OK</Ok> + <About>About</About> + <Version>Version</Version> + <Preference>Preference</Preference> + <PrimaryColor>Primary Color</PrimaryColor> <Accounts>Accounts</Accounts> <Bills>Bills</Bills> <Settings>Settings</Settings> @@ -44,4 +48,21 @@ <Store>Store</Store> <NeedAccount>Please create an account first.</NeedAccount> <AmountRequired>Please enter the amount.</AmountRequired> + <Income>Income</Income> + <Spending>Spending</Spending> + <Clothing>Clothing</Clothing> + <Food>Food</Food> + <Drinks>Drinks</Drinks> + <Daily>Daily</Daily> + <Trans>Transportation</Trans> + <Entertainment>Entertainment</Entertainment> + <Learn>Learn</Learn> + <Medical>Medical</Medical> + <Salary>Salary</Salary> + <Earnings>Earnings</Earnings> + <Bonus>Bonus</Bonus> + <Yes>Yes</Yes> + <No>No</No> + <ConfirmDeleteAccount>Are you sure you want to delete the account?</ConfirmDeleteAccount> + <ConfirmDeleteBill>Are you sure you want to delete the billing?</ConfirmDeleteBill> </root> \ No newline at end of file diff --git a/Billing.Shared/Languages/zh-CN.xml b/Billing.Shared/Languages/zh-CN.xml index f3f2c7a..ca711b0 100644 --- a/Billing.Shared/Languages/zh-CN.xml +++ b/Billing.Shared/Languages/zh-CN.xml @@ -1,6 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <root> <Ok>确定</Ok> + <About>关于</About> + <Version>版本号</Version> + <Preference>偏好</Preference> + <PrimaryColor>主要配色</PrimaryColor> <Accounts>账户</Accounts> <Bills>账单</Bills> <Settings>设置</Settings> @@ -44,4 +48,21 @@ <Store>店铺</Store> <NeedAccount>请先创建一个资金账户。</NeedAccount> <AmountRequired>请输入金额。</AmountRequired> + <Income>收入</Income> + <Spending>支出</Spending> + <Clothing>衣物</Clothing> + <Food>食品</Food> + <Drinks>饮料</Drinks> + <Daily>日常</Daily> + <Trans>交通</Trans> + <Entertainment>娱乐</Entertainment> + <Learn>学习</Learn> + <Medical>医疗</Medical> + <Salary>工资</Salary> + <Earnings>收益</Earnings> + <Bonus>奖金</Bonus> + <Yes>是</Yes> + <No>否</No> + <ConfirmDeleteAccount>是否确认删除该账户?</ConfirmDeleteAccount> + <ConfirmDeleteBill>是否确认删除该账单?</ConfirmDeleteBill> </root> \ No newline at end of file diff --git a/Billing.Shared/Store/StoreHelper.cs b/Billing.Shared/Store/StoreHelper.cs index 4c161fd..a86e5b1 100644 --- a/Billing.Shared/Store/StoreHelper.cs +++ b/Billing.Shared/Store/StoreHelper.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using Billing.Models; using Billing.UI; using Xamarin.Essentials; +using Resource = Billing.Languages.Resource; namespace Billing.Store { @@ -59,11 +60,18 @@ namespace Billing.Store list = new List<Category> { // TODO: sample categories - new() { Id = 0, Name = "早餐", Icon = "face" }, - new() { Id = 1, Name = "轻轨", Icon = "" }, - new() { Id = 2, Name = "公交车", Icon = "" }, - new() { Id = 3, Name = "出租车", Icon = "" }, - new() { Id = 4, Type = CategoryType.Income, Name = "投资", Icon = "#brand#btc" } + new() { Id = 1, Name = Resource.Clothing, Icon = "clothes" }, + new() { Id = 2, Name = Resource.Food, Icon = "food" }, + new() { Id = 3, Name = Resource.Drinks, Icon = "drink" }, + new() { Id = 4, Name = Resource.Daily, Icon = "daily" }, + new() { Id = 5, Name = Resource.Trans, Icon = "trans" }, + new() { Id = 6, Name = Resource.Entertainment, Icon = "face" }, + new() { Id = 7, Name = Resource.Learn, Icon = "learn" }, + new() { Id = 8, Name = Resource.Medical, Icon = "medical" }, + + new() { Id = 9, Type = CategoryType.Income, Name = Resource.Salary, Icon = "#brand#buffer" }, + new() { Id = 10, Type = CategoryType.Income, Name = Resource.Earnings, Icon = "#brand#btc" }, + new() { Id = 20, Type = CategoryType.Income, Name = Resource.Bonus, Icon = "dollar" } }; Task.Run(() => WriteCategoriesInternal(list)); } diff --git a/Billing.Shared/Themes/BaseTheme.cs b/Billing.Shared/Themes/BaseTheme.cs index e13bb04..70abb41 100644 --- a/Billing.Shared/Themes/BaseTheme.cs +++ b/Billing.Shared/Themes/BaseTheme.cs @@ -62,10 +62,26 @@ namespace Billing.Themes { Setters = { - new Setter { Property = Editor.FontSizeProperty, Value = Device.GetNamedSize(NamedSize.Small, typeof(Entry)) }, + new Setter { Property = Editor.FontSizeProperty, Value = Device.GetNamedSize(NamedSize.Small, typeof(Editor)) }, new Setter { Property = Editor.FontFamilyProperty, Value = robotoRegularFontFamily } } }); + Add(new Style(typeof(OptionDatePicker)) + { + Setters = + { + new Setter { Property = DatePicker.FontSizeProperty, Value = Device.GetNamedSize(NamedSize.Small, typeof(DatePicker)) }, + new Setter { Property = DatePicker.FontFamilyProperty, Value = robotoRegularFontFamily } + } + }); + Add(new Style(typeof(OptionTimePicker)) + { + Setters = + { + new Setter { Property = TimePicker.FontSizeProperty, Value = Device.GetNamedSize(NamedSize.Small, typeof(TimePicker)) }, + new Setter { Property = TimePicker.FontFamilyProperty, Value = robotoRegularFontFamily } + } + }); Add(new Style(typeof(Button)) { Setters = diff --git a/Billing.Shared/Themes/Light.cs b/Billing.Shared/Themes/Light.cs index e9a3409..2bfa5e0 100644 --- a/Billing.Shared/Themes/Light.cs +++ b/Billing.Shared/Themes/Light.cs @@ -1,4 +1,6 @@ -using Xamarin.Forms; +using Billing.UI; +using Xamarin.Essentials; +using Xamarin.Forms; namespace Billing.Themes { @@ -8,11 +10,25 @@ namespace Billing.Themes public static Light Instance => _instance ??= new Light(); - protected override Color PrimaryMauiColor => Color.FromRgb(0x18, 0x31, 0x53); + private Color primaryColor; + + protected override Color PrimaryMauiColor => primaryColor; protected override Color SecondaryMauiColor => Color.White; public Light() { + var color = Preferences.Get(Definition.PrimaryColorKey, "#183153"); + primaryColor = Color.FromHex(color); + + InitColors(); + InitResources(); + } + + public void RefreshColor(Color primary) + { + primaryColor = primary; + Clear(); + InitColors(); InitResources(); } @@ -35,7 +51,7 @@ namespace Billing.Themes Setters = { new Setter { Property = Shell.TabBarBackgroundColorProperty, Value = Color.White }, - new Setter { Property = Shell.TabBarTitleColorProperty, Value = PrimaryMauiColor }, + new Setter { Property = Shell.TabBarTitleColorProperty, Value = primaryColor }, new Setter { Property = Shell.TabBarUnselectedColorProperty, Value = Color.FromRgb(0x82, 0x82, 0x82) } } }); diff --git a/Billing.Shared/UI/Converters.cs b/Billing.Shared/UI/Converters.cs index 775cfde..9e89602 100644 --- a/Billing.Shared/UI/Converters.cs +++ b/Billing.Shared/UI/Converters.cs @@ -1,7 +1,6 @@ using Billing.Languages; using Billing.Models; using Billing.Themes; -using Billing.Views; using System; using System.Collections.Generic; using System.Globalization; @@ -26,9 +25,26 @@ namespace Billing.UI } } + public class NegativeConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is bool b) + { + return !b; + } + return value; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + public class MoneyConverter : IValueConverter { - public bool MarkVisible { get; set; } = true; + public bool MarkVisible { get; set; } public bool Absolute { get; set; } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) @@ -89,14 +105,13 @@ namespace Billing.UI } } - public class UIBillConverter : IValueConverter + public class TimeConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { - if (value is UIBill bill) + if (value is DateTime time) { - var time = bill.DateCreation.ToString("HH:mm"); - return $"{time} ({bill.Wallet})"; + return time.ToString("HH:mm"); } return string.Empty; } @@ -152,6 +167,7 @@ namespace Billing.UI { "appstore", "\uf370" }, { "apple-pay", "\uf416" }, { "btc", "\uf15a" }, + { "buffer", "\uf837" }, { "jcb", "\uf24b" }, { "master-card", "\uf1f1" }, { "visa", "\uf1f0" }, diff --git a/Billing.Shared/UI/CustomControl.cs b/Billing.Shared/UI/CustomControl.cs index 3e72352..0f69c6a 100644 --- a/Billing.Shared/UI/CustomControl.cs +++ b/Billing.Shared/UI/CustomControl.cs @@ -29,4 +29,35 @@ namespace Billing.UI LongPressed?.Invoke(this, EventArgs.Empty); } } + + public class LongPressGrid : Grid + { + public static readonly BindableProperty LongCommandProperty = BindableProperty.Create(nameof(LongCommand), typeof(Command), typeof(LongPressGrid)); + public static readonly BindableProperty LongCommandParameterProperty = BindableProperty.Create(nameof(LongCommandParameter), typeof(object), typeof(LongPressGrid)); + + public Command LongCommand + { + get => (Command)GetValue(LongCommandProperty); + set => SetValue(LongCommandProperty, value); + } + public object LongCommandParameter + { + get => GetValue(LongCommandParameterProperty); + set => SetValue(LongCommandParameterProperty, value); + } + + public void TriggerLongPress() + { + var command = LongCommand; + if (command == null) + { + return; + } + var parameter = LongCommandParameter; + if (command.CanExecute(parameter)) + { + command.Execute(parameter); + } + } + } } \ No newline at end of file diff --git a/Billing.Shared/UI/Definition.cs b/Billing.Shared/UI/Definition.cs index 2157510..eecbcab 100644 --- a/Billing.Shared/UI/Definition.cs +++ b/Billing.Shared/UI/Definition.cs @@ -11,6 +11,8 @@ namespace Billing.UI { public static partial class Definition { + public static string PrimaryColorKey = "PrimaryColor"; + public static partial (string main, long build) GetVersion(); public static partial string GetCascadiaRegularFontFamily(); public static partial string GetCascadiaBoldFontFamily(); public static partial string GetRobotoCondensedRegularFontFamily(); @@ -84,6 +86,13 @@ namespace Billing.UI { await page.DisplayAlert(title ?? page.Title, message, Resource.Ok); } + + public static async Task<bool> ShowConfirm(this Page page, string message) + { + var yes = Resource.Yes; + var result = await page.DisplayActionSheet(message, Resource.No, yes); + return result == yes; + } } public static class ModelExtensionHelper diff --git a/Billing.Shared/UI/GroupStackLayout.cs b/Billing.Shared/UI/GroupStackLayout.cs index a61f7c9..ff6fb08 100644 --- a/Billing.Shared/UI/GroupStackLayout.cs +++ b/Billing.Shared/UI/GroupStackLayout.cs @@ -182,7 +182,7 @@ namespace Billing.UI } else { - lastHeight = rowHeight + spacing; + lastHeight += rowHeight + spacing; } } lastSizeRequest = new SizeRequest(new Size(widthConstraint, lastHeight)); diff --git a/Billing.Shared/UI/ItemSelectPage.cs b/Billing.Shared/UI/ItemSelectPage.cs index 32ba843..266c60e 100644 --- a/Billing.Shared/UI/ItemSelectPage.cs +++ b/Billing.Shared/UI/ItemSelectPage.cs @@ -11,6 +11,7 @@ namespace Billing.UI public ItemSelectPage(IEnumerable<T> source) { + var iconConverter = new IconConverter(); var content = new ListView { ItemsSource = source, @@ -30,7 +31,7 @@ namespace Billing.UI Aspect = Aspect.AspectFit, VerticalOptions = LayoutOptions.Center } - .Binding(Image.SourceProperty, "Icon"), + .Binding(Image.SourceProperty, "Icon", converter: iconConverter), new Label { @@ -51,11 +52,12 @@ namespace Billing.UI Content = content; } - private void List_ItemTapped(object sender, ItemTappedEventArgs e) + private async void List_ItemTapped(object sender, ItemTappedEventArgs e) { if (e.Item is T t) { ItemTapped?.Invoke(this, t); + await Navigation.PopAsync(); } } } diff --git a/Billing.Shared/UI/OptionsCells.cs b/Billing.Shared/UI/OptionsCells.cs index ea973d8..c6712d2 100644 --- a/Billing.Shared/UI/OptionsCells.cs +++ b/Billing.Shared/UI/OptionsCells.cs @@ -6,6 +6,8 @@ namespace Billing.UI { public class OptionEntry : Entry { } public class OptionEditor : Editor { } + public class OptionDatePicker : DatePicker { } + public class OptionTimePicker : TimePicker { } public abstract class OptionCell : ViewCell { @@ -163,7 +165,6 @@ namespace Billing.UI { new Label { - HorizontalOptions = LayoutOptions.End, VerticalOptions = LayoutOptions.Center } .Binding(Label.TextProperty, nameof(Detail)) @@ -207,7 +208,6 @@ namespace Billing.UI { WidthRequest = 26, HeightRequest = 20, - HorizontalOptions = LayoutOptions.End, VerticalOptions = LayoutOptions.Center, Margin = new Thickness(6, 0) } @@ -248,6 +248,46 @@ namespace Billing.UI .Binding(Switch.IsToggledProperty, nameof(IsToggled), mode: BindingMode.TwoWay); } + public class OptionDatePickerCell : OptionCell + { + public static readonly BindableProperty DateProperty = BindableProperty.Create(nameof(Date), typeof(DateTime), typeof(OptionDatePickerCell)); + + public DateTime Date + { + get => (DateTime)GetValue(DateProperty); + set => SetValue(DateProperty, value); + } + + protected override View Content => new OptionDatePicker + { + HorizontalOptions = LayoutOptions.End, + VerticalOptions = LayoutOptions.Center + } + .Binding(DatePicker.DateProperty, nameof(Date), mode: BindingMode.TwoWay) + .DynamicResource(DatePicker.TextColorProperty, BaseTheme.TextColor) + .DynamicResource(VisualElement.BackgroundColorProperty, BaseTheme.OptionTintColor); + } + + public class OptionTimePickerCell : OptionCell + { + public static readonly BindableProperty TimeProperty = BindableProperty.Create(nameof(Time), typeof(TimeSpan), typeof(OptionTimePickerCell)); + + public TimeSpan Time + { + get => (TimeSpan)GetValue(TimeProperty); + set => SetValue(TimeProperty, value); + } + + protected override View Content => new OptionTimePicker + { + HorizontalOptions = LayoutOptions.End, + VerticalOptions = LayoutOptions.Center + } + .Binding(TimePicker.TimeProperty, nameof(Time), mode: BindingMode.TwoWay) + .DynamicResource(TimePicker.TextColorProperty, BaseTheme.TextColor) + .DynamicResource(VisualElement.BackgroundColorProperty, BaseTheme.OptionTintColor); + } + public class OptionEntryCell : OptionCell { public static readonly BindableProperty TextProperty = BindableProperty.Create(nameof(Text), typeof(string), typeof(OptionEntryCell)); diff --git a/Billing.Shared/Views/AccountPage.xaml b/Billing.Shared/Views/AccountPage.xaml index 118af0c..9e9e1f5 100644 --- a/Billing.Shared/Views/AccountPage.xaml +++ b/Billing.Shared/Views/AccountPage.xaml @@ -13,7 +13,6 @@ <ContentPage.Resources> <ui:MoneyConverter x:Key="moneyConverter"/> - <ui:MoneyConverter x:Key="money2Converter" MarkVisible="False"/> <ui:AccountCategoryConverter x:Key="categoryConverter"/> <ui:IconConverter x:Key="iconConverter"/> </ContentPage.Resources> @@ -34,7 +33,7 @@ Text="{Binding Balance, Converter={StaticResource moneyConverter}}"/> </StackLayout> <Grid Grid.Column="1" Margin="20, 0" VerticalOptions="Center" HorizontalOptions="End" - ColumnDefinitions="Auto, Auto" RowDefinitions="Auto, Auto"> + ColumnDefinitions="Auto, Auto" RowDefinitions="Auto, Auto" IsVisible="False"> <Label FontSize="Small" HorizontalOptions="End" Text="{r:Text Assets}"/> <Label Grid.Column="1" FontSize="Small" Margin="10, 0, 0, 0" HorizontalOptions="End" Text="{Binding Asset, Converter={StaticResource moneyConverter}}"/> @@ -44,20 +43,22 @@ Text="{Binding Liability, Converter={StaticResource moneyConverter}}"/> </Grid> </Grid> - <ui:GroupStackLayout x:Name="groupLayout" ItemsSource="{Binding Accounts}" Margin="0, 10, 0, 0"> + <ui:GroupStackLayout x:Name="groupLayout" ItemsSource="{Binding Accounts}" Margin="0, 10, 0, 0" GroupHeight="40"> <ui:GroupStackLayout.GroupHeaderTemplate> <DataTemplate x:DataType="v:AccountGrouping"> - <StackLayout Orientation="Horizontal" Padding="10, 0"> + <StackLayout Orientation="Horizontal" Padding="10, 0" VerticalOptions="End"> <Label Text="{Binding Key, Converter={StaticResource categoryConverter}}" TextColor="{DynamicResource SecondaryTextColor}"/> - <Label Text="{Binding Balance, Converter={StaticResource money2Converter}}" + <Label Text="{Binding Balance, Converter={StaticResource moneyConverter}}" Margin="10, 0" TextColor="{DynamicResource SecondaryTextColor}"/> </StackLayout> </DataTemplate> </ui:GroupStackLayout.GroupHeaderTemplate> <ui:GroupStackLayout.ItemTemplate> <DataTemplate x:DataType="m:Account"> - <Grid Padding="20, 0, 10, 0" ColumnSpacing="10" ColumnDefinitions="Auto, *, Auto, Auto"> + <ui:LongPressGrid Padding="20, 0, 10, 0" ColumnSpacing="10" ColumnDefinitions="Auto, *, Auto, Auto" + LongCommand="{Binding DeleteAccount, Source={x:Reference accountPage}}" + LongCommandParameter="{Binding .}"> <Grid.GestureRecognizers> <TapGestureRecognizer Command="{Binding EditAccount, Source={x:Reference accountPage}}" CommandParameter="{Binding .}"/> @@ -67,11 +68,11 @@ <Label Grid.Column="1" Text="{Binding Name}" TextColor="{DynamicResource TextColor}" HorizontalOptions="FillAndExpand" VerticalOptions="Center" FontSize="Default" FontAttributes="Bold"/> - <Label Grid.Column="2" Text="{Binding Balance, Converter={StaticResource money2Converter}}" + <Label Grid.Column="2" Text="{Binding Balance, Converter={StaticResource moneyConverter}}" TextColor="{DynamicResource SecondaryTextColor}" VerticalOptions="Center"/> <ui:TintImage Grid.Column="3" Source="right.png" HeightRequest="20"/> - </Grid> + </ui:LongPressGrid> </DataTemplate> </ui:GroupStackLayout.ItemTemplate> </ui:GroupStackLayout> diff --git a/Billing.Shared/Views/AccountPage.xaml.cs b/Billing.Shared/Views/AccountPage.xaml.cs index a531815..bd0782d 100644 --- a/Billing.Shared/Views/AccountPage.xaml.cs +++ b/Billing.Shared/Views/AccountPage.xaml.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Billing.Languages; using Billing.Models; using Billing.UI; using Xamarin.Forms; @@ -20,6 +21,7 @@ namespace Billing.Views public List<AccountGrouping> Accounts => (List<AccountGrouping>)GetValue(AccountsProperty); public Command EditAccount { get; } + public Command DeleteAccount { get; } private readonly List<AccountGrouping> accounts = new(); private bool initialized; @@ -27,6 +29,7 @@ namespace Billing.Views public AccountPage() { EditAccount = new Command(OnEditAccount); + DeleteAccount = new Command(OnDeleteAccount); SetValue(AccountsProperty, accounts); InitializeComponent(); @@ -34,7 +37,7 @@ namespace Billing.Views protected override void OnAppearing() { - if (!initialized) + if (!initialized || accounts.Count == 0) { initialized = true; accounts.Clear(); @@ -52,6 +55,12 @@ namespace Billing.Views } } groupLayout.Refresh(accounts); + RefreshBalance(); + } + + private void RefreshBalance() + { + SetValue(BalanceProperty, App.Accounts.Sum(a => a.Balance)); } private void AddToAccountGroup(Account account) @@ -94,6 +103,35 @@ namespace Billing.Views } } + private async void OnDeleteAccount(object o) + { + if (Tap.IsBusy) + { + return; + } + using (Tap.Start()) + { + if (o is Account account) + { + var result = await this.ShowConfirm(Resource.ConfirmDeleteAccount); + if (result) + { + var group = accounts.FirstOrDefault(a => a.Key == account.Category); + if (group == null) + { + Helper.Error("account.delete", "unexpected deleting account, cannot find the current category"); + return; + } + group.Remove(account); + groupLayout.Refresh(accounts); + RefreshBalance(); + + _ = Task.Run(App.WriteAccounts); + } + } + } + } + private void AccountChecked(object sender, AccountEventArgs e) { if (e.Account.Id < 0) @@ -102,6 +140,7 @@ namespace Billing.Views AddToAccountGroup(e.Account); } groupLayout.Refresh(accounts); + RefreshBalance(); Task.Run(App.WriteAccounts); } diff --git a/Billing.Shared/Views/AddAccountPage.xaml.cs b/Billing.Shared/Views/AddAccountPage.xaml.cs index bac3616..dafd178 100644 --- a/Billing.Shared/Views/AddAccountPage.xaml.cs +++ b/Billing.Shared/Views/AddAccountPage.xaml.cs @@ -152,10 +152,9 @@ namespace Billing.Views } } - private async void Category_ItemTapped(object sender, SelectItem<AccountCategory> e) + private void Category_ItemTapped(object sender, SelectItem<AccountCategory> e) { Category = e.Value; - await Navigation.PopAsync(); } } diff --git a/Billing.Shared/Views/AddBillPage.xaml b/Billing.Shared/Views/AddBillPage.xaml index fb85d3c..ee6f174 100644 --- a/Billing.Shared/Views/AddBillPage.xaml +++ b/Billing.Shared/Views/AddBillPage.xaml @@ -39,9 +39,11 @@ <ui:OptionEntryCell Height="44" Icon="online.png" Title="{r:Text Store}" Text="{Binding Store, Mode=TwoWay}"/> - <ui:OptionSelectCell Height="44" Icon="bars.png" - Title="{r:Text CreatedTime}" - Detail="{Binding CreatedTime}"/> + <ui:OptionDatePickerCell Height="44" Icon="bars.png" + Title="{r:Text CreatedTime}" + Date="{Binding CreatedDate, Mode=TwoWay}"/> + <ui:OptionTimePickerCell Height="44" + Time="{Binding CreatedTime, Mode=TwoWay}"/> </TableSection> <TableSection> <TableSection.Title> diff --git a/Billing.Shared/Views/AddBillPage.xaml.cs b/Billing.Shared/Views/AddBillPage.xaml.cs index 9934f42..ad49b16 100644 --- a/Billing.Shared/Views/AddBillPage.xaml.cs +++ b/Billing.Shared/Views/AddBillPage.xaml.cs @@ -15,7 +15,8 @@ namespace Billing.Views private static readonly BindableProperty CategoryNameProperty = BindableProperty.Create(nameof(CategoryName), typeof(string), typeof(AddBillPage)); private static readonly BindableProperty WalletNameProperty = BindableProperty.Create(nameof(WalletName), typeof(string), typeof(AddBillPage)); private static readonly BindableProperty StoreProperty = BindableProperty.Create(nameof(Store), typeof(string), typeof(AddBillPage)); - private static readonly BindableProperty CreatedTimeProperty = BindableProperty.Create(nameof(CreatedTime), typeof(DateTime), typeof(AddBillPage)); + private static readonly BindableProperty CreatedDateProperty = BindableProperty.Create(nameof(CreatedDate), typeof(DateTime), typeof(AddBillPage)); + private static readonly BindableProperty CreatedTimeProperty = BindableProperty.Create(nameof(CreatedTime), typeof(TimeSpan), typeof(AddBillPage)); private static readonly BindableProperty NoteProperty = BindableProperty.Create(nameof(Note), typeof(string), typeof(AddBillPage)); public string Amount @@ -35,9 +36,14 @@ namespace Billing.Views get => (string)GetValue(StoreProperty); set => SetValue(StoreProperty, value); } - public DateTime CreatedTime + public DateTime CreatedDate { - get => (DateTime)GetValue(CreatedTimeProperty); + get => (DateTime)GetValue(CreatedDateProperty); + set => SetValue(CreatedDateProperty, value); + } + public TimeSpan CreatedTime + { + get => (TimeSpan)GetValue(CreatedTimeProperty); set => SetValue(CreatedTimeProperty, value); } public string Note @@ -86,14 +92,15 @@ namespace Billing.Views { if (bill != null) { - Amount = bill.Amount.ToString(CultureInfo.InvariantCulture); + Amount = Math.Abs(bill.Amount).ToString(CultureInfo.InvariantCulture); Name = bill.Name; walletId = bill.WalletId; categoryId = bill.CategoryId; SetValue(WalletNameProperty, App.Accounts.FirstOrDefault(a => a.Id == walletId)?.Name); SetValue(CategoryNameProperty, App.Categories.FirstOrDefault(c => c.Id == categoryId)?.Name); Store = bill.Store; - CreatedTime = bill.CreateTime; + CreatedDate = bill.CreateTime.Date; + CreatedTime = bill.CreateTime.TimeOfDay; Note = bill.Note; } else @@ -104,7 +111,8 @@ namespace Billing.Views var firstCategory = App.Categories.First(); categoryId = firstCategory.Id; SetValue(CategoryNameProperty, firstCategory.Name); - CreatedTime = createDate.Date.Add(DateTime.Now.TimeOfDay); + CreatedDate = createDate.Date; + CreatedTime = DateTime.Now.TimeOfDay; } } @@ -132,13 +140,18 @@ namespace Billing.Views amount *= -1; } await Navigation.PopAsync(); + var name = Name; + if (string.IsNullOrWhiteSpace(name)) + { + name = category.Name; + } if (bill != null) { bill.Amount = amount; - bill.Name = Name; + bill.Name = name; bill.CategoryId = categoryId; bill.WalletId = walletId; - bill.CreateTime = CreatedTime; + bill.CreateTime = CreatedDate.Date.Add(CreatedTime); bill.Store = Store; bill.Note = Note; } @@ -146,24 +159,66 @@ namespace Billing.Views { Id = -1, Amount = amount, - Name = Name, + Name = name, CategoryId = categoryId, WalletId = walletId, - CreateTime = CreatedTime, + CreateTime = CreatedDate.Date.Add(CreatedTime), Store = Store, Note = Note }); } } - private void OnSelectCategory() + private async void OnSelectCategory() { - - } - - private void OnSelectWallet() + if (Tap.IsBusy) + { + return; + } + using (Tap.Start()) + { + var source = App.Categories.Select(c => new SelectItem<int> + { + Value = c.Id, + Name = c.Name, + Icon = c.Icon + }); + var page = new ItemSelectPage<SelectItem<int>>(source); + page.ItemTapped += Category_ItemTapped; + await Navigation.PushAsync(page); + } + } + + private void Category_ItemTapped(object sender, SelectItem<int> category) + { + categoryId = category.Value; + SetValue(CategoryNameProperty, category.Name); + } + + private async void OnSelectWallet() { - - } + if (Tap.IsBusy) + { + return; + } + using (Tap.Start()) + { + var source = App.Accounts.Select(a => new SelectItem<int> + { + Value = a.Id, + Name = a.Name, + Icon = a.Icon + }); + var page = new ItemSelectPage<SelectItem<int>>(source); + page.ItemTapped += Wallet_ItemTapped; + await Navigation.PushAsync(page); + } + } + + private void Wallet_ItemTapped(object sender, SelectItem<int> account) + { + walletId = account.Value; + SetValue(WalletNameProperty, account.Name); + } } } \ No newline at end of file diff --git a/Billing.Shared/Views/BillPage.xaml b/Billing.Shared/Views/BillPage.xaml index daa1970..687a5ce 100644 --- a/Billing.Shared/Views/BillPage.xaml +++ b/Billing.Shared/Views/BillPage.xaml @@ -12,9 +12,11 @@ <ContentPage.Resources> <ui:TitleDateConverter x:Key="titleDateConverter"/> - <ui:MoneyConverter x:Key="moneyConverter" MarkVisible="False" Absolute="True"/> + <ui:NegativeConverter x:Key="negativeConverter"/> + <ui:MoneyConverter x:Key="moneyConverter" Absolute="True"/> + <ui:MoneyConverter x:Key="moneyRawConverter"/> <ui:BalanceColorConverter x:Key="colorConverter"/> - <ui:UIBillConverter x:Key="billConverter"/> + <ui:TimeConverter x:Key="timeConverter"/> <ui:IconConverter x:Key="iconConverter"/> </ContentPage.Resources> @@ -36,28 +38,51 @@ <Grid RowDefinitions="Auto, Auto, *"> <ui:BillingDate x:Name="billingDate" SelectedDate="{Binding SelectedDate}" DateSelected="OnDateSelected"/> - <Grid Grid.Row="1" Padding="8" ColumnSpacing="8" ColumnDefinitions="Auto, *, Auto" - BackgroundColor="{DynamicResource PromptBackgroundColor}"> - <ui:TintImage Source="bars.png" WidthRequest="23" HeightRequest="23"/> - <Label Grid.Column="1" Text="{r:Text NoRecords}" TextColor="{DynamicResource TextColor}" - VerticalOptions="Center"/> - <StackLayout Grid.Column="2" Orientation="Horizontal" Spacing="6"> + <Grid Grid.Row="1" Padding="8" ColumnSpacing="8" ColumnDefinitions="*, Auto" + BackgroundColor="{DynamicResource PromptBackgroundColor}" + IsVisible="{Binding NoBills}"> + <Label Text="{r:Text NoRecords}" TextColor="{DynamicResource TextColor}" + VerticalOptions="Center" FontSize="12"/> + <StackLayout Grid.Column="1" Orientation="Horizontal" Spacing="6"> <StackLayout.GestureRecognizers> <TapGestureRecognizer Command="{Binding EditBilling}"/> </StackLayout.GestureRecognizers> <Label Text="{r:Text TapToMemo}" TextColor="{DynamicResource PrimaryColor}" - VerticalOptions="Center"/> + VerticalOptions="Center" FontSize="12"/> <ui:TintImage Source="right.png" WidthRequest="24" HeightRequest="24"/> </StackLayout> </Grid> + <Grid Grid.Row="1" Padding="8" ColumnSpacing="8" ColumnDefinitions="*, Auto" HeightRequest="24" + BackgroundColor="{DynamicResource PromptBackgroundColor}" + IsVisible="{Binding NoBills, Converter={StaticResource negativeConverter}}"> + <StackLayout Grid.Column="1" Orientation="Horizontal" Spacing="6"> + <Label Text="{r:Text Income}" TextColor="{DynamicResource GreenColor}" + VerticalOptions="Center" FontSize="12"/> + <Label Text="{Binding Income, Converter={StaticResource moneyConverter}}" + TextColor="{DynamicResource TextColor}" + VerticalOptions="Center" FontSize="12"/> + <Label Text="{r:Text Spending}" TextColor="{DynamicResource RedColor}" + VerticalOptions="Center" FontSize="12" Margin="10, 0, 0, 0"/> + <Label Text="{Binding Spending, Converter={StaticResource moneyConverter}}" + TextColor="{DynamicResource TextColor}" + VerticalOptions="Center" FontSize="12"/> + <Label Text="{r:Text Balance}" + VerticalOptions="Center" FontSize="12" Margin="10, 0, 0, 0"/> + <Label Text="{Binding Balance, Converter={StaticResource moneyRawConverter}}" + TextColor="{DynamicResource TextColor}" + VerticalOptions="Center" FontSize="12"/> + </StackLayout> + </Grid> <!-- bill list --> <ScrollView Grid.Row="2"> <ui:GroupStackLayout x:Name="billsLayout" ItemsSource="{Binding Bills}" Margin="0, 10, 0, 0" RowHeight="50"> <ui:GroupStackLayout.ItemTemplate> <DataTemplate x:DataType="v:UIBill"> - <Grid Padding="20, 0, 10, 0" ColumnSpacing="10" - ColumnDefinitions="Auto, *, Auto" RowDefinitions="Auto, Auto"> + <ui:LongPressGrid Padding="20, 0" ColumnSpacing="10" + ColumnDefinitions="Auto, *, Auto" RowDefinitions="Auto, Auto" + LongCommand="{Binding DeleteBilling, Source={x:Reference billPage}}" + LongCommandParameter="{Binding .}"> <Grid.GestureRecognizers> <TapGestureRecognizer Command="{Binding EditBilling, Source={x:Reference billPage}}" CommandParameter="{Binding .}"/> @@ -70,10 +95,13 @@ <Label Grid.Column="2" Text="{Binding Amount, Converter={StaticResource moneyConverter}}" TextColor="{Binding Amount, Converter={StaticResource colorConverter}}" VerticalOptions="Center"/> - <Label Grid.Row="1" Grid.Column="1" Text="{Binding ., Converter={StaticResource billConverter}}" - FontSize="10" - TextColor="{DynamicResource SecondaryTextColor}"/> - </Grid> + <StackLayout Grid.Row="1" Grid.Column="1" Spacing="6" Orientation="Horizontal"> + <Label Text="{Binding DateCreation, Converter={StaticResource timeConverter}}" + FontSize="10" TextColor="{DynamicResource SecondaryTextColor}"/> + <Label Text="{Binding Wallet}" + FontSize="10" TextColor="{DynamicResource SecondaryTextColor}"/> + </StackLayout> + </ui:LongPressGrid> </DataTemplate> </ui:GroupStackLayout.ItemTemplate> </ui:GroupStackLayout> diff --git a/Billing.Shared/Views/BillPage.xaml.cs b/Billing.Shared/Views/BillPage.xaml.cs index 2e6afac..45125ac 100644 --- a/Billing.Shared/Views/BillPage.xaml.cs +++ b/Billing.Shared/Views/BillPage.xaml.cs @@ -13,6 +13,10 @@ namespace Billing.Views { private static readonly BindableProperty SelectedDateProperty = BindableProperty.Create(nameof(SelectedDate), typeof(DateTime), typeof(BillPage)); private static readonly BindableProperty BillsProperty = BindableProperty.Create(nameof(Bills), typeof(List<UIBill>), typeof(BillPage)); + private static readonly BindableProperty NoBillsProperty = BindableProperty.Create(nameof(NoBills), typeof(bool), typeof(BillPage)); + private static readonly BindableProperty IncomeProperty = BindableProperty.Create(nameof(Income), typeof(decimal), typeof(BillPage)); + private static readonly BindableProperty SpendingProperty = BindableProperty.Create(nameof(Spending), typeof(decimal), typeof(BillPage)); + private static readonly BindableProperty BalanceProperty = BindableProperty.Create(nameof(Balance), typeof(decimal), typeof(BillPage)); public DateTime SelectedDate { @@ -24,12 +28,18 @@ namespace Billing.Views get => (List<UIBill>)GetValue(BillsProperty); set => SetValue(BillsProperty, value); } + public bool NoBills => (bool)GetValue(NoBillsProperty); + public decimal Income => (decimal)GetValue(IncomeProperty); + public decimal Spending => (decimal)GetValue(SpendingProperty); + public decimal Balance => (decimal)GetValue(BalanceProperty); public Command EditBilling { get; } + public Command DeleteBilling { get; } public BillPage() { EditBilling = new Command(OnEditBilling); + DeleteBilling = new Command(OnDeleteBilling); InitializeComponent(); @@ -45,6 +55,17 @@ namespace Billing.Views b.CreateTime.Month == e.Date.Month && b.CreateTime.Day == e.Date.Day); Bills = new List<UIBill>(bills.Select(b => WrapBill(b))); + RefreshBalance(Bills); + } + + private void RefreshBalance(List<UIBill> bills) + { + SetValue(NoBillsProperty, bills.Count == 0); + var income = bills.Where(b => b.Amount > 0).Sum(b => b.Amount); + var spending = -bills.Where(b => b.Amount < 0).Sum(b => b.Amount); + SetValue(IncomeProperty, income); + SetValue(SpendingProperty, spending); + SetValue(BalanceProperty, income - spending); } private UIBill WrapBill(Bill b) @@ -101,6 +122,31 @@ namespace Billing.Views } } + private async void OnDeleteBilling(object o) + { + if (Tap.IsBusy) + { + return; + } + using (Tap.Start()) + { + if (o is UIBill bill) + { + var result = await this.ShowConfirm(Resource.ConfirmDeleteBill); + if (result) + { + var bills = Bills; + bills.Remove(bill); + App.Bills.Remove(bill.Bill); + billsLayout.Refresh(bills); + RefreshBalance(bills); + + _ = Task.Run(App.WriteBills); + } + } + } + } + private void OnBillChecked(object sender, Bill e) { if (e.Id < 0) @@ -127,6 +173,7 @@ namespace Billing.Views UpdateBill(bill); } } + RefreshBalance(Bills); Task.Run(App.WriteBills); } diff --git a/Billing.Shared/Views/IconSelectPage.xaml.cs b/Billing.Shared/Views/IconSelectPage.xaml.cs index 33df746..404e67e 100644 --- a/Billing.Shared/Views/IconSelectPage.xaml.cs +++ b/Billing.Shared/Views/IconSelectPage.xaml.cs @@ -40,7 +40,11 @@ namespace Billing.Views new() { Icon = BaseModel.ICON_DEFAULT }, new() { Icon = "wallet" }, new() { Icon = "creditcard" }, - new() { Icon = "debitcard" } + new() { Icon = "debitcard" }, + new() { Icon = "cmb" }, + new() { Icon = "rcb" }, + new() { Icon = "yuebao" }, + new() { Icon = "zhaozhaoying" } }; source.AddRange(IconConverter.IconPreset.Select(icon => new BillingIcon { Icon = $"#brand#{icon.Key}" })); foreach (var icon in source) diff --git a/Billing.Shared/Views/SettingPage.xaml b/Billing.Shared/Views/SettingPage.xaml index 9387f6e..7628833 100644 --- a/Billing.Shared/Views/SettingPage.xaml +++ b/Billing.Shared/Views/SettingPage.xaml @@ -2,12 +2,27 @@ <ui:BillingPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:r="clr-namespace:Billing.Languages" xmlns:ui="clr-namespace:Billing.UI" + xmlns:v="clr-namespace:Billing.Views" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Billing.Views.SettingPage" - Title="{r:Text Settings}"> - <StackLayout> - <Label Text="Welcome to Settings Page!" - VerticalOptions="CenterAndExpand" - HorizontalOptions="CenterAndExpand" /> - </StackLayout> + x:Name="settingPage" + x:DataType="v:SettingPage" + Title="{r:Text Settings}" + BindingContext="{x:Reference settingPage}"> + + <TableView Intent="Settings" RowHeight="44"> + <TableSection Title="{r:Text About}"> + <ui:OptionTextCell Title="{r:Text Version}" + Detail="{Binding Version}"/> + </TableSection> + <TableSection Title="{r:Text Preference}"> + <ui:OptionEntryCell Title="{r:Text PrimaryColor}" + Text="{Binding Red, Mode=TwoWay}" + Keyboard="Numeric"/> + <ui:OptionEntryCell Text="{Binding Green, Mode=TwoWay}" + Keyboard="Numeric"/> + <ui:OptionEntryCell Text="{Binding Blue, Mode=TwoWay}" + Keyboard="Numeric"/> + </TableSection> + </TableView> </ui:BillingPage> \ No newline at end of file diff --git a/Billing.Shared/Views/SettingPage.xaml.cs b/Billing.Shared/Views/SettingPage.xaml.cs index a6d9bbe..ddc25aa 100644 --- a/Billing.Shared/Views/SettingPage.xaml.cs +++ b/Billing.Shared/Views/SettingPage.xaml.cs @@ -1,12 +1,61 @@ +using Billing.Themes; using Billing.UI; +using Xamarin.Essentials; +using Xamarin.Forms; namespace Billing.Views { public partial class SettingPage : BillingPage { + private static readonly BindableProperty VersionProperty = BindableProperty.Create(nameof(Version), typeof(string), typeof(SettingPage)); + private static readonly BindableProperty RedProperty = BindableProperty.Create(nameof(Red), typeof(byte), typeof(SettingPage)); + private static readonly BindableProperty GreenProperty = BindableProperty.Create(nameof(Green), typeof(byte), typeof(SettingPage)); + private static readonly BindableProperty BlueProperty = BindableProperty.Create(nameof(Blue), typeof(byte), typeof(SettingPage)); + + public string Version => (string)GetValue(VersionProperty); + public byte Red + { + get => (byte)GetValue(RedProperty); + set => SetValue(RedProperty, value); + } + public byte Green + { + get => (byte)GetValue(GreenProperty); + set => SetValue(GreenProperty, value); + } + public byte Blue + { + get => (byte)GetValue(BlueProperty); + set => SetValue(BlueProperty, value); + } + public SettingPage() { InitializeComponent(); + + var (main, build) = Definition.GetVersion(); + SetValue(VersionProperty, $"{main} ({build})"); + } + + protected override void OnAppearing() + { + base.OnAppearing(); + + //SetValue(VersionProperty, $"{AppInfo.VersionString} ({AppInfo.BuildString})"); + var colorString = Preferences.Get(Definition.PrimaryColorKey, "#183153"); + var color = Color.FromHex(colorString); + Red = (byte)(color.R * 255); + Green = (byte)(color.G * 255); + Blue = (byte)(color.B * 255); + } + + protected override void OnDisappearing() + { + base.OnDisappearing(); + + var color = Color.FromRgb(Red, Green, Blue); + Preferences.Set(Definition.PrimaryColorKey, color.ToHex()); + Light.Instance.RefreshColor(color); } } } \ No newline at end of file diff --git a/Billing/Billing.Android/Billing.Android.csproj b/Billing/Billing.Android/Billing.Android.csproj index 3cd7920..9190c59 100644 --- a/Billing/Billing.Android/Billing.Android.csproj +++ b/Billing/Billing.Android/Billing.Android.csproj @@ -74,7 +74,10 @@ <Compile Include="MainActivity.cs" /> <Compile Include="PlatformCulture.cs" /> <Compile Include="Renderers\LongPressButtonRenderer.cs" /> + <Compile Include="Renderers\LongPressGridRenderer.cs" /> + <Compile Include="Renderers\OptionDatePickerRenderer.cs" /> <Compile Include="Renderers\OptionEntryRenderer.cs" /> + <Compile Include="Renderers\OptionTimePickerRenderer.cs" /> <Compile Include="Renderers\TintImageRenderer.cs" /> <Compile Include="Resources\Resource.designer.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> @@ -199,6 +202,138 @@ <AndroidResource Include="Resources\drawable-xxhdpi\wallet.png" /> <AndroidResource Include="Resources\drawable-xxhdpi\yuan.png" /> </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable\cmb.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable\rcb.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable\yuebao.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable\zhaozhaoying.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-mdpi\cmb.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-mdpi\rcb.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-mdpi\yuebao.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-mdpi\zhaozhaoying.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xhdpi\cmb.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xhdpi\rcb.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xhdpi\yuebao.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xhdpi\zhaozhaoying.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xxhdpi\cmb.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xxhdpi\rcb.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xxhdpi\yuebao.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xxhdpi\zhaozhaoying.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable\clothes.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable\daily.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable\drink.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable\food.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable\learn.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable\medical.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable\trans.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-mdpi\clothes.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-mdpi\daily.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-mdpi\drink.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-mdpi\food.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-mdpi\learn.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-mdpi\medical.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-mdpi\trans.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xhdpi\clothes.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xhdpi\daily.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xhdpi\drink.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xhdpi\food.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xhdpi\learn.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xhdpi\medical.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xhdpi\trans.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xxhdpi\clothes.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xxhdpi\daily.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xxhdpi\drink.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xxhdpi\food.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xxhdpi\learn.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xxhdpi\medical.png" /> + </ItemGroup> + <ItemGroup> + <AndroidResource Include="Resources\drawable-xxhdpi\trans.png" /> + </ItemGroup> <Import Project="..\..\Billing.Shared\Billing.Shared.projitems" Label="Shared" /> <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" /> </Project> \ No newline at end of file diff --git a/Billing/Billing.Android/Definition.cs b/Billing/Billing.Android/Definition.cs index a8294bf..16ebce1 100644 --- a/Billing/Billing.Android/Definition.cs +++ b/Billing/Billing.Android/Definition.cs @@ -2,6 +2,17 @@ { public static partial class Definition { + public static partial (string main, long build) GetVersion() + { + var context = Android.App.Application.Context; + var manager = context.PackageManager; + var info = manager.GetPackageInfo(context.PackageName, 0); + + string version = info.VersionName; + long build = info.LongVersionCode; + + return (version, build); + } public static partial string GetCascadiaRegularFontFamily() => "CascadiaCode-Regular.ttf#CascadiaCode-Regular"; public static partial string GetCascadiaBoldFontFamily() => "CascadiaCode-Bold.ttf#CascadiaCode-Bold"; public static partial string GetRobotoCondensedRegularFontFamily() => "RobotoCondensed-Regular.ttf#RobotoCondensed-Regular"; diff --git a/Billing/Billing.Android/MainActivity.cs b/Billing/Billing.Android/MainActivity.cs index d9f11a9..c3cbbc4 100644 --- a/Billing/Billing.Android/MainActivity.cs +++ b/Billing/Billing.Android/MainActivity.cs @@ -10,6 +10,7 @@ namespace Billing.Droid Icon = "@mipmap/icon", RoundIcon = "@mipmap/icon_round", Theme = "@style/MainTheme", + ScreenOrientation = ScreenOrientation.Portrait, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize)] public class MainActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity { diff --git a/Billing/Billing.Android/Properties/AndroidManifest.xml b/Billing/Billing.Android/Properties/AndroidManifest.xml index 21f8ce6..a98d047 100644 --- a/Billing/Billing.Android/Properties/AndroidManifest.xml +++ b/Billing/Billing.Android/Properties/AndroidManifest.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="2" android:versionName="0.22.301" package="org.tsanie.billing" android:installLocation="auto"> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="3" android:versionName="0.3.303" package="org.tsanie.billing" android:installLocation="auto"> <uses-sdk android:minSdkVersion="24" android:targetSdkVersion="31" /> <application android:label="Billing" android:theme="@style/MainTheme"></application> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> diff --git a/Billing/Billing.Android/Renderers/LongPressButtonRenderer.cs b/Billing/Billing.Android/Renderers/LongPressButtonRenderer.cs index 99350b2..218c7f0 100644 --- a/Billing/Billing.Android/Renderers/LongPressButtonRenderer.cs +++ b/Billing/Billing.Android/Renderers/LongPressButtonRenderer.cs @@ -17,9 +17,17 @@ namespace Billing.Droid.Renderers { base.OnElementChanged(e); - if (Element is LongPressButton && Control != null) + if (Control != null) { - Control.LongClick += Control_LongClick; + if (e.OldElement != null) + { + Control.LongClick -= Control_LongClick; + } + + if (e.NewElement != null) + { + Control.LongClick += Control_LongClick; + } } } diff --git a/Billing/Billing.Android/Renderers/LongPressGridRenderer.cs b/Billing/Billing.Android/Renderers/LongPressGridRenderer.cs new file mode 100644 index 0000000..6b11828 --- /dev/null +++ b/Billing/Billing.Android/Renderers/LongPressGridRenderer.cs @@ -0,0 +1,63 @@ +using Android.Content; +using Billing.Droid.Renderers; +using Billing.UI; +using System; +using System.Linq; +using Xamarin.Forms; +using Xamarin.Forms.Platform.Android; + +[assembly: ExportRenderer(typeof(LongPressGrid), typeof(LongPressGridRenderer))] +namespace Billing.Droid.Renderers +{ + public class LongPressGridRenderer : ViewRenderer<LongPressGrid, Android.Views.View> + { + public LongPressGridRenderer(Context context) : base(context) + { + } + + protected override void OnElementChanged(ElementChangedEventArgs<LongPressGrid> e) + { + base.OnElementChanged(e); + + if (e.OldElement != null) + { + if (Control != null) + { + Control.LongClick -= Grid_LongClick; + } + } + + if (e.NewElement != null) + { + if (Control == null) + { + var view = new Android.Views.View(Context) + { + Clickable = true, + LongClickable = true + }; + view.Click += Grid_Click; + view.LongClick += Grid_LongClick; + SetNativeControl(view); + } + } + } + + private void Grid_Click(object sender, EventArgs e) + { + var gesture = Element?.GestureRecognizers?.FirstOrDefault(g => g is TapGestureRecognizer); + if (gesture is TapGestureRecognizer tap) + { + if (tap.Command != null && tap.Command.CanExecute(tap.CommandParameter)) + { + tap.Command.Execute(tap.CommandParameter); + } + } + } + + private void Grid_LongClick(object sender, LongClickEventArgs e) + { + Element.TriggerLongPress(); + } + } +} \ No newline at end of file diff --git a/Billing/Billing.Android/Renderers/OptionDatePickerRenderer.cs b/Billing/Billing.Android/Renderers/OptionDatePickerRenderer.cs new file mode 100644 index 0000000..360611e --- /dev/null +++ b/Billing/Billing.Android/Renderers/OptionDatePickerRenderer.cs @@ -0,0 +1,28 @@ +using Android.Content; +using Android.Graphics.Drawables; +using Billing.Droid.Renderers; +using Billing.UI; +using Xamarin.Forms; +using Xamarin.Forms.Platform.Android; + +[assembly: ExportRenderer(typeof(OptionDatePicker), typeof(OptionDatePickerRenderer))] +namespace Billing.Droid.Renderers +{ + public class OptionDatePickerRenderer : DatePickerRenderer + { + public OptionDatePickerRenderer(Context context) : base(context) + { + } + + protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e) + { + base.OnElementChanged(e); + + if (e.NewElement != null) + { + var drawable = new ColorDrawable(e.NewElement.BackgroundColor.ToAndroid()); + Control.SetBackground(drawable); + } + } + } +} \ No newline at end of file diff --git a/Billing/Billing.Android/Renderers/OptionTimePickerRenderer.cs b/Billing/Billing.Android/Renderers/OptionTimePickerRenderer.cs new file mode 100644 index 0000000..7dcbb21 --- /dev/null +++ b/Billing/Billing.Android/Renderers/OptionTimePickerRenderer.cs @@ -0,0 +1,28 @@ +using Android.Content; +using Android.Graphics.Drawables; +using Billing.Droid.Renderers; +using Billing.UI; +using Xamarin.Forms; +using Xamarin.Forms.Platform.Android; + +[assembly: ExportRenderer(typeof(OptionTimePicker), typeof(OptionTimePickerRenderer))] +namespace Billing.Droid.Renderers +{ + public class OptionTimePickerRenderer : TimePickerRenderer + { + public OptionTimePickerRenderer(Context context) : base(context) + { + } + + protected override void OnElementChanged(ElementChangedEventArgs<TimePicker> e) + { + base.OnElementChanged(e); + + if (e.NewElement != null) + { + var drawable = new ColorDrawable(e.NewElement.BackgroundColor.ToAndroid()); + Control.SetBackground(drawable); + } + } + } +} \ No newline at end of file diff --git a/Billing/Billing.Android/Resources/Resource.designer.cs b/Billing/Billing.Android/Resources/Resource.designer.cs index 0aebe8a..dc14601 100644 --- a/Billing/Billing.Android/Resources/Resource.designer.cs +++ b/Billing/Billing.Android/Resources/Resource.designer.cs @@ -16532,208 +16532,241 @@ namespace Billing.Droid public const int check = 2131165282; // aapt resource value: 0x7F070063 - public const int creditcard = 2131165283; + public const int clothes = 2131165283; // aapt resource value: 0x7F070064 - public const int debitcard = 2131165284; + public const int cmb = 2131165284; // aapt resource value: 0x7F070065 - public const int design_fab_background = 2131165285; + public const int creditcard = 2131165285; // aapt resource value: 0x7F070066 - public const int design_ic_visibility = 2131165286; + public const int daily = 2131165286; // aapt resource value: 0x7F070067 - public const int design_ic_visibility_off = 2131165287; + public const int debitcard = 2131165287; // aapt resource value: 0x7F070068 - public const int design_password_eye = 2131165288; + public const int design_fab_background = 2131165288; // aapt resource value: 0x7F070069 - public const int design_snackbar_background = 2131165289; + public const int design_ic_visibility = 2131165289; // aapt resource value: 0x7F07006A - public const int dollar = 2131165290; + public const int design_ic_visibility_off = 2131165290; // aapt resource value: 0x7F07006B - public const int face = 2131165291; - - // aapt resource value: 0x7F070074 - public const int icon_foreground = 2131165300; + public const int design_password_eye = 2131165291; // aapt resource value: 0x7F07006C - public const int ic_arrow_down_24dp = 2131165292; + public const int design_snackbar_background = 2131165292; // aapt resource value: 0x7F07006D - public const int ic_clock_black_24dp = 2131165293; + public const int dollar = 2131165293; // aapt resource value: 0x7F07006E - public const int ic_default = 2131165294; + public const int drink = 2131165294; // aapt resource value: 0x7F07006F - public const int ic_keyboard_black_24dp = 2131165295; + public const int face = 2131165295; // aapt resource value: 0x7F070070 - public const int ic_mtrl_checked_circle = 2131165296; - - // aapt resource value: 0x7F070071 - public const int ic_mtrl_chip_checked_black = 2131165297; - - // aapt resource value: 0x7F070072 - public const int ic_mtrl_chip_checked_circle = 2131165298; - - // aapt resource value: 0x7F070073 - public const int ic_mtrl_chip_close_circle = 2131165299; - - // aapt resource value: 0x7F070075 - public const int material_cursor_drawable = 2131165301; - - // aapt resource value: 0x7F070076 - public const int material_ic_calendar_black_24dp = 2131165302; - - // aapt resource value: 0x7F070077 - public const int material_ic_clear_black_24dp = 2131165303; - - // aapt resource value: 0x7F070078 - public const int material_ic_edit_black_24dp = 2131165304; + public const int food = 2131165296; // aapt resource value: 0x7F070079 - public const int material_ic_keyboard_arrow_left_black_24dp = 2131165305; + public const int icon_foreground = 2131165305; + + // aapt resource value: 0x7F070071 + public const int ic_arrow_down_24dp = 2131165297; + + // aapt resource value: 0x7F070072 + public const int ic_clock_black_24dp = 2131165298; + + // aapt resource value: 0x7F070073 + public const int ic_default = 2131165299; + + // aapt resource value: 0x7F070074 + public const int ic_keyboard_black_24dp = 2131165300; + + // aapt resource value: 0x7F070075 + public const int ic_mtrl_checked_circle = 2131165301; + + // aapt resource value: 0x7F070076 + public const int ic_mtrl_chip_checked_black = 2131165302; + + // aapt resource value: 0x7F070077 + public const int ic_mtrl_chip_checked_circle = 2131165303; + + // aapt resource value: 0x7F070078 + public const int ic_mtrl_chip_close_circle = 2131165304; // aapt resource value: 0x7F07007A - public const int material_ic_keyboard_arrow_next_black_24dp = 2131165306; + public const int learn = 2131165306; // aapt resource value: 0x7F07007B - public const int material_ic_keyboard_arrow_previous_black_24dp = 2131165307; + public const int material_cursor_drawable = 2131165307; // aapt resource value: 0x7F07007C - public const int material_ic_keyboard_arrow_right_black_24dp = 2131165308; + public const int material_ic_calendar_black_24dp = 2131165308; // aapt resource value: 0x7F07007D - public const int material_ic_menu_arrow_down_black_24dp = 2131165309; + public const int material_ic_clear_black_24dp = 2131165309; // aapt resource value: 0x7F07007E - public const int material_ic_menu_arrow_up_black_24dp = 2131165310; + public const int material_ic_edit_black_24dp = 2131165310; // aapt resource value: 0x7F07007F - public const int mtrl_dialog_background = 2131165311; + public const int material_ic_keyboard_arrow_left_black_24dp = 2131165311; // aapt resource value: 0x7F070080 - public const int mtrl_dropdown_arrow = 2131165312; + public const int material_ic_keyboard_arrow_next_black_24dp = 2131165312; // aapt resource value: 0x7F070081 - public const int mtrl_ic_arrow_drop_down = 2131165313; + public const int material_ic_keyboard_arrow_previous_black_24dp = 2131165313; // aapt resource value: 0x7F070082 - public const int mtrl_ic_arrow_drop_up = 2131165314; + public const int material_ic_keyboard_arrow_right_black_24dp = 2131165314; // aapt resource value: 0x7F070083 - public const int mtrl_ic_cancel = 2131165315; + public const int material_ic_menu_arrow_down_black_24dp = 2131165315; // aapt resource value: 0x7F070084 - public const int mtrl_ic_error = 2131165316; + public const int material_ic_menu_arrow_up_black_24dp = 2131165316; // aapt resource value: 0x7F070085 - public const int mtrl_navigation_bar_item_background = 2131165317; + public const int medical = 2131165317; // aapt resource value: 0x7F070086 - public const int mtrl_popupmenu_background = 2131165318; + public const int mtrl_dialog_background = 2131165318; // aapt resource value: 0x7F070087 - public const int mtrl_popupmenu_background_dark = 2131165319; + public const int mtrl_dropdown_arrow = 2131165319; // aapt resource value: 0x7F070088 - public const int mtrl_tabs_default_indicator = 2131165320; + public const int mtrl_ic_arrow_drop_down = 2131165320; // aapt resource value: 0x7F070089 - public const int navigation_empty_icon = 2131165321; + public const int mtrl_ic_arrow_drop_up = 2131165321; // aapt resource value: 0x7F07008A - public const int note = 2131165322; + public const int mtrl_ic_cancel = 2131165322; // aapt resource value: 0x7F07008B - public const int notification_action_background = 2131165323; + public const int mtrl_ic_error = 2131165323; // aapt resource value: 0x7F07008C - public const int notification_bg = 2131165324; + public const int mtrl_navigation_bar_item_background = 2131165324; // aapt resource value: 0x7F07008D - public const int notification_bg_low = 2131165325; + public const int mtrl_popupmenu_background = 2131165325; // aapt resource value: 0x7F07008E - public const int notification_bg_low_normal = 2131165326; + public const int mtrl_popupmenu_background_dark = 2131165326; // aapt resource value: 0x7F07008F - public const int notification_bg_low_pressed = 2131165327; + public const int mtrl_tabs_default_indicator = 2131165327; // aapt resource value: 0x7F070090 - public const int notification_bg_normal = 2131165328; + public const int navigation_empty_icon = 2131165328; // aapt resource value: 0x7F070091 - public const int notification_bg_normal_pressed = 2131165329; + public const int note = 2131165329; // aapt resource value: 0x7F070092 - public const int notification_icon_background = 2131165330; + public const int notification_action_background = 2131165330; // aapt resource value: 0x7F070093 - public const int notification_template_icon_bg = 2131165331; + public const int notification_bg = 2131165331; // aapt resource value: 0x7F070094 - public const int notification_template_icon_low_bg = 2131165332; + public const int notification_bg_low = 2131165332; // aapt resource value: 0x7F070095 - public const int notification_tile_bg = 2131165333; + public const int notification_bg_low_normal = 2131165333; // aapt resource value: 0x7F070096 - public const int notify_panel_notification_icon_bg = 2131165334; + public const int notification_bg_low_pressed = 2131165334; // aapt resource value: 0x7F070097 - public const int online = 2131165335; + public const int notification_bg_normal = 2131165335; // aapt resource value: 0x7F070098 - public const int pencil = 2131165336; + public const int notification_bg_normal_pressed = 2131165336; // aapt resource value: 0x7F070099 - public const int plus = 2131165337; + public const int notification_icon_background = 2131165337; // aapt resource value: 0x7F07009A - public const int preference_list_divider_material = 2131165338; + public const int notification_template_icon_bg = 2131165338; // aapt resource value: 0x7F07009B - public const int project = 2131165339; + public const int notification_template_icon_low_bg = 2131165339; // aapt resource value: 0x7F07009C - public const int right = 2131165340; + public const int notification_tile_bg = 2131165340; // aapt resource value: 0x7F07009D - public const int sackdollar = 2131165341; + public const int notify_panel_notification_icon_bg = 2131165341; // aapt resource value: 0x7F07009E - public const int settings = 2131165342; + public const int online = 2131165342; // aapt resource value: 0x7F07009F - public const int splash_logo = 2131165343; + public const int pencil = 2131165343; // aapt resource value: 0x7F0700A0 - public const int splash_screen = 2131165344; + public const int plus = 2131165344; // aapt resource value: 0x7F0700A1 - public const int test_custom_background = 2131165345; + public const int preference_list_divider_material = 2131165345; // aapt resource value: 0x7F0700A2 - public const int tooltip_frame_dark = 2131165346; + public const int project = 2131165346; // aapt resource value: 0x7F0700A3 - public const int tooltip_frame_light = 2131165347; + public const int rcb = 2131165347; // aapt resource value: 0x7F0700A4 - public const int wallet = 2131165348; + public const int right = 2131165348; // aapt resource value: 0x7F0700A5 - public const int xamarin_logo = 2131165349; + public const int sackdollar = 2131165349; // aapt resource value: 0x7F0700A6 - public const int yuan = 2131165350; + public const int settings = 2131165350; + + // aapt resource value: 0x7F0700A7 + public const int splash_logo = 2131165351; + + // aapt resource value: 0x7F0700A8 + public const int splash_screen = 2131165352; + + // aapt resource value: 0x7F0700A9 + public const int test_custom_background = 2131165353; + + // aapt resource value: 0x7F0700AA + public const int tooltip_frame_dark = 2131165354; + + // aapt resource value: 0x7F0700AB + public const int tooltip_frame_light = 2131165355; + + // aapt resource value: 0x7F0700AC + public const int trans = 2131165356; + + // aapt resource value: 0x7F0700AD + public const int wallet = 2131165357; + + // aapt resource value: 0x7F0700AE + public const int xamarin_logo = 2131165358; + + // aapt resource value: 0x7F0700AF + public const int yuan = 2131165359; + + // aapt resource value: 0x7F0700B0 + public const int yuebao = 2131165360; + + // aapt resource value: 0x7F0700B1 + public const int zhaozhaoying = 2131165361; static Drawable() { diff --git a/Billing/Billing.Android/Resources/drawable-mdpi/clothes.png b/Billing/Billing.Android/Resources/drawable-mdpi/clothes.png new file mode 100644 index 0000000000000000000000000000000000000000..336b39dbc904b1cdeed369e90239edd3703838cf GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK^1peyIEF;D zzMZPbcgR4bZNK5V2DbuE4lbUUCTj%_zJLW5496WBj~c36XJ~I!h+@gz)RLEbY**)7 z|9>WD<L>`g^}WB~6_?Kab_e;46@Qs;FrJ@cEWCiZrGe$#0YmOPLISHi?}RT%Uy;vT z?Yx)8Eb@?V?-teq#%-&9GFC*Nvv9s~=>JC1q^E{4)v;+6N-h&0+6!D3I<z&Nv4A=1 znD@u^)raFAhble!UFUvddD6W}2V(NYW-Onl-(9g|+IhwlUVSE~8Haqo+l6H>vybRv z%d)-6uqEXj!?87+<|pz7FkfLXbtq*JI$mY`G=QZ<cGiBGET#5YU9XrQ9pb#hC#ZS} P7y=BQu6{1-oD!M<8e4kx literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-mdpi/cmb.png b/Billing/Billing.Android/Resources/drawable-mdpi/cmb.png new file mode 100644 index 0000000000000000000000000000000000000000..0d3de4d40fb2d7c0fa7144e21449f6d7e415dae0 GIT binary patch literal 1582 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 literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-mdpi/daily.png b/Billing/Billing.Android/Resources/drawable-mdpi/daily.png new file mode 100644 index 0000000000000000000000000000000000000000..6ad92ec168f6410cd3ca108ec44ca59a588e8c47 GIT binary patch literal 482 zcmV<80UiE{P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS0004*Nkl<ZScUD^y-yWE6b0}f3eh|Zj24oZm}sF1)KHqB(NJn(4QdDW)`YJ} zXl$sU7Gh<g#GV*|f5C#*3MF~b0s_UG#mQ!P&LVkR_)ap}xp!ygoY^~fXQoFU9$*E1 zne7iTg^z!0*qiX(z!<J!75f;)?M(6lkAi@Hyucnd@V#B9aWruhN<lgk`EtwK(DzQ{ zYX*)JT!`u;S~G4Wg#Bte*EE_5Un6h~7mhdtuW+%{p|F?nQ#xcR9O7MRjCjmRJTD8l zn;2*wpF{n3CV7D;;W?IgcQ4gpOZ7OPwQLon@fxTFT>-TV$VsdB7{Xw%x3OD+;~9E# z8lIK~eVC2xi3;R!kQnnM3v#}|H?9A9fh9~=5YRTvIRb8#?CYVN3u<44wF}4z!D~Fm z!(gvtrvk^KHWSSeu!ftFfUiMBF5cue>~2Q?r+}PAcpoqQIZV#UIBrMS^p9CEfGd&R zAAIMIZWh!o;712}_frBsbx^=Y%6SQ2bY=lwE=bE~wT9O2_Y_wX@6U=Ot*hM!EQs!n Y#|!<r_FEuU>;M1&07*qoM6N<$f&gIAKL7v# literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-mdpi/drink.png b/Billing/Billing.Android/Resources/drawable-mdpi/drink.png new file mode 100644 index 0000000000000000000000000000000000000000..43c4dbb87ae152bccbec58ef0bd680a552c8fc53 GIT binary patch literal 377 zcmV-<0fzpGP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS0003nNkl<ZScUDBF>b;@5Jg`Q1%eLJP((nE00-d+<UkxHDRPrkDR2o?K>{N; z6hNAZ80_5*#<LPi_|iyQtl$5h85`~@>IrxQGT>-b8SpCXpqfBpXq>M^JiK~|X#P_Z zZCJ|%=&AD*crdD|;`T!Umg@Y7ois~(6apmb{A?INvl8zupv!4ibHf00#qIufc`Fz9 zK*PYiA*`dY&y*hloLW=^1_l8J%BRr&x+lO;&YuPW^6WFYIxsUf4YETch@so-fJ<%S z{f66@CS64^|8g0*MgVcf;M^@=fEbJDe5rrcfl>itbf6To1st&Z0uI6~rG;UDh0nw{ z0<hf!FDn$lau2+$P=F7^09Ua(z=rDcUkmFhje%VS^PMm%X#~6jX$j+0o*7j&|NHs| X;Ii^1i@gux00000NkvXXu0mjfP`sHT literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-mdpi/food.png b/Billing/Billing.Android/Resources/drawable-mdpi/food.png new file mode 100644 index 0000000000000000000000000000000000000000..19710c3eda97e5ca132c921bed196807e13c3609 GIT binary patch literal 435 zcmV;k0ZjghP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS0004MNkl<ZScUD@y)Feo7{>9REr>|eDh)0`;x3dzggel<1FeDz7oa1!28l*P zAx@!@5FZVV5XCu>a}+x#B3X84&&L)#$(wAl^S=LQ-kI4QI@1uAafBN*P!G?C;oVS& zj32dtd$e-mA&l*+me4E!Z$}e5NV;ia2ImnbTG);O%;G@W<~m++hBb_ZF@xBRFwn$& z9(WulIfdS^62=c;FT%u~UpD3h9wUmahrAJ7N8~MK!3S{}QKa3{#gIQ2k$0G7U^Non zjz?)r6WkWexydqcRnkDq*E!!RIKG}`;BRU`+LFrD)lXwt10NOgKN7rDXyB!NcB|5D zf{O|bTqHQI(7-W_;$8W#VA*)bXd?a3@Ar77S=tY5FeSZE_G|Wy!2G7oJ{s7}YRNEa zeSp^jD^rtr>LL6oFn-lEo_hd)4z&wuN_Ur|CS%j(X&4(iI~|Qs<Ht4sR}q~mzXYdw d#VfxNeFAQYk20jPPDcO$002ovPDHLkV1k35w&(x= literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-mdpi/learn.png b/Billing/Billing.Android/Resources/drawable-mdpi/learn.png new file mode 100644 index 0000000000000000000000000000000000000000..10ccc91254a64e16493e7606eeae7bf56704b7cd GIT binary patch literal 391 zcmV;20eJq2P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS0003#Nkl<ZScUD@yGjE=6vpviyac=uB-(3dtA(wNzJ+xf%Ye053%-LO)`G1* zf+!ZI5%K_nh#_7`Fc!O#P1u;tx{J;JVPQFQ=6v6ooneQ6rW6y~z!54LYrWzScjFQp z=;ib@k~nSUXrMJLHkHIto)iWO1BHRYKw+RTFcTA77k^L4f?iH_(-YU}Evh-`J!5lR zQXO5{Uq-rN?Eyx8>k1Z<wv~{!;9i)>z$j)>4&QrtGidZv&}l9#;z55&55o9)Bz7(S zWMx8B=t6(><^>z~XY3>o@%@OvBbJ87*YFgMe_=06@hyCW#ovuSMmy+)dF@~FCZdX_ ze)qL8`SnO{6DxlaFX1v$@HFAPv&ft)Os6$aixj#SY_=rK;U=8d!ERauWgO#0@PnF! lRl&*FPAeW|Ig28r_y!etgaH67Y6t)T002ovPDHLkV1g|5q~HJm literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-mdpi/medical.png b/Billing/Billing.Android/Resources/drawable-mdpi/medical.png new file mode 100644 index 0000000000000000000000000000000000000000..d774a2498c6443695e38019ca57aa1c2e5e34070 GIT binary patch literal 510 zcmV<a0RjGrP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS0005CNkl<ZScS#bzityj5XbS)ISEmKhCk`3fC7Yg0IJX-XsO@{cmk;M79hj} zBoz+<6(B)D8bIPtLq$NKC?NzAAH}VujXC4p%{l%`BcJV^ncbb=-cBW*qqu<Ms78#b zv5B|%nGt&|%h(DDQfxE$jAhhHV(#D}`dGt{G2>6*GJ3)HQOZRA$C_qUw=#Tg2cOpm zO%B^3*nEc1Lh$KC2mN5V)G2<mEx*m-tfrRp8lBWw%1B;CpG(-mcYMU3QBLQuDo^dX zwuP0jz<pfB#sm`&+lFXIPh<TMlMn0*PR-yhZnPF<vK-T#FfS5jJ1Ki!;TujCtl%@= zhv)M+QxM}T>=w>`F$%O;7-MH}#!DE!M@r(<y~5;OQMJ7ZM-kV&jVIA_mL^JSK8|Ef zq-vnn-0wLgX(BafC9Qdh$0w1afqQrseSbRie|%eBNew#fW0+mn&gm)ZcG$lIIr@m{ z&*GP+=g%e9L~_lC*oIH0cN>1_;Z@=6yWk~UH@zLWHkirk6q2vRTX6&ruy+WFcX2=D z{O9;w#7$h%bV+k9V{)nSThsl#!DGBTV9f6L3zsNiFqA$=Pyhe`07*qoM6N<$f<?FK AMgRZ+ literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-mdpi/rcb.png b/Billing/Billing.Android/Resources/drawable-mdpi/rcb.png new file mode 100644 index 0000000000000000000000000000000000000000..0d152a0fb2060d7c5c7925bb11b0d29dc419ec5a GIT binary patch literal 1256 zcmV<E1Q+{>P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS000D^Nkl<ZScScpUx<`d7{-6^`DSO;-Bnq4cXnrI1|`kJ>c&cmf+91BBq8$3 zpsOH3j0!UXDY`L3#0o7aGz3BOMlS*hZz{x6k%(>cPqcr&9cOl2cimO?&&-^s3tih? z#@!jyp38II_j#W0obSBnJw^rStFNCs7@b=mQK3$<mcXc&_tg<cU%?YbT;$sDsP!)z z=ol!M(`E|z5ZvnvT9yWps+S#FC1V*_3Yax9P9l%dZP1Q%O6X`J8@3tvyEf1U(fP5| zM>5_pm?sFz`YiAgL*VyQ#rw%H9InWKz=e&87tGmq%pNUMv@}G!!F%y+*Y^g+84U=m zE0)?Ez!r>_|0Mn|dY$~PmTb6V>XuAeQbCYzO1^E*c4E}sBXNKlnXMkGnOj(UWANm+ z6HK^?QDIYJog7>4q3~oFZ#@u8zB+m67P=FOdRK5~1dHyQ0l-jq#E(86>+Q|LtrZX} zs;pppD;1X*5R6uogC+A8{rckK#nrbB^u#hxgRQNE2$6PZqlvAEo{Cb<t*#y%eFh+M z2C9&I1)E%0W}qk_cE)?V4*~QvxAs7A0H`h}+o0MUYXm>IriNsroUNpcsyMDL*`a)I zu*bj~_(Z1XJK?thV`Xv}(9p4PVbnS28x0;RGZCSm>qgkLh>nqo<JnAXm&D<6c}#Zg zbVo<tIkV+JO?kGJ3yOR&|5{i7)Vaqvn>SzFY4G>VOe!G#xgLs6au1g48gKh=%&Y$O zPSdTqp5G;X4rn?W!>-|rCjgu`EhtZ27Y0WB_9d4t-SOBN6jh}!P5z7Nx%{W`E9r{> z5xaSfP74!*#X^3=^1;m2nQSJ*a9FH(C*7PIme?Sp!5|8F&{f2N)@=AmcOo&nbI8q# zc;l*@p0g<YzGPqK+)U!P4Rbbsv3Bvc+Uui7JUr}CgM(qAHdWcF&c@VJjQO=zt!yNK zi_>kGL6|QTzcMJ4YXIQZR-Fb;3(P=aeQUzWud~2?11@T4Q^ZT{4zA0rwiJ;U$7V%> zxt&d^=Uw0f^DZy*LxJ;|^XYW@*)oh}W3f3sM4uD3TSgp+3dT(SoOLxM;}+qVVJk`{ zOZp458bftp!ObINgBV$fKk)wGNN(1NC6xX-!&vJo%r+voZsHYh&^F=<FWMQXYHmvI z#@U-?t!)X9NNJ3d@@jKf4pRUuk=z;_OG_o0v~O&7u+acIW2x1FaSWJ!mnJH7%&3#r zw`RMKIe_cg+8-qy|3Ab5O!_HaSA85NTtJtbn;VN%odrwYPjNxUjTN3~y_)WZ2`yPm zCX+L<1=M#R_4}>J)^YJk1^_N(yN}50v->75?ak!64o(~@)t0-<vE){nZ5A}$BjqcG z_FTw>A5X0tcY2rv=~(h5%(kn7UZEtHbSZG!dj4{Fv{ccW_8LmZ<8z9IU<b}#GpJ?C zmQ4c>+(0@Q^&{^#<#N~W6gXoWb{K*u8(SYS3)bPZQrI$3;$~HxDyq<+9dEzj^GD-X zF8@~QIaZN@aR{s{m6~rOst<f&p1DX$rUnm&==0unn$v(q)t?B%ew(2w8OJ{i76jgz Sti&z=0000<MNUMnLSTaDJXVbW literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-mdpi/trans.png b/Billing/Billing.Android/Resources/drawable-mdpi/trans.png new file mode 100644 index 0000000000000000000000000000000000000000..40d25cdc9e1fac2e81377aa401a52684c0a8bd7b GIT binary patch literal 474 zcmV<00VV#4P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS0004zNkl<ZScUD^PfHb17{~EXmqM3i*~)E;f<!|IMd%Gkr28N@LaT6dH!j>n zi(WvxklG3gf-7rt4FqXZn|uKgEkd#oA#P)fYcXBVocYt_-P|7>n0cP_oacMaGiPQF zJ=VF1ZwB`<oYOC+V|>PQye<>?^dz{hmS8EAC^WNav@(2;u$2QphsObXf^oc08_x$i z-pfc1JNS?Tu$y6T;BFCsi;=-w_>u!~HR3xpb_gJ*L5!4)iK-Ft&0?UYHlLLwwgPSZ zC^nB=wX+<t6*v?10r~*3U2qfMYsz!I3c!<^l1J6^67&Iz0373IuK>Q{28OU*V%#-c z#>0OFc!xcF!)6J9RqW$MUdO!ufhjz|M=X>8XzD=ERsl#-*B7u-BJppHE4X5z64dqf z3+bo`z?ROFU$+v0vq9G1?`=H8t(2{aPX&`*!*c5W4HogXU_99H_u(S*gA&kWSM1BI zj<IdnU9VI1`%kfdbO(nzGgvPf+rX=n*aJ*d0e~wQRqb%vz!)x7O@1c&1;H6s|GFVS QjsO4v07*qoM6N<$f~xn<l>h($ literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-mdpi/yuebao.png b/Billing/Billing.Android/Resources/drawable-mdpi/yuebao.png new file mode 100644 index 0000000000000000000000000000000000000000..3d51bc0af673cb72a16b53fe1de6d52bd9258696 GIT binary patch literal 634 zcmV-=0)_pFP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS0006pNkl<ZScUD@J7^U_6b9fgiTH>bf`+I_e1Td>3JXC5C8cGoZA1%8wG+fj z(*!{g3$+x*!rliWXyFqJAB750d=&~B0}7I85{sED%er^(?DeM79}c^-d(Qd)Jv(P+ z_}9@^!M7K?unp_uxHIM$$0%OnKF;H5D}{F8Ev6G~0{tn8+bf9Ztl&E<T1&B8dIiq6 zn!JXK3FIT_nkfNY!bGb_K8{UQ5?1Mg8akpCVG2KIQov&DMPHrwpKuoMD&}p7cI?NP z#&h61j$&@B$d}?~0&(7+VBO!6uf^*o$ZPf)o0}zHu6Xqu#>0Z=<3j0Q<era7TotqE zz?}k;$tbK_So5>wJ7Vm)g18YZtRmn*L6Vw1!?KKsEcrp96^r6drjpMW+Ntc{W<~5w zAg@(vMT&quB}r}z?NzjiwZ-T2@Sslok$h0mjx|^!ZV3kB*T5UR!bYJQqQKrd@q;*A zk{^xBpS7VFb1Tt*Qf{NlSD;&1ZtGzbCxinB+>O^WxE$~22$Q(mpJ>M#JgP^qvcVTz zDG`^&jglM#S;u?@el$qDUHIoUztcD_96)N@@NBFq$uW@~<OO`dH!LVgusU<!6R&;J z*8OSWJn<X(cACQVghb8aF+P?FfMZce3aXwbhEpAfq_x#^?8Dat-wPGRIwVZCX1C&+ zP2rR#kLmrmB+T5Z#FMy&tz`tM|FB1B!7bPz%=$&bqC=?E7rYlXs(ZK^$Ny1^Ul-IW UR!4TRk^lez07*qoM6N<$f<+4?{{R30 literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-mdpi/zhaozhaoying.png b/Billing/Billing.Android/Resources/drawable-mdpi/zhaozhaoying.png new file mode 100644 index 0000000000000000000000000000000000000000..5b9f8e78a041b8ad16cd49db33c98f0074429e77 GIT binary patch literal 1495 zcmV;|1t|K7P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS000G!Nkl<ZScR=uU2IfE6#mZK>6UFPZ7tjE)=F9+wk*wdZ>xca7PiF(HEIkG z`e0N-cp&iy>Q4wy5`4jgM2+b~jWNMseDE*E7!#BqX$gd+-Caty#cV55l#;r1*`+_* zz4sm;xVKD~t}W2>vU7gseBYdzGk1ruMDhFmE|<&oq!6M5z~cbc0(ckz0Z0M3%*+u0 zC(`Nk&+&LXwUoTHSU_`g^D4`--XWr0M6_y&e5aWCt86xVXkcJq<bDYVUDw|bLL3B8 zx<uf4!ps=}hi7JH4#r}!*(DRGudlCgyWL;g<$hpc=Dut;`{F{?xQjqzW8)*5ru{}l z^~(XSkVqPavGu}*3;n8Hs7f#xEYmdY*m8pd01=gGn)X(%UE~BEAtL{BgERB6X_`Aq zOG|s(+uJ`@apwlQuD>FLc>V#gW^(kDX`1iN%*^;Bk%+UnJ)uzO!+8X%tE=5abZ99E z%sj=+xhHzWFpTYeeSO8ue3F?hW<F|J*7`^!a@gqrBH9E1LWsSgP^e~(KxJj+t3*__ z2rx7AcSN)vz)@$#mSr7GBoZ5<(dZ8VECAO5{9zcz{%|<_k28Pc#*HfhJYlPnh@Jre zX&ZJe0zSaZo#Al!H~{Fn-oVVi8iuiZf!5kUMD<e2cLD5mj4qd}TEPP|`v5@t{r=Se zn)3ip0NCH(-~TxP69DS!>K+n8G%>S~QoaV@eJ4H;2vh=Su;>1(=CUk{GMP*kfM%OY z{eHhou2`{RGZE#x5sR6*#{mZbx7*!{+a&}5uNtgrTDy{~NA(pJ7Vb7pGi#dWG!bz@ zK|!0(=WCPz0(rneL@od=0Ah|!2(d+}(5amGcH2IcPN&bQzH~Zm5mAw&XEGVXFpOFW zV0AtM0AQMCOx2k=<Sa6i$(+dvZ?}o`#^do!4!K*FWqnIT8UO}hXqr|kiKrwWI5ST~ zqtUaDzHZ&Rl|qOn+jlt@i(PSi!C<fkz#7|kT+Op>+qS0w_yH8)&OyvFbD3mjGyf65 z87TW-Qc}{QB<NKGg%EAd{xkCl)hDIgXPRbcfd!tB0B+<%2XIzZgb-?y-kjL2_HQa2 z4u>6MBof)4OeQy9ym--I=8O=+Sx}~~uI@|8%)|LAz|6UO+~y2S)66B%X3seXrD{Tm zV0n4DXl-p3Q0@Uc_G!t?{a8Sld3Jn!{Jf(FgTXQ)(rxudG#Z^doDB^P>z$jFh|a5d z1_uW_5{U$tmzQH=Vgkd%!<0-WF*`d8!!R^CJw4r1TwI(XqQV>weOIquomTWMurCq2 zGVC~9E?2uke83rxj*f;VCnq-z4GnQNn`Mv31E0^wQcCi8JXS?Tg(fdux|D8eYWfAh z3poVlmDuTVdwe=4cB>7}-QC^0JRZ+V0Dq5;j(&9DzyTx@2|~`FAFtPYtE;Q)q_ih? z5z#yX%$%1%Hk+OE>ALR0o&KlJ&d!e7+S(4c+l^Q(hUsawh<9XcZ0ysTnwmf7ST!{@ z^$<~uvy!Q)DbLW*Pyzq~fk3sC@`}=CUjX=qh}JOk+eEZ>L6rP*{pQV^kHzEh)ZD4G zEbC28)6V1eWr3oiq8b3ns;a6&Ddh+1_kxIa0@!Jf?-3hd<~`24Vcu+A*Y^n_4k>|b zgWNkx9<eOzNH`qc;pm#`92*-u<Mn!Li74m*FDE!N_e@Moyp&8PjRgtVB!2Swe2*$U zzg*y_Q>oN*BO@b|s{Jkk0QlOqYd?Cu-ZX$V`|I@}zzpECR4VmyJRYCQ_5W{q1A#z; zl=2g`1@94j&@|1x(P;EozL+KLudeG`i0E}9dKQ3tk#LilPg$1L9f?G~hw@#xZvu`q xH#ZjnXkljcc`k7KdH$FEJpVl$4v#N2=YP({c|)dM2j&0(002ovPDHLkV1fo!!y5nq literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xhdpi/clothes.png b/Billing/Billing.Android/Resources/drawable-xhdpi/clothes.png new file mode 100644 index 0000000000000000000000000000000000000000..3a1d7661216b9d9f3569f93c2155aa16aebceb66 GIT binary patch literal 551 zcmV+?0@(eDP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00004b3#c}2nYxW zd<bNS0005rNkl<Zc%1E;Jxjw-6o#LqPA-l`9L34OKj17nsG}}AE22&=;^*Yx$Kd4u zPzM(g1O>sLAt(qcf{XOlp$(K!+uW1T(<JACmv*^1@B0pIZf?LZj4~5w8}J|iLZH(8 z41wRKRG0zofFGdVMm69O7)voD1P+1k4l|yCg%mSH>;Uc`Q*nI&i-H*=z)iv#b>Kvt z#*<wSQ?0rNCK6nK5ZD4f1vAbv$k&lQfvHwG;1*Z~#%YAD0K>pEa1OkuoN?N(;d`mf zOUP6B%uC2)_{>V!?}HF&CH{9PLU?frMGEg-!a*OHRV$&$;k%YlhVYS&<Kd;Zw|Ul4 z6n={28=E4@0kak00vM%y1VA;QvFjRAHlxK?sO>-*7XnY(E);oy^8N_cfXS$d?UI$? zfHh+HJm<@^9Ize_UzQR&hL0%fU16f|MJ>Sr8%e`Q<oQup>hO6k!NtCBO2bDi1NTiW z^+CXHng_0cOJJ^BILYB?U9hH?cx5X4Ucd^l0<;ZiV+Cj%(8dbTHlU3aplv`KD?r<T zHdcVP0d1@RZ3Eg^0on$%u>!OWXk!Iv8_>oI&^C}U-e(q)0^S5`dc}+Hf&syh6&kPB pRRwF?@tM(eUhz2oHVnf6_yhjFq~yX|J4OHi002ovPDHLkV1i&v?_dA` literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xhdpi/cmb.png b/Billing/Billing.Android/Resources/drawable-xhdpi/cmb.png new file mode 100644 index 0000000000000000000000000000000000000000..cf873a908fc2919c20d66f081e29ebbdbf4a2225 GIT binary patch literal 3304 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 literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xhdpi/daily.png b/Billing/Billing.Android/Resources/drawable-xhdpi/daily.png new file mode 100644 index 0000000000000000000000000000000000000000..7edeab5568990a5470415d9c80872ffde74fe728 GIT binary patch literal 862 zcmV-k1EKthP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00004b3#c}2nYxW zd<bNS0009ONkl<Zc%1E<-;0b<7{@=e?5<r?xG^P>T}zU%uB?^Bx=@>2zsg_0A0W9= zN{O4z9XCQqiA(acq`0-Q%8yk<5*oiIjEl3Adgq*(^S<x%&NDl6K6P%+dEWDU&-XoN z_U!w<Cx<L+fTO@X;eIO=fg`}ZjQUT_GoYMt`2ch_YCv)5Ci}rx$`UEj9Ud{Az%Jkt z@C29y-T)gSaXBeb9z=C-#AuqtXuJ&UMqs840TbBo!j?$vEJs`xr9YB;#1S_Etgkh| zS~Fl2xCIQ<>Y&LP0B&Q(V#Q^^GT;JcT{k1;7_r^Jd0?rn(Ph91V0KJVKQU`CYrX>S zVqTL6j@ue$TI%|N?J*Nn*aw^h<|e$p9!1~~@FT&sqrf5}H_2weHvE3kdo6W$fVHuu zrN?Ksb^u#}GttT@zCU{VF~9uU^Z*AuW2?qyn*m*(os9smfR~=}S<wf~_l(U)D{KbD zp)ggZ3sp<oXD8Uw1Ov1MXcG+37NAWqKwE$|!2oRm+O)j^X}7`vdw^e<2M^~g?c=~< zfjllQ0yC0cEMdS^;5+tzj{!acR|N97_)7`{!V(bZ;|As~xXfG)+!x5>BGniq3>d1@ zJ_i^U$dd_ezXXB-+5)r*251Y=rtJ-o_%rw(^R6z3{Rwdi_#}|WMS&Er<|Pd1<NsFp zo2C6But^|~ixMfm0|-k%ppQY!%gP={dmdOPkjF);FH<B8sJG7_1Re|I$%M9F0>J=n z0onuuv;}Ar4A2&!jl@3SAZ9z-h51rE$_wC>Kpq#zNbywI#u)KFTdh0}?{&1_l@w>8 z6hrG+^y07t1o}7){Kh>Emjh=7^0-Jf{Ur?8S*N`K>=nq932nawf&tnBv<U`S>f#(m zm~K>!&1Qh@!Dg#ab<V(Mz|#f@(c-yJ&;rcHrco!r8dd%Pi=%_J&49O<b9b%AHQ=>x z@IuVDJ=%9os(dEFY13igOB0AsTZ)*oLWx)bJZOSJBrT7CRka4_`&MN$umf0$Iic0a obHZ^bW8PDa1J{9@Q*}=M0e&lxGRLK2Q~&?~07*qoM6N<$g5Y9-IsgCw literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xhdpi/drink.png b/Billing/Billing.Android/Resources/drawable-xhdpi/drink.png new file mode 100644 index 0000000000000000000000000000000000000000..d536b0046d3ac6e25ef655ec71ff083ee220e3ee GIT binary patch literal 732 zcmV<20wev2P)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00004b3#c}2nYxW zd<bNS0007$Nkl<Zc%1E;v2N8c6o$Xv(k>K)U@Q!@DhnHkw}7|k1HizGRO*{_?f`GV z*s22sRh0@AqPnOJkTN(dX&j&9#Ib$rPdZEFIRAfqY|BZYP$(2+JOg%tL!bh#6N{?R zw%ceOmG_C7w#8MWc{KB}4f)34Bs?dtk#9%Uc(5{aB;Xye;%JjHE5O?!9egGJC=QJ; zzUJ=$bw`JPfi2%o1G0tD*4A5Nyr`K0zbzfE4c9w5Yjh7-MbA|4TLWs~bI0{1V8dHx zI5sfa+8krNbmCeB4|^V#8a7Qf4}d!X2g--VWYcop<^k}p0NcZ2a_cL=rYT4Tq?iC( zRrXeZiy3gq&8_7Mck-rW8KbGK^Ad+nmx&rU>bSlNJW<OG$7779Hb?Yqfgl^j9M%D^ z`46%L<ggP2ng9RUCjNoOH@02ohEzZfIJGZ&0-S3=*WsaypTNCgS|;ZLxbJEt-OF>V z0+HsD0AXj&xs)Ix&7}gy>?|=v6(HRO9s=L}wM5|&aPDd(t$=g#O29V+=0SI)&1oSN zPgzX@a#{z(gH<XZM5hT*DnQy$x(x!{#T+m+_r%~Db8wqW8fz+G4xIQXnwS%W=0X2v zH-~jVrBR!J9M%Dq#zm}vpb5yK0)kF~94bJiQM;wB0>3byqEh4!X1lJWH)t!MqWiCr zR5(Uq9{fIVro0ZQwfQ6<<#j-<ZP5}iNd=@l1xf{IZ}2(U&43@I_o?gxc!1-Fh&DbI zPy_oO_l0I3rTHPeA^x}jcDxSixWy9iF@Oo*_&|ggHBW)Ffx^d#vqno4UIM2Mfg$4* zcoE#CgLPn!?qAhIMcq7eeFA@CUI9D6C(Jv!u}#mLzIU2u6$*vIVEzHhFHxxu2BshY O0000<MNUMnLSTaPSwac` literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xhdpi/food.png b/Billing/Billing.Android/Resources/drawable-xhdpi/food.png new file mode 100644 index 0000000000000000000000000000000000000000..95981981706cff64e19eaf26f405d9dd5bc198db GIT binary patch literal 880 zcmV-$1CRWPP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00004b3#c}2nYxW zd<bNS0009gNkl<Zc%1E;Pe>I(9LGOz)zqLUqC=TPP<E;gK}E;z)vX}PQ&D*DAkkHV z2qZN713}j)3rZ2XbkU%oBoC%1qfCQWXbNfOdmU!BY~S+SeLKIMeeQnX%Y*l4e!uT; zc4ywqPL5>Y0Ed8Mz(HUy&;)D%3cwFw8W;oK055^p`m?HL2XGDe3=~6Z66gSS#-6nS zwgR_+MZz2R>KAZZw^<dO2EGy9xL0}Ic4DamdQkVRY4ffMI!0Ygo<gx3cnJJPt^lt3 zfyQ`jg{K90jO>+A1o}wmmEdw5_=;>1x+M)90ImSffpK6KSkSLyz%%{%{xWTB170CJ zCY&;3S5X7B0`Ed5@)kI!fA6IMRYa*G<bf?F%pV0tA|~@5IO5axI^cz15xSz9ZwHnP zC9?!v_KC3(7!@kOBG6ok@f>hRD5);p{z~=%KZW9TR8oK&Ldm$g?i2H>P^?ds7Q8HH zk)Nvzz!^{6dSF5*-r=C;n^4o4q<L2}sOfMe7lmTA2Q9#Zn9RGn?}^_Cd>4rGD2Vx8 zm>cnfYKhWyeUCt#5wBUtrvMj#+STi1lv?1t=e?%_akdBf(m3(<zN=AB9_vw?9VTNe z1}Q*BMn-zbp$3Q4;x`SZimU*(6R?c~EZa`PBFheHBQvcmIH=`lTA6WBkDb%Xv;%y! zorOgv97<PVY2t$e4BO7aBEvb<{$J=F(=|X5Xm(IXO~x%JV}mhZ()}mcXEPH^^uxcu z!hv>6*BB+9ZS4ix(BE5r<znbw@ZwcHcm3YnggTIDyLY5DtGxpMUjZ{1c#d8LbW>*i zvl(@w!geo7DX%@2r7Z!8N~vu%^Pp~vp#&srT0?}`0c!!~6Ogni&1+AgXhr^jL>ww; zFBQ?500U9gS*dwY=lXgRV4_m>;(s<V6!pMB0?dTffX>|r4X6VPwoL`q6P>eBYJi(0 zdtfZ+93x-$<!A-w5@6P=IU<bqVQB#dg$;$#Ah1W&u@4S#3A<~Dyv`x@&p0zOGVE~z zm?HiGa7xFvjt%p!zC=yl#Pm@#&_-2r64euN_x_}g9f?2e_SSEzPY|{M0000<MNUMn GLSTaLOo-0_ literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xhdpi/learn.png b/Billing/Billing.Android/Resources/drawable-xhdpi/learn.png new file mode 100644 index 0000000000000000000000000000000000000000..bd9b87c4600c7e166bab6e04de808343c73f7fc9 GIT binary patch literal 718 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=EX7WqAsj$Z!;#X#z`)e%>Eakt zG3V_p>+BFmk%s-TKm&wTemJy<C>c5mD8@?d)(}e8jflFz8K&gX#Pu@ivHyn232_pW zj-7H6&_3IhkgPakL8NlvW4G>|t;c5GIr;9)oa(PN24{`F&&lW8{dtG=f<N~|Y<`C} zZa$!ykZv<q;SWO`!{!6$1sKbjiz7D}Z9P7-`t%*$0|~Qo%bi3Pgf%pp+|H_OUR@=! z;P7Jqz>}rlH4oVLiaA6%Na;3gX)uXm$Yjji!f=V{QU>D^)+HC2Jh(j;vrZ73;Kr?> ztAJbK$Dix}%UlqPRuOuAiK#27pynNiEz`H-Vx32f4EBVw&-eUba6#Th-S+$^s~<Ye z-<di*1ke1H+R*i9uKfLNvn-!Ks`eL1;4kPYx+7e}Tr*KD@YI2_I;OJ)7e4+hf1td9 z`9;x}pKLW<ic`C^Z>X=}ec*I$IhT+1ud9vwww!us!Mi3={>F`E`($_IFW$#yby=f* zv9K}sZMH8gzqN{(A_{Gcojd#9iY74qcDR>ZHdU{!vF-8A+aISKE|UGtaIMi;?tH(+ zynF_6<sWRR492@}vlSdRc4M7Ua%2Vb-o&Yg3mGcfV{2x;)!qKPA-pfbl&hk8FPBb& zc%65#`%AeqatFkUyPABv7T<8)f9aNC7034_7Pp-4EZ})GZI6_~KVA1XY?k^~K?Nc| z8e%^<E|7`VU9COiZ!<^kf#CKV-U;~!V%|pjM6YvgQ9D}Lej)vlPUvyNcJ=6Uo{!{T z{d*v=Aw}>egP!Y|>UsO0&$cSCO!8BAZ}{nJ^j-ML-k;I?p3lf{lMp>qz1{T8?d!3f uMRrH_yz!ZMzI(Dm`JtNDTP#!O#n%V+AO3gP+ZdQY89ZJ6T-G@yGywpbra6!R literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xhdpi/medical.png b/Billing/Billing.Android/Resources/drawable-xhdpi/medical.png new file mode 100644 index 0000000000000000000000000000000000000000..7737bd8d31eac29b7e8f1823b3493bca35b24062 GIT binary patch literal 885 zcmV-*1B(2KP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00004b3#c}2nYxW zd<bNS0009lNkl<Zc%1E<OKVe65XXP_+BQ}})P+@>E>xt7AY%OpLP0_6PNeu%eCwys zm2O4dsY`KVZ56SxMJa;yfx0M2(^Q+p#pLSE?aiafnR8A^elQRcI`cnsn=^ABfi5Rd z@_Ph03hV~90-IX&Qv{ZQZ@?R1)`&Vq&I9j&vXbR0F}x!L?w~jDq}{H>^oHx$8+>F} zO$awJ2OL2D?fYZztpZPh_rNcp)S~YY*ajQ~P6C<OXMcc0z(R|@jd7FeC-VsyRfsbR zEGA;zP>8c(o>MJqQZd%WM673uv6|*9)uQ$)#u`b)`m7kMX;!Hg)u$M1b0XHVVyvbq z@n29;IaWY*0@m7fXrh(|HD24G)eiF?UNsXgX!iR$1RMskz;<8@@_kHu;+M=wOQlx4 zGEe~Wz!Fj}bHMj@f@P5!KTq}dyi=?M%pqOs@J0rnsSJF@gF%?Gl}aMwon$I|fR`Q! z*0L#NiJr<%beFQe*eo)St>cjg;%wRd<lrYf5M|rW#1rt^13|X!6-Zq@flLnF$XE!B zyH??l@emkut->M4Ltwva6%N_ghxGY2$piO*FUVvRkp(Uw>kM1$0@+lsIr~o35oEg@ zF9paZhRtR10J5W-Mh02c*`g5bu-K&0rio2G#coePZ%3$?0M`Osqp^n{)%jKrEiTu1 zU#(9tU0ctZ78t{LpP*3%GQe-cKI6WP_6epFP)2`VG5Wwvi?w|+)HYpT1vC;cpx{%@ zw?+a^Dfo;yZQ7wm6<7i8Qo9eh(%|pY&K3jY;>9E|*t)cI$Gyc+H`7aiYXPnau|Eg+ zL^(wNVpEd-I-hCw5NWK1*xiJL`nBA6oo_%PK<c&T<;EmweS%t@Z@^-JoRS{17}O`G zL*S!p6%JVlff?5-95NFEPh6{T$m8h6TkM|6`C!xWOq}yTkZoJHdHc`<QMT+sa_}Jc z1alsU)3zM2BP{_SH$|sB5UFJ^sB=>^BDyPF@IbIB%LCVF;;wL<5#Sc^fzG`xK9Bsq zux6{@>^}Yw@_XQ6WUd%QR&KtW0~C?ds66l!S!c`vKU|9H(FyzoH^xBQ2Bq9V00000 LNkvXXu0mjf-F}&1 literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xhdpi/rcb.png b/Billing/Billing.Android/Resources/drawable-xhdpi/rcb.png new file mode 100644 index 0000000000000000000000000000000000000000..a87b2883da839598562357e705cac59c4685fb26 GIT binary patch literal 2609 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 T_<iWJ00000NkvXXu0mjf8JFBv literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xhdpi/trans.png b/Billing/Billing.Android/Resources/drawable-xhdpi/trans.png new file mode 100644 index 0000000000000000000000000000000000000000..042682856489d8fc9e06318fea025ac8c3057b16 GIT binary patch literal 844 zcmV-S1GD^zP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00004b3#c}2nYxW zd<bNS00096Nkl<Zc%1FqPl#4k7{~F?41-qwqq0OLEo@;h(158q2qHBFZG@~ABJSEM zxHQm3dlxPuHwms=ghEh({}!Tx7>E`@!YFA`P@z&fjnm@VkgxCDKj)tNo_Co0g|oT$ zJkRerzkAQ&zV|(smbuM9VB8=!;x#;7BTro(;5VGZrCy1?haWK2XYC@kHaKpBINS#V z&1;j`-;@Cd`(S`&+n%z6Dm!;K<4lGA@H;-n^$Iba4B!>)!xI(a{>CtVtfBn~U#fl; zcEl2w8BkUKlUU*la6h1c4Y3Nq`vLkt#S(utKzs^EWD93q=Hu(Y8kQ6#FEgh%;cP(R zWb^-KVC;Xqgk^!TD~t4pN+hZCkhAJx>sw;nqO+PgZ$OzT(8&?(j$KG3zQ7w*0zwR! zz@31&UNBiTV9rm0)_~Lnq^30>bpfeq4M<%;YFYzQ7m%9PfYb$~rZpgS0jUZ3HMkB3 zViyvLHB|#b4OkZt*O$!sDbN~_x`5QQ2Ba<^HLU@u3rJ0CK%_jAxEm=~Pl;i`Av}wP z7{#>+IcMUuY-if@*oi+H)S710%>Tci>e7EiwtX%3zMr45s6*?6f|wOWgR6T7eAVUH zx42a^Z#PcjcE_<}b(7XL;F&JR=3#Noyxn-N<gw`FO@UwWLP!6Pa{AY4lX&ZYI)gY` z5K}k>%KRLj$~m_b=kcj*j*ek_iJTz};y6CXINrqihO{2xb<JGSUbHBS;6Ek$%v#DA z@K@tiG{;0yhcY|BmdLifrrHu8%01a8&)i)jW$u7KaXCgsJ?6ZCEi*H*O|}-KUewCA z`$~R0Q02DXf?cvbz{5HHF5#C7d8_au*5;hQAbS%1Om+t}!iVzRf43=N>@Cn9tD3NV zACS6$)PxxDpx}JoqjO!NYlj$6^a;#(K+f5qJ<SlV>b?kF(Ch=#ld?f})BdJG-N$$t z-**&n1*?0YJ%Sq@+UEqm8>n-&=HYGG7aiARZ-)w>y(94y-obKwhZBm|hnAL>$N3jX WSlD_DX_$Qg0000<MNUMnLSTZL5RZZY literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xhdpi/yuebao.png b/Billing/Billing.Android/Resources/drawable-xhdpi/yuebao.png new file mode 100644 index 0000000000000000000000000000000000000000..b1271a6a7926e02d8aa5eb6a90f8af6e301212cb GIT binary patch literal 1139 zcmV-(1dRKMP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00004b3#c}2nYxW zd<bNS000CkNkl<Zc%1FqTZ~;(9LMpGc3ROPqm4@%QKY2AEfse`g+B4XgKIP*5#gal z;-Nt#(s&YrL@N?r^o8(hk~Tu9R0!jtuA#;)Otqy#TQk!+9@ZSroSt*`K5MVN$4SpO zS;<WHTL1O`{m)sq|JsK>efk{A99FXZ<8djL<8+*e<1mB;7?}293V-8I?7}bj8lU0= ze1rof`<j$n@t)vxEkW6d4Omj8h*+MMMs%yP8_TMb(mh9EQh5QW;i;4k&q--aaIkFt z_jAFp@;?13TvDBsIL^Xe<pf}3g*pmxkM!cV3(IHE@S1eu$8mAB?iXhvMx_bB+KPQo z#$}jLO#Ei)SF1{SM7;PhEH2Zzvd;qbJ_aM(P6%g&K4nqGHvmo(PJi7nh0pZB&aV^K zVXOE#U=*uyc-4*<<$P?BZXYm;TPjr$$snFl-idHCPOeN%mz;;Mlq0;c?7{67Y0Ax= z*r$B)jb*)%Qk!)i7iR1##n;Ow99h1^_B_|ZsjACXvvf*)GN*$F@SW}xq!aitXWcD0 zqFlK%S)J3d8m^sgbG4B6&eLXxkV=PpbGCV1MH{=zh4XnHr}i~DwL*3fcHo?bHVbq1 zRl`GxwI0L}zVE`Jn(%FDq*D-@#lyp0^fiHt5@~J8^IbU8I0xL_WT#aST8V!^_bbdc z%u6G8Cd<X&^kfAgmH2wOKZ)Wd-iUOjQxL8ak{&6=*8>`xgJ{XQ1s&=XgqxcFFDkxX z?n|KiUt-374etvVngb1GZj<firE6|e{Q;bUkuLlGB7tr&U$~Tv3BV1hoWQDx{x8fj znkU<OrLY#qa7JXiRJN|qs*vY2wKAgPI*;L0{M6?8I$={q*eR}PQ|~0)7SaDo2{uRX zC_W*zD~%_)btTvzmvKhOGX$EKs9s{8jG>b?1ddVss5vg&7Pq3-@b`ZF-lpE5_}$%7 zd>q-<*@}Gyhowna4B@RvAJ%j-oHYcBe){W$?QT)_;DyMxM|XOd6@a4o_-hKbPhqR$ z(8-zuCL%knvqpHOWvtEf8-=k?$n@UarrrtuOOSNSWT%H&0oWDUX(Jcp?0=bXla!i{ z8nTAKx5B}sm-(jC!>j=86)q@ym74IHZCmnegf^w|Wmfn^$PKh5PXIQWxnb!gUe2nJ zCjcXOv$!vnvl}mFRm%JF(SwRFiCO(OCrXO)DE>%kaIN&GwY#QmFA&CSD!ao<x+Hli zaR8?9A%0G1b414Ww+M6aY(i&Kmv^zKEb)!3!fzFe>r^K3gpj|ijK#u`DEcO7(ek$N zPSUKgRQQ?9PSuItk5_R;1^RL`U$_e2fG?$gYh(<s;12Ow>VqirKK)qX2z#cG8D1j% zjBb&TC2Gz!OyVzLZuu2I2)_~dTv#Hvm*{JsK79^R{sE!IMF17>d)fd1002ovPDHLk FV1h;;GVcHY literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xhdpi/zhaozhaoying.png b/Billing/Billing.Android/Resources/drawable-xhdpi/zhaozhaoying.png new file mode 100644 index 0000000000000000000000000000000000000000..ffb850fdcf938f4fcab584f3cb03904fb6058c88 GIT binary patch literal 3256 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 literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xxhdpi/clothes.png b/Billing/Billing.Android/Resources/drawable-xxhdpi/clothes.png new file mode 100644 index 0000000000000000000000000000000000000000..74d9b89eda37eeeca00e201a73d03fa5143feef9 GIT binary patch literal 1095 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEX7WqAsj$Z!;#X#z`*>^)5S5Q zV$R#U=euQGC60YOf9}YPH*1;%zCLnPUDR}BcGaf`2PbPRdSRdNMM0va;^GUbgR?t3 zIXl<|Z7KqfY!>HlvYgSeshves^pB`gVc3;5vwW^Oe|=;%^RJ=x)!@Cm-;2v_OOIT& z`u_8^+pAZtuI6k~;Am2~(c?4aodfd>i4VnzyW4*jzS+aK?r7`|&bgs)UYpnSJU0Et zx$SY>own1f?{EDp{v&K@<($LeKUnUsyxB9yrsMpDqm?TkYrmBL({g+X!<B<!d*Z%k zEAF0t+4WCf@Qv8u`I{~s+#GZ~T=<LQtiz`-ahy6T_U4eg@|SG6_5#;qb*W36#Xq!P z<SR-vsp()huuR&&?$~9E%q>SEJo=iYvYggE&<_)T?|IW&C;H=x5U%G&-!l2!O<yoA zYtF1>zQ11X-toUX7{e21m#mvH!OMsJ`h&EUaq|tTj_EI7Y}C^d82ctcf8NS%ua~LE z_RcxNKVz!jr`sEuuRjhu*|E#`i~h?NJKeb}x(#&eZ$|oSh4mc^EW0+jPvUW><@2lO z+%C%SNlfO{?|Pu0dPvZ8+G5Q&`3D-!V%M)sRPphg`9GbRZ^O$~OJ&}QAC$k=a@c6f zVh!uXFE<FfIZc^+(X>5$&Bd1KE+2|#8iZKRTGbT4>#?*i^Xb59hY#PwcCGo}-#l?g z?5rqzHQ(+0DyRJRTB+Z?vU7<{>5;4FEJ{6Ancce7+kN*&crN?b&E8VH^AGj@aQnID zM$Rue>)RDf{Q9rM1K7hKO`lfs*jnRot?-Y~UB{(*=D$0{wP69z-f3H2X=@zz;g+BB z?x@<c*h^NkcksyWPb-Lxo>gVhzx$~8#=?tJ!=}n)d#^s8R>1f@<HDrfyr*2>9JCI4 z^uPc4k*;>Dt5>(5*;{Y*t7Xfd_kMwWMaJ4|msfeOGV?al>}|0U-<D_gb;+6g+hQL4 zzNvmHkS{i<Ozd)elUVVdtOtC7eb-K{DcQO?>1Je?r_K5rv9<1BKkQIEeJ<!o(w&D_ zrY`%r*-&#HtAyH*>XcJ|j{0~hFZ{x2=GrV*{MK{keA^%0m0nd9KXaDqe|$27Z<l8k zOZ)?qx?|5PGHxWSOTD#F)%U^Opjx}ueAVyf!n!Xbx6Hlze0`ytQTo*<bG}Pv9hYv< z*|_@kREC3EoXlLpY$9qr8a@&MGYl3OBswG>YB<!w*h&M52<e;i+D~U5xY?6yI`{HU zsZ*H;q_6#O>MA{Uzrr*;Il9PH<?nNaOWayzDLLh;buy3loqOQB$M#q)o1*}Wqd<<s aKUOIfm5$0<?=oP?z~JfX=d#Wzp$P!Ud;tpp literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xxhdpi/cmb.png b/Billing/Billing.Android/Resources/drawable-xxhdpi/cmb.png new file mode 100644 index 0000000000000000000000000000000000000000..7439777359ca12ac0aab173230f0526d3436f629 GIT binary patch literal 5998 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 literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xxhdpi/daily.png b/Billing/Billing.Android/Resources/drawable-xxhdpi/daily.png new file mode 100644 index 0000000000000000000000000000000000000000..3741af11f479e67d25c965daaf8dc0b9b66532ed GIT binary patch literal 1406 zcmah}do&XY9NxS(6RWu6&NI!MyzWrB$Q^eWi!CyFq&zO>tqIePxEVuUL&!{*kXKDe z81uM7b;(;89V}Kuw<wS6{@=OxJLmhpKfZsy^ZT9iQ7=0EDhYu@004lb9UA3w<Uaor zEOw+zg(R~h6N$36!-J2I0KT3I0Ei;(P#5sACH%J@G*6tuz~(C+#<7U*YU3QECGKeR z3(9WJ=E~9p2zrKlNi`b{-b9(B!6(Vbp-Sc|OEv;^)iaV|p*ATKf27jvtE-EuZ}fBE zXN~zK<d-E;pAX84+!wBEtUmrsINU$vcTCO%*B#Cv$8nsXxy+c$GCmx<x<J~iSBf@p z4`&g)SsuOE!6NpxsVRM-p-RY;+~<_Y;wCB6@`e}IwJ-)$!<VrX>2dXhQ%{bz1plMY z0^BJ-RI3)j3C=wvC+nX#)=O5sRg$r-VTtt-X%{GVmhIKmikdK?vdb1BY!@EwejLw& z(FAA~>-r*O<Mdo13%i>LxF*-X8f#xOD>Yono(8|ZgN&7F@r@|hD%JV4EV!NMk(O`v z<K&{BxoUF_A;__r0Q!W53DiH}H}?ElG1aap4YyU_xfIjzIvBRcRdgzKwXsugtkT#m z>_S~6{ar1c5LX9oBs^nHtPxlLh9C#s8Wwl_sm0<3sR0jG+)d>Q2+)o=dAQ+_J&S@9 zATl-W-(V<1;eG|jm<PSPB-!l^SjCQY&~$WqZG^LP5;M)0ir=hXV_p!zyf`D;iECOu z$CS}68KGXKI%+58`?`$PG*2!DR&NnkJH1)2G(U9LnsFIqbs-Cma;$PZWFxd{lA*pE zF8aH_{Y3=ZsASr<97Ec`(71e)?M&a8;%}v=b|Y<pX|4EgKc_FCJ!Q7b$MLx(t)B6n zasy{GjP#!gWp1$7nq!spxh+y#)Jk>Fkrq2_JAWktQ(>7dvi5F+UqHahz7MTcO#)VH zO;au5pAYEM0l3`zr^Os}uf3H1S)p}tP)H<K6s#_B90OA+)U`5jr}#VubYBN1eJ7|X z<m@){qKKI|1MB4dDQbrw94RrO6A{=90fu&$;a<dpNwN<PgN;V$IsBk}zCA7Ap*6+3 zDc=4j$8j`knY8Cp>D*zBQhfcQw`$j*n5m{J64=+)agM}V$45xSxsv@+j@!S@4uyBg z^v_7-y|2&~X}w106`-^8B$D<N{=1|0GgaFF%_k4%#I+tgaidG=AoHF=fJ&}encm5c ztu-q9243u^gCCu_wTHLnA3f=_n_01a>z+;wVvxFII=%A}(S+hEH@WdPXnk1T&3fUa z!PCCocxO<Ei!$iLnEBU4E67RxduN^1u9B#s<G`CkF;*XQ{^xW*lty^Gk=3i?{>0OR zXH4B`cvBI?Y(u@K5+*3a(vG80ZkkJ0$c^E4V37jDFy#tJ1ZShz=$e**ko;3&96>H) zVFWxs__z-K6nniAYv?|Y*pK9;n1QeX)TKrv;|6OA6ZQ(D+tcJHH=6$L-1lBsiKd8- zDdT{WWOsyB!=uYc<-i@hH-ddv=5jWVMuvD@y@X&Z?M=l*!IaLApFa&PM^oPJu+~>} z%`N__1aM+Ohtac4(O&TUSoe^Fn_ZY?#(i%~w-%!Rf_wtl6s^ZxyImAKn+l_Qt_RZr z3--d=^7-awhFNmiV)-TxzR|-fO1P{qBOc2{45ZI<f?g%DHqf!-PVh4OY86kM)z>rm z#>f$FH$_LqTjZt`-ks>1Ppd+D=WHLJ$rw<)+k?jTi;jl0bW3d&r*HI0CD4=`9pt6O a4}@m|BtadwWAl#&6<}xMgsQjpN%{vj`hV*H literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xxhdpi/drink.png b/Billing/Billing.Android/Resources/drawable-xxhdpi/drink.png new file mode 100644 index 0000000000000000000000000000000000000000..080f13e8d63b326ae770f062a6f46e965943164d GIT binary patch literal 1305 zcmV+!1?KvRP)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h00004b3#c}2nYxW zd<bNS000EgNkl<Zc%1E>&u>*l6vsag0V{(12vQ6|7mC0N7HHhKG%iex|A%gfe+GM9 z!#`ly5RDrM2_~e73xTSsiHdEN7Ob?imiNQO+>(aEn=@z5d-vX%`6QEW=1%9F@0+=E z&zU<H3WY+UP$(2~q!W4li@@u^hrma`Dd1ILdt|#!r3>5xegG~3-vGY>>veSIP2e2x zE6@i9nU#KJ`?<;&W92>IChiwew<GE<UEq7*-6)R+a2%K#p+RjeQ^2tZzlwMXxLC8H zO)eKJAB~L9fL;R(ZEEQOpQ^p<;Q(-}0Y)~x{0QumI(3`0B5($n45*(glfXOD${_-r z0QLlTCqG`nEmTBE1?b=&uy%UtT>_3&^;0ZIfUiA1*a;j&_>dbSzzd!_1Kd(<PS|D} znFFrlY#qi9j0NZeE7jlU(E;{W|2$Q80Q(v4+&-|(a9=$k<R0)B@Sms7BrZObDiin@ zB5T0k(gs5Wn5!Be#$jA1Q)L1;<f*d;%u5>#6=2m<=MZHCtOB#r215jxrHlZn0OEy6 zhyaVglBdo-0-gd}h{V1noUcTL2=Ew~5wth<*!UQE3%}21aJ~`|A^^BpkPq=wU<;9i zn{S6S7%IRWL7le)+iVjO+ax}ELZ|=|byFSz5&?onKqwQq`E6J@_5tC-wt;Op+lJY` z&KOpKKY2PaAkDD#Vf=Pahc>GDrRI7cFrWWHCxB#*%T<8j`M-<+Ig-W2SOl2HA8Jie z0G~~L6!!ql7Q%mk`?##n^Y{dR(jqk$alQ#cGXjEwO&KwdKUld1jR0#D0iJ~<TD%4A z2oNV6GGZ2gzGMs95im=BbNny{$Wpdj&<N1OO+n(2YX&^V{V02(7iwcRlKgN^s23(h z02|cz#Ug+W8~4Rvv;xcnkCfM@$Rox)0#<;#%4<{PF3KNdOyVRs^qMegU&IJ7($rha zC<4@s+7~e|Y9GYCv|MoSPAq6Hj2Qt76am2PgjP8p;&(5UX(-YMu>zEpP^1rv0P)m1 z0?HIrvjBhMo{Dp21!W9qgIEF7F_1)<BQhoyD?sk~VO1i2GZq5mJOWgS_|3!$koy*u z=)6d*0P84op$X8#jsB?f;w<*@N6&*TMV$rPjD-Nv^I%IcnSLz<$TdG~vO%o~pr<iY z&?4^LsoZ#g+a(@_g#fB|qY_{mgYB7CZ!_i?lryop2%yI#6ki0;V<JH8>FFD62Og64 zQ8k-c#hs4Wjcv$k1ayI)joNAhzhK~eusu>Br}U)Rlv@PQ(MSPux)C>0fEkSD#fBp} zIZTYD088YtQ|=z{uT^7~0_2h%lN{eE#!`S>67;4CDC-fBLxSEk0cAY`en)s{bxY~v zY;2?e1Ke?DDesh9#y#<yof2SuxZV_LCui;hH!K^p7GMUrY}{s(xQyX5z^FKhOH<bU zH6!b?P}$aaI>6_o^?k`ca2C7p{m40h`>I?DAARcrUsX1>ic`RM)bGI9a;>tZb##C? zfGgDRL~XfJ+0dG)=UMCpzNB3@<^|x3s_#j#3-}ngfP1Z}i8tte)wlCiUw4hf6HhVj zp|u-$4R{~;05}aC1zsL=KQ>qa{=j{r{9E8EE}*zvQ-2DDLZMJ76f)s|;p_$MBE;UJ P00000NkvXXu0mjfSV%)> literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xxhdpi/food.png b/Billing/Billing.Android/Resources/drawable-xxhdpi/food.png new file mode 100644 index 0000000000000000000000000000000000000000..babf9da59f7bb0d35bc74f75c898eafaa763cfbd GIT binary patch literal 1629 zcmV-j2BP_iP)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h00004b3#c}2nYxW zd<bNS000IQNkl<Zc%1FsTa2Am6~OV|`DPTT)nW@I;H8=f0znapMy(PxUJ@Y+_+Vlb z6Qjf!^+}(20DUnrG2UY(M&g4B-eL?S22An6C`r-CO)9aa*Fd4dl)~UJbEf5Cof+EW zIma_+zVF-LIcNWq_0pNnxAxk%wb$Nz?Uu=*g-tjU=iqI)4Cmu@ou9oNZOr3IJc@^L zKX&4A9K|u5s7vW_=QLc7_Xwk3Dhxim#=q0XUN2V0pYeArmZs^1F^em47Y<`dwAwOc zsq;5?;A416O=TJjHj381L$unmjNVV$_!F+^e0yq{5kt(+yf{YJDbIAieL0GX%i2gj zjeS^FzwuXO8IRyI6_>R!v~V_lfaB5`zFUstdpOHvI5K_Ngr5jcB(>4IWf8x@>(^7j znf3hV8d%1D;g!6_+Fi>knZX;y<b1oBBPN=yxCKv0-}<{{r&xPT^l(Hhx;}*8VL^Js zuSgre!j|fa-YhobtD@VdHvY+T!gtqNkgB@OM$sBxgLjGX`we(i=VvqcFP;*v<u2SU z!T|rloM=`5j}K!zUaJ|t`3Zaqw+c_GR$9UkpT*DdFKZ7EJS9R4H;Kt@m=M6FxKll= z;$h?wu~@5>4Y)xVeSSp6PnIPy+5SQFph2y>C0xP3l<?g$WLdb*FI$8CMrI?f#qJ6V zG%v>1R~zg$Zx-H2%9ZkpJS`edrCflUMf|*uLfwx~3QwpX7mB$gbp@Qj9V%S6yc_qa zzqK6|^Fu%9p}+?<W3AA}RYO~JNLnHkT;-56jQmvWeD&jN%H1CrRqn(~hp_8VwD1w( zHl{Av0)B*7^wIS+;R>eK^D(@0DC-WvHtcCYp-!%ZZw}D+;s)ruC>D(CUT>WzCY97i z@0R1ZPH*pM7B@;i6#ZKNo;nmQd|PuCI^A+Wf0yqfu`o)h-@_szFfvz)ut91=_mgG( zLhn{q;9H6HTf*CivUCr&;2((#FpNBh5A-R+xyo6cuSdSn&%lG0_yw*O2b-GC8Th*1 zF5hEf98Sqw`~6^01#H4c)fCexfp-Wuxfi#Hp(+)98}XnD*oya-uS;bV_@dqs)IB0l zn2NrW@SqB~+B)5*1YC?udi?uQ+*`9QC)0PQY)}P!q5?�zV0_<7L-QVl~J5`8z5 z$z(E_Os1i<M64o{h$b9nnrd<dBqmotVsZr}CRadW3JFf}W>#4)@O)}5rkKS7&!*O5 zig~sWmmxA~m@7n1giIO^7dV(&iz((nAx@5E(y*t%KT~Tl#XMAq&FY+#sD2i)s}T2@ z4kcD*8aaq#g}Che@5IVXBfE9h0ndmd)R}tOrPBiz@t`<@o~eiDgw2;$qM`SS<9nHU zI4W+Lu7;x@5IHn6^>9e^fYl0Ez;BbOGkvV2+d1X--c~#$A0(}sd2x#S0H^MV?H8%H zGSzaMj`8{5Ey?Zj22GVL2pg}`T>%e@v@e-z_^YniTXzLKDY{7R1?97V-;1PFt8`bu z@y;*puSuzCVxMT-ryPRlbu4AC$oP~gmz#xchhl@souB#w_N2%?;x6-=c)w<)g&bEo zhWGU|@}QG(J4Mc&loy=Gon`z|^nj6gv)DLD-HOIl_IGT!F0L1DY3jm^n>^pK-MX2< z4>dPmP!pw%?<+Ao{dpn*UFw33i`*g7<dn)b>9bFbgY53us&rZ+fkzW^ayC^S@7Soa zcLWNNs(7veg>9P53FB9O>17sQ7Uzjl7rH4jhcBt|iIp?(74_wfZnDgY26_6rEII<S z_&AP?sQ4tv6JkhC_PEf>oG^{v(H>l*0T&%xBAfajO~+!bE&Tj#8un_^xnlJ<$zh8H z@q%9Ii>$Jk!RN)U|0MN>wg{|!PV*nX18)*LKq+25EnA-Ml%-cT#zwPI<Q@H+^hO+2 z?&*|aT$0yjGMP*!lgVUO*&-fa8>gV%k&e!<tiT?%^9|`=G8#pe#H$>YQb#c92+peE zJ5_K5=T!NDIzp)@YWPM~RIYm+6|miKuVXijHhx_7N9u^|-6sljp@<KS1BdY)5qe&z b@<T5GYH#_sD`HAw00000NkvXXu0mjfx6d6J literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xxhdpi/learn.png b/Billing/Billing.Android/Resources/drawable-xxhdpi/learn.png new file mode 100644 index 0000000000000000000000000000000000000000..baed857a9504cba0e874c627597273f17711f51d GIT binary patch literal 1191 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEX7WqAsj$Z!;#Vf<i>frIEGZr zd3)EhBPLYj*vI(t<<<*5k4SVf^G(puvUtFvl;prF?&!*@9&oX>gQM%PlL`0o*1Qt+ zn;cCY9qX8GO1QEfRD9Ip<~nhK;oVtV6jyY5^6TZLUYv2R_Uo=ydA!g0`FAaNzx(;T z_jh0JSyj!^q@Z!^g3@WZ?x_;7Pxe+#w3Im@_a>|6oy6lE+|e7Pjd_{bUe3zgQp^1= z=f@J|o=1tEKQH;cn3l~im-S=W+d2Iw`OMaZuj8C^eT{MZY~6<28+W<wtb1;8=VH!6 zE2fyZ#b*{=*pmN>qadW$sM+cAzLm-j7o40L4z)0}ax!uWGl{6NX!vjh%n(>$py-fD z4~c14G(LCy*!sumjc%@k0E?pli|ESYOAn1L_FZlJ!YN#_=<d{<(0?`C^7h*0UYl8J zmNfs0hOtJ;5p!|R=c&``ZtZ$|tCf3J=`)YbtOi$Cd=Tons&T*nPwVrIoR{aWD3IBn zxcifT+{<k1ywJ~2?i`)>-9}CJN!6r-+;7f43a`<dt0)Vy()XgTr+Anrr(%)M!~SFU zA6x8nnwgn-=+E|fnSal({NYe{@_YBs*>er|=+1XYvN!9fJ)IcYHhpR8-HCH{h=2cG zKdI&N$G~N8=7?zQUbxryrSH5Wj+N~D9(|ZSH!((+*L!ER&!aitOqXt#IJWgu;nGOW z6I*SH_p>iqsHT2M++yigpbo#o$3OAiR(rdxxaWao<|5lmfBC$e?>W?OPIlpnd8&4P zZ_u`7s~iu9Ryfz$-E4P{zC7h#vgW+0^`Fu=1b&{`dG46G=sWw~Y@P_7Y!>s!{*~;x zlO`Rx`cNzL>g3gr(_@zH{^p#Us=IG$`I+e!$%0>b9;*GByE0wuz0`y?0oofP@BQ3e z*nQM~>ggq(KOI`F%+3Do&zC&T{i$!p(cq}(J;F;Dt~ph+*>TqVUww&pbk}AS^;N{a zE;gFi@LubRt?J&JuXg`@5L2W7|4IJTduz5fb1zMZ@oUMwq_rwPqPP5sw4LVLuG?Ex zWRBXd`g-X5lDNyCb&jt7G<%WdOLO+O=UjI2=!b1c70W-_ZntZe>JI;3yN*qivexaq z;<?*wwb;HopY}_aw>5izT>NM9w|(Dwe{*kSlRx$S%-kL84sYAqviRfHn(+AtM6LF} zk~lVX)l-*$yy>Mk_PK6k%0FeEV=t$Z@>ucR)TScKX#2}Q<D$9^HP@Es{kGTjZ7Z!) zxZ&0Iamyd;mbnq}Cyp(X2=#3^8}#jEUV>`e<_|R=gs;8aXmGUZ&w~%^CHY<DcXt|p zocgoupEB=K+uiaJ-P6y!=l#88&g;87uEw{^PMT}Iq}Frl`V%Flrwf(qrtkXk_*DOI zZo`(>OJjc@-F5w3)S8KN>U}bujd)%fA7^*`{#pL<rBc2d4-z<mB@ctAtDnm{r-UW| D<IXU? literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xxhdpi/medical.png b/Billing/Billing.Android/Resources/drawable-xxhdpi/medical.png new file mode 100644 index 0000000000000000000000000000000000000000..8505a5e85b65bcdb175b5f67cdae12128ee37047 GIT binary patch literal 1490 zcmV;@1ugoCP)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h00004b3#c}2nYxW zd<bNS000GvNkl<Zc%1FsPpn;4702<<J$<j`pQSB@2-E=~6b%89KLganh#I1CLQEh; z964d;z^Q>aFmb?yp#d}o0tq32#)%kpXd*Of0xHTM0i`yjwAjLH-|Opju-;3`>$$vh z+k5Uh=idEI*5uy%-d<;~efHV=xA$3_LSdd6B$t0VzKol36?WqyY&Ch`hFHci9K^ry zB7TqmPPnX2b3Sgw&qZYnlkF&eiW_iVi`U%=cH>8)1!h<LMmxCX+pgBGKACNJ4#(wJ z_9#1!XGIq{Q=E^V$*<t1_OKc1js~~~@5`^)rgj8(o5CPvq3r@hpZaZlV#N3F;z|4g z{}F*&X~~yGT#P;Vyl5D8eg1ag^Yb{|k}p%^b7G{iv6Zdhm$)*|HGA+YoOGstN5#mf z_k3UdZT>Q@P4sJ>Pvh_Eef(bAg;#ACfZIlV{sjIph4MG!710IOG0OLeF^vH19r5|| zqLpPc#BWA?cg-{%X^R8uZ|~iiPHo@{^*;VP)2T@@YT`AG5m-|$RPW=_Os6Kn0H>UJ zVJ9=4s$oHW0G8V>xb0`aQ2k^kTZP@osS%&IewR+;A>3zLZzv@I$&>&jbGCil1-K5^ z<7zRCyF}<c7YOxp%g6kEC1%2XVBODEEa5}^5AWd}yoSH5{qA^MPAuY6xC_s$6`rkF zcFo?y)A*Lqw<h)g--{oLDA$Qr#Xf2$@h3ds9B0xC_>Ry@RyuHDeX|w(O-SBj-woSw zziuxd_QjU)1EbeN&fs!9Djqu7&d-Xi;wSjzW|e;-9uiaVY^P_<mhqq%A&%r8rQ2!K zJ`|&*TJ{S0HQUKqw>QPy=_72xQyp+_UhGM0D#W@J@kM-TV^j*Qal6=+p%S~m?hsN! zVLDubuVb;oPH_i(oOV-~EL-pe?5IREuFv&nF1Z1_DtrbzlAW1HcH-Jf>|874aARdg z_P+F#Ybv4h7joFMfXlMIXvng7dEyc57ZaM(8Hk0D@8V9eh}3m1CANoW&kUQ`<Kiuw z&DbXPoo4&n#NMVq;@dbw<<EA&-zIiwedk)&HcHj8sQHe%tvJ!5FO%YffrvyO7`Ku1 z;kr(g0OT?(8?$m5lmH}C0+37zKr$r&$&>&jllh+3ve@YRsCsSZT)A$O?>nO%Wlh5$ z(~Ybo+1gQB!CguNkft4F&V;vWFDb{kq-jT40T}Au03f9yW>rET)YqxdwN^NHlmH}? z8GtTzLutNb24H()*&DeytKiH4d_y<xf(qZvbRcUY_KJ`IcD8?swG70T%sWNquDP3t z4Mlp$Lz<<9*-YEnNRv157e(Tz9g^<GvL>8N8HOfP0+37zKr$r&$&>&jQ|ZZQVMZDD zDFEXPL%T4;Zo+D%JF8NgF^+bWrtOT$N+t5y^ns?@QM$G>221dkJUwWV+EFL8oiXi= z0sbs@1$3Pz+EKc;GbZ~M#35#V2*5zJ{w(#h4c@85iE@P;-l#-ozd{awt*}odl`Bk_ z73`}-nzA>OotZ~o$AL<u+})S#%slc(9Iiwn>fdTH@pRz~KEUsAY+VigHD1m0XYTl? z4JS7ZM4ssEnc=+Hy`v)Y3-yQY6q}5#inoGBvR54Qo$ctX+6y*GkX7NUMjyUb?Cfp7 z$QRmZ74mCBB`w|2x!bCkXMLqf#h=bC;<(w8N&W2YggD0irZMXtF*4eP`}8NPR+ntQ zcm;N+2}t9+@ndoB?qTIDnL1k$s=~|S%$-KE`M8m}61R%<VONQai<gNt*o(yB1Pfwe zqz?-sO&N;5d{uPGOX8r<BRD9IVt)-U35nrA(|>%nl~mz8ac0;yQQ-?~pI2-Dca{P` s1mV<awz6g?gp9Ma_M1YXQ0NQ)2SoSUb8?gNM*si-07*qoM6N<$g3Mazq5uE@ literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xxhdpi/rcb.png b/Billing/Billing.Android/Resources/drawable-xxhdpi/rcb.png new file mode 100644 index 0000000000000000000000000000000000000000..269b0f12a102a78482540166a1b5cf6a312db73e GIT binary patch literal 3449 zcmV-<4TkcGP)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h00004b3#c}2nYxW zd<bNS000dzNkl<Zc%1E>dypK}b;iGQyJuIkizFU9JG(PIvs$yVTnML(WgI&SHYCOc zE`(iW8C*D+aycQkL?Et^RPY1KAq93qoRq;1!HHiXwgF>TA#f6$L|9No1@kb$QY;XP zc6z3FW*_Y8wU3$Z`{j?-3Tby{b{^fmqh0;}+uPmee0$Gy-|qW37dXR`B1<ix7Ip#V zz#40fah5)-$VjK@sW#8>Or^C6!74*UdzwYjoB=VZp^mm0#X~)X!m*{+z8EbRfISyn z(AMEhc8D?4YebAKfLsO2yF?JF-x{+Zf2t^t=!ky46p0+`KX`E3f7OlCG6Be(m%3P) zaytZ<5QqxU=C2330-4g_E85dv=^M#C?63XCSh4^RkZjDl0*3sVKrR3f3t7(*0rq+1 z-wzk;e|`s03eoooLJz=!?*4e2a<_x{C`8tW?Y}I<5QIM|Des<s$N6=bu0snzKHk?~ zg#IHX_(MQC!tz@eq$|L~u9Ck=4`p5ufI+(qJOBr}`{Qlm-UN})2kpyO$ZsoUekn2Z ze}h4~2`m5vOedcD2t~dF-y77BAPM01<aw+AO7`w82H_%*01U@sXBAcS7Z7X+%14+8 zXhV6Mla6EiZCm+ijDXm2>z1Ms%|q}OEQ87i076pK=KgF?>h4{D>8EYqDrj(R`Wz#Q z`vGkA%VsM=VwaS>k6W+jvVPd}B>=gu#0Hw?4**=`hrQN^8Isqe3fcc|)>6{}7>*_1 zRx->d2*#SVb(%3L8XrmyXMWa<k){HWi}hWk4L&14doy-UV>Gqini|gjq)`J6H^M{b zS?{FM&#vIg2LPp%`q5xd`kICfG;)#MV_oW+>S>7h`bKa%LO_|o53;fJM;f`l?f?vS zCpIg{&c?cjmnQ@i6u+N~r?=F5ZC!1E9kT{RsofCt*6U~`Ai!a9OTUvC9eTcwYih%` ztf-Xa=McHLF?lNlVt;8yUEDu$aH5veYkmYtNj-F?@@qga5NX$svBn>FO##UEB)5v- z1I;O0K?r^;+il%m+o_B2+Bt7p+urWx0CYAjY-LewcPIN}qoYo>ld9eU1k6?KrJXoa z`Hj#vV@7v5iA2@Gr>X(S#nV?1a*4mXRub}N&r{b`J)_crk*==QGiLNPKvr5GkG~Kl z?Qvat)Gqrds(1&?sOTTGdgT)cWR%KR1Q9WKTcyKg1CWo$J4IwiaH^U|sQ<BZ#_R_1 zz*1{j3=y@>NhID<?pWCX6w&rs3RVXzt8oO}ts}Vk-0=g4l7-9-O88y?tvn4;Y1g>9 z?1A|O1Pmp(K6p)yLGm?G-j%6rb_xIl(1{^?w^Hspkk2l)zDiK!Lk|JQ{PG0>$aSZG zACOcyvg(6G-Y~p(B^+mR{;`DPj3x{Ay8%4D1kx5o1iio6lm77h@`aBe;ip4UR6ob4 zd2PaRMk}2lfVT3Ps|5V_Foo5MB0ssH?BqWjBswrVPqWpaqW)ZZ#NJ)Y$*<(?t3duw z(4y)^MBX&N?34g_F?A<ev7ev%o4tkX*J?feGQg$F4*-}6P*nqP?fjAx0U$O-#8AH% zuArLO*X~W<TJJo~)L1sBh3^kaRAVe0K|B$FtW{VIVokV$7J<~_x*v><jvi^`^3;(1 zlqT==TUMh;nGeSk0WgZVtd$-=0(b&kmmGEWHDQBC&RhK@00(@O)-W14I=}2h0JNy> z;mWBFiCu|;-SjG!jeGYNMY)#(Sn%q)1dPuwP{8bPBLtU)ucs2UtwQE<0kj|1l8$48 zyx$L7%^<-4&M#8{5Gffw;mfHAq4l+X8%-AMTS30;x83^i9-CjH0H7pZ%k+AZ`d(`| z_l)0m1@M%XZGPLWgK4E$J^%(W5Wb$W{Hk5gd^RZKiIL3H0KXcP{Y7}LTo;N00FUZz z;p;gS0krbCt$So-!JC4gbWR(0km0`-5qiO|A2=QW5pD=q&O)@t-H8$Vsi6IwGjVW2 zwE8eYSb+BioScUHt#U_ZUqc1!!V^;l@@PA!?g-1BHFEHmAiofnKTX`fKA#^ccWm|! zfW*TRQwEQk7X|(3nNPA{-$mfXz#Wkkmv>h>tN=g*=L9aK0zy7$jbvX7-7lbF>dgRO z3DOTKpGu8obCr(I-T~y2EYk;QPZaD=gs~vH9I0$}N|g6L01bC{RE7N6^qRKsRy$>` z4OoiLbPdR@8<%)yL(*~V>7skN0MGeqn0%=eHLhO2e}C03@wvXB&{MdO+-c=A4~6Zw z90RXAwkY?#03Jc}cOwb@JXx^cUQ246<BuRY+@#ZbnVv4`n?m+km4xF=TKUXYCAb*C zFdFNJniOD1DsNv}tsjek*fDDWc%u;>Zb)^52=t$>_i3H2-z0`I&nNSlq$;@^h5Wvd z?xGiwB=i@f#iPB+eC97IotEuRePN`lYqisz{-P+^M?eGsvOTHq0CIzm|3_u5;2w9C z@s3u@TvZ9%vZA`AdKGj`YxbGShzlSd^_XF*L0$BQr_PQJF7~Xqd#p<Z>c2oZvn!04 zweohK2>_aSRfUvPz;NY;)M--r!0ek6W(RZ*04TpOyTUvT0^-C|4~U1q)sR~O2n5OF z2VVi+$b0ZBUsYFt<UjR}+AoCRYpHn-n<Cks;YS5>1r2@_^QQn2FJZ2bN`ikL6BCBv z-Mm!q{9%xZr!LIL&+jIn;@ySM2;>R?fXKr6S4y4*jt9ULH_%2{0BwkOW4Z3w<w7=| zzD<d|?4o#EzQ=lxDD{<U=ZnaG;Q0E0J-DE4ZT!eIL;`6E2tJp}+skr+9|6h6Q(qI2 zZ2%O3A_!S*9W_hZN{wZ63IH}@Z;^t33rORXruaU@*a|p_L`SYC{g{Ys$BB+jv@Kfs zz@#;n%>ySTA0oZ`M9eGwm&tGR73>4Ka}y~qV!T}eZ-wCe*~K6163AHuBP2{EQY2Xv zkwXN>HQ*TF9?z4P+Enp{R?37s*p=R-J$?&<->COmYJN`u4>)Ow()iiy&OX|%hkZ^# zK$4G&U=tu#Q-*+|fX_hVQSITW)R_IE0E>Sl`HXE@QIymz5bS6$Q3;JAF6@0hvlloi z00hijPkIPImtSH7g>XdkPKkIs6ONM!+TE)I1MSfxQ=1{`+km8-Fm=r2OnmNcKBdvk z#{0es;b)psx&#RM#1x9xpI<19`Zbpbm~CK3VzJJWTJ^gG{skgUFV`iwCzZD^ocsHf z0L<otP={J+ieepjAje5O2*vMN`Rp&6`Q{jmC$<=3d=8Me0`M=<EWP(xh1`G6{kh<^ z)9y*XEWm~H%TGh5L5xu_t~AG~updBHJPwOsLMt^xt=p+&ts;5>ycvQtAu$1Z0YrUQ zL^xI<lRUYo%yen}4}`kMcjw`=3WB5nNzQh3T>=0!<iu?uO3nTPPx=`K*(FBsU+0%C z@JGPR#nT5*bQ+z(FQ#F5>#f|W-S7+gC<Jf`-STU1PeXRjuY91wI^oV@+g)6OVajEU z_FR<h8!8)sbH@)Hg4TBht7#>{2l_@cWz(2d%oQOKejQ+_lckm=B*pbAE|aPl04tXp zqvofAQMIDDz1lLXs`-N44)YO`d;Hh5Qs78w#<;iI8H>L57P`CRMYSs9|E@;M9@q8c zo$E#htIj`NG-+Rac(|an{ydiPP+}mEKU%Evf!aU(B-@kT4dAz%Q?+9FbuypXSWCxX zt$9OPnpRstyxOF&6#&Pi=)S+!UfG%xxAspQoDl6^OX5)D;+8o?$pEiUzFzxYGj%2J zPL4P)isyZ-rs;Ys5JGS7&1V;MxK*R>?CI8M?r|YMfisQrDG>V4Q-$m|>%Fd_{R0xi z*#`{ZOb})vslS}cXRFQwszk#(X!PbY-!;kW{2T&29U*W>s*r7XZFAG(54m_^ix%_Y zmA91%J(8bp<gs%yz6=04vDAA!B|nsvv$4ZCTzuRb&6HhyT@SwOq?Z`6cN?noZh%kw zVXvhje(3?1_)+<Q&qJWZrbw=P`0pUNartfVLl2N2)6_T2<t+7sK*peRU5O3aG@lfp zmD1oe!x*8rrt;Y*{Wk3DW}b5-N1c7{D%B72FN3fjF1#<V+;k9?4}`GWsU5Qh#86)b zupnz}OGEsJC-~#Od?wKGkWf~J5m0t4wb@Yk6Np^JGC7o61QL8gsQ)@y$UQkXgE>e- z-|u&@w|A3C^Cm*B25@fJ{wr_{#N*1qJqafh>YLn>ZMd9|$2&_B*)EWe5waod4>=Mg z2=)p2U}?s<x7K~X{H7&#yxsw*PsXfmqSP(Ncj=45{}%)eU=l=LllP^D?R&~4QVpAy z2*4aW0Ci&`u_{uGterCSl?HG%fy*J%=<MVosh<+6hqdNTv(1~h-*KjQv{3(5O9h}D z1k}N^*R5&mD6Ur8TwM}&m_QU@r{^IGKn%z+7?>1t#wDf<6*=57=^cLJQ0DM8AvC0C bIF0##!b%yozaR(O00000NkvXXu0mjfEm4Y% literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xxhdpi/trans.png b/Billing/Billing.Android/Resources/drawable-xxhdpi/trans.png new file mode 100644 index 0000000000000000000000000000000000000000..f0804b086dbaafc381843900e3485b90f6a555a6 GIT binary patch literal 1394 zcmbu9{W}u~0LK?Cj9tcNViwE0HLor9kkf5x%iGv8rJC2IMd`4MldPD$)uR_LBX5no z?HJ+lQf6z3yv!~d%8af~u9q{Ew{!o%{c_*u`F=m2zu=qc=i><m8Grx)0GN0b@4rp@ zzg6G0y|V?0&fC~|`7n{9zMW+Ca5ew{v?Ag?C```cG?BfR02O~3Mu!jLb%;lV`n_iD zCYI3`&2+RWcsyAJc_)>v<~zF!R53&Du8HbuH(DxVt7F>BEv@yT8kr`~*rRx|!a363 zG5^bFoiqh{dV_a$Wy}4Mt&^7H7?rmWsQexuue5O}^y1oIkx|~E&_d(yGK#N}7aiJZ zpM6^jt6~%&IoWkhI@KYC+T{mB+~OTD1{-Si;v}Z-WU*5;?iF2i6XJFjgY5k5a@;JM zZ;HriEsEvf^2k$}Kn)qsOivN?aV)vg$=(17#XPo0V%ts)F~sV}+a#$CQ`ZA$e}&Aq zyhvg6dCHPl3!+THvYBM3$rCwxol{mXKnpS?$|`XCk8Y#>?u{az#^TizMY*&Bo6kuC z&GwVs!=MeOOZmpztlv7Fs8@n*hjc5AVa1{wQc*!v3q?ylWo>aBLhoVDkX+_4luzo; zDrYUwvDyRFs9|fBLEW3xb4P+3k&y3~bTK4aBu~A6txiAS-XSfDbFBHjSy*!I26==? zE0?tn3sXTxxK>Dm9ebb%TLHX6)$g6g5np9eK&WN_I3IY_^C1AGc`KKMv7Gm2)-m_+ z_k|ReJO{a2aOEe>9|9DsKY97Qj7S&F$-|p9qYDtg_<cdCKZnDmcCY`JQsO+U0ttw` z-9p(~$6(oN*ExqAo@P--fX=-{+O1Q5xHzcP&IR=6k!HY$=a`z1X3hW5_e^+8pefOy zp=k*Bfd+2@w%v4D3KJ%=GKBEEB~P8P@&wMcu}f+_j>_>{IgZy8p#!E$T}&yLV<<c* z@;09?ermD#V6oP-%5RcV!D&U^_qUR{sUTr+XISiv5<Bj0xDWMqvMoQw-9)G5kbgye z?q!cK=K1s|pL)kpixC0qnep71E{!f(jH+z^(^d2q-<O|~AQ<%MeWMc*9}IOej)@u@ zwTNSKhkB^#Ks81|?%&7m{C){jqqZ_rb8a)mx-ps$<~Py8drGWT=d}N-8|Q>-$uEd1 zS@-ej0#=Zo8h-gp;;}oULt${F*d?^Tzl@z)3dhtmko}BY6pdmtlw`sreLXHy(rrrD zZj<9Ouu(Ki+=;^FM;A_wc!;tj8HyheC8WK%ZWpB_>el3KUp6@4B-F`7(+<{3@K__P zmwvNVShM{IspNI4ysKj<2Bv2o2%+;j9u)A<VXFjhmF%!eKUdvscHx+Wl9P7mSsrY- zB#WWPuWlV>okzSeTt&F1i&&BK>5LmxCcwgZY5wRaS=okVfN8hQW>xc1ANzdlOL`zH zih){K^@LqW5A!9{ywpGWrX1+{!SDU6v6*3Cc1Ia1nbmoH@-<hqvd8LO+A`a4q&?1d zs!hS)sjM#ZqPeB<@X|4dUxG+|;X4e>HAn0o0WBTj{^!2ddOJlXl6E{3f;%kxG!|m+ zIz0YpzZS|8R6*(YCxqpeXH4rmsV^p)3Bl*Zqc*b&l&^R}+VyQ7jixeU2TMW;XT;4= zUg0;?;~5E8i*xNjq+SRjPyU>%g?^!33fUczZyRdUC=Ke~GFELTEPd@y$eTHRA!<Eg zaeBf6`#yL-b`t?9KJcW5AJY@iq;)XMC~U3i^hEdRvxJyJFZ2BV@DuVgfRI0|T5zOK Q+b0Sj5`6HDhv{km0R3fx`v3p{ literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xxhdpi/yuebao.png b/Billing/Billing.Android/Resources/drawable-xxhdpi/yuebao.png new file mode 100644 index 0000000000000000000000000000000000000000..3850f400941f1bd212f6d3fd798441048e264094 GIT binary patch literal 2077 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 Hu0mjf!@d}5 literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable-xxhdpi/zhaozhaoying.png b/Billing/Billing.Android/Resources/drawable-xxhdpi/zhaozhaoying.png new file mode 100644 index 0000000000000000000000000000000000000000..df2cc1bda2cb31d3ff97c234bcdf8d6671a19a31 GIT binary patch literal 6123 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 literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable/clothes.png b/Billing/Billing.Android/Resources/drawable/clothes.png new file mode 100644 index 0000000000000000000000000000000000000000..9ec677523907098991175a690b469d3f122552cc GIT binary patch literal 526 zcmV+p0`dKcP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00004b3#c}2nYxW zd<bNS0005SNkl<ZXo2n7&1w@-7>Ds+6Kt`m3pXm>g`0xjfg43|BlZSdstZxDRZyYs z1;LdouR^zi3*B`gh`8%Uv`HK4SL$MBAcUFBM-tBn=Yf|%IC;<WAKsZvCPX4Lu~cL2 z3Qprh&gTyC1;1+aJByR(rq#h8e8Vn&)aX@84>z%sN*+zrF7Dw}g<dPTf_L~m(PxBD zxSQ@dH@2{!BR*b-c#R8F`kcXYd@boU#M60*_fq+3n@!dTZ*T+WaSm7U0{xo3wy`#= zeA$s-WDW78X^7DB;~}=|i1+ZI1>$+*RC;1(V{^~~;i7Sx8scF~<x9tDEtL-~*l3*E zJT^sjfJa$~Yua(OX%b=s-nT%eX?<A2zzpAZff;o0F|@@D>~yh*i&zdUQ<pw&ckx+r z1Get}3DL)6yvp8K#eGST&?jbDjU>NKj^`!Y)b2~_UMgS6s`lK4=E>hFI`WetHd`Q^ zjZ5}=tBU+M8+eK90RvpdGh8Z?tol^qsN%YLQ|j0G7Z!^o1_(_I5SkbuG%-MEVt~-Z z0HKKiLK6dorfPuULM`&yud=9HvDvcZ!Pl_{A_M%aS>Gl9#=LE?UnEk8zre|mw3RwF QY5)KL07*qoM6N<$g3d<rJOBUy literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable/cmb.png b/Billing/Billing.Android/Resources/drawable/cmb.png new file mode 100644 index 0000000000000000000000000000000000000000..7150634be3583e2752090abebab030881d39ad89 GIT binary patch literal 2843 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 literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable/daily.png b/Billing/Billing.Android/Resources/drawable/daily.png new file mode 100644 index 0000000000000000000000000000000000000000..e4f97299fbf317ee5a328a27935cc17e6ec31975 GIT binary patch literal 808 zcmV+@1K0eCP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00004b3#c}2nYxW zd<bNS0008tNkl<ZXo2n8PiP)R7{~EX(wM|3G_|FP5id%-SW3~-w53!;@g!by@Fe~@ z_aGL<b1Qf#2JNNC76Lu=RQd;s^b!M>dhn*A;z<LNi+`d?G??@-n`GaK`@VT+H}9Jl z-Y*RM?la3X&+nPpd3R^FM>;R!BRpEd2Q1+{ZkP1a6utNoYZaBRF_aQWU!A&Pynz?6 z51->REN23SQyMJb5e#4v593|DjNdSWY5cxjX9IW*b8546C2NQv{9D!a!1qFu2t#r@ zs-MHF=#PW#jn4OA5|=R+)%9#Q0~N3qosS6#oD^c*AQmu+vv{n5)BiAEF2))bgyFN! z|0Qcb-owGXF}?>T@LWM7d8cbQgL5{ARVqvP82=QsmFM}a+$wT*QSmsP!Q&-^-40J+ zwoV)u@)yTFaG;Lk<G6tztBSOMXK=Vq{b>HA-ZUE1kE2;>Cv|V)j-xA}-E;-Co34O% z)6D<CI`3l@A7CVB{|Z+th-pfR#9r0-(RUCJ;k(FwrA*X0RvNTllcba$cvI+sy^(z! z?<Dw(X)60E0;aO#U}QgrBMJUuc3eQwyK7&fzfyGkEYuayZc@hVU)ga;Z30%*z80p^ z)IwQ`fRn;Y{Y^ZTv){sp3I1ZfX(p}|0lx?WRwDb~_&LE}DN+P{A_y3X>=XFZ=8D2v z;_n^*A9%aKKAx49(($uUS3tYzcmXLl@!jlrLhZWfoG^#4F9P=@{(eOhE8!^u-V&zK zFVxODv%-RJS$=IMt`q@-f`B+neZuZaOGy!MUFhm3Bl}CL*{Ivo_>xUh1RN@`@3Xm0 z)G|7L7U~LU12r3fv4B5X7)UA$`IA_{JzKXpcN_QXRX&X$RJVa$b@?faaf5iyT@a?$ zQ^NA$ZemebRJ$Xr3}UN*RpAqYWjw3=mnc;+F9d%{cy-;N=%J}!c+Pnpr-gOUR(@(g m7&3nf&s^7p?<xL`FM0q@R^1kmw=Bs30000<MNUMnLSTZV$aSay literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable/drink.png b/Billing/Billing.Android/Resources/drawable/drink.png new file mode 100644 index 0000000000000000000000000000000000000000..034518ecc9630589c3d571508b0f6e36b8b74557 GIT binary patch literal 684 zcmV;d0#p5oP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00004b3#c}2nYxW zd<bNS0007GNkl<ZXo2mR%T5$Q6ox-=2s18NU|@E<f-Z~;64<)cXFzr)J^{}FD`n*y zs4v38#BdX1WWi<3pbjAn2{X2fs!p1oy7p9ccVxb#lIia1KL20mRCV>hgbC4T08fBz z-~<=~Nl9%eV{QYFfd@qlyabL)6s>DVzzbjTOF*Xv;?vfVnnsw`7<dCL`nrzDBJf&u zp`kc81+3)Gb%FQ5b*4`e@%KYu4S1B%u$t?mWeWJh-4yNuP1}tDX#)E>4WFg9JE%%1 z0e<Ap%>wgbH5!?hF|!<_7=7Iw*vlO^f%f>ioM|&^U|-eI$3U5ry3J_G<~0HTaR$C3 z-i9f&RBK=e9I86%4D=AM@{|UmgjCCJXl4)wvawEpOI2r`0T@l0sxD)o%C@rp!91dS z!1K)UGhhSg7nbHm3wWx~;>|kM?}5_xN+;4(LI*g!wo4#EvjTzHKnF3ItELD1)Lk?g zxB<?C%kk$7p+$+wKwsWmHD?$W4qFE5VBnlFGEj#SI;Eh20U`r~(26{`wP`RJ0E_z) zur4Gv1I7td0)50FYH=}8Wd^J(VciXkT|$?(2SlcWW*ePiGms$mL{(wkkJ$`B!L4i{ ztg-8EK)VY~aWP<hNF<EgXdkA5Ka~Fw^Bac&cFDkBH2(-h=1|5q;$i@*DI=%3=W3ve ziR?6J_a+11fUDwKyt$Gwt+*QK0y~A}__G82a_Q)5-~#wWIUBn^@Il55${g?!@pTky z?H|Y(bD_njEC5@Gk_s)p3v9|5QE36oz&qeO;=8q|=v(=WxAK{-*y1Nl$ng(FCuM23 Swg&|O0000<MNUMnLSTXfZ7pm7 literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable/food.png b/Billing/Billing.Android/Resources/drawable/food.png new file mode 100644 index 0000000000000000000000000000000000000000..c5b801218b56f981244103fbb6155ab82922c36b GIT binary patch literal 786 zcmV+t1MU2YP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00004b3#c}2nYxW zd<bNS0008XNkl<ZXo2n6y^EAr6vy$;JSq!n2%3#XkPRWIU>eg2fwc)1Dbfc-Q)Fw+ z3zAAvL2I>2ks^P9T}VWY3fXM2CMZhCi>5R9l89#4)pchXEzUDA4mxl5dG=w$e&N70 zbMEild+xc<IW^_79P6<KJFz|gJ&Xqa#dS>J9Dc`L%$KaID;eIwA^eP4Jndpna0!R= z|7HuWx`jQsfx7O(+ihN)%I*bMjTJZ|(xYGD?bg5vtnIYmvVsE`%6-mZBUUB&s^ML{ zfpI)eR@VnB@jiZ&eiBb`JXO#z-or6bG46_s`2bh&6+XZQ&!6fVe4C3%O{ZN3xY)0X z3wavTT^6Zh68lBzZ1NhuE+B|Mv9%xZYw%4E!e4ac6WG?`YaK2o22jUA@wRm3b+PLy z3tnpr;!WI6^f@Wgv?J?rDsiEvUB;#s-ye%=GN`{<?C2zZIlk1}%h{`aC#n*WO6L>( z9qkmr+v0nqDDh7*g^xsCui*>vP7LbrLaX5Rvh*P~cZzTTUdjEg&IOF)UV^`l`hHdH z?l<iw-pbclnYhkuLhws0(N0a|)uN@+uBQn87Xeh>KqoMt;bGM(5_p*5PSq+BxRc?p zs#PR#BNHv*V&zJPpQ=`oz<4G;pKn#IWB~rg9~th8k=|nC7u?VApGc#6wR-xZjvq0V ziJ8keG3!|@+{O=RG(RP-;!JgV`sS>ddOXL7=wHj|$cpZ<M_v}$=h7PPvTY8Zy-YkY z13j&n@p#eJ$h8f33ZNziN2wFEGVB&cbB$g3M0}-IExKvbxu%|}VV{`aR4x7<_Udux zTNx4;rpl9;&Np(XU-3<97!!A5Auo1A<ouWccK$_-;(H5IV(0R;MvD;Mq$bMOr^<co zrbNmND`@AJSfT_DU`FxzKa=||oqtLY-?YAal0im`C-G>2|8-*~_uUuI0F-zMd+b6R QH2?qr07*qoM6N<$f-S6gC;$Ke literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable/learn.png b/Billing/Billing.Android/Resources/drawable/learn.png new file mode 100644 index 0000000000000000000000000000000000000000..c29c3145f284c711f74f95f12d31b21c2ef04301 GIT binary patch literal 674 zcmV;T0$u%yP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00004b3#c}2nYxW zd<bNS00076Nkl<ZXo2n7J7^R^9LMp`nQ-wD5quN|42qy)Bc{;G!bVUm1VvD>Q53}5 zPPEZVu@f5=M6|Q96B|2UAXr#LL9j>)Us3T9FUGT&9J$-O-P|R2Hxc#=3kNgv-`{WN zfB)H?;XkJ^L;DJBM6nB68d1V9KBaZYGO!jmu^9{6tE*}L;uVhJU8{rdqC8KoJFSX` z(Rm=ea*d{m%u0<|dEbasEwOUDZR7@GlN*RlZXh<ff!O2*Vv`$)O>Q7Ixq;Z^24d5j z(RLgC!bde>3ntd@?`a~l_JtPC(B4hT7>_NYBV;|{Bk1dvkQo>kHrndQGVns!7o86b zW2n_ZC-F`EUAeC~ktQ;01{PsIwh239F{)4r&u|aFS~XB<FE-JyQ&dcp(>k<ESWkmk zlT$ZNt~KSUwziP9kTuHyj$@f1u7EMzz<Zp+plO38+!Fqn(dolQ)6-nJE|}g?-Ypoa zwEe{sEa|q`M(h!)L`B>r?h7eZp@_3WEl(a=^mkKilC5}~5cL%68}wbN{>0}8&WN;F zuEyhpppV!q{S9}yP!g-he8A35i%qf^S1?f}q=fTLjNODcYE6u2JZl}}C_byr`|FxZ zg&rJEj4$I6)^$Q`k|E*DHhJ?kEyO6|Tq4E<uIg}Q8pKQW)4yvLu?j*J`coC_x3Hdc z<STJ0uBol}C7f1UGFxE)4~2E15_1gu<|?)k+tugoC38E9ElkB7sfzg%hvuX-h2E*a zuZ3xUfK_dZeGp&pTrkv8w%{^$Xzv^90c>b<%vAc!KJVMkKdNvE|HVVg?*IS*07*qo IM6N<$g4f_O+5i9m literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable/medical.png b/Billing/Billing.Android/Resources/drawable/medical.png new file mode 100644 index 0000000000000000000000000000000000000000..b07969aeb30f3ecdcb8b3f904c0902d9fc1322cb GIT binary patch literal 901 zcmV;01A6?4P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00004b3#c}2nYxW zd<bNS0009#Nkl<ZXo20@%ZnXF6bA6$?YYT_4opBZx-ue|O^6uHBEe0fi-@A2q6^(f zh%5bLTnR%qB5srr5EB<Jj0-U+;=-sKl~EUJ;tMsenatelqPn>~J@?gJHR%~YI8c45 zIp?dcuJ4?xnvOVRxD~T`yEEnA_0hw1T+N>wVcLMha37w+{a6qN(JA@tk7@U@j7#_u z@8Y`%F17I}zQRh0P*YpR1w7J(NRt`32dD5*{=AGUSgq-&i`#^mgU|6SeyZ!FE}q7N zdHV;vF3iTY{I}wJ?u=;@*3Le>io1mu@(f;Uz^N8KF_`|BFcaZx2FFYOK8|KL1^z4r zygh-x-6em&C-65Bs|GTdCGgiZ7{E#be-lvz>m~A6tdGKKVca6_2nsQq_Zya|7U~8Z z5vS_2ctNW|vMc0z1BMM?76)+%_u@`L?si)L$#n3J@d>L=yTIEy`4vH)FXDTg#}|TZ zkHlSg6Te84q*B>R&gl)|g>FEG1424)o9ra}Rw!TA&D;Tey#>fkYZvf9L4FP=v9<+> zO>1jd6xOEwLIP=<R9*WG`!XDpCZpbL+<{{mj<(Gt0!O;oy9thO;BSL$J%f48s^4+g z+m$ApR<VdPLKcNv@FZSI9A|e&NY^nX@i5HepUQ8$@K@qE*UKA?lo++sOC771q8x4$ z*>)d5v?^59W)dz{o}<+%b^wcb&!EJew5Fb~^hu&lG3k6hCUA~jF&tu4s4vZ)xbW2o zF$7|cC6gic4W=j!qI|>>cmW^Ss6th>DNrq2GCUSTAT|?U7IsI)c}_p~d1OTYk4k+A z2L=0uO;sao_fjI6inNCR#Q@ee!SAs0JoRP<R=dKve&a<n0xw#xPSI*J0@pgiCB>e^ zj;rbvtu`aD)Wwg|4`2?56Z;&7r3|0mgg~2x^BK+xr@-3{m+^ike5>bLCes8T;+x{( z3H+-4<HBj}XFOgW%?`XQTqd+lZjxQZ2}APA3?9a3f_}G6v}!%!mgcZhq8wIq&EYvA z8SN3SoOW3Me-N9Eg76JtzrBRFa9Txh#u3Vd6W|45P&-Tg$KArGX!mmB{|ZO{e@J&L by0!2h{9h&+|D9NO00000NkvXXu0mjf_l=?g literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable/rcb.png b/Billing/Billing.Android/Resources/drawable/rcb.png new file mode 100644 index 0000000000000000000000000000000000000000..6d70daf7d976763b35ae760d4ce5b5729428c107 GIT binary patch literal 1730 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 Y3oS2!LnamGasU7T07*qoM6N<$f_-IA%>V!Z literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable/trans.png b/Billing/Billing.Android/Resources/drawable/trans.png new file mode 100644 index 0000000000000000000000000000000000000000..1805e308e5a4b5f02c1010d1ae96a0ae8155fd60 GIT binary patch literal 771 zcmV+e1N{7nP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00004b3#c}2nYxW zd<bNS0008INkl<ZXo2n8%ZpS;6vy$;jN^;(vCt9m6&Z9SB4i*60SPFG;2$6X4I~i3 zYy&dj#)N?G#lOH!R@o#3d@Rf$NH!y=h`10293wbtqL@Tu)OJxl+IHW2yQ=$+-9!2d z1-GkDoqK*&U3G7rYUVh73AW3z2}@@w7O3DcZsD((2C)JT;2W&PKue*;^B*R09B0~f zwhX6)o_XKp6^>zXQGi9gIUk4cRTGgf@Eh(5BU-7}7hS^#*n$2WzkN7@J2;J(P2y-^ z9j<ELQ)e+Oj8;nduqwQn|8WfE1z9u#>#;3D=zUC!oOCtJ$AbvF?O0L0PXk2)Hpm~| zTJ~TJw<Bz8*^HeLc7uX|Oq$Js7*^w`uzIAh0P`Ykb7LuMNgOEASMrTxxQI*QR+zG` z_hGaw0l(t=NZYa)QlfyF2TRuxv&wWeJprAjC!o{x1az7?FCg|oHi%WT8At|;VvJ%1 z>=$-VGrOtEd$`_Grhtvr(sj)FInWc(X?g-WO{)T)>yiyls(`0BEF^fhVxrCazrs(# zn*WiobuEq0HD<|vth4zP&ob;{%M?ax{B6mx+m#n&>Igil`}{bueLepQ9WcWmsSZ*F z?8hfqDdbMaurT$eH4NiRA#J|_C))7Uz(Lu=IgN9;lJk9Pd0F*!UC8bw{e+6%g<j;; z4`FXXyHxsx3EXnyJpOLgX~|TCxspkdfZNhj=Ci>g1!?#q0aLh8dN^rRa31&a44NJC ztq~^kXZSed`(N;TtI<^%!S0Ouar}%Q6bOjrTiL6_o^~DMiyYsFVjBN%Ugq*nUs6wH zvUr|Y{|>PNCh$*P-861QwlCtc#?|i6l6=2m2~G;VQo%#vwW19A@HL)PeLux_BGW1< z|CQ($jyyLCBQojjkx;wz39Hd4ZsJ;rzI)6nuK@%8=nX5)$vFT3002ovPDHLkV1iJ) BW%2+3 literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable/yuebao.png b/Billing/Billing.Android/Resources/drawable/yuebao.png new file mode 100644 index 0000000000000000000000000000000000000000..60a7ddf7f124a79292c800f4f610cf75faad1330 GIT binary patch literal 1080 zcmV-81jqY{P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00004b3#c}2nYxW zd<bNS000B;Nkl<ZXo2n7ON^ak7zgm*IWwrKR#8Q%OB797R5OUns!i&$U}Ym=A!*r( zga`{Px)D}VmxZK>h>eg6jf6xrni9pRZjh?mw5F=GajEH?nPc&MV@^-c`ObIi%x3<{ zo0FXH`=0mzJnwUR-<Mg;q7-T+zwg5$T!Ndi3YXzr%*QFo91Z-91NafUupK+G5C4|r zQ5bjQV~nDibByB$Jck9-O&m_e?-|MVQsjZ6B<h9f$K)rK_`V7brSY_|V3`&8TExtZ z-~xQugJ9Y?jJ4Cwx(&Bszx?EniWQtQ{gjVIKOU9emA2xd8Q|LybMUI{<PTwa6%&^& zWUZ*n?hXy%LZ#7Pg^&a_%oWu+4NXx$Dx0(lT#LtXWk#99cn0r^*qIU3u~f7IN94~! zV|W8ssn!!RVIJ0rW^5uS@%HgE9>Y1)MSeau;?I)ATgNCiPlpnV@Op*B+sBY_%PO<u z|F{%eQYIghEfyxEuig-@uUd%(qEIzbCcX!2uqWl61~!Ro^<tNI#_<u(tBQOb4@++q zMon!>R^U6w2X_N+;;iJoTT|pU@rsK2q_wgI>?SNuz8S=)ElM24%Pr(r;*%co#_^z% zu5>m&%Rs)B<b1JegJLBb9mwy@D02_4E=s<R^<p!gHH%E(`9ulA*WYd-zYN=Q$ZKGO zl$~E%-*N^X5kB1u`|%P!NE99xClJ442lgiKT_ap$s|eIFT&VlDvMyq4vvA{FST5S$ zES7pgv;#HiK3i)WH({iQ>;~@aCNQlBS%cG4Rh+_7QRLbivx5nNlM`93magIA<XIZ} za2MX{^f1j@TX1_1;gguam-wsg|MmDr9C$tDScCM5;+SPaKY}H~7@6^#?7`M;3?{Nx zi<l@XXF{y<ap>kk3r%H?Eci!Qy8Vc7azze{U~WButK)o8J9?cB)o?j>XC<^kJ`24d z{~=dRxM<duzOR#zZko@{Nv2<<#5`ywzga8oK(~oIA@7EJ9j+5;w-xuB3gRan8^ry% z0%vBNqoaYkDX>>qC{G{KspQW~eiz_I5nDwu-09D5E_47tm6)t*H1S2J2i+8C;++#l zCqH)Jmrf7T(${PF<Al)3hlbdLcSM>3Ux`k#net9A)Y^WFU>n{m`td4peqXeLZWMQB z8x*^S+J`%elApwCu^L5{7%4&iUKJgBEfdXM+1r?`<8$1g;_IgYJcMsWk5l$Uu6-O4 zSFq2D);tr61lMBRBJPC;MVHvI%xAzDz85)uJKh&Dml<WU!+_X!E)-RGr3lz1qLV$% y)RuKZSool*^1DS`4T=1INUUm^j5mu}6v2NHgKAEu%9wuu0000<MNUMnLSTXttOKwB literal 0 HcmV?d00001 diff --git a/Billing/Billing.Android/Resources/drawable/zhaozhaoying.png b/Billing/Billing.Android/Resources/drawable/zhaozhaoying.png new file mode 100644 index 0000000000000000000000000000000000000000..88757ff6b003f224575b2ff0a977415f3c1103c5 GIT binary patch literal 2787 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 literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Billing.iOS.csproj b/Billing/Billing.iOS/Billing.iOS.csproj index 035fe62..ef108ef 100644 --- a/Billing/Billing.iOS/Billing.iOS.csproj +++ b/Billing/Billing.iOS/Billing.iOS.csproj @@ -69,7 +69,10 @@ <Compile Include="Main.cs" /> <Compile Include="AppDelegate.cs" /> <Compile Include="Renderers\LongPressButtonRenderer.cs" /> + <Compile Include="Renderers\LongPressGridRenderer.cs" /> + <Compile Include="Renderers\OptionDatePickerRenderer.cs" /> <Compile Include="Renderers\OptionEntryRenderer.cs" /> + <Compile Include="Renderers\OptionTimePickerRenderer.cs" /> <Compile Include="Renderers\TintImageRenderer.cs" /> <None Include="Entitlements.plist" /> <None Include="Info.plist" /> @@ -227,6 +230,105 @@ <BundleResource Include="Resources\yuan%402x.png" /> <BundleResource Include="Resources\yuan%403x.png" /> </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\cmb.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\cmb%402x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\cmb%403x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\rcb.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\rcb%402x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\rcb%403x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\yuebao.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\yuebao%402x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\yuebao%403x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\zhaozhaoying.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\zhaozhaoying%402x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\zhaozhaoying%403x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\clothes.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\clothes%402x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\clothes%403x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\daily.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\daily%402x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\daily%403x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\drink.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\drink%402x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\drink%403x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\food.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\food%402x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\food%403x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\learn.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\learn%402x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\learn%403x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\medical.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\medical%402x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\medical%403x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\trans.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\trans%402x.png" /> + </ItemGroup> + <ItemGroup> + <BundleResource Include="Resources\trans%403x.png" /> + </ItemGroup> <Import Project="..\..\Billing.Shared\Billing.Shared.projitems" Label="Shared" /> <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" /> </Project> \ No newline at end of file diff --git a/Billing/Billing.iOS/Definition.cs b/Billing/Billing.iOS/Definition.cs index d345ea9..9aeed0c 100644 --- a/Billing/Billing.iOS/Definition.cs +++ b/Billing/Billing.iOS/Definition.cs @@ -2,6 +2,10 @@ { public static partial class Definition { + public static partial (string main, long build) GetVersion() => ( + Foundation.NSBundle.MainBundle.ObjectForInfoDictionary("CFBundleShortVersionString").ToString(), + int.Parse(Foundation.NSBundle.MainBundle.ObjectForInfoDictionary("CFBundleVersion").ToString()) + ); public static partial string GetCascadiaRegularFontFamily() => "CascadiaCode-Regular"; public static partial string GetCascadiaBoldFontFamily() => "CascadiaCode-Bold"; public static partial string GetRobotoCondensedRegularFontFamily() => "RobotoCondensed-Regular"; diff --git a/Billing/Billing.iOS/Info.plist b/Billing/Billing.iOS/Info.plist index 2c2c75b..7615a37 100644 --- a/Billing/Billing.iOS/Info.plist +++ b/Billing/Billing.iOS/Info.plist @@ -32,10 +32,6 @@ <string>13.0</string> <key>CFBundleIdentifier</key> <string>org.tsanie.Billing</string> - <key>CFBundleShortVersionString</key> - <string>0.22.301</string> - <key>CFBundleVersion</key> - <string>2</string> <key>CFBundleDevelopmentRegion</key> <string>China</string> <key>UIAppFonts</key> @@ -48,5 +44,9 @@ </array> <key>UIFileSharingEnabled</key> <true/> + <key>CFBundleVersion</key> + <string>3</string> + <key>CFBundleShortVersionString</key> + <string>0.3.303</string> </dict> </plist> diff --git a/Billing/Billing.iOS/Renderers/LongPressButtonRenderer.cs b/Billing/Billing.iOS/Renderers/LongPressButtonRenderer.cs index b556b1d..4699061 100644 --- a/Billing/Billing.iOS/Renderers/LongPressButtonRenderer.cs +++ b/Billing/Billing.iOS/Renderers/LongPressButtonRenderer.cs @@ -15,7 +15,13 @@ namespace Billing.iOS.Renderers { base.OnElementChanged(e); - if (Element is LongPressButton) + if (e.OldElement != null && longGesture != null) + { + RemoveGestureRecognizer(longGesture); + longGesture = null; + } + + if (e.NewElement != null) { longGesture = new UILongPressGestureRecognizer(OnLongPressed); AddGestureRecognizer(longGesture); diff --git a/Billing/Billing.iOS/Renderers/LongPressGridRenderer.cs b/Billing/Billing.iOS/Renderers/LongPressGridRenderer.cs new file mode 100644 index 0000000..107e478 --- /dev/null +++ b/Billing/Billing.iOS/Renderers/LongPressGridRenderer.cs @@ -0,0 +1,50 @@ +using Billing.iOS.Renderers; +using Billing.UI; +using UIKit; +using Xamarin.Forms; +using Xamarin.Forms.Platform.iOS; + +[assembly: ExportRenderer(typeof(LongPressGrid), typeof(LongPressGridRenderer))] +namespace Billing.iOS.Renderers +{ + public class LongPressGridRenderer : ViewRenderer<LongPressGrid, UIView> + { + private UILongPressGestureRecognizer longGesture; + + protected override void OnElementChanged(ElementChangedEventArgs<LongPressGrid> e) + { + base.OnElementChanged(e); + + if (e.OldElement != null && longGesture != null) + { + RemoveGestureRecognizer(longGesture); + longGesture = null; + } + + if (e.NewElement != null) + { + longGesture = new UILongPressGestureRecognizer(OnLongPressed); + AddGestureRecognizer(longGesture); + } + } + + protected override void Dispose(bool disposing) + { + if (longGesture != null) + { + RemoveGestureRecognizer(longGesture); + longGesture = null; + } + + base.Dispose(disposing); + } + + private void OnLongPressed(UILongPressGestureRecognizer e) + { + if (e.State == UIGestureRecognizerState.Began && Element != null) + { + Element.TriggerLongPress(); + } + } + } +} \ No newline at end of file diff --git a/Billing/Billing.iOS/Renderers/OptionDatePickerRenderer.cs b/Billing/Billing.iOS/Renderers/OptionDatePickerRenderer.cs new file mode 100644 index 0000000..edaed5a --- /dev/null +++ b/Billing/Billing.iOS/Renderers/OptionDatePickerRenderer.cs @@ -0,0 +1,23 @@ +using Billing.iOS.Renderers; +using Billing.UI; +using UIKit; +using Xamarin.Forms; +using Xamarin.Forms.Platform.iOS; + +[assembly: ExportRenderer(typeof(OptionDatePicker), typeof(OptionDatePickerRenderer))] +namespace Billing.iOS.Renderers +{ + public class OptionDatePickerRenderer : DatePickerRenderer + { + protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e) + { + base.OnElementChanged(e); + + var control = Control; + if (control != null) + { + control.BorderStyle = UITextBorderStyle.None; + } + } + } +} \ No newline at end of file diff --git a/Billing/Billing.iOS/Renderers/OptionTimePickerRenderer.cs b/Billing/Billing.iOS/Renderers/OptionTimePickerRenderer.cs new file mode 100644 index 0000000..d7ee524 --- /dev/null +++ b/Billing/Billing.iOS/Renderers/OptionTimePickerRenderer.cs @@ -0,0 +1,23 @@ +using Billing.iOS.Renderers; +using Billing.UI; +using UIKit; +using Xamarin.Forms; +using Xamarin.Forms.Platform.iOS; + +[assembly: ExportRenderer(typeof(OptionTimePicker), typeof(OptionTimePickerRenderer))] +namespace Billing.iOS.Renderers +{ + public class OptionTimePickerRenderer : TimePickerRenderer + { + protected override void OnElementChanged(ElementChangedEventArgs<TimePicker> e) + { + base.OnElementChanged(e); + + var control = Control; + if (control != null) + { + control.BorderStyle = UITextBorderStyle.None; + } + } + } +} \ No newline at end of file diff --git a/Billing/Billing.iOS/Resources/clothes.png b/Billing/Billing.iOS/Resources/clothes.png new file mode 100644 index 0000000000000000000000000000000000000000..336b39dbc904b1cdeed369e90239edd3703838cf GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK^1peyIEF;D zzMZPbcgR4bZNK5V2DbuE4lbUUCTj%_zJLW5496WBj~c36XJ~I!h+@gz)RLEbY**)7 z|9>WD<L>`g^}WB~6_?Kab_e;46@Qs;FrJ@cEWCiZrGe$#0YmOPLISHi?}RT%Uy;vT z?Yx)8Eb@?V?-teq#%-&9GFC*Nvv9s~=>JC1q^E{4)v;+6N-h&0+6!D3I<z&Nv4A=1 znD@u^)raFAhble!UFUvddD6W}2V(NYW-Onl-(9g|+IhwlUVSE~8Haqo+l6H>vybRv z%d)-6uqEXj!?87+<|pz7FkfLXbtq*JI$mY`G=QZ<cGiBGET#5YU9XrQ9pb#hC#ZS} P7y=BQu6{1-oD!M<8e4kx literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/clothes@2x.png b/Billing/Billing.iOS/Resources/clothes@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3a1d7661216b9d9f3569f93c2155aa16aebceb66 GIT binary patch literal 551 zcmV+?0@(eDP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00004b3#c}2nYxW zd<bNS0005rNkl<Zc%1E;Jxjw-6o#LqPA-l`9L34OKj17nsG}}AE22&=;^*Yx$Kd4u zPzM(g1O>sLAt(qcf{XOlp$(K!+uW1T(<JACmv*^1@B0pIZf?LZj4~5w8}J|iLZH(8 z41wRKRG0zofFGdVMm69O7)voD1P+1k4l|yCg%mSH>;Uc`Q*nI&i-H*=z)iv#b>Kvt z#*<wSQ?0rNCK6nK5ZD4f1vAbv$k&lQfvHwG;1*Z~#%YAD0K>pEa1OkuoN?N(;d`mf zOUP6B%uC2)_{>V!?}HF&CH{9PLU?frMGEg-!a*OHRV$&$;k%YlhVYS&<Kd;Zw|Ul4 z6n={28=E4@0kak00vM%y1VA;QvFjRAHlxK?sO>-*7XnY(E);oy^8N_cfXS$d?UI$? zfHh+HJm<@^9Ize_UzQR&hL0%fU16f|MJ>Sr8%e`Q<oQup>hO6k!NtCBO2bDi1NTiW z^+CXHng_0cOJJ^BILYB?U9hH?cx5X4Ucd^l0<;ZiV+Cj%(8dbTHlU3aplv`KD?r<T zHdcVP0d1@RZ3Eg^0on$%u>!OWXk!Iv8_>oI&^C}U-e(q)0^S5`dc}+Hf&syh6&kPB pRRwF?@tM(eUhz2oHVnf6_yhjFq~yX|J4OHi002ovPDHLkV1i&v?_dA` literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/clothes@3x.png b/Billing/Billing.iOS/Resources/clothes@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..74d9b89eda37eeeca00e201a73d03fa5143feef9 GIT binary patch literal 1095 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEX7WqAsj$Z!;#X#z`*>^)5S5Q zV$R#U=euQGC60YOf9}YPH*1;%zCLnPUDR}BcGaf`2PbPRdSRdNMM0va;^GUbgR?t3 zIXl<|Z7KqfY!>HlvYgSeshves^pB`gVc3;5vwW^Oe|=;%^RJ=x)!@Cm-;2v_OOIT& z`u_8^+pAZtuI6k~;Am2~(c?4aodfd>i4VnzyW4*jzS+aK?r7`|&bgs)UYpnSJU0Et zx$SY>own1f?{EDp{v&K@<($LeKUnUsyxB9yrsMpDqm?TkYrmBL({g+X!<B<!d*Z%k zEAF0t+4WCf@Qv8u`I{~s+#GZ~T=<LQtiz`-ahy6T_U4eg@|SG6_5#;qb*W36#Xq!P z<SR-vsp()huuR&&?$~9E%q>SEJo=iYvYggE&<_)T?|IW&C;H=x5U%G&-!l2!O<yoA zYtF1>zQ11X-toUX7{e21m#mvH!OMsJ`h&EUaq|tTj_EI7Y}C^d82ctcf8NS%ua~LE z_RcxNKVz!jr`sEuuRjhu*|E#`i~h?NJKeb}x(#&eZ$|oSh4mc^EW0+jPvUW><@2lO z+%C%SNlfO{?|Pu0dPvZ8+G5Q&`3D-!V%M)sRPphg`9GbRZ^O$~OJ&}QAC$k=a@c6f zVh!uXFE<FfIZc^+(X>5$&Bd1KE+2|#8iZKRTGbT4>#?*i^Xb59hY#PwcCGo}-#l?g z?5rqzHQ(+0DyRJRTB+Z?vU7<{>5;4FEJ{6Ancce7+kN*&crN?b&E8VH^AGj@aQnID zM$Rue>)RDf{Q9rM1K7hKO`lfs*jnRot?-Y~UB{(*=D$0{wP69z-f3H2X=@zz;g+BB z?x@<c*h^NkcksyWPb-Lxo>gVhzx$~8#=?tJ!=}n)d#^s8R>1f@<HDrfyr*2>9JCI4 z^uPc4k*;>Dt5>(5*;{Y*t7Xfd_kMwWMaJ4|msfeOGV?al>}|0U-<D_gb;+6g+hQL4 zzNvmHkS{i<Ozd)elUVVdtOtC7eb-K{DcQO?>1Je?r_K5rv9<1BKkQIEeJ<!o(w&D_ zrY`%r*-&#HtAyH*>XcJ|j{0~hFZ{x2=GrV*{MK{keA^%0m0nd9KXaDqe|$27Z<l8k zOZ)?qx?|5PGHxWSOTD#F)%U^Opjx}ueAVyf!n!Xbx6Hlze0`ytQTo*<bG}Pv9hYv< z*|_@kREC3EoXlLpY$9qr8a@&MGYl3OBswG>YB<!w*h&M52<e;i+D~U5xY?6yI`{HU zsZ*H;q_6#O>MA{Uzrr*;Il9PH<?nNaOWayzDLLh;buy3loqOQB$M#q)o1*}Wqd<<s aKUOIfm5$0<?=oP?z~JfX=d#Wzp$P!Ud;tpp literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/cmb.png b/Billing/Billing.iOS/Resources/cmb.png new file mode 100644 index 0000000000000000000000000000000000000000..0d3de4d40fb2d7c0fa7144e21449f6d7e415dae0 GIT binary patch literal 1582 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 literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/cmb@2x.png b/Billing/Billing.iOS/Resources/cmb@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cf873a908fc2919c20d66f081e29ebbdbf4a2225 GIT binary patch literal 3304 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 literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/cmb@3x.png b/Billing/Billing.iOS/Resources/cmb@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..7439777359ca12ac0aab173230f0526d3436f629 GIT binary patch literal 5998 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 literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/daily.png b/Billing/Billing.iOS/Resources/daily.png new file mode 100644 index 0000000000000000000000000000000000000000..6ad92ec168f6410cd3ca108ec44ca59a588e8c47 GIT binary patch literal 482 zcmV<80UiE{P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS0004*Nkl<ZScUD^y-yWE6b0}f3eh|Zj24oZm}sF1)KHqB(NJn(4QdDW)`YJ} zXl$sU7Gh<g#GV*|f5C#*3MF~b0s_UG#mQ!P&LVkR_)ap}xp!ygoY^~fXQoFU9$*E1 zne7iTg^z!0*qiX(z!<J!75f;)?M(6lkAi@Hyucnd@V#B9aWruhN<lgk`EtwK(DzQ{ zYX*)JT!`u;S~G4Wg#Bte*EE_5Un6h~7mhdtuW+%{p|F?nQ#xcR9O7MRjCjmRJTD8l zn;2*wpF{n3CV7D;;W?IgcQ4gpOZ7OPwQLon@fxTFT>-TV$VsdB7{Xw%x3OD+;~9E# z8lIK~eVC2xi3;R!kQnnM3v#}|H?9A9fh9~=5YRTvIRb8#?CYVN3u<44wF}4z!D~Fm z!(gvtrvk^KHWSSeu!ftFfUiMBF5cue>~2Q?r+}PAcpoqQIZV#UIBrMS^p9CEfGd&R zAAIMIZWh!o;712}_frBsbx^=Y%6SQ2bY=lwE=bE~wT9O2_Y_wX@6U=Ot*hM!EQs!n Y#|!<r_FEuU>;M1&07*qoM6N<$f&gIAKL7v# literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/daily@2x.png b/Billing/Billing.iOS/Resources/daily@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7edeab5568990a5470415d9c80872ffde74fe728 GIT binary patch literal 862 zcmV-k1EKthP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00004b3#c}2nYxW zd<bNS0009ONkl<Zc%1E<-;0b<7{@=e?5<r?xG^P>T}zU%uB?^Bx=@>2zsg_0A0W9= zN{O4z9XCQqiA(acq`0-Q%8yk<5*oiIjEl3Adgq*(^S<x%&NDl6K6P%+dEWDU&-XoN z_U!w<Cx<L+fTO@X;eIO=fg`}ZjQUT_GoYMt`2ch_YCv)5Ci}rx$`UEj9Ud{Az%Jkt z@C29y-T)gSaXBeb9z=C-#AuqtXuJ&UMqs840TbBo!j?$vEJs`xr9YB;#1S_Etgkh| zS~Fl2xCIQ<>Y&LP0B&Q(V#Q^^GT;JcT{k1;7_r^Jd0?rn(Ph91V0KJVKQU`CYrX>S zVqTL6j@ue$TI%|N?J*Nn*aw^h<|e$p9!1~~@FT&sqrf5}H_2weHvE3kdo6W$fVHuu zrN?Ksb^u#}GttT@zCU{VF~9uU^Z*AuW2?qyn*m*(os9smfR~=}S<wf~_l(U)D{KbD zp)ggZ3sp<oXD8Uw1Ov1MXcG+37NAWqKwE$|!2oRm+O)j^X}7`vdw^e<2M^~g?c=~< zfjllQ0yC0cEMdS^;5+tzj{!acR|N97_)7`{!V(bZ;|As~xXfG)+!x5>BGniq3>d1@ zJ_i^U$dd_ezXXB-+5)r*251Y=rtJ-o_%rw(^R6z3{Rwdi_#}|WMS&Er<|Pd1<NsFp zo2C6But^|~ixMfm0|-k%ppQY!%gP={dmdOPkjF);FH<B8sJG7_1Re|I$%M9F0>J=n z0onuuv;}Ar4A2&!jl@3SAZ9z-h51rE$_wC>Kpq#zNbywI#u)KFTdh0}?{&1_l@w>8 z6hrG+^y07t1o}7){Kh>Emjh=7^0-Jf{Ur?8S*N`K>=nq932nawf&tnBv<U`S>f#(m zm~K>!&1Qh@!Dg#ab<V(Mz|#f@(c-yJ&;rcHrco!r8dd%Pi=%_J&49O<b9b%AHQ=>x z@IuVDJ=%9os(dEFY13igOB0AsTZ)*oLWx)bJZOSJBrT7CRka4_`&MN$umf0$Iic0a obHZ^bW8PDa1J{9@Q*}=M0e&lxGRLK2Q~&?~07*qoM6N<$g5Y9-IsgCw literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/daily@3x.png b/Billing/Billing.iOS/Resources/daily@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..3741af11f479e67d25c965daaf8dc0b9b66532ed GIT binary patch literal 1406 zcmah}do&XY9NxS(6RWu6&NI!MyzWrB$Q^eWi!CyFq&zO>tqIePxEVuUL&!{*kXKDe z81uM7b;(;89V}Kuw<wS6{@=OxJLmhpKfZsy^ZT9iQ7=0EDhYu@004lb9UA3w<Uaor zEOw+zg(R~h6N$36!-J2I0KT3I0Ei;(P#5sACH%J@G*6tuz~(C+#<7U*YU3QECGKeR z3(9WJ=E~9p2zrKlNi`b{-b9(B!6(Vbp-Sc|OEv;^)iaV|p*ATKf27jvtE-EuZ}fBE zXN~zK<d-E;pAX84+!wBEtUmrsINU$vcTCO%*B#Cv$8nsXxy+c$GCmx<x<J~iSBf@p z4`&g)SsuOE!6NpxsVRM-p-RY;+~<_Y;wCB6@`e}IwJ-)$!<VrX>2dXhQ%{bz1plMY z0^BJ-RI3)j3C=wvC+nX#)=O5sRg$r-VTtt-X%{GVmhIKmikdK?vdb1BY!@EwejLw& z(FAA~>-r*O<Mdo13%i>LxF*-X8f#xOD>Yono(8|ZgN&7F@r@|hD%JV4EV!NMk(O`v z<K&{BxoUF_A;__r0Q!W53DiH}H}?ElG1aap4YyU_xfIjzIvBRcRdgzKwXsugtkT#m z>_S~6{ar1c5LX9oBs^nHtPxlLh9C#s8Wwl_sm0<3sR0jG+)d>Q2+)o=dAQ+_J&S@9 zATl-W-(V<1;eG|jm<PSPB-!l^SjCQY&~$WqZG^LP5;M)0ir=hXV_p!zyf`D;iECOu z$CS}68KGXKI%+58`?`$PG*2!DR&NnkJH1)2G(U9LnsFIqbs-Cma;$PZWFxd{lA*pE zF8aH_{Y3=ZsASr<97Ec`(71e)?M&a8;%}v=b|Y<pX|4EgKc_FCJ!Q7b$MLx(t)B6n zasy{GjP#!gWp1$7nq!spxh+y#)Jk>Fkrq2_JAWktQ(>7dvi5F+UqHahz7MTcO#)VH zO;au5pAYEM0l3`zr^Os}uf3H1S)p}tP)H<K6s#_B90OA+)U`5jr}#VubYBN1eJ7|X z<m@){qKKI|1MB4dDQbrw94RrO6A{=90fu&$;a<dpNwN<PgN;V$IsBk}zCA7Ap*6+3 zDc=4j$8j`knY8Cp>D*zBQhfcQw`$j*n5m{J64=+)agM}V$45xSxsv@+j@!S@4uyBg z^v_7-y|2&~X}w106`-^8B$D<N{=1|0GgaFF%_k4%#I+tgaidG=AoHF=fJ&}encm5c ztu-q9243u^gCCu_wTHLnA3f=_n_01a>z+;wVvxFII=%A}(S+hEH@WdPXnk1T&3fUa z!PCCocxO<Ei!$iLnEBU4E67RxduN^1u9B#s<G`CkF;*XQ{^xW*lty^Gk=3i?{>0OR zXH4B`cvBI?Y(u@K5+*3a(vG80ZkkJ0$c^E4V37jDFy#tJ1ZShz=$e**ko;3&96>H) zVFWxs__z-K6nniAYv?|Y*pK9;n1QeX)TKrv;|6OA6ZQ(D+tcJHH=6$L-1lBsiKd8- zDdT{WWOsyB!=uYc<-i@hH-ddv=5jWVMuvD@y@X&Z?M=l*!IaLApFa&PM^oPJu+~>} z%`N__1aM+Ohtac4(O&TUSoe^Fn_ZY?#(i%~w-%!Rf_wtl6s^ZxyImAKn+l_Qt_RZr z3--d=^7-awhFNmiV)-TxzR|-fO1P{qBOc2{45ZI<f?g%DHqf!-PVh4OY86kM)z>rm z#>f$FH$_LqTjZt`-ks>1Ppd+D=WHLJ$rw<)+k?jTi;jl0bW3d&r*HI0CD4=`9pt6O a4}@m|BtadwWAl#&6<}xMgsQjpN%{vj`hV*H literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/drink.png b/Billing/Billing.iOS/Resources/drink.png new file mode 100644 index 0000000000000000000000000000000000000000..43c4dbb87ae152bccbec58ef0bd680a552c8fc53 GIT binary patch literal 377 zcmV-<0fzpGP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS0003nNkl<ZScUDBF>b;@5Jg`Q1%eLJP((nE00-d+<UkxHDRPrkDR2o?K>{N; z6hNAZ80_5*#<LPi_|iyQtl$5h85`~@>IrxQGT>-b8SpCXpqfBpXq>M^JiK~|X#P_Z zZCJ|%=&AD*crdD|;`T!Umg@Y7ois~(6apmb{A?INvl8zupv!4ibHf00#qIufc`Fz9 zK*PYiA*`dY&y*hloLW=^1_l8J%BRr&x+lO;&YuPW^6WFYIxsUf4YETch@so-fJ<%S z{f66@CS64^|8g0*MgVcf;M^@=fEbJDe5rrcfl>itbf6To1st&Z0uI6~rG;UDh0nw{ z0<hf!FDn$lau2+$P=F7^09Ua(z=rDcUkmFhje%VS^PMm%X#~6jX$j+0o*7j&|NHs| X;Ii^1i@gux00000NkvXXu0mjfP`sHT literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/drink@2x.png b/Billing/Billing.iOS/Resources/drink@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d536b0046d3ac6e25ef655ec71ff083ee220e3ee GIT binary patch literal 732 zcmV<20wev2P)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00004b3#c}2nYxW zd<bNS0007$Nkl<Zc%1E;v2N8c6o$Xv(k>K)U@Q!@DhnHkw}7|k1HizGRO*{_?f`GV z*s22sRh0@AqPnOJkTN(dX&j&9#Ib$rPdZEFIRAfqY|BZYP$(2+JOg%tL!bh#6N{?R zw%ceOmG_C7w#8MWc{KB}4f)34Bs?dtk#9%Uc(5{aB;Xye;%JjHE5O?!9egGJC=QJ; zzUJ=$bw`JPfi2%o1G0tD*4A5Nyr`K0zbzfE4c9w5Yjh7-MbA|4TLWs~bI0{1V8dHx zI5sfa+8krNbmCeB4|^V#8a7Qf4}d!X2g--VWYcop<^k}p0NcZ2a_cL=rYT4Tq?iC( zRrXeZiy3gq&8_7Mck-rW8KbGK^Ad+nmx&rU>bSlNJW<OG$7779Hb?Yqfgl^j9M%D^ z`46%L<ggP2ng9RUCjNoOH@02ohEzZfIJGZ&0-S3=*WsaypTNCgS|;ZLxbJEt-OF>V z0+HsD0AXj&xs)Ix&7}gy>?|=v6(HRO9s=L}wM5|&aPDd(t$=g#O29V+=0SI)&1oSN zPgzX@a#{z(gH<XZM5hT*DnQy$x(x!{#T+m+_r%~Db8wqW8fz+G4xIQXnwS%W=0X2v zH-~jVrBR!J9M%Dq#zm}vpb5yK0)kF~94bJiQM;wB0>3byqEh4!X1lJWH)t!MqWiCr zR5(Uq9{fIVro0ZQwfQ6<<#j-<ZP5}iNd=@l1xf{IZ}2(U&43@I_o?gxc!1-Fh&DbI zPy_oO_l0I3rTHPeA^x}jcDxSixWy9iF@Oo*_&|ggHBW)Ffx^d#vqno4UIM2Mfg$4* zcoE#CgLPn!?qAhIMcq7eeFA@CUI9D6C(Jv!u}#mLzIU2u6$*vIVEzHhFHxxu2BshY O0000<MNUMnLSTaPSwac` literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/drink@3x.png b/Billing/Billing.iOS/Resources/drink@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..080f13e8d63b326ae770f062a6f46e965943164d GIT binary patch literal 1305 zcmV+!1?KvRP)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h00004b3#c}2nYxW zd<bNS000EgNkl<Zc%1E>&u>*l6vsag0V{(12vQ6|7mC0N7HHhKG%iex|A%gfe+GM9 z!#`ly5RDrM2_~e73xTSsiHdEN7Ob?imiNQO+>(aEn=@z5d-vX%`6QEW=1%9F@0+=E z&zU<H3WY+UP$(2~q!W4li@@u^hrma`Dd1ILdt|#!r3>5xegG~3-vGY>>veSIP2e2x zE6@i9nU#KJ`?<;&W92>IChiwew<GE<UEq7*-6)R+a2%K#p+RjeQ^2tZzlwMXxLC8H zO)eKJAB~L9fL;R(ZEEQOpQ^p<;Q(-}0Y)~x{0QumI(3`0B5($n45*(glfXOD${_-r z0QLlTCqG`nEmTBE1?b=&uy%UtT>_3&^;0ZIfUiA1*a;j&_>dbSzzd!_1Kd(<PS|D} znFFrlY#qi9j0NZeE7jlU(E;{W|2$Q80Q(v4+&-|(a9=$k<R0)B@Sms7BrZObDiin@ zB5T0k(gs5Wn5!Be#$jA1Q)L1;<f*d;%u5>#6=2m<=MZHCtOB#r215jxrHlZn0OEy6 zhyaVglBdo-0-gd}h{V1noUcTL2=Ew~5wth<*!UQE3%}21aJ~`|A^^BpkPq=wU<;9i zn{S6S7%IRWL7le)+iVjO+ax}ELZ|=|byFSz5&?onKqwQq`E6J@_5tC-wt;Op+lJY` z&KOpKKY2PaAkDD#Vf=Pahc>GDrRI7cFrWWHCxB#*%T<8j`M-<+Ig-W2SOl2HA8Jie z0G~~L6!!ql7Q%mk`?##n^Y{dR(jqk$alQ#cGXjEwO&KwdKUld1jR0#D0iJ~<TD%4A z2oNV6GGZ2gzGMs95im=BbNny{$Wpdj&<N1OO+n(2YX&^V{V02(7iwcRlKgN^s23(h z02|cz#Ug+W8~4Rvv;xcnkCfM@$Rox)0#<;#%4<{PF3KNdOyVRs^qMegU&IJ7($rha zC<4@s+7~e|Y9GYCv|MoSPAq6Hj2Qt76am2PgjP8p;&(5UX(-YMu>zEpP^1rv0P)m1 z0?HIrvjBhMo{Dp21!W9qgIEF7F_1)<BQhoyD?sk~VO1i2GZq5mJOWgS_|3!$koy*u z=)6d*0P84op$X8#jsB?f;w<*@N6&*TMV$rPjD-Nv^I%IcnSLz<$TdG~vO%o~pr<iY z&?4^LsoZ#g+a(@_g#fB|qY_{mgYB7CZ!_i?lryop2%yI#6ki0;V<JH8>FFD62Og64 zQ8k-c#hs4Wjcv$k1ayI)joNAhzhK~eusu>Br}U)Rlv@PQ(MSPux)C>0fEkSD#fBp} zIZTYD088YtQ|=z{uT^7~0_2h%lN{eE#!`S>67;4CDC-fBLxSEk0cAY`en)s{bxY~v zY;2?e1Ke?DDesh9#y#<yof2SuxZV_LCui;hH!K^p7GMUrY}{s(xQyX5z^FKhOH<bU zH6!b?P}$aaI>6_o^?k`ca2C7p{m40h`>I?DAARcrUsX1>ic`RM)bGI9a;>tZb##C? zfGgDRL~XfJ+0dG)=UMCpzNB3@<^|x3s_#j#3-}ngfP1Z}i8tte)wlCiUw4hf6HhVj zp|u-$4R{~;05}aC1zsL=KQ>qa{=j{r{9E8EE}*zvQ-2DDLZMJ76f)s|;p_$MBE;UJ P00000NkvXXu0mjfSV%)> literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/food.png b/Billing/Billing.iOS/Resources/food.png new file mode 100644 index 0000000000000000000000000000000000000000..19710c3eda97e5ca132c921bed196807e13c3609 GIT binary patch literal 435 zcmV;k0ZjghP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS0004MNkl<ZScUD@y)Feo7{>9REr>|eDh)0`;x3dzggel<1FeDz7oa1!28l*P zAx@!@5FZVV5XCu>a}+x#B3X84&&L)#$(wAl^S=LQ-kI4QI@1uAafBN*P!G?C;oVS& zj32dtd$e-mA&l*+me4E!Z$}e5NV;ia2ImnbTG);O%;G@W<~m++hBb_ZF@xBRFwn$& z9(WulIfdS^62=c;FT%u~UpD3h9wUmahrAJ7N8~MK!3S{}QKa3{#gIQ2k$0G7U^Non zjz?)r6WkWexydqcRnkDq*E!!RIKG}`;BRU`+LFrD)lXwt10NOgKN7rDXyB!NcB|5D zf{O|bTqHQI(7-W_;$8W#VA*)bXd?a3@Ar77S=tY5FeSZE_G|Wy!2G7oJ{s7}YRNEa zeSp^jD^rtr>LL6oFn-lEo_hd)4z&wuN_Ur|CS%j(X&4(iI~|Qs<Ht4sR}q~mzXYdw d#VfxNeFAQYk20jPPDcO$002ovPDHLkV1k35w&(x= literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/food@2x.png b/Billing/Billing.iOS/Resources/food@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..95981981706cff64e19eaf26f405d9dd5bc198db GIT binary patch literal 880 zcmV-$1CRWPP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00004b3#c}2nYxW zd<bNS0009gNkl<Zc%1E;Pe>I(9LGOz)zqLUqC=TPP<E;gK}E;z)vX}PQ&D*DAkkHV z2qZN713}j)3rZ2XbkU%oBoC%1qfCQWXbNfOdmU!BY~S+SeLKIMeeQnX%Y*l4e!uT; zc4ywqPL5>Y0Ed8Mz(HUy&;)D%3cwFw8W;oK055^p`m?HL2XGDe3=~6Z66gSS#-6nS zwgR_+MZz2R>KAZZw^<dO2EGy9xL0}Ic4DamdQkVRY4ffMI!0Ygo<gx3cnJJPt^lt3 zfyQ`jg{K90jO>+A1o}wmmEdw5_=;>1x+M)90ImSffpK6KSkSLyz%%{%{xWTB170CJ zCY&;3S5X7B0`Ed5@)kI!fA6IMRYa*G<bf?F%pV0tA|~@5IO5axI^cz15xSz9ZwHnP zC9?!v_KC3(7!@kOBG6ok@f>hRD5);p{z~=%KZW9TR8oK&Ldm$g?i2H>P^?ds7Q8HH zk)Nvzz!^{6dSF5*-r=C;n^4o4q<L2}sOfMe7lmTA2Q9#Zn9RGn?}^_Cd>4rGD2Vx8 zm>cnfYKhWyeUCt#5wBUtrvMj#+STi1lv?1t=e?%_akdBf(m3(<zN=AB9_vw?9VTNe z1}Q*BMn-zbp$3Q4;x`SZimU*(6R?c~EZa`PBFheHBQvcmIH=`lTA6WBkDb%Xv;%y! zorOgv97<PVY2t$e4BO7aBEvb<{$J=F(=|X5Xm(IXO~x%JV}mhZ()}mcXEPH^^uxcu z!hv>6*BB+9ZS4ix(BE5r<znbw@ZwcHcm3YnggTIDyLY5DtGxpMUjZ{1c#d8LbW>*i zvl(@w!geo7DX%@2r7Z!8N~vu%^Pp~vp#&srT0?}`0c!!~6Ogni&1+AgXhr^jL>ww; zFBQ?500U9gS*dwY=lXgRV4_m>;(s<V6!pMB0?dTffX>|r4X6VPwoL`q6P>eBYJi(0 zdtfZ+93x-$<!A-w5@6P=IU<bqVQB#dg$;$#Ah1W&u@4S#3A<~Dyv`x@&p0zOGVE~z zm?HiGa7xFvjt%p!zC=yl#Pm@#&_-2r64euN_x_}g9f?2e_SSEzPY|{M0000<MNUMn GLSTaLOo-0_ literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/food@3x.png b/Billing/Billing.iOS/Resources/food@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..babf9da59f7bb0d35bc74f75c898eafaa763cfbd GIT binary patch literal 1629 zcmV-j2BP_iP)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h00004b3#c}2nYxW zd<bNS000IQNkl<Zc%1FsTa2Am6~OV|`DPTT)nW@I;H8=f0znapMy(PxUJ@Y+_+Vlb z6Qjf!^+}(20DUnrG2UY(M&g4B-eL?S22An6C`r-CO)9aa*Fd4dl)~UJbEf5Cof+EW zIma_+zVF-LIcNWq_0pNnxAxk%wb$Nz?Uu=*g-tjU=iqI)4Cmu@ou9oNZOr3IJc@^L zKX&4A9K|u5s7vW_=QLc7_Xwk3Dhxim#=q0XUN2V0pYeArmZs^1F^em47Y<`dwAwOc zsq;5?;A416O=TJjHj381L$unmjNVV$_!F+^e0yq{5kt(+yf{YJDbIAieL0GX%i2gj zjeS^FzwuXO8IRyI6_>R!v~V_lfaB5`zFUstdpOHvI5K_Ngr5jcB(>4IWf8x@>(^7j znf3hV8d%1D;g!6_+Fi>knZX;y<b1oBBPN=yxCKv0-}<{{r&xPT^l(Hhx;}*8VL^Js zuSgre!j|fa-YhobtD@VdHvY+T!gtqNkgB@OM$sBxgLjGX`we(i=VvqcFP;*v<u2SU z!T|rloM=`5j}K!zUaJ|t`3Zaqw+c_GR$9UkpT*DdFKZ7EJS9R4H;Kt@m=M6FxKll= z;$h?wu~@5>4Y)xVeSSp6PnIPy+5SQFph2y>C0xP3l<?g$WLdb*FI$8CMrI?f#qJ6V zG%v>1R~zg$Zx-H2%9ZkpJS`edrCflUMf|*uLfwx~3QwpX7mB$gbp@Qj9V%S6yc_qa zzqK6|^Fu%9p}+?<W3AA}RYO~JNLnHkT;-56jQmvWeD&jN%H1CrRqn(~hp_8VwD1w( zHl{Av0)B*7^wIS+;R>eK^D(@0DC-WvHtcCYp-!%ZZw}D+;s)ruC>D(CUT>WzCY97i z@0R1ZPH*pM7B@;i6#ZKNo;nmQd|PuCI^A+Wf0yqfu`o)h-@_szFfvz)ut91=_mgG( zLhn{q;9H6HTf*CivUCr&;2((#FpNBh5A-R+xyo6cuSdSn&%lG0_yw*O2b-GC8Th*1 zF5hEf98Sqw`~6^01#H4c)fCexfp-Wuxfi#Hp(+)98}XnD*oya-uS;bV_@dqs)IB0l zn2NrW@SqB~+B)5*1YC?udi?uQ+*`9QC)0PQY)}P!q5?�zV0_<7L-QVl~J5`8z5 z$z(E_Os1i<M64o{h$b9nnrd<dBqmotVsZr}CRadW3JFf}W>#4)@O)}5rkKS7&!*O5 zig~sWmmxA~m@7n1giIO^7dV(&iz((nAx@5E(y*t%KT~Tl#XMAq&FY+#sD2i)s}T2@ z4kcD*8aaq#g}Che@5IVXBfE9h0ndmd)R}tOrPBiz@t`<@o~eiDgw2;$qM`SS<9nHU zI4W+Lu7;x@5IHn6^>9e^fYl0Ez;BbOGkvV2+d1X--c~#$A0(}sd2x#S0H^MV?H8%H zGSzaMj`8{5Ey?Zj22GVL2pg}`T>%e@v@e-z_^YniTXzLKDY{7R1?97V-;1PFt8`bu z@y;*puSuzCVxMT-ryPRlbu4AC$oP~gmz#xchhl@souB#w_N2%?;x6-=c)w<)g&bEo zhWGU|@}QG(J4Mc&loy=Gon`z|^nj6gv)DLD-HOIl_IGT!F0L1DY3jm^n>^pK-MX2< z4>dPmP!pw%?<+Ao{dpn*UFw33i`*g7<dn)b>9bFbgY53us&rZ+fkzW^ayC^S@7Soa zcLWNNs(7veg>9P53FB9O>17sQ7Uzjl7rH4jhcBt|iIp?(74_wfZnDgY26_6rEII<S z_&AP?sQ4tv6JkhC_PEf>oG^{v(H>l*0T&%xBAfajO~+!bE&Tj#8un_^xnlJ<$zh8H z@q%9Ii>$Jk!RN)U|0MN>wg{|!PV*nX18)*LKq+25EnA-Ml%-cT#zwPI<Q@H+^hO+2 z?&*|aT$0yjGMP*!lgVUO*&-fa8>gV%k&e!<tiT?%^9|`=G8#pe#H$>YQb#c92+peE zJ5_K5=T!NDIzp)@YWPM~RIYm+6|miKuVXijHhx_7N9u^|-6sljp@<KS1BdY)5qe&z b@<T5GYH#_sD`HAw00000NkvXXu0mjfx6d6J literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/learn.png b/Billing/Billing.iOS/Resources/learn.png new file mode 100644 index 0000000000000000000000000000000000000000..10ccc91254a64e16493e7606eeae7bf56704b7cd GIT binary patch literal 391 zcmV;20eJq2P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS0003#Nkl<ZScUD@yGjE=6vpviyac=uB-(3dtA(wNzJ+xf%Ye053%-LO)`G1* zf+!ZI5%K_nh#_7`Fc!O#P1u;tx{J;JVPQFQ=6v6ooneQ6rW6y~z!54LYrWzScjFQp z=;ib@k~nSUXrMJLHkHIto)iWO1BHRYKw+RTFcTA77k^L4f?iH_(-YU}Evh-`J!5lR zQXO5{Uq-rN?Eyx8>k1Z<wv~{!;9i)>z$j)>4&QrtGidZv&}l9#;z55&55o9)Bz7(S zWMx8B=t6(><^>z~XY3>o@%@OvBbJ87*YFgMe_=06@hyCW#ovuSMmy+)dF@~FCZdX_ ze)qL8`SnO{6DxlaFX1v$@HFAPv&ft)Os6$aixj#SY_=rK;U=8d!ERauWgO#0@PnF! lRl&*FPAeW|Ig28r_y!etgaH67Y6t)T002ovPDHLkV1g|5q~HJm literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/learn@2x.png b/Billing/Billing.iOS/Resources/learn@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bd9b87c4600c7e166bab6e04de808343c73f7fc9 GIT binary patch literal 718 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=EX7WqAsj$Z!;#X#z`)e%>Eakt zG3V_p>+BFmk%s-TKm&wTemJy<C>c5mD8@?d)(}e8jflFz8K&gX#Pu@ivHyn232_pW zj-7H6&_3IhkgPakL8NlvW4G>|t;c5GIr;9)oa(PN24{`F&&lW8{dtG=f<N~|Y<`C} zZa$!ykZv<q;SWO`!{!6$1sKbjiz7D}Z9P7-`t%*$0|~Qo%bi3Pgf%pp+|H_OUR@=! z;P7Jqz>}rlH4oVLiaA6%Na;3gX)uXm$Yjji!f=V{QU>D^)+HC2Jh(j;vrZ73;Kr?> ztAJbK$Dix}%UlqPRuOuAiK#27pynNiEz`H-Vx32f4EBVw&-eUba6#Th-S+$^s~<Ye z-<di*1ke1H+R*i9uKfLNvn-!Ks`eL1;4kPYx+7e}Tr*KD@YI2_I;OJ)7e4+hf1td9 z`9;x}pKLW<ic`C^Z>X=}ec*I$IhT+1ud9vwww!us!Mi3={>F`E`($_IFW$#yby=f* zv9K}sZMH8gzqN{(A_{Gcojd#9iY74qcDR>ZHdU{!vF-8A+aISKE|UGtaIMi;?tH(+ zynF_6<sWRR492@}vlSdRc4M7Ua%2Vb-o&Yg3mGcfV{2x;)!qKPA-pfbl&hk8FPBb& zc%65#`%AeqatFkUyPABv7T<8)f9aNC7034_7Pp-4EZ})GZI6_~KVA1XY?k^~K?Nc| z8e%^<E|7`VU9COiZ!<^kf#CKV-U;~!V%|pjM6YvgQ9D}Lej)vlPUvyNcJ=6Uo{!{T z{d*v=Aw}>egP!Y|>UsO0&$cSCO!8BAZ}{nJ^j-ML-k;I?p3lf{lMp>qz1{T8?d!3f uMRrH_yz!ZMzI(Dm`JtNDTP#!O#n%V+AO3gP+ZdQY89ZJ6T-G@yGywpbra6!R literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/learn@3x.png b/Billing/Billing.iOS/Resources/learn@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..baed857a9504cba0e874c627597273f17711f51d GIT binary patch literal 1191 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEX7WqAsj$Z!;#Vf<i>frIEGZr zd3)EhBPLYj*vI(t<<<*5k4SVf^G(puvUtFvl;prF?&!*@9&oX>gQM%PlL`0o*1Qt+ zn;cCY9qX8GO1QEfRD9Ip<~nhK;oVtV6jyY5^6TZLUYv2R_Uo=ydA!g0`FAaNzx(;T z_jh0JSyj!^q@Z!^g3@WZ?x_;7Pxe+#w3Im@_a>|6oy6lE+|e7Pjd_{bUe3zgQp^1= z=f@J|o=1tEKQH;cn3l~im-S=W+d2Iw`OMaZuj8C^eT{MZY~6<28+W<wtb1;8=VH!6 zE2fyZ#b*{=*pmN>qadW$sM+cAzLm-j7o40L4z)0}ax!uWGl{6NX!vjh%n(>$py-fD z4~c14G(LCy*!sumjc%@k0E?pli|ESYOAn1L_FZlJ!YN#_=<d{<(0?`C^7h*0UYl8J zmNfs0hOtJ;5p!|R=c&``ZtZ$|tCf3J=`)YbtOi$Cd=Tons&T*nPwVrIoR{aWD3IBn zxcifT+{<k1ywJ~2?i`)>-9}CJN!6r-+;7f43a`<dt0)Vy()XgTr+Anrr(%)M!~SFU zA6x8nnwgn-=+E|fnSal({NYe{@_YBs*>er|=+1XYvN!9fJ)IcYHhpR8-HCH{h=2cG zKdI&N$G~N8=7?zQUbxryrSH5Wj+N~D9(|ZSH!((+*L!ER&!aitOqXt#IJWgu;nGOW z6I*SH_p>iqsHT2M++yigpbo#o$3OAiR(rdxxaWao<|5lmfBC$e?>W?OPIlpnd8&4P zZ_u`7s~iu9Ryfz$-E4P{zC7h#vgW+0^`Fu=1b&{`dG46G=sWw~Y@P_7Y!>s!{*~;x zlO`Rx`cNzL>g3gr(_@zH{^p#Us=IG$`I+e!$%0>b9;*GByE0wuz0`y?0oofP@BQ3e z*nQM~>ggq(KOI`F%+3Do&zC&T{i$!p(cq}(J;F;Dt~ph+*>TqVUww&pbk}AS^;N{a zE;gFi@LubRt?J&JuXg`@5L2W7|4IJTduz5fb1zMZ@oUMwq_rwPqPP5sw4LVLuG?Ex zWRBXd`g-X5lDNyCb&jt7G<%WdOLO+O=UjI2=!b1c70W-_ZntZe>JI;3yN*qivexaq z;<?*wwb;HopY}_aw>5izT>NM9w|(Dwe{*kSlRx$S%-kL84sYAqviRfHn(+AtM6LF} zk~lVX)l-*$yy>Mk_PK6k%0FeEV=t$Z@>ucR)TScKX#2}Q<D$9^HP@Es{kGTjZ7Z!) zxZ&0Iamyd;mbnq}Cyp(X2=#3^8}#jEUV>`e<_|R=gs;8aXmGUZ&w~%^CHY<DcXt|p zocgoupEB=K+uiaJ-P6y!=l#88&g;87uEw{^PMT}Iq}Frl`V%Flrwf(qrtkXk_*DOI zZo`(>OJjc@-F5w3)S8KN>U}bujd)%fA7^*`{#pL<rBc2d4-z<mB@ctAtDnm{r-UW| D<IXU? literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/medical.png b/Billing/Billing.iOS/Resources/medical.png new file mode 100644 index 0000000000000000000000000000000000000000..d774a2498c6443695e38019ca57aa1c2e5e34070 GIT binary patch literal 510 zcmV<a0RjGrP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS0005CNkl<ZScS#bzityj5XbS)ISEmKhCk`3fC7Yg0IJX-XsO@{cmk;M79hj} zBoz+<6(B)D8bIPtLq$NKC?NzAAH}VujXC4p%{l%`BcJV^ncbb=-cBW*qqu<Ms78#b zv5B|%nGt&|%h(DDQfxE$jAhhHV(#D}`dGt{G2>6*GJ3)HQOZRA$C_qUw=#Tg2cOpm zO%B^3*nEc1Lh$KC2mN5V)G2<mEx*m-tfrRp8lBWw%1B;CpG(-mcYMU3QBLQuDo^dX zwuP0jz<pfB#sm`&+lFXIPh<TMlMn0*PR-yhZnPF<vK-T#FfS5jJ1Ki!;TujCtl%@= zhv)M+QxM}T>=w>`F$%O;7-MH}#!DE!M@r(<y~5;OQMJ7ZM-kV&jVIA_mL^JSK8|Ef zq-vnn-0wLgX(BafC9Qdh$0w1afqQrseSbRie|%eBNew#fW0+mn&gm)ZcG$lIIr@m{ z&*GP+=g%e9L~_lC*oIH0cN>1_;Z@=6yWk~UH@zLWHkirk6q2vRTX6&ruy+WFcX2=D z{O9;w#7$h%bV+k9V{)nSThsl#!DGBTV9f6L3zsNiFqA$=Pyhe`07*qoM6N<$f<?FK AMgRZ+ literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/medical@2x.png b/Billing/Billing.iOS/Resources/medical@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7737bd8d31eac29b7e8f1823b3493bca35b24062 GIT binary patch literal 885 zcmV-*1B(2KP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00004b3#c}2nYxW zd<bNS0009lNkl<Zc%1E<OKVe65XXP_+BQ}})P+@>E>xt7AY%OpLP0_6PNeu%eCwys zm2O4dsY`KVZ56SxMJa;yfx0M2(^Q+p#pLSE?aiafnR8A^elQRcI`cnsn=^ABfi5Rd z@_Ph03hV~90-IX&Qv{ZQZ@?R1)`&Vq&I9j&vXbR0F}x!L?w~jDq}{H>^oHx$8+>F} zO$awJ2OL2D?fYZztpZPh_rNcp)S~YY*ajQ~P6C<OXMcc0z(R|@jd7FeC-VsyRfsbR zEGA;zP>8c(o>MJqQZd%WM673uv6|*9)uQ$)#u`b)`m7kMX;!Hg)u$M1b0XHVVyvbq z@n29;IaWY*0@m7fXrh(|HD24G)eiF?UNsXgX!iR$1RMskz;<8@@_kHu;+M=wOQlx4 zGEe~Wz!Fj}bHMj@f@P5!KTq}dyi=?M%pqOs@J0rnsSJF@gF%?Gl}aMwon$I|fR`Q! z*0L#NiJr<%beFQe*eo)St>cjg;%wRd<lrYf5M|rW#1rt^13|X!6-Zq@flLnF$XE!B zyH??l@emkut->M4Ltwva6%N_ghxGY2$piO*FUVvRkp(Uw>kM1$0@+lsIr~o35oEg@ zF9paZhRtR10J5W-Mh02c*`g5bu-K&0rio2G#coePZ%3$?0M`Osqp^n{)%jKrEiTu1 zU#(9tU0ctZ78t{LpP*3%GQe-cKI6WP_6epFP)2`VG5Wwvi?w|+)HYpT1vC;cpx{%@ zw?+a^Dfo;yZQ7wm6<7i8Qo9eh(%|pY&K3jY;>9E|*t)cI$Gyc+H`7aiYXPnau|Eg+ zL^(wNVpEd-I-hCw5NWK1*xiJL`nBA6oo_%PK<c&T<;EmweS%t@Z@^-JoRS{17}O`G zL*S!p6%JVlff?5-95NFEPh6{T$m8h6TkM|6`C!xWOq}yTkZoJHdHc`<QMT+sa_}Jc z1alsU)3zM2BP{_SH$|sB5UFJ^sB=>^BDyPF@IbIB%LCVF;;wL<5#Sc^fzG`xK9Bsq zux6{@>^}Yw@_XQ6WUd%QR&KtW0~C?ds66l!S!c`vKU|9H(FyzoH^xBQ2Bq9V00000 LNkvXXu0mjf-F}&1 literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/medical@3x.png b/Billing/Billing.iOS/Resources/medical@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..8505a5e85b65bcdb175b5f67cdae12128ee37047 GIT binary patch literal 1490 zcmV;@1ugoCP)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h00004b3#c}2nYxW zd<bNS000GvNkl<Zc%1FsPpn;4702<<J$<j`pQSB@2-E=~6b%89KLganh#I1CLQEh; z964d;z^Q>aFmb?yp#d}o0tq32#)%kpXd*Of0xHTM0i`yjwAjLH-|Opju-;3`>$$vh z+k5Uh=idEI*5uy%-d<;~efHV=xA$3_LSdd6B$t0VzKol36?WqyY&Ch`hFHci9K^ry zB7TqmPPnX2b3Sgw&qZYnlkF&eiW_iVi`U%=cH>8)1!h<LMmxCX+pgBGKACNJ4#(wJ z_9#1!XGIq{Q=E^V$*<t1_OKc1js~~~@5`^)rgj8(o5CPvq3r@hpZaZlV#N3F;z|4g z{}F*&X~~yGT#P;Vyl5D8eg1ag^Yb{|k}p%^b7G{iv6Zdhm$)*|HGA+YoOGstN5#mf z_k3UdZT>Q@P4sJ>Pvh_Eef(bAg;#ACfZIlV{sjIph4MG!710IOG0OLeF^vH19r5|| zqLpPc#BWA?cg-{%X^R8uZ|~iiPHo@{^*;VP)2T@@YT`AG5m-|$RPW=_Os6Kn0H>UJ zVJ9=4s$oHW0G8V>xb0`aQ2k^kTZP@osS%&IewR+;A>3zLZzv@I$&>&jbGCil1-K5^ z<7zRCyF}<c7YOxp%g6kEC1%2XVBODEEa5}^5AWd}yoSH5{qA^MPAuY6xC_s$6`rkF zcFo?y)A*Lqw<h)g--{oLDA$Qr#Xf2$@h3ds9B0xC_>Ry@RyuHDeX|w(O-SBj-woSw zziuxd_QjU)1EbeN&fs!9Djqu7&d-Xi;wSjzW|e;-9uiaVY^P_<mhqq%A&%r8rQ2!K zJ`|&*TJ{S0HQUKqw>QPy=_72xQyp+_UhGM0D#W@J@kM-TV^j*Qal6=+p%S~m?hsN! zVLDubuVb;oPH_i(oOV-~EL-pe?5IREuFv&nF1Z1_DtrbzlAW1HcH-Jf>|874aARdg z_P+F#Ybv4h7joFMfXlMIXvng7dEyc57ZaM(8Hk0D@8V9eh}3m1CANoW&kUQ`<Kiuw z&DbXPoo4&n#NMVq;@dbw<<EA&-zIiwedk)&HcHj8sQHe%tvJ!5FO%YffrvyO7`Ku1 z;kr(g0OT?(8?$m5lmH}C0+37zKr$r&$&>&jllh+3ve@YRsCsSZT)A$O?>nO%Wlh5$ z(~Ybo+1gQB!CguNkft4F&V;vWFDb{kq-jT40T}Au03f9yW>rET)YqxdwN^NHlmH}? z8GtTzLutNb24H()*&DeytKiH4d_y<xf(qZvbRcUY_KJ`IcD8?swG70T%sWNquDP3t z4Mlp$Lz<<9*-YEnNRv157e(Tz9g^<GvL>8N8HOfP0+37zKr$r&$&>&jQ|ZZQVMZDD zDFEXPL%T4;Zo+D%JF8NgF^+bWrtOT$N+t5y^ns?@QM$G>221dkJUwWV+EFL8oiXi= z0sbs@1$3Pz+EKc;GbZ~M#35#V2*5zJ{w(#h4c@85iE@P;-l#-ozd{awt*}odl`Bk_ z73`}-nzA>OotZ~o$AL<u+})S#%slc(9Iiwn>fdTH@pRz~KEUsAY+VigHD1m0XYTl? z4JS7ZM4ssEnc=+Hy`v)Y3-yQY6q}5#inoGBvR54Qo$ctX+6y*GkX7NUMjyUb?Cfp7 z$QRmZ74mCBB`w|2x!bCkXMLqf#h=bC;<(w8N&W2YggD0irZMXtF*4eP`}8NPR+ntQ zcm;N+2}t9+@ndoB?qTIDnL1k$s=~|S%$-KE`M8m}61R%<VONQai<gNt*o(yB1Pfwe zqz?-sO&N;5d{uPGOX8r<BRD9IVt)-U35nrA(|>%nl~mz8ac0;yQQ-?~pI2-Dca{P` s1mV<awz6g?gp9Ma_M1YXQ0NQ)2SoSUb8?gNM*si-07*qoM6N<$g3Mazq5uE@ literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/rcb.png b/Billing/Billing.iOS/Resources/rcb.png new file mode 100644 index 0000000000000000000000000000000000000000..0d152a0fb2060d7c5c7925bb11b0d29dc419ec5a GIT binary patch literal 1256 zcmV<E1Q+{>P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS000D^Nkl<ZScScpUx<`d7{-6^`DSO;-Bnq4cXnrI1|`kJ>c&cmf+91BBq8$3 zpsOH3j0!UXDY`L3#0o7aGz3BOMlS*hZz{x6k%(>cPqcr&9cOl2cimO?&&-^s3tih? z#@!jyp38II_j#W0obSBnJw^rStFNCs7@b=mQK3$<mcXc&_tg<cU%?YbT;$sDsP!)z z=ol!M(`E|z5ZvnvT9yWps+S#FC1V*_3Yax9P9l%dZP1Q%O6X`J8@3tvyEf1U(fP5| zM>5_pm?sFz`YiAgL*VyQ#rw%H9InWKz=e&87tGmq%pNUMv@}G!!F%y+*Y^g+84U=m zE0)?Ez!r>_|0Mn|dY$~PmTb6V>XuAeQbCYzO1^E*c4E}sBXNKlnXMkGnOj(UWANm+ z6HK^?QDIYJog7>4q3~oFZ#@u8zB+m67P=FOdRK5~1dHyQ0l-jq#E(86>+Q|LtrZX} zs;pppD;1X*5R6uogC+A8{rckK#nrbB^u#hxgRQNE2$6PZqlvAEo{Cb<t*#y%eFh+M z2C9&I1)E%0W}qk_cE)?V4*~QvxAs7A0H`h}+o0MUYXm>IriNsroUNpcsyMDL*`a)I zu*bj~_(Z1XJK?thV`Xv}(9p4PVbnS28x0;RGZCSm>qgkLh>nqo<JnAXm&D<6c}#Zg zbVo<tIkV+JO?kGJ3yOR&|5{i7)Vaqvn>SzFY4G>VOe!G#xgLs6au1g48gKh=%&Y$O zPSdTqp5G;X4rn?W!>-|rCjgu`EhtZ27Y0WB_9d4t-SOBN6jh}!P5z7Nx%{W`E9r{> z5xaSfP74!*#X^3=^1;m2nQSJ*a9FH(C*7PIme?Sp!5|8F&{f2N)@=AmcOo&nbI8q# zc;l*@p0g<YzGPqK+)U!P4Rbbsv3Bvc+Uui7JUr}CgM(qAHdWcF&c@VJjQO=zt!yNK zi_>kGL6|QTzcMJ4YXIQZR-Fb;3(P=aeQUzWud~2?11@T4Q^ZT{4zA0rwiJ;U$7V%> zxt&d^=Uw0f^DZy*LxJ;|^XYW@*)oh}W3f3sM4uD3TSgp+3dT(SoOLxM;}+qVVJk`{ zOZp458bftp!ObINgBV$fKk)wGNN(1NC6xX-!&vJo%r+voZsHYh&^F=<FWMQXYHmvI z#@U-?t!)X9NNJ3d@@jKf4pRUuk=z;_OG_o0v~O&7u+acIW2x1FaSWJ!mnJH7%&3#r zw`RMKIe_cg+8-qy|3Ab5O!_HaSA85NTtJtbn;VN%odrwYPjNxUjTN3~y_)WZ2`yPm zCX+L<1=M#R_4}>J)^YJk1^_N(yN}50v->75?ak!64o(~@)t0-<vE){nZ5A}$BjqcG z_FTw>A5X0tcY2rv=~(h5%(kn7UZEtHbSZG!dj4{Fv{ccW_8LmZ<8z9IU<b}#GpJ?C zmQ4c>+(0@Q^&{^#<#N~W6gXoWb{K*u8(SYS3)bPZQrI$3;$~HxDyq<+9dEzj^GD-X zF8@~QIaZN@aR{s{m6~rOst<f&p1DX$rUnm&==0unn$v(q)t?B%ew(2w8OJ{i76jgz Sti&z=0000<MNUMnLSTaDJXVbW literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/rcb@2x.png b/Billing/Billing.iOS/Resources/rcb@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a87b2883da839598562357e705cac59c4685fb26 GIT binary patch literal 2609 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 T_<iWJ00000NkvXXu0mjf8JFBv literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/rcb@3x.png b/Billing/Billing.iOS/Resources/rcb@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..269b0f12a102a78482540166a1b5cf6a312db73e GIT binary patch literal 3449 zcmV-<4TkcGP)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h00004b3#c}2nYxW zd<bNS000dzNkl<Zc%1E>dypK}b;iGQyJuIkizFU9JG(PIvs$yVTnML(WgI&SHYCOc zE`(iW8C*D+aycQkL?Et^RPY1KAq93qoRq;1!HHiXwgF>TA#f6$L|9No1@kb$QY;XP zc6z3FW*_Y8wU3$Z`{j?-3Tby{b{^fmqh0;}+uPmee0$Gy-|qW37dXR`B1<ix7Ip#V zz#40fah5)-$VjK@sW#8>Or^C6!74*UdzwYjoB=VZp^mm0#X~)X!m*{+z8EbRfISyn z(AMEhc8D?4YebAKfLsO2yF?JF-x{+Zf2t^t=!ky46p0+`KX`E3f7OlCG6Be(m%3P) zaytZ<5QqxU=C2330-4g_E85dv=^M#C?63XCSh4^RkZjDl0*3sVKrR3f3t7(*0rq+1 z-wzk;e|`s03eoooLJz=!?*4e2a<_x{C`8tW?Y}I<5QIM|Des<s$N6=bu0snzKHk?~ zg#IHX_(MQC!tz@eq$|L~u9Ck=4`p5ufI+(qJOBr}`{Qlm-UN})2kpyO$ZsoUekn2Z ze}h4~2`m5vOedcD2t~dF-y77BAPM01<aw+AO7`w82H_%*01U@sXBAcS7Z7X+%14+8 zXhV6Mla6EiZCm+ijDXm2>z1Ms%|q}OEQ87i076pK=KgF?>h4{D>8EYqDrj(R`Wz#Q z`vGkA%VsM=VwaS>k6W+jvVPd}B>=gu#0Hw?4**=`hrQN^8Isqe3fcc|)>6{}7>*_1 zRx->d2*#SVb(%3L8XrmyXMWa<k){HWi}hWk4L&14doy-UV>Gqini|gjq)`J6H^M{b zS?{FM&#vIg2LPp%`q5xd`kICfG;)#MV_oW+>S>7h`bKa%LO_|o53;fJM;f`l?f?vS zCpIg{&c?cjmnQ@i6u+N~r?=F5ZC!1E9kT{RsofCt*6U~`Ai!a9OTUvC9eTcwYih%` ztf-Xa=McHLF?lNlVt;8yUEDu$aH5veYkmYtNj-F?@@qga5NX$svBn>FO##UEB)5v- z1I;O0K?r^;+il%m+o_B2+Bt7p+urWx0CYAjY-LewcPIN}qoYo>ld9eU1k6?KrJXoa z`Hj#vV@7v5iA2@Gr>X(S#nV?1a*4mXRub}N&r{b`J)_crk*==QGiLNPKvr5GkG~Kl z?Qvat)Gqrds(1&?sOTTGdgT)cWR%KR1Q9WKTcyKg1CWo$J4IwiaH^U|sQ<BZ#_R_1 zz*1{j3=y@>NhID<?pWCX6w&rs3RVXzt8oO}ts}Vk-0=g4l7-9-O88y?tvn4;Y1g>9 z?1A|O1Pmp(K6p)yLGm?G-j%6rb_xIl(1{^?w^Hspkk2l)zDiK!Lk|JQ{PG0>$aSZG zACOcyvg(6G-Y~p(B^+mR{;`DPj3x{Ay8%4D1kx5o1iio6lm77h@`aBe;ip4UR6ob4 zd2PaRMk}2lfVT3Ps|5V_Foo5MB0ssH?BqWjBswrVPqWpaqW)ZZ#NJ)Y$*<(?t3duw z(4y)^MBX&N?34g_F?A<ev7ev%o4tkX*J?feGQg$F4*-}6P*nqP?fjAx0U$O-#8AH% zuArLO*X~W<TJJo~)L1sBh3^kaRAVe0K|B$FtW{VIVokV$7J<~_x*v><jvi^`^3;(1 zlqT==TUMh;nGeSk0WgZVtd$-=0(b&kmmGEWHDQBC&RhK@00(@O)-W14I=}2h0JNy> z;mWBFiCu|;-SjG!jeGYNMY)#(Sn%q)1dPuwP{8bPBLtU)ucs2UtwQE<0kj|1l8$48 zyx$L7%^<-4&M#8{5Gffw;mfHAq4l+X8%-AMTS30;x83^i9-CjH0H7pZ%k+AZ`d(`| z_l)0m1@M%XZGPLWgK4E$J^%(W5Wb$W{Hk5gd^RZKiIL3H0KXcP{Y7}LTo;N00FUZz z;p;gS0krbCt$So-!JC4gbWR(0km0`-5qiO|A2=QW5pD=q&O)@t-H8$Vsi6IwGjVW2 zwE8eYSb+BioScUHt#U_ZUqc1!!V^;l@@PA!?g-1BHFEHmAiofnKTX`fKA#^ccWm|! zfW*TRQwEQk7X|(3nNPA{-$mfXz#Wkkmv>h>tN=g*=L9aK0zy7$jbvX7-7lbF>dgRO z3DOTKpGu8obCr(I-T~y2EYk;QPZaD=gs~vH9I0$}N|g6L01bC{RE7N6^qRKsRy$>` z4OoiLbPdR@8<%)yL(*~V>7skN0MGeqn0%=eHLhO2e}C03@wvXB&{MdO+-c=A4~6Zw z90RXAwkY?#03Jc}cOwb@JXx^cUQ246<BuRY+@#ZbnVv4`n?m+km4xF=TKUXYCAb*C zFdFNJniOD1DsNv}tsjek*fDDWc%u;>Zb)^52=t$>_i3H2-z0`I&nNSlq$;@^h5Wvd z?xGiwB=i@f#iPB+eC97IotEuRePN`lYqisz{-P+^M?eGsvOTHq0CIzm|3_u5;2w9C z@s3u@TvZ9%vZA`AdKGj`YxbGShzlSd^_XF*L0$BQr_PQJF7~Xqd#p<Z>c2oZvn!04 zweohK2>_aSRfUvPz;NY;)M--r!0ek6W(RZ*04TpOyTUvT0^-C|4~U1q)sR~O2n5OF z2VVi+$b0ZBUsYFt<UjR}+AoCRYpHn-n<Cks;YS5>1r2@_^QQn2FJZ2bN`ikL6BCBv z-Mm!q{9%xZr!LIL&+jIn;@ySM2;>R?fXKr6S4y4*jt9ULH_%2{0BwkOW4Z3w<w7=| zzD<d|?4o#EzQ=lxDD{<U=ZnaG;Q0E0J-DE4ZT!eIL;`6E2tJp}+skr+9|6h6Q(qI2 zZ2%O3A_!S*9W_hZN{wZ63IH}@Z;^t33rORXruaU@*a|p_L`SYC{g{Ys$BB+jv@Kfs zz@#;n%>ySTA0oZ`M9eGwm&tGR73>4Ka}y~qV!T}eZ-wCe*~K6163AHuBP2{EQY2Xv zkwXN>HQ*TF9?z4P+Enp{R?37s*p=R-J$?&<->COmYJN`u4>)Ow()iiy&OX|%hkZ^# zK$4G&U=tu#Q-*+|fX_hVQSITW)R_IE0E>Sl`HXE@QIymz5bS6$Q3;JAF6@0hvlloi z00hijPkIPImtSH7g>XdkPKkIs6ONM!+TE)I1MSfxQ=1{`+km8-Fm=r2OnmNcKBdvk z#{0es;b)psx&#RM#1x9xpI<19`Zbpbm~CK3VzJJWTJ^gG{skgUFV`iwCzZD^ocsHf z0L<otP={J+ieepjAje5O2*vMN`Rp&6`Q{jmC$<=3d=8Me0`M=<EWP(xh1`G6{kh<^ z)9y*XEWm~H%TGh5L5xu_t~AG~updBHJPwOsLMt^xt=p+&ts;5>ycvQtAu$1Z0YrUQ zL^xI<lRUYo%yen}4}`kMcjw`=3WB5nNzQh3T>=0!<iu?uO3nTPPx=`K*(FBsU+0%C z@JGPR#nT5*bQ+z(FQ#F5>#f|W-S7+gC<Jf`-STU1PeXRjuY91wI^oV@+g)6OVajEU z_FR<h8!8)sbH@)Hg4TBht7#>{2l_@cWz(2d%oQOKejQ+_lckm=B*pbAE|aPl04tXp zqvofAQMIDDz1lLXs`-N44)YO`d;Hh5Qs78w#<;iI8H>L57P`CRMYSs9|E@;M9@q8c zo$E#htIj`NG-+Rac(|an{ydiPP+}mEKU%Evf!aU(B-@kT4dAz%Q?+9FbuypXSWCxX zt$9OPnpRstyxOF&6#&Pi=)S+!UfG%xxAspQoDl6^OX5)D;+8o?$pEiUzFzxYGj%2J zPL4P)isyZ-rs;Ys5JGS7&1V;MxK*R>?CI8M?r|YMfisQrDG>V4Q-$m|>%Fd_{R0xi z*#`{ZOb})vslS}cXRFQwszk#(X!PbY-!;kW{2T&29U*W>s*r7XZFAG(54m_^ix%_Y zmA91%J(8bp<gs%yz6=04vDAA!B|nsvv$4ZCTzuRb&6HhyT@SwOq?Z`6cN?noZh%kw zVXvhje(3?1_)+<Q&qJWZrbw=P`0pUNartfVLl2N2)6_T2<t+7sK*peRU5O3aG@lfp zmD1oe!x*8rrt;Y*{Wk3DW}b5-N1c7{D%B72FN3fjF1#<V+;k9?4}`GWsU5Qh#86)b zupnz}OGEsJC-~#Od?wKGkWf~J5m0t4wb@Yk6Np^JGC7o61QL8gsQ)@y$UQkXgE>e- z-|u&@w|A3C^Cm*B25@fJ{wr_{#N*1qJqafh>YLn>ZMd9|$2&_B*)EWe5waod4>=Mg z2=)p2U}?s<x7K~X{H7&#yxsw*PsXfmqSP(Ncj=45{}%)eU=l=LllP^D?R&~4QVpAy z2*4aW0Ci&`u_{uGterCSl?HG%fy*J%=<MVosh<+6hqdNTv(1~h-*KjQv{3(5O9h}D z1k}N^*R5&mD6Ur8TwM}&m_QU@r{^IGKn%z+7?>1t#wDf<6*=57=^cLJQ0DM8AvC0C bIF0##!b%yozaR(O00000NkvXXu0mjfEm4Y% literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/trans.png b/Billing/Billing.iOS/Resources/trans.png new file mode 100644 index 0000000000000000000000000000000000000000..40d25cdc9e1fac2e81377aa401a52684c0a8bd7b GIT binary patch literal 474 zcmV<00VV#4P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS0004zNkl<ZScUD^PfHb17{~EXmqM3i*~)E;f<!|IMd%Gkr28N@LaT6dH!j>n zi(WvxklG3gf-7rt4FqXZn|uKgEkd#oA#P)fYcXBVocYt_-P|7>n0cP_oacMaGiPQF zJ=VF1ZwB`<oYOC+V|>PQye<>?^dz{hmS8EAC^WNav@(2;u$2QphsObXf^oc08_x$i z-pfc1JNS?Tu$y6T;BFCsi;=-w_>u!~HR3xpb_gJ*L5!4)iK-Ft&0?UYHlLLwwgPSZ zC^nB=wX+<t6*v?10r~*3U2qfMYsz!I3c!<^l1J6^67&Iz0373IuK>Q{28OU*V%#-c z#>0OFc!xcF!)6J9RqW$MUdO!ufhjz|M=X>8XzD=ERsl#-*B7u-BJppHE4X5z64dqf z3+bo`z?ROFU$+v0vq9G1?`=H8t(2{aPX&`*!*c5W4HogXU_99H_u(S*gA&kWSM1BI zj<IdnU9VI1`%kfdbO(nzGgvPf+rX=n*aJ*d0e~wQRqb%vz!)x7O@1c&1;H6s|GFVS QjsO4v07*qoM6N<$f~xn<l>h($ literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/trans@2x.png b/Billing/Billing.iOS/Resources/trans@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..042682856489d8fc9e06318fea025ac8c3057b16 GIT binary patch literal 844 zcmV-S1GD^zP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00004b3#c}2nYxW zd<bNS00096Nkl<Zc%1FqPl#4k7{~F?41-qwqq0OLEo@;h(158q2qHBFZG@~ABJSEM zxHQm3dlxPuHwms=ghEh({}!Tx7>E`@!YFA`P@z&fjnm@VkgxCDKj)tNo_Co0g|oT$ zJkRerzkAQ&zV|(smbuM9VB8=!;x#;7BTro(;5VGZrCy1?haWK2XYC@kHaKpBINS#V z&1;j`-;@Cd`(S`&+n%z6Dm!;K<4lGA@H;-n^$Iba4B!>)!xI(a{>CtVtfBn~U#fl; zcEl2w8BkUKlUU*la6h1c4Y3Nq`vLkt#S(utKzs^EWD93q=Hu(Y8kQ6#FEgh%;cP(R zWb^-KVC;Xqgk^!TD~t4pN+hZCkhAJx>sw;nqO+PgZ$OzT(8&?(j$KG3zQ7w*0zwR! zz@31&UNBiTV9rm0)_~Lnq^30>bpfeq4M<%;YFYzQ7m%9PfYb$~rZpgS0jUZ3HMkB3 zViyvLHB|#b4OkZt*O$!sDbN~_x`5QQ2Ba<^HLU@u3rJ0CK%_jAxEm=~Pl;i`Av}wP z7{#>+IcMUuY-if@*oi+H)S710%>Tci>e7EiwtX%3zMr45s6*?6f|wOWgR6T7eAVUH zx42a^Z#PcjcE_<}b(7XL;F&JR=3#Noyxn-N<gw`FO@UwWLP!6Pa{AY4lX&ZYI)gY` z5K}k>%KRLj$~m_b=kcj*j*ek_iJTz};y6CXINrqihO{2xb<JGSUbHBS;6Ek$%v#DA z@K@tiG{;0yhcY|BmdLifrrHu8%01a8&)i)jW$u7KaXCgsJ?6ZCEi*H*O|}-KUewCA z`$~R0Q02DXf?cvbz{5HHF5#C7d8_au*5;hQAbS%1Om+t}!iVzRf43=N>@Cn9tD3NV zACS6$)PxxDpx}JoqjO!NYlj$6^a;#(K+f5qJ<SlV>b?kF(Ch=#ld?f})BdJG-N$$t z-**&n1*?0YJ%Sq@+UEqm8>n-&=HYGG7aiARZ-)w>y(94y-obKwhZBm|hnAL>$N3jX WSlD_DX_$Qg0000<MNUMnLSTZL5RZZY literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/trans@3x.png b/Billing/Billing.iOS/Resources/trans@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f0804b086dbaafc381843900e3485b90f6a555a6 GIT binary patch literal 1394 zcmbu9{W}u~0LK?Cj9tcNViwE0HLor9kkf5x%iGv8rJC2IMd`4MldPD$)uR_LBX5no z?HJ+lQf6z3yv!~d%8af~u9q{Ew{!o%{c_*u`F=m2zu=qc=i><m8Grx)0GN0b@4rp@ zzg6G0y|V?0&fC~|`7n{9zMW+Ca5ew{v?Ag?C```cG?BfR02O~3Mu!jLb%;lV`n_iD zCYI3`&2+RWcsyAJc_)>v<~zF!R53&Du8HbuH(DxVt7F>BEv@yT8kr`~*rRx|!a363 zG5^bFoiqh{dV_a$Wy}4Mt&^7H7?rmWsQexuue5O}^y1oIkx|~E&_d(yGK#N}7aiJZ zpM6^jt6~%&IoWkhI@KYC+T{mB+~OTD1{-Si;v}Z-WU*5;?iF2i6XJFjgY5k5a@;JM zZ;HriEsEvf^2k$}Kn)qsOivN?aV)vg$=(17#XPo0V%ts)F~sV}+a#$CQ`ZA$e}&Aq zyhvg6dCHPl3!+THvYBM3$rCwxol{mXKnpS?$|`XCk8Y#>?u{az#^TizMY*&Bo6kuC z&GwVs!=MeOOZmpztlv7Fs8@n*hjc5AVa1{wQc*!v3q?ylWo>aBLhoVDkX+_4luzo; zDrYUwvDyRFs9|fBLEW3xb4P+3k&y3~bTK4aBu~A6txiAS-XSfDbFBHjSy*!I26==? zE0?tn3sXTxxK>Dm9ebb%TLHX6)$g6g5np9eK&WN_I3IY_^C1AGc`KKMv7Gm2)-m_+ z_k|ReJO{a2aOEe>9|9DsKY97Qj7S&F$-|p9qYDtg_<cdCKZnDmcCY`JQsO+U0ttw` z-9p(~$6(oN*ExqAo@P--fX=-{+O1Q5xHzcP&IR=6k!HY$=a`z1X3hW5_e^+8pefOy zp=k*Bfd+2@w%v4D3KJ%=GKBEEB~P8P@&wMcu}f+_j>_>{IgZy8p#!E$T}&yLV<<c* z@;09?ermD#V6oP-%5RcV!D&U^_qUR{sUTr+XISiv5<Bj0xDWMqvMoQw-9)G5kbgye z?q!cK=K1s|pL)kpixC0qnep71E{!f(jH+z^(^d2q-<O|~AQ<%MeWMc*9}IOej)@u@ zwTNSKhkB^#Ks81|?%&7m{C){jqqZ_rb8a)mx-ps$<~Py8drGWT=d}N-8|Q>-$uEd1 zS@-ej0#=Zo8h-gp;;}oULt${F*d?^Tzl@z)3dhtmko}BY6pdmtlw`sreLXHy(rrrD zZj<9Ouu(Ki+=;^FM;A_wc!;tj8HyheC8WK%ZWpB_>el3KUp6@4B-F`7(+<{3@K__P zmwvNVShM{IspNI4ysKj<2Bv2o2%+;j9u)A<VXFjhmF%!eKUdvscHx+Wl9P7mSsrY- zB#WWPuWlV>okzSeTt&F1i&&BK>5LmxCcwgZY5wRaS=okVfN8hQW>xc1ANzdlOL`zH zih){K^@LqW5A!9{ywpGWrX1+{!SDU6v6*3Cc1Ia1nbmoH@-<hqvd8LO+A`a4q&?1d zs!hS)sjM#ZqPeB<@X|4dUxG+|;X4e>HAn0o0WBTj{^!2ddOJlXl6E{3f;%kxG!|m+ zIz0YpzZS|8R6*(YCxqpeXH4rmsV^p)3Bl*Zqc*b&l&^R}+VyQ7jixeU2TMW;XT;4= zUg0;?;~5E8i*xNjq+SRjPyU>%g?^!33fUczZyRdUC=Ke~GFELTEPd@y$eTHRA!<Eg zaeBf6`#yL-b`t?9KJcW5AJY@iq;)XMC~U3i^hEdRvxJyJFZ2BV@DuVgfRI0|T5zOK Q+b0Sj5`6HDhv{km0R3fx`v3p{ literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/yuebao.png b/Billing/Billing.iOS/Resources/yuebao.png new file mode 100644 index 0000000000000000000000000000000000000000..3d51bc0af673cb72a16b53fe1de6d52bd9258696 GIT binary patch literal 634 zcmV-=0)_pFP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS0006pNkl<ZScUD@J7^U_6b9fgiTH>bf`+I_e1Td>3JXC5C8cGoZA1%8wG+fj z(*!{g3$+x*!rliWXyFqJAB750d=&~B0}7I85{sED%er^(?DeM79}c^-d(Qd)Jv(P+ z_}9@^!M7K?unp_uxHIM$$0%OnKF;H5D}{F8Ev6G~0{tn8+bf9Ztl&E<T1&B8dIiq6 zn!JXK3FIT_nkfNY!bGb_K8{UQ5?1Mg8akpCVG2KIQov&DMPHrwpKuoMD&}p7cI?NP z#&h61j$&@B$d}?~0&(7+VBO!6uf^*o$ZPf)o0}zHu6Xqu#>0Z=<3j0Q<era7TotqE zz?}k;$tbK_So5>wJ7Vm)g18YZtRmn*L6Vw1!?KKsEcrp96^r6drjpMW+Ntc{W<~5w zAg@(vMT&quB}r}z?NzjiwZ-T2@Sslok$h0mjx|^!ZV3kB*T5UR!bYJQqQKrd@q;*A zk{^xBpS7VFb1Tt*Qf{NlSD;&1ZtGzbCxinB+>O^WxE$~22$Q(mpJ>M#JgP^qvcVTz zDG`^&jglM#S;u?@el$qDUHIoUztcD_96)N@@NBFq$uW@~<OO`dH!LVgusU<!6R&;J z*8OSWJn<X(cACQVghb8aF+P?FfMZce3aXwbhEpAfq_x#^?8Dat-wPGRIwVZCX1C&+ zP2rR#kLmrmB+T5Z#FMy&tz`tM|FB1B!7bPz%=$&bqC=?E7rYlXs(ZK^$Ny1^Ul-IW UR!4TRk^lez07*qoM6N<$f<+4?{{R30 literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/yuebao@2x.png b/Billing/Billing.iOS/Resources/yuebao@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b1271a6a7926e02d8aa5eb6a90f8af6e301212cb GIT binary patch literal 1139 zcmV-(1dRKMP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00004b3#c}2nYxW zd<bNS000CkNkl<Zc%1FqTZ~;(9LMpGc3ROPqm4@%QKY2AEfse`g+B4XgKIP*5#gal z;-Nt#(s&YrL@N?r^o8(hk~Tu9R0!jtuA#;)Otqy#TQk!+9@ZSroSt*`K5MVN$4SpO zS;<WHTL1O`{m)sq|JsK>efk{A99FXZ<8djL<8+*e<1mB;7?}293V-8I?7}bj8lU0= ze1rof`<j$n@t)vxEkW6d4Omj8h*+MMMs%yP8_TMb(mh9EQh5QW;i;4k&q--aaIkFt z_jAFp@;?13TvDBsIL^Xe<pf}3g*pmxkM!cV3(IHE@S1eu$8mAB?iXhvMx_bB+KPQo z#$}jLO#Ei)SF1{SM7;PhEH2Zzvd;qbJ_aM(P6%g&K4nqGHvmo(PJi7nh0pZB&aV^K zVXOE#U=*uyc-4*<<$P?BZXYm;TPjr$$snFl-idHCPOeN%mz;;Mlq0;c?7{67Y0Ax= z*r$B)jb*)%Qk!)i7iR1##n;Ow99h1^_B_|ZsjACXvvf*)GN*$F@SW}xq!aitXWcD0 zqFlK%S)J3d8m^sgbG4B6&eLXxkV=PpbGCV1MH{=zh4XnHr}i~DwL*3fcHo?bHVbq1 zRl`GxwI0L}zVE`Jn(%FDq*D-@#lyp0^fiHt5@~J8^IbU8I0xL_WT#aST8V!^_bbdc z%u6G8Cd<X&^kfAgmH2wOKZ)Wd-iUOjQxL8ak{&6=*8>`xgJ{XQ1s&=XgqxcFFDkxX z?n|KiUt-374etvVngb1GZj<firE6|e{Q;bUkuLlGB7tr&U$~Tv3BV1hoWQDx{x8fj znkU<OrLY#qa7JXiRJN|qs*vY2wKAgPI*;L0{M6?8I$={q*eR}PQ|~0)7SaDo2{uRX zC_W*zD~%_)btTvzmvKhOGX$EKs9s{8jG>b?1ddVss5vg&7Pq3-@b`ZF-lpE5_}$%7 zd>q-<*@}Gyhowna4B@RvAJ%j-oHYcBe){W$?QT)_;DyMxM|XOd6@a4o_-hKbPhqR$ z(8-zuCL%knvqpHOWvtEf8-=k?$n@UarrrtuOOSNSWT%H&0oWDUX(Jcp?0=bXla!i{ z8nTAKx5B}sm-(jC!>j=86)q@ym74IHZCmnegf^w|Wmfn^$PKh5PXIQWxnb!gUe2nJ zCjcXOv$!vnvl}mFRm%JF(SwRFiCO(OCrXO)DE>%kaIN&GwY#QmFA&CSD!ao<x+Hli zaR8?9A%0G1b414Ww+M6aY(i&Kmv^zKEb)!3!fzFe>r^K3gpj|ijK#u`DEcO7(ek$N zPSUKgRQQ?9PSuItk5_R;1^RL`U$_e2fG?$gYh(<s;12Ow>VqirKK)qX2z#cG8D1j% zjBb&TC2Gz!OyVzLZuu2I2)_~dTv#Hvm*{JsK79^R{sE!IMF17>d)fd1002ovPDHLk FV1h;;GVcHY literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/yuebao@3x.png b/Billing/Billing.iOS/Resources/yuebao@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..3850f400941f1bd212f6d3fd798441048e264094 GIT binary patch literal 2077 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 Hu0mjf!@d}5 literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/zhaozhaoying.png b/Billing/Billing.iOS/Resources/zhaozhaoying.png new file mode 100644 index 0000000000000000000000000000000000000000..5b9f8e78a041b8ad16cd49db33c98f0074429e77 GIT binary patch literal 1495 zcmV;|1t|K7P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW zd<bNS000G!Nkl<ZScR=uU2IfE6#mZK>6UFPZ7tjE)=F9+wk*wdZ>xca7PiF(HEIkG z`e0N-cp&iy>Q4wy5`4jgM2+b~jWNMseDE*E7!#BqX$gd+-Caty#cV55l#;r1*`+_* zz4sm;xVKD~t}W2>vU7gseBYdzGk1ruMDhFmE|<&oq!6M5z~cbc0(ckz0Z0M3%*+u0 zC(`Nk&+&LXwUoTHSU_`g^D4`--XWr0M6_y&e5aWCt86xVXkcJq<bDYVUDw|bLL3B8 zx<uf4!ps=}hi7JH4#r}!*(DRGudlCgyWL;g<$hpc=Dut;`{F{?xQjqzW8)*5ru{}l z^~(XSkVqPavGu}*3;n8Hs7f#xEYmdY*m8pd01=gGn)X(%UE~BEAtL{BgERB6X_`Aq zOG|s(+uJ`@apwlQuD>FLc>V#gW^(kDX`1iN%*^;Bk%+UnJ)uzO!+8X%tE=5abZ99E z%sj=+xhHzWFpTYeeSO8ue3F?hW<F|J*7`^!a@gqrBH9E1LWsSgP^e~(KxJj+t3*__ z2rx7AcSN)vz)@$#mSr7GBoZ5<(dZ8VECAO5{9zcz{%|<_k28Pc#*HfhJYlPnh@Jre zX&ZJe0zSaZo#Al!H~{Fn-oVVi8iuiZf!5kUMD<e2cLD5mj4qd}TEPP|`v5@t{r=Se zn)3ip0NCH(-~TxP69DS!>K+n8G%>S~QoaV@eJ4H;2vh=Su;>1(=CUk{GMP*kfM%OY z{eHhou2`{RGZE#x5sR6*#{mZbx7*!{+a&}5uNtgrTDy{~NA(pJ7Vb7pGi#dWG!bz@ zK|!0(=WCPz0(rneL@od=0Ah|!2(d+}(5amGcH2IcPN&bQzH~Zm5mAw&XEGVXFpOFW zV0AtM0AQMCOx2k=<Sa6i$(+dvZ?}o`#^do!4!K*FWqnIT8UO}hXqr|kiKrwWI5ST~ zqtUaDzHZ&Rl|qOn+jlt@i(PSi!C<fkz#7|kT+Op>+qS0w_yH8)&OyvFbD3mjGyf65 z87TW-Qc}{QB<NKGg%EAd{xkCl)hDIgXPRbcfd!tB0B+<%2XIzZgb-?y-kjL2_HQa2 z4u>6MBof)4OeQy9ym--I=8O=+Sx}~~uI@|8%)|LAz|6UO+~y2S)66B%X3seXrD{Tm zV0n4DXl-p3Q0@Uc_G!t?{a8Sld3Jn!{Jf(FgTXQ)(rxudG#Z^doDB^P>z$jFh|a5d z1_uW_5{U$tmzQH=Vgkd%!<0-WF*`d8!!R^CJw4r1TwI(XqQV>weOIquomTWMurCq2 zGVC~9E?2uke83rxj*f;VCnq-z4GnQNn`Mv31E0^wQcCi8JXS?Tg(fdux|D8eYWfAh z3poVlmDuTVdwe=4cB>7}-QC^0JRZ+V0Dq5;j(&9DzyTx@2|~`FAFtPYtE;Q)q_ih? z5z#yX%$%1%Hk+OE>ALR0o&KlJ&d!e7+S(4c+l^Q(hUsawh<9XcZ0ysTnwmf7ST!{@ z^$<~uvy!Q)DbLW*Pyzq~fk3sC@`}=CUjX=qh}JOk+eEZ>L6rP*{pQV^kHzEh)ZD4G zEbC28)6V1eWr3oiq8b3ns;a6&Ddh+1_kxIa0@!Jf?-3hd<~`24Vcu+A*Y^n_4k>|b zgWNkx9<eOzNH`qc;pm#`92*-u<Mn!Li74m*FDE!N_e@Moyp&8PjRgtVB!2Swe2*$U zzg*y_Q>oN*BO@b|s{Jkk0QlOqYd?Cu-ZX$V`|I@}zzpECR4VmyJRYCQ_5W{q1A#z; zl=2g`1@94j&@|1x(P;EozL+KLudeG`i0E}9dKQ3tk#LilPg$1L9f?G~hw@#xZvu`q xH#ZjnXkljcc`k7KdH$FEJpVl$4v#N2=YP({c|)dM2j&0(002ovPDHLkV1fo!!y5nq literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/zhaozhaoying@2x.png b/Billing/Billing.iOS/Resources/zhaozhaoying@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ffb850fdcf938f4fcab584f3cb03904fb6058c88 GIT binary patch literal 3256 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 literal 0 HcmV?d00001 diff --git a/Billing/Billing.iOS/Resources/zhaozhaoying@3x.png b/Billing/Billing.iOS/Resources/zhaozhaoying@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..df2cc1bda2cb31d3ff97c234bcdf8d6671a19a31 GIT binary patch literal 6123 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 literal 0 HcmV?d00001