diff --git a/Billing.Shared/Billing.Shared.projitems b/Billing.Shared/Billing.Shared.projitems
index fafb41c..7d6eba9 100644
--- a/Billing.Shared/Billing.Shared.projitems
+++ b/Billing.Shared/Billing.Shared.projitems
@@ -67,6 +67,10 @@
IconSelectPage.xaml
Code
+
+ RankPage.xaml
+ Code
+
SettingPage.xaml
@@ -127,4 +131,9 @@
MSBuild:UpdateDesignTimeXaml
+
+
+ MSBuild:UpdateDesignTimeXaml
+
+
\ No newline at end of file
diff --git a/Billing.Shared/Views/RankPage.xaml b/Billing.Shared/Views/RankPage.xaml
new file mode 100644
index 0000000..8827fe7
--- /dev/null
+++ b/Billing.Shared/Views/RankPage.xaml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/Billing.Shared/Views/RankPage.xaml.cs b/Billing.Shared/Views/RankPage.xaml.cs
new file mode 100644
index 0000000..8f8d567
--- /dev/null
+++ b/Billing.Shared/Views/RankPage.xaml.cs
@@ -0,0 +1,29 @@
+using Billing.UI;
+using Microcharts;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+using Xamarin.Forms;
+using Xamarin.Forms.Xaml;
+
+namespace Billing.Views
+{
+ public partial class RankPage : BillingPage
+ {
+ private static readonly BindableProperty ChartProperty = Helper.Create(nameof(Chart));
+
+ public Chart Chart
+ {
+ get => (Chart)GetValue(ChartProperty);
+ set => SetValue(ChartProperty, value);
+ }
+
+ public RankPage()
+ {
+ InitializeComponent();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Billing/Billing.Android/Billing.Android.csproj b/Billing/Billing.Android/Billing.Android.csproj
index 3d67096..a07205a 100644
--- a/Billing/Billing.Android/Billing.Android.csproj
+++ b/Billing/Billing.Android/Billing.Android.csproj
@@ -65,6 +65,9 @@
+
+ 0.9.5.9
+
@@ -503,6 +506,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 6c952fd..35206b9 100644
--- a/Billing/Billing.Android/Resources/Resource.designer.cs
+++ b/Billing/Billing.Android/Resources/Resource.designer.cs
@@ -14,7 +14,7 @@ namespace Billing.Droid
{
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "12.2.0.155")]
public partial class Resource
{
@@ -25,6 +25,7 @@ namespace Billing.Droid
public static void UpdateIdValues()
{
+ global::Microcharts.Droid.Resource.String.library_name = global::Billing.Droid.Resource.String.library_name;
global::SkiaSharp.Views.Forms.Resource.Animation.abc_fade_in = global::Billing.Droid.Resource.Animation.abc_fade_in;
global::SkiaSharp.Views.Forms.Resource.Animation.abc_fade_out = global::Billing.Droid.Resource.Animation.abc_fade_out;
global::SkiaSharp.Views.Forms.Resource.Animation.abc_grow_fade_in_from_bottom = global::Billing.Droid.Resource.Animation.abc_grow_fade_in_from_bottom;
@@ -19239,52 +19240,55 @@ namespace Billing.Droid
public const int rail = 2131165357;
// aapt resource value: 0x7F0700AE
- public const int rcb = 2131165358;
+ public const int rank = 2131165358;
// aapt resource value: 0x7F0700AF
- public const int rent = 2131165359;
+ public const int rcb = 2131165359;
// aapt resource value: 0x7F0700B0
- public const int right = 2131165360;
+ public const int rent = 2131165360;
// aapt resource value: 0x7F0700B1
- public const int sackdollar = 2131165361;
+ public const int right = 2131165361;
// aapt resource value: 0x7F0700B2
- public const int settings = 2131165362;
+ public const int sackdollar = 2131165362;
// aapt resource value: 0x7F0700B3
- public const int splash_logo = 2131165363;
+ public const int settings = 2131165363;
// aapt resource value: 0x7F0700B4
- public const int splash_screen = 2131165364;
+ public const int splash_logo = 2131165364;
// aapt resource value: 0x7F0700B5
- public const int taxi = 2131165365;
+ public const int splash_screen = 2131165365;
// aapt resource value: 0x7F0700B6
- public const int test_custom_background = 2131165366;
+ public const int taxi = 2131165366;
// aapt resource value: 0x7F0700B7
- public const int tooltip_frame_dark = 2131165367;
+ public const int test_custom_background = 2131165367;
// aapt resource value: 0x7F0700B8
- public const int tooltip_frame_light = 2131165368;
+ public const int tooltip_frame_dark = 2131165368;
// aapt resource value: 0x7F0700B9
- public const int trans = 2131165369;
+ public const int tooltip_frame_light = 2131165369;
// aapt resource value: 0x7F0700BA
- public const int wallet = 2131165370;
+ public const int trans = 2131165370;
// aapt resource value: 0x7F0700BB
- public const int yuan = 2131165371;
+ public const int wallet = 2131165371;
// aapt resource value: 0x7F0700BC
- public const int yuebao = 2131165372;
+ public const int yuan = 2131165372;
// aapt resource value: 0x7F0700BD
- public const int zhaozhaoying = 2131165373;
+ public const int yuebao = 2131165373;
+
+ // aapt resource value: 0x7F0700BE
+ public const int zhaozhaoying = 2131165374;
static Drawable()
{
@@ -21586,214 +21590,217 @@ namespace Billing.Droid
public const int item_view_role_description = 2131623984;
// aapt resource value: 0x7F0E0031
- public const int material_clock_display_divider = 2131623985;
+ public const int library_name = 2131623985;
// aapt resource value: 0x7F0E0032
- public const int material_clock_toggle_content_description = 2131623986;
+ public const int material_clock_display_divider = 2131623986;
// aapt resource value: 0x7F0E0033
- public const int material_hour_selection = 2131623987;
+ public const int material_clock_toggle_content_description = 2131623987;
// aapt resource value: 0x7F0E0034
- public const int material_hour_suffix = 2131623988;
+ public const int material_hour_selection = 2131623988;
// aapt resource value: 0x7F0E0035
- public const int material_minute_selection = 2131623989;
+ public const int material_hour_suffix = 2131623989;
// aapt resource value: 0x7F0E0036
- public const int material_minute_suffix = 2131623990;
+ public const int material_minute_selection = 2131623990;
// aapt resource value: 0x7F0E0037
- public const int material_motion_easing_accelerated = 2131623991;
+ public const int material_minute_suffix = 2131623991;
// aapt resource value: 0x7F0E0038
- public const int material_motion_easing_decelerated = 2131623992;
+ public const int material_motion_easing_accelerated = 2131623992;
// aapt resource value: 0x7F0E0039
- public const int material_motion_easing_emphasized = 2131623993;
+ public const int material_motion_easing_decelerated = 2131623993;
// aapt resource value: 0x7F0E003A
- public const int material_motion_easing_linear = 2131623994;
+ public const int material_motion_easing_emphasized = 2131623994;
// aapt resource value: 0x7F0E003B
- public const int material_motion_easing_standard = 2131623995;
+ public const int material_motion_easing_linear = 2131623995;
// aapt resource value: 0x7F0E003C
- public const int material_slider_range_end = 2131623996;
+ public const int material_motion_easing_standard = 2131623996;
// aapt resource value: 0x7F0E003D
- public const int material_slider_range_start = 2131623997;
+ public const int material_slider_range_end = 2131623997;
// aapt resource value: 0x7F0E003E
- public const int material_timepicker_am = 2131623998;
+ public const int material_slider_range_start = 2131623998;
// aapt resource value: 0x7F0E003F
- public const int material_timepicker_clock_mode_description = 2131623999;
+ public const int material_timepicker_am = 2131623999;
// aapt resource value: 0x7F0E0040
- public const int material_timepicker_hour = 2131624000;
+ public const int material_timepicker_clock_mode_description = 2131624000;
// aapt resource value: 0x7F0E0041
- public const int material_timepicker_minute = 2131624001;
+ public const int material_timepicker_hour = 2131624001;
// aapt resource value: 0x7F0E0042
- public const int material_timepicker_pm = 2131624002;
+ public const int material_timepicker_minute = 2131624002;
// aapt resource value: 0x7F0E0043
- public const int material_timepicker_select_time = 2131624003;
+ public const int material_timepicker_pm = 2131624003;
// aapt resource value: 0x7F0E0044
- public const int material_timepicker_text_input_mode_description = 2131624004;
+ public const int material_timepicker_select_time = 2131624004;
// aapt resource value: 0x7F0E0045
- public const int mtrl_badge_numberless_content_description = 2131624005;
+ public const int material_timepicker_text_input_mode_description = 2131624005;
// aapt resource value: 0x7F0E0046
- public const int mtrl_chip_close_icon_content_description = 2131624006;
+ public const int mtrl_badge_numberless_content_description = 2131624006;
// aapt resource value: 0x7F0E0047
- public const int mtrl_exceed_max_badge_number_content_description = 2131624007;
+ public const int mtrl_chip_close_icon_content_description = 2131624007;
// aapt resource value: 0x7F0E0048
- public const int mtrl_exceed_max_badge_number_suffix = 2131624008;
+ public const int mtrl_exceed_max_badge_number_content_description = 2131624008;
// aapt resource value: 0x7F0E0049
- public const int mtrl_picker_a11y_next_month = 2131624009;
+ public const int mtrl_exceed_max_badge_number_suffix = 2131624009;
// aapt resource value: 0x7F0E004A
- public const int mtrl_picker_a11y_prev_month = 2131624010;
+ public const int mtrl_picker_a11y_next_month = 2131624010;
// aapt resource value: 0x7F0E004B
- public const int mtrl_picker_announce_current_selection = 2131624011;
+ public const int mtrl_picker_a11y_prev_month = 2131624011;
// aapt resource value: 0x7F0E004C
- public const int mtrl_picker_cancel = 2131624012;
+ public const int mtrl_picker_announce_current_selection = 2131624012;
// aapt resource value: 0x7F0E004D
- public const int mtrl_picker_confirm = 2131624013;
+ public const int mtrl_picker_cancel = 2131624013;
// aapt resource value: 0x7F0E004E
- public const int mtrl_picker_date_header_selected = 2131624014;
+ public const int mtrl_picker_confirm = 2131624014;
// aapt resource value: 0x7F0E004F
- public const int mtrl_picker_date_header_title = 2131624015;
+ public const int mtrl_picker_date_header_selected = 2131624015;
// aapt resource value: 0x7F0E0050
- public const int mtrl_picker_date_header_unselected = 2131624016;
+ public const int mtrl_picker_date_header_title = 2131624016;
// aapt resource value: 0x7F0E0051
- public const int mtrl_picker_day_of_week_column_header = 2131624017;
+ public const int mtrl_picker_date_header_unselected = 2131624017;
// aapt resource value: 0x7F0E0052
- public const int mtrl_picker_invalid_format = 2131624018;
+ public const int mtrl_picker_day_of_week_column_header = 2131624018;
// aapt resource value: 0x7F0E0053
- public const int mtrl_picker_invalid_format_example = 2131624019;
+ public const int mtrl_picker_invalid_format = 2131624019;
// aapt resource value: 0x7F0E0054
- public const int mtrl_picker_invalid_format_use = 2131624020;
+ public const int mtrl_picker_invalid_format_example = 2131624020;
// aapt resource value: 0x7F0E0055
- public const int mtrl_picker_invalid_range = 2131624021;
+ public const int mtrl_picker_invalid_format_use = 2131624021;
// aapt resource value: 0x7F0E0056
- public const int mtrl_picker_navigate_to_year_description = 2131624022;
+ public const int mtrl_picker_invalid_range = 2131624022;
// aapt resource value: 0x7F0E0057
- public const int mtrl_picker_out_of_range = 2131624023;
+ public const int mtrl_picker_navigate_to_year_description = 2131624023;
// aapt resource value: 0x7F0E0058
- public const int mtrl_picker_range_header_only_end_selected = 2131624024;
+ public const int mtrl_picker_out_of_range = 2131624024;
// aapt resource value: 0x7F0E0059
- public const int mtrl_picker_range_header_only_start_selected = 2131624025;
+ public const int mtrl_picker_range_header_only_end_selected = 2131624025;
// aapt resource value: 0x7F0E005A
- public const int mtrl_picker_range_header_selected = 2131624026;
+ public const int mtrl_picker_range_header_only_start_selected = 2131624026;
// aapt resource value: 0x7F0E005B
- public const int mtrl_picker_range_header_title = 2131624027;
+ public const int mtrl_picker_range_header_selected = 2131624027;
// aapt resource value: 0x7F0E005C
- public const int mtrl_picker_range_header_unselected = 2131624028;
+ public const int mtrl_picker_range_header_title = 2131624028;
// aapt resource value: 0x7F0E005D
- public const int mtrl_picker_save = 2131624029;
+ public const int mtrl_picker_range_header_unselected = 2131624029;
// aapt resource value: 0x7F0E005E
- public const int mtrl_picker_text_input_date_hint = 2131624030;
+ public const int mtrl_picker_save = 2131624030;
// aapt resource value: 0x7F0E005F
- public const int mtrl_picker_text_input_date_range_end_hint = 2131624031;
+ public const int mtrl_picker_text_input_date_hint = 2131624031;
// aapt resource value: 0x7F0E0060
- public const int mtrl_picker_text_input_date_range_start_hint = 2131624032;
+ public const int mtrl_picker_text_input_date_range_end_hint = 2131624032;
// aapt resource value: 0x7F0E0061
- public const int mtrl_picker_text_input_day_abbr = 2131624033;
+ public const int mtrl_picker_text_input_date_range_start_hint = 2131624033;
// aapt resource value: 0x7F0E0062
- public const int mtrl_picker_text_input_month_abbr = 2131624034;
+ public const int mtrl_picker_text_input_day_abbr = 2131624034;
// aapt resource value: 0x7F0E0063
- public const int mtrl_picker_text_input_year_abbr = 2131624035;
+ public const int mtrl_picker_text_input_month_abbr = 2131624035;
// aapt resource value: 0x7F0E0064
- public const int mtrl_picker_toggle_to_calendar_input_mode = 2131624036;
+ public const int mtrl_picker_text_input_year_abbr = 2131624036;
// aapt resource value: 0x7F0E0065
- public const int mtrl_picker_toggle_to_day_selection = 2131624037;
+ public const int mtrl_picker_toggle_to_calendar_input_mode = 2131624037;
// aapt resource value: 0x7F0E0066
- public const int mtrl_picker_toggle_to_text_input_mode = 2131624038;
+ public const int mtrl_picker_toggle_to_day_selection = 2131624038;
// aapt resource value: 0x7F0E0067
- public const int mtrl_picker_toggle_to_year_selection = 2131624039;
+ public const int mtrl_picker_toggle_to_text_input_mode = 2131624039;
// aapt resource value: 0x7F0E0068
- public const int nav_app_bar_navigate_up_description = 2131624040;
+ public const int mtrl_picker_toggle_to_year_selection = 2131624040;
// aapt resource value: 0x7F0E0069
- public const int nav_app_bar_open_drawer_description = 2131624041;
+ public const int nav_app_bar_navigate_up_description = 2131624041;
// aapt resource value: 0x7F0E006A
- public const int not_set = 2131624042;
+ public const int nav_app_bar_open_drawer_description = 2131624042;
// aapt resource value: 0x7F0E006B
- public const int overflow_tab_title = 2131624043;
+ public const int not_set = 2131624043;
// aapt resource value: 0x7F0E006C
- public const int password_toggle_content_description = 2131624044;
+ public const int overflow_tab_title = 2131624044;
// aapt resource value: 0x7F0E006D
- public const int path_password_eye = 2131624045;
+ public const int password_toggle_content_description = 2131624045;
// aapt resource value: 0x7F0E006E
- public const int path_password_eye_mask_strike_through = 2131624046;
+ public const int path_password_eye = 2131624046;
// aapt resource value: 0x7F0E006F
- public const int path_password_eye_mask_visible = 2131624047;
+ public const int path_password_eye_mask_strike_through = 2131624047;
// aapt resource value: 0x7F0E0070
- public const int path_password_strike_through = 2131624048;
+ public const int path_password_eye_mask_visible = 2131624048;
// aapt resource value: 0x7F0E0071
- public const int preference_copied = 2131624049;
+ public const int path_password_strike_through = 2131624049;
// aapt resource value: 0x7F0E0072
- public const int search_menu_title = 2131624050;
+ public const int preference_copied = 2131624050;
// aapt resource value: 0x7F0E0073
- public const int status_bar_notification_info_overflow = 2131624051;
+ public const int search_menu_title = 2131624051;
// aapt resource value: 0x7F0E0074
- public const int summary_collapsed_preference_list = 2131624052;
+ public const int status_bar_notification_info_overflow = 2131624052;
// aapt resource value: 0x7F0E0075
- public const int v7_preference_off = 2131624053;
+ public const int summary_collapsed_preference_list = 2131624053;
// aapt resource value: 0x7F0E0076
- public const int v7_preference_on = 2131624054;
+ public const int v7_preference_off = 2131624054;
+
+ // aapt resource value: 0x7F0E0077
+ public const int v7_preference_on = 2131624055;
static String()
{
diff --git a/Billing/Billing.Android/Resources/drawable-mdpi/rank.png b/Billing/Billing.Android/Resources/drawable-mdpi/rank.png
new file mode 100644
index 0000000..d75f982
Binary files /dev/null and b/Billing/Billing.Android/Resources/drawable-mdpi/rank.png differ
diff --git a/Billing/Billing.Android/Resources/drawable-xhdpi/rank.png b/Billing/Billing.Android/Resources/drawable-xhdpi/rank.png
new file mode 100644
index 0000000..cb04e14
Binary files /dev/null and b/Billing/Billing.Android/Resources/drawable-xhdpi/rank.png differ
diff --git a/Billing/Billing.Android/Resources/drawable-xxhdpi/rank.png b/Billing/Billing.Android/Resources/drawable-xxhdpi/rank.png
new file mode 100644
index 0000000..19b6cb3
Binary files /dev/null and b/Billing/Billing.Android/Resources/drawable-xxhdpi/rank.png differ
diff --git a/Billing/Billing.Android/Resources/drawable/rank.png b/Billing/Billing.Android/Resources/drawable/rank.png
new file mode 100644
index 0000000..f5aad83
Binary files /dev/null and b/Billing/Billing.Android/Resources/drawable/rank.png differ
diff --git a/Billing/Billing.iOS/Billing.iOS.csproj b/Billing/Billing.iOS/Billing.iOS.csproj
index 3d322fa..514c266 100644
--- a/Billing/Billing.iOS/Billing.iOS.csproj
+++ b/Billing/Billing.iOS/Billing.iOS.csproj
@@ -166,6 +166,9 @@
+
+ 0.9.5.9
+
@@ -445,6 +448,15 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Billing/Billing.iOS/Resources/rank.png b/Billing/Billing.iOS/Resources/rank.png
new file mode 100644
index 0000000..d75f982
Binary files /dev/null and b/Billing/Billing.iOS/Resources/rank.png differ
diff --git a/Billing/Billing.iOS/Resources/rank@2x.png b/Billing/Billing.iOS/Resources/rank@2x.png
new file mode 100644
index 0000000..cb04e14
Binary files /dev/null and b/Billing/Billing.iOS/Resources/rank@2x.png differ
diff --git a/Billing/Billing.iOS/Resources/rank@3x.png b/Billing/Billing.iOS/Resources/rank@3x.png
new file mode 100644
index 0000000..19b6cb3
Binary files /dev/null and b/Billing/Billing.iOS/Resources/rank@3x.png differ