(),
#else
@@ -282,7 +284,7 @@ namespace TINK
if (_PermissionsService != null)
return _PermissionsService;
- _PermissionsService = new Services.Permissions.Essentials.Permissions();
+ _PermissionsService = new Services.Permissions.Plugin.Permissions();
return _PermissionsService;
}
}
diff --git a/LastenradBayern/TINK/HtmlResouces/V02/InfoLicenses.html b/LastenradBayern/TINK/HtmlResouces/V02/InfoLicenses.html
index ed4f74c..6c5e7aa 100644
--- a/LastenradBayern/TINK/HtmlResouces/V02/InfoLicenses.html
+++ b/LastenradBayern/TINK/HtmlResouces/V02/InfoLicenses.html
@@ -33,6 +33,7 @@
PCLStorage von Daniel Plaisted | Microsoft Public License (Ms-PL) |
Pinvoke von AArnott | MIT- Lizenz für Pinvoke |
Plugin.BLE Adrian Seceleanu, Sven-Michael Stübe | Apache License 2.0 |
+ Plugin.Permissions von James Montemagno | MIT Lizenz 2016 |
Polly von Michael Wolfenden, App vNext | New BSD License |
Serilog von Serilog Contributors | Apache License 2.0 |
Serilog.Sinks.Debug von Serilog Contributors | Apache License 2.0 |
diff --git a/LastenradBayern/TINK/View/Account/AccountPage.xaml.cs b/LastenradBayern/TINK/View/Account/AccountPage.xaml.cs
index 9974c42..81337ba 100644
--- a/LastenradBayern/TINK/View/Account/AccountPage.xaml.cs
+++ b/LastenradBayern/TINK/View/Account/AccountPage.xaml.cs
@@ -149,7 +149,7 @@ namespace TINK.View.Account
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
}
}
\ No newline at end of file
diff --git a/LastenradBayern/TINK/View/BikesAtStation/BikesAtStationPage.xaml.cs b/LastenradBayern/TINK/View/BikesAtStation/BikesAtStationPage.xaml.cs
index 74d357a..dbd12ee 100644
--- a/LastenradBayern/TINK/View/BikesAtStation/BikesAtStationPage.xaml.cs
+++ b/LastenradBayern/TINK/View/BikesAtStation/BikesAtStationPage.xaml.cs
@@ -228,7 +228,10 @@ using TINK.View.MasterDetail;
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ /// Displays user feedback popup.
+ /// Co2 saving information.
+ /// User feedback.
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup(co2Saving));
#endif
}
}
\ No newline at end of file
diff --git a/LastenradBayern/TINK/View/Contact/ContactPage.xaml.cs b/LastenradBayern/TINK/View/Contact/ContactPage.xaml.cs
index 4b5bc68..5553f32 100644
--- a/LastenradBayern/TINK/View/Contact/ContactPage.xaml.cs
+++ b/LastenradBayern/TINK/View/Contact/ContactPage.xaml.cs
@@ -88,7 +88,7 @@ namespace TINK.View.Contact
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
#if USEFLYOUT
diff --git a/LastenradBayern/TINK/View/Contact/SelectStationPage.xaml.cs b/LastenradBayern/TINK/View/Contact/SelectStationPage.xaml.cs
index 7511af0..9950a81 100644
--- a/LastenradBayern/TINK/View/Contact/SelectStationPage.xaml.cs
+++ b/LastenradBayern/TINK/View/Contact/SelectStationPage.xaml.cs
@@ -114,7 +114,7 @@ namespace TINK.View.Contact
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
#if USEFLYOUT
diff --git a/LastenradBayern/TINK/View/FeedbackPopup.xaml b/LastenradBayern/TINK/View/FeedbackPopup.xaml
index fe9dae3..ccbfdff 100644
--- a/LastenradBayern/TINK/View/FeedbackPopup.xaml
+++ b/LastenradBayern/TINK/View/FeedbackPopup.xaml
@@ -12,11 +12,14 @@
+
+
+
@@ -34,7 +37,16 @@
-
+
+
+
+
+
+
@@ -77,8 +89,9 @@
+
diff --git a/LastenradBayern/TINK/View/FeedbackPopup.xaml.cs b/LastenradBayern/TINK/View/FeedbackPopup.xaml.cs
index 35d5e22..d8c73aa 100644
--- a/LastenradBayern/TINK/View/FeedbackPopup.xaml.cs
+++ b/LastenradBayern/TINK/View/FeedbackPopup.xaml.cs
@@ -7,9 +7,15 @@ namespace TINK.View
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class FeedbackPopup : Popup
{
- public FeedbackPopup()
+ /// Constructs user feedback popup.
+ /// Co2 saving information.
+ public FeedbackPopup(string co2Saving = null)
{
InitializeComponent();
+ if (string.IsNullOrEmpty(co2Saving))
+ Co2SavingFrame.IsVisible = false;
+ else
+ Co2SavingLabel.Text = co2Saving;
}
protected override FeedbackPopup.Result GetLightDismissResult()
diff --git a/LastenradBayern/TINK/View/FindBike/FindBikePage.xaml.cs b/LastenradBayern/TINK/View/FindBike/FindBikePage.xaml.cs
index 44a86f0..3d667fc 100644
--- a/LastenradBayern/TINK/View/FindBike/FindBikePage.xaml.cs
+++ b/LastenradBayern/TINK/View/FindBike/FindBikePage.xaml.cs
@@ -138,7 +138,10 @@ namespace TINK.View.FindBike
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ /// Displays user feedback popup.
+ /// Co2 saving information.
+ /// User feedback.
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup(co2Saving));
#endif
}
}
\ No newline at end of file
diff --git a/LastenradBayern/TINK/View/Info/BikeInfo/BikeInfoCarouselPage.xaml.cs b/LastenradBayern/TINK/View/Info/BikeInfo/BikeInfoCarouselPage.xaml.cs
index 35c410e..38909a5 100644
--- a/LastenradBayern/TINK/View/Info/BikeInfo/BikeInfoCarouselPage.xaml.cs
+++ b/LastenradBayern/TINK/View/Info/BikeInfo/BikeInfoCarouselPage.xaml.cs
@@ -122,7 +122,7 @@ namespace TINK.View.Info.BikeInfo
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
}
}
\ No newline at end of file
diff --git a/LastenradBayern/TINK/View/Login/LoginPage.xaml.cs b/LastenradBayern/TINK/View/Login/LoginPage.xaml.cs
index 427b1f4..2ac640d 100644
--- a/LastenradBayern/TINK/View/Login/LoginPage.xaml.cs
+++ b/LastenradBayern/TINK/View/Login/LoginPage.xaml.cs
@@ -116,7 +116,7 @@ namespace TINK.View.Login
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
}
}
\ No newline at end of file
diff --git a/LastenradBayern/TINK/View/Map/MapPage.xaml.cs b/LastenradBayern/TINK/View/Map/MapPage.xaml.cs
index 5c336a3..4c6b1bc 100644
--- a/LastenradBayern/TINK/View/Map/MapPage.xaml.cs
+++ b/LastenradBayern/TINK/View/Map/MapPage.xaml.cs
@@ -117,7 +117,7 @@ namespace TINK.View.Map
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
#if USEFLYOUT
diff --git a/LastenradBayern/TINK/View/MiniSurvey/MiniSurveyPage.xaml.cs b/LastenradBayern/TINK/View/MiniSurvey/MiniSurveyPage.xaml.cs
index bb8fdb5..bdb257f 100644
--- a/LastenradBayern/TINK/View/MiniSurvey/MiniSurveyPage.xaml.cs
+++ b/LastenradBayern/TINK/View/MiniSurvey/MiniSurveyPage.xaml.cs
@@ -89,7 +89,10 @@ namespace TINK.View.MiniSurvey
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ /// Displays user feedback popup.
+ /// Co2 saving information.
+ /// User feedback.
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup(co2Saving));
#endif
}
}
\ No newline at end of file
diff --git a/LastenradBayern/TINK/View/MyBikes/MyBikesPage.xaml.cs b/LastenradBayern/TINK/View/MyBikes/MyBikesPage.xaml.cs
index e837768..106103d 100644
--- a/LastenradBayern/TINK/View/MyBikes/MyBikesPage.xaml.cs
+++ b/LastenradBayern/TINK/View/MyBikes/MyBikesPage.xaml.cs
@@ -163,7 +163,7 @@ namespace TINK.View.MyBikes
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup(co2Saving));
#endif
}
}
\ No newline at end of file
diff --git a/LastenradBayern/TINK/View/Settings/SettingsPage.xaml.cs b/LastenradBayern/TINK/View/Settings/SettingsPage.xaml.cs
index 050a8d9..e59394c 100644
--- a/LastenradBayern/TINK/View/Settings/SettingsPage.xaml.cs
+++ b/LastenradBayern/TINK/View/Settings/SettingsPage.xaml.cs
@@ -146,7 +146,10 @@ namespace TINK.View.Settings
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ /// Displays user feedback popup.
+ /// Co2 saving information.
+ /// User feedback.
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup(co2Saving));
#endif
#if USERFEEDBACKDLG_TRYOUT
diff --git a/LastenradBayern/TINK/View/WhatsNew/Agb/AgbPage.xaml.cs b/LastenradBayern/TINK/View/WhatsNew/Agb/AgbPage.xaml.cs
index adbf981..02c7b7a 100644
--- a/LastenradBayern/TINK/View/WhatsNew/Agb/AgbPage.xaml.cs
+++ b/LastenradBayern/TINK/View/WhatsNew/Agb/AgbPage.xaml.cs
@@ -75,7 +75,7 @@ namespace TINK.View.WhatsNew.Agb
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
}
}
\ No newline at end of file
diff --git a/LastenradBayern/TINK/View/WhatsNew/WhatsNewPage.xaml.cs b/LastenradBayern/TINK/View/WhatsNew/WhatsNewPage.xaml.cs
index ade433a..a7a8845 100644
--- a/LastenradBayern/TINK/View/WhatsNew/WhatsNewPage.xaml.cs
+++ b/LastenradBayern/TINK/View/WhatsNew/WhatsNewPage.xaml.cs
@@ -79,7 +79,7 @@ namespace TINK.View.WhatsNew
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
///
diff --git a/Meinkonrad/TINK.Android/MainActivity.cs b/Meinkonrad/TINK.Android/MainActivity.cs
index 6d41ea5..9c9af7f 100644
--- a/Meinkonrad/TINK.Android/MainActivity.cs
+++ b/Meinkonrad/TINK.Android/MainActivity.cs
@@ -4,6 +4,7 @@ using Android.Content.PM;
using Android.OS;
using Android.Content;
using Java.Interop;
+using Plugin.Permissions;
namespace TINK.Droid
{
@@ -51,6 +52,12 @@ namespace TINK.Droid
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
+ else if (App.PermissionsService.GetType() == typeof(TINK.Services.Permissions.Plugin.Permissions))
+ {
+ // Bug in 3.0.244 and earlier versions of sharee.bike app: Call of PermissionsImplementation.Current.OnRequestedPermission result was missing.
+ // see https://dev.azure.com/TeilRad/sharee.bike%20Buchungsplattform/_workitems/edit/136 for further details.
+ PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
+ }
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
diff --git a/Meinkonrad/TINK.Android/Meinkonrad.Android.csproj b/Meinkonrad/TINK.Android/Meinkonrad.Android.csproj
index 82d7a8e..a065b7e 100644
--- a/Meinkonrad/TINK.Android/Meinkonrad.Android.csproj
+++ b/Meinkonrad/TINK.Android/Meinkonrad.Android.csproj
@@ -60,6 +60,9 @@
false
armeabi-v7a;x86;x86_64;arm64-v8a
+ aab
+ true
+ false
diff --git a/Meinkonrad/TINK.Android/Properties/AndroidManifest.xml b/Meinkonrad/TINK.Android/Properties/AndroidManifest.xml
index 0d05ce6..88ea247 100644
--- a/Meinkonrad/TINK.Android/Properties/AndroidManifest.xml
+++ b/Meinkonrad/TINK.Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/Meinkonrad/TINK.Android/Resources/Resource.Designer.cs b/Meinkonrad/TINK.Android/Resources/Resource.Designer.cs
index 703727b..054dca8 100644
--- a/Meinkonrad/TINK.Android/Resources/Resource.Designer.cs
+++ b/Meinkonrad/TINK.Android/Resources/Resource.Designer.cs
@@ -14,7 +14,7 @@ namespace TINK.Droid
{
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "12.1.0.11")]
public partial class Resource
{
@@ -29,6 +29,228 @@ namespace TINK.Droid
global::PCLCrypto.Resource.String.Hello = global::TINK.Droid.Resource.String.Hello;
global::PCLStorage.Resource.String.ApplicationName = global::TINK.Droid.Resource.String.ApplicationName;
global::PCLStorage.Resource.String.Hello = global::TINK.Droid.Resource.String.Hello;
+ global::Plugin.Permissions.Resource.Attribute.alpha = global::TINK.Droid.Resource.Attribute.alpha;
+ global::Plugin.Permissions.Resource.Attribute.coordinatorLayoutStyle = global::TINK.Droid.Resource.Attribute.coordinatorLayoutStyle;
+ global::Plugin.Permissions.Resource.Attribute.font = global::TINK.Droid.Resource.Attribute.font;
+ global::Plugin.Permissions.Resource.Attribute.fontProviderAuthority = global::TINK.Droid.Resource.Attribute.fontProviderAuthority;
+ global::Plugin.Permissions.Resource.Attribute.fontProviderCerts = global::TINK.Droid.Resource.Attribute.fontProviderCerts;
+ global::Plugin.Permissions.Resource.Attribute.fontProviderFetchStrategy = global::TINK.Droid.Resource.Attribute.fontProviderFetchStrategy;
+ global::Plugin.Permissions.Resource.Attribute.fontProviderFetchTimeout = global::TINK.Droid.Resource.Attribute.fontProviderFetchTimeout;
+ global::Plugin.Permissions.Resource.Attribute.fontProviderPackage = global::TINK.Droid.Resource.Attribute.fontProviderPackage;
+ global::Plugin.Permissions.Resource.Attribute.fontProviderQuery = global::TINK.Droid.Resource.Attribute.fontProviderQuery;
+ global::Plugin.Permissions.Resource.Attribute.fontStyle = global::TINK.Droid.Resource.Attribute.fontStyle;
+ global::Plugin.Permissions.Resource.Attribute.fontVariationSettings = global::TINK.Droid.Resource.Attribute.fontVariationSettings;
+ global::Plugin.Permissions.Resource.Attribute.fontWeight = global::TINK.Droid.Resource.Attribute.fontWeight;
+ global::Plugin.Permissions.Resource.Attribute.keylines = global::TINK.Droid.Resource.Attribute.keylines;
+ global::Plugin.Permissions.Resource.Attribute.layout_anchor = global::TINK.Droid.Resource.Attribute.layout_anchor;
+ global::Plugin.Permissions.Resource.Attribute.layout_anchorGravity = global::TINK.Droid.Resource.Attribute.layout_anchorGravity;
+ global::Plugin.Permissions.Resource.Attribute.layout_behavior = global::TINK.Droid.Resource.Attribute.layout_behavior;
+ global::Plugin.Permissions.Resource.Attribute.layout_dodgeInsetEdges = global::TINK.Droid.Resource.Attribute.layout_dodgeInsetEdges;
+ global::Plugin.Permissions.Resource.Attribute.layout_insetEdge = global::TINK.Droid.Resource.Attribute.layout_insetEdge;
+ global::Plugin.Permissions.Resource.Attribute.layout_keyline = global::TINK.Droid.Resource.Attribute.layout_keyline;
+ global::Plugin.Permissions.Resource.Attribute.statusBarBackground = global::TINK.Droid.Resource.Attribute.statusBarBackground;
+ global::Plugin.Permissions.Resource.Attribute.ttcIndex = global::TINK.Droid.Resource.Attribute.ttcIndex;
+ global::Plugin.Permissions.Resource.Color.browser_actions_bg_grey = global::TINK.Droid.Resource.Color.browser_actions_bg_grey;
+ global::Plugin.Permissions.Resource.Color.browser_actions_divider_color = global::TINK.Droid.Resource.Color.browser_actions_divider_color;
+ global::Plugin.Permissions.Resource.Color.browser_actions_text_color = global::TINK.Droid.Resource.Color.browser_actions_text_color;
+ global::Plugin.Permissions.Resource.Color.browser_actions_title_color = global::TINK.Droid.Resource.Color.browser_actions_title_color;
+ global::Plugin.Permissions.Resource.Color.notification_action_color_filter = global::TINK.Droid.Resource.Color.notification_action_color_filter;
+ global::Plugin.Permissions.Resource.Color.notification_icon_bg_color = global::TINK.Droid.Resource.Color.notification_icon_bg_color;
+ global::Plugin.Permissions.Resource.Color.ripple_material_light = global::TINK.Droid.Resource.Color.ripple_material_light;
+ global::Plugin.Permissions.Resource.Color.secondary_text_default_material_light = global::TINK.Droid.Resource.Color.secondary_text_default_material_light;
+ global::Plugin.Permissions.Resource.Dimension.browser_actions_context_menu_max_width = global::TINK.Droid.Resource.Dimension.browser_actions_context_menu_max_width;
+ global::Plugin.Permissions.Resource.Dimension.browser_actions_context_menu_min_padding = global::TINK.Droid.Resource.Dimension.browser_actions_context_menu_min_padding;
+ global::Plugin.Permissions.Resource.Dimension.compat_button_inset_horizontal_material = global::TINK.Droid.Resource.Dimension.compat_button_inset_horizontal_material;
+ global::Plugin.Permissions.Resource.Dimension.compat_button_inset_vertical_material = global::TINK.Droid.Resource.Dimension.compat_button_inset_vertical_material;
+ global::Plugin.Permissions.Resource.Dimension.compat_button_padding_horizontal_material = global::TINK.Droid.Resource.Dimension.compat_button_padding_horizontal_material;
+ global::Plugin.Permissions.Resource.Dimension.compat_button_padding_vertical_material = global::TINK.Droid.Resource.Dimension.compat_button_padding_vertical_material;
+ global::Plugin.Permissions.Resource.Dimension.compat_control_corner_material = global::TINK.Droid.Resource.Dimension.compat_control_corner_material;
+ global::Plugin.Permissions.Resource.Dimension.compat_notification_large_icon_max_height = global::TINK.Droid.Resource.Dimension.compat_notification_large_icon_max_height;
+ global::Plugin.Permissions.Resource.Dimension.compat_notification_large_icon_max_width = global::TINK.Droid.Resource.Dimension.compat_notification_large_icon_max_width;
+ global::Plugin.Permissions.Resource.Dimension.notification_action_icon_size = global::TINK.Droid.Resource.Dimension.notification_action_icon_size;
+ global::Plugin.Permissions.Resource.Dimension.notification_action_text_size = global::TINK.Droid.Resource.Dimension.notification_action_text_size;
+ global::Plugin.Permissions.Resource.Dimension.notification_big_circle_margin = global::TINK.Droid.Resource.Dimension.notification_big_circle_margin;
+ global::Plugin.Permissions.Resource.Dimension.notification_content_margin_start = global::TINK.Droid.Resource.Dimension.notification_content_margin_start;
+ global::Plugin.Permissions.Resource.Dimension.notification_large_icon_height = global::TINK.Droid.Resource.Dimension.notification_large_icon_height;
+ global::Plugin.Permissions.Resource.Dimension.notification_large_icon_width = global::TINK.Droid.Resource.Dimension.notification_large_icon_width;
+ global::Plugin.Permissions.Resource.Dimension.notification_main_column_padding_top = global::TINK.Droid.Resource.Dimension.notification_main_column_padding_top;
+ global::Plugin.Permissions.Resource.Dimension.notification_media_narrow_margin = global::TINK.Droid.Resource.Dimension.notification_media_narrow_margin;
+ global::Plugin.Permissions.Resource.Dimension.notification_right_icon_size = global::TINK.Droid.Resource.Dimension.notification_right_icon_size;
+ global::Plugin.Permissions.Resource.Dimension.notification_right_side_padding_top = global::TINK.Droid.Resource.Dimension.notification_right_side_padding_top;
+ global::Plugin.Permissions.Resource.Dimension.notification_small_icon_background_padding = global::TINK.Droid.Resource.Dimension.notification_small_icon_background_padding;
+ global::Plugin.Permissions.Resource.Dimension.notification_small_icon_size_as_large = global::TINK.Droid.Resource.Dimension.notification_small_icon_size_as_large;
+ global::Plugin.Permissions.Resource.Dimension.notification_subtext_size = global::TINK.Droid.Resource.Dimension.notification_subtext_size;
+ global::Plugin.Permissions.Resource.Dimension.notification_top_pad = global::TINK.Droid.Resource.Dimension.notification_top_pad;
+ global::Plugin.Permissions.Resource.Dimension.notification_top_pad_large_text = global::TINK.Droid.Resource.Dimension.notification_top_pad_large_text;
+ global::Plugin.Permissions.Resource.Drawable.notification_action_background = global::TINK.Droid.Resource.Drawable.notification_action_background;
+ global::Plugin.Permissions.Resource.Drawable.notification_bg = global::TINK.Droid.Resource.Drawable.notification_bg;
+ global::Plugin.Permissions.Resource.Drawable.notification_bg_low = global::TINK.Droid.Resource.Drawable.notification_bg_low;
+ global::Plugin.Permissions.Resource.Drawable.notification_bg_low_normal = global::TINK.Droid.Resource.Drawable.notification_bg_low_normal;
+ global::Plugin.Permissions.Resource.Drawable.notification_bg_low_pressed = global::TINK.Droid.Resource.Drawable.notification_bg_low_pressed;
+ global::Plugin.Permissions.Resource.Drawable.notification_bg_normal = global::TINK.Droid.Resource.Drawable.notification_bg_normal;
+ global::Plugin.Permissions.Resource.Drawable.notification_bg_normal_pressed = global::TINK.Droid.Resource.Drawable.notification_bg_normal_pressed;
+ global::Plugin.Permissions.Resource.Drawable.notification_icon_background = global::TINK.Droid.Resource.Drawable.notification_icon_background;
+ global::Plugin.Permissions.Resource.Drawable.notification_template_icon_bg = global::TINK.Droid.Resource.Drawable.notification_template_icon_bg;
+ global::Plugin.Permissions.Resource.Drawable.notification_template_icon_low_bg = global::TINK.Droid.Resource.Drawable.notification_template_icon_low_bg;
+ global::Plugin.Permissions.Resource.Drawable.notification_tile_bg = global::TINK.Droid.Resource.Drawable.notification_tile_bg;
+ global::Plugin.Permissions.Resource.Drawable.notify_panel_notification_icon_bg = global::TINK.Droid.Resource.Drawable.notify_panel_notification_icon_bg;
+ global::Plugin.Permissions.Resource.Id.accessibility_action_clickable_span = global::TINK.Droid.Resource.Id.accessibility_action_clickable_span;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_0 = global::TINK.Droid.Resource.Id.accessibility_custom_action_0;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_1 = global::TINK.Droid.Resource.Id.accessibility_custom_action_1;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_10 = global::TINK.Droid.Resource.Id.accessibility_custom_action_10;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_11 = global::TINK.Droid.Resource.Id.accessibility_custom_action_11;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_12 = global::TINK.Droid.Resource.Id.accessibility_custom_action_12;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_13 = global::TINK.Droid.Resource.Id.accessibility_custom_action_13;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_14 = global::TINK.Droid.Resource.Id.accessibility_custom_action_14;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_15 = global::TINK.Droid.Resource.Id.accessibility_custom_action_15;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_16 = global::TINK.Droid.Resource.Id.accessibility_custom_action_16;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_17 = global::TINK.Droid.Resource.Id.accessibility_custom_action_17;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_18 = global::TINK.Droid.Resource.Id.accessibility_custom_action_18;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_19 = global::TINK.Droid.Resource.Id.accessibility_custom_action_19;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_2 = global::TINK.Droid.Resource.Id.accessibility_custom_action_2;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_20 = global::TINK.Droid.Resource.Id.accessibility_custom_action_20;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_21 = global::TINK.Droid.Resource.Id.accessibility_custom_action_21;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_22 = global::TINK.Droid.Resource.Id.accessibility_custom_action_22;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_23 = global::TINK.Droid.Resource.Id.accessibility_custom_action_23;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_24 = global::TINK.Droid.Resource.Id.accessibility_custom_action_24;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_25 = global::TINK.Droid.Resource.Id.accessibility_custom_action_25;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_26 = global::TINK.Droid.Resource.Id.accessibility_custom_action_26;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_27 = global::TINK.Droid.Resource.Id.accessibility_custom_action_27;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_28 = global::TINK.Droid.Resource.Id.accessibility_custom_action_28;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_29 = global::TINK.Droid.Resource.Id.accessibility_custom_action_29;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_3 = global::TINK.Droid.Resource.Id.accessibility_custom_action_3;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_30 = global::TINK.Droid.Resource.Id.accessibility_custom_action_30;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_31 = global::TINK.Droid.Resource.Id.accessibility_custom_action_31;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_4 = global::TINK.Droid.Resource.Id.accessibility_custom_action_4;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_5 = global::TINK.Droid.Resource.Id.accessibility_custom_action_5;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_6 = global::TINK.Droid.Resource.Id.accessibility_custom_action_6;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_7 = global::TINK.Droid.Resource.Id.accessibility_custom_action_7;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_8 = global::TINK.Droid.Resource.Id.accessibility_custom_action_8;
+ global::Plugin.Permissions.Resource.Id.accessibility_custom_action_9 = global::TINK.Droid.Resource.Id.accessibility_custom_action_9;
+ global::Plugin.Permissions.Resource.Id.actions = global::TINK.Droid.Resource.Id.actions;
+ global::Plugin.Permissions.Resource.Id.action_container = global::TINK.Droid.Resource.Id.action_container;
+ global::Plugin.Permissions.Resource.Id.action_divider = global::TINK.Droid.Resource.Id.action_divider;
+ global::Plugin.Permissions.Resource.Id.action_image = global::TINK.Droid.Resource.Id.action_image;
+ global::Plugin.Permissions.Resource.Id.action_text = global::TINK.Droid.Resource.Id.action_text;
+ global::Plugin.Permissions.Resource.Id.all = global::TINK.Droid.Resource.Id.all;
+ global::Plugin.Permissions.Resource.Id.async = global::TINK.Droid.Resource.Id.async;
+ global::Plugin.Permissions.Resource.Id.blocking = global::TINK.Droid.Resource.Id.blocking;
+ global::Plugin.Permissions.Resource.Id.bottom = global::TINK.Droid.Resource.Id.bottom;
+ global::Plugin.Permissions.Resource.Id.browser_actions_header_text = global::TINK.Droid.Resource.Id.browser_actions_header_text;
+ global::Plugin.Permissions.Resource.Id.browser_actions_menu_items = global::TINK.Droid.Resource.Id.browser_actions_menu_items;
+ global::Plugin.Permissions.Resource.Id.browser_actions_menu_item_icon = global::TINK.Droid.Resource.Id.browser_actions_menu_item_icon;
+ global::Plugin.Permissions.Resource.Id.browser_actions_menu_item_text = global::TINK.Droid.Resource.Id.browser_actions_menu_item_text;
+ global::Plugin.Permissions.Resource.Id.browser_actions_menu_view = global::TINK.Droid.Resource.Id.browser_actions_menu_view;
+ global::Plugin.Permissions.Resource.Id.center = global::TINK.Droid.Resource.Id.center;
+ global::Plugin.Permissions.Resource.Id.center_horizontal = global::TINK.Droid.Resource.Id.center_horizontal;
+ global::Plugin.Permissions.Resource.Id.center_vertical = global::TINK.Droid.Resource.Id.center_vertical;
+ global::Plugin.Permissions.Resource.Id.chronometer = global::TINK.Droid.Resource.Id.chronometer;
+ global::Plugin.Permissions.Resource.Id.clip_horizontal = global::TINK.Droid.Resource.Id.clip_horizontal;
+ global::Plugin.Permissions.Resource.Id.clip_vertical = global::TINK.Droid.Resource.Id.clip_vertical;
+ global::Plugin.Permissions.Resource.Id.dialog_button = global::TINK.Droid.Resource.Id.dialog_button;
+ global::Plugin.Permissions.Resource.Id.end = global::TINK.Droid.Resource.Id.end;
+ global::Plugin.Permissions.Resource.Id.fill = global::TINK.Droid.Resource.Id.fill;
+ global::Plugin.Permissions.Resource.Id.fill_horizontal = global::TINK.Droid.Resource.Id.fill_horizontal;
+ global::Plugin.Permissions.Resource.Id.fill_vertical = global::TINK.Droid.Resource.Id.fill_vertical;
+ global::Plugin.Permissions.Resource.Id.forever = global::TINK.Droid.Resource.Id.forever;
+ global::Plugin.Permissions.Resource.Id.icon = global::TINK.Droid.Resource.Id.icon;
+ global::Plugin.Permissions.Resource.Id.icon_group = global::TINK.Droid.Resource.Id.icon_group;
+ global::Plugin.Permissions.Resource.Id.info = global::TINK.Droid.Resource.Id.info;
+ global::Plugin.Permissions.Resource.Id.italic = global::TINK.Droid.Resource.Id.italic;
+ global::Plugin.Permissions.Resource.Id.left = global::TINK.Droid.Resource.Id.left;
+ global::Plugin.Permissions.Resource.Id.line1 = global::TINK.Droid.Resource.Id.line1;
+ global::Plugin.Permissions.Resource.Id.line3 = global::TINK.Droid.Resource.Id.line3;
+ global::Plugin.Permissions.Resource.Id.none = global::TINK.Droid.Resource.Id.none;
+ global::Plugin.Permissions.Resource.Id.normal = global::TINK.Droid.Resource.Id.normal;
+ global::Plugin.Permissions.Resource.Id.notification_background = global::TINK.Droid.Resource.Id.notification_background;
+ global::Plugin.Permissions.Resource.Id.notification_main_column = global::TINK.Droid.Resource.Id.notification_main_column;
+ global::Plugin.Permissions.Resource.Id.notification_main_column_container = global::TINK.Droid.Resource.Id.notification_main_column_container;
+ global::Plugin.Permissions.Resource.Id.right = global::TINK.Droid.Resource.Id.right;
+ global::Plugin.Permissions.Resource.Id.right_icon = global::TINK.Droid.Resource.Id.right_icon;
+ global::Plugin.Permissions.Resource.Id.right_side = global::TINK.Droid.Resource.Id.right_side;
+ global::Plugin.Permissions.Resource.Id.start = global::TINK.Droid.Resource.Id.start;
+ global::Plugin.Permissions.Resource.Id.tag_accessibility_actions = global::TINK.Droid.Resource.Id.tag_accessibility_actions;
+ global::Plugin.Permissions.Resource.Id.tag_accessibility_clickable_spans = global::TINK.Droid.Resource.Id.tag_accessibility_clickable_spans;
+ global::Plugin.Permissions.Resource.Id.tag_accessibility_heading = global::TINK.Droid.Resource.Id.tag_accessibility_heading;
+ global::Plugin.Permissions.Resource.Id.tag_accessibility_pane_title = global::TINK.Droid.Resource.Id.tag_accessibility_pane_title;
+ global::Plugin.Permissions.Resource.Id.tag_screen_reader_focusable = global::TINK.Droid.Resource.Id.tag_screen_reader_focusable;
+ global::Plugin.Permissions.Resource.Id.tag_transition_group = global::TINK.Droid.Resource.Id.tag_transition_group;
+ global::Plugin.Permissions.Resource.Id.tag_unhandled_key_event_manager = global::TINK.Droid.Resource.Id.tag_unhandled_key_event_manager;
+ global::Plugin.Permissions.Resource.Id.tag_unhandled_key_listeners = global::TINK.Droid.Resource.Id.tag_unhandled_key_listeners;
+ global::Plugin.Permissions.Resource.Id.text = global::TINK.Droid.Resource.Id.text;
+ global::Plugin.Permissions.Resource.Id.text2 = global::TINK.Droid.Resource.Id.text2;
+ global::Plugin.Permissions.Resource.Id.time = global::TINK.Droid.Resource.Id.time;
+ global::Plugin.Permissions.Resource.Id.title = global::TINK.Droid.Resource.Id.title;
+ global::Plugin.Permissions.Resource.Id.top = global::TINK.Droid.Resource.Id.top;
+ global::Plugin.Permissions.Resource.Integer.status_bar_notification_info_maxnum = global::TINK.Droid.Resource.Integer.status_bar_notification_info_maxnum;
+ global::Plugin.Permissions.Resource.Layout.browser_actions_context_menu_page = global::TINK.Droid.Resource.Layout.browser_actions_context_menu_page;
+ global::Plugin.Permissions.Resource.Layout.browser_actions_context_menu_row = global::TINK.Droid.Resource.Layout.browser_actions_context_menu_row;
+ global::Plugin.Permissions.Resource.Layout.custom_dialog = global::TINK.Droid.Resource.Layout.custom_dialog;
+ global::Plugin.Permissions.Resource.Layout.notification_action = global::TINK.Droid.Resource.Layout.notification_action;
+ global::Plugin.Permissions.Resource.Layout.notification_action_tombstone = global::TINK.Droid.Resource.Layout.notification_action_tombstone;
+ global::Plugin.Permissions.Resource.Layout.notification_template_custom_big = global::TINK.Droid.Resource.Layout.notification_template_custom_big;
+ global::Plugin.Permissions.Resource.Layout.notification_template_icon_group = global::TINK.Droid.Resource.Layout.notification_template_icon_group;
+ global::Plugin.Permissions.Resource.Layout.notification_template_part_chronometer = global::TINK.Droid.Resource.Layout.notification_template_part_chronometer;
+ global::Plugin.Permissions.Resource.Layout.notification_template_part_time = global::TINK.Droid.Resource.Layout.notification_template_part_time;
+ global::Plugin.Permissions.Resource.String.status_bar_notification_info_overflow = global::TINK.Droid.Resource.String.status_bar_notification_info_overflow;
+ global::Plugin.Permissions.Resource.Style.TextAppearance_Compat_Notification = global::TINK.Droid.Resource.Style.TextAppearance_Compat_Notification;
+ global::Plugin.Permissions.Resource.Style.TextAppearance_Compat_Notification_Info = global::TINK.Droid.Resource.Style.TextAppearance_Compat_Notification_Info;
+ global::Plugin.Permissions.Resource.Style.TextAppearance_Compat_Notification_Line2 = global::TINK.Droid.Resource.Style.TextAppearance_Compat_Notification_Line2;
+ global::Plugin.Permissions.Resource.Style.TextAppearance_Compat_Notification_Time = global::TINK.Droid.Resource.Style.TextAppearance_Compat_Notification_Time;
+ global::Plugin.Permissions.Resource.Style.TextAppearance_Compat_Notification_Title = global::TINK.Droid.Resource.Style.TextAppearance_Compat_Notification_Title;
+ global::Plugin.Permissions.Resource.Style.Widget_Compat_NotificationActionContainer = global::TINK.Droid.Resource.Style.Widget_Compat_NotificationActionContainer;
+ global::Plugin.Permissions.Resource.Style.Widget_Compat_NotificationActionText = global::TINK.Droid.Resource.Style.Widget_Compat_NotificationActionText;
+ global::Plugin.Permissions.Resource.Style.Widget_Support_CoordinatorLayout = global::TINK.Droid.Resource.Style.Widget_Support_CoordinatorLayout;
+ global::Plugin.Permissions.Resource.Styleable.ColorStateListItem = global::TINK.Droid.Resource.Styleable.ColorStateListItem;
+ global::Plugin.Permissions.Resource.Styleable.ColorStateListItem_alpha = global::TINK.Droid.Resource.Styleable.ColorStateListItem_alpha;
+ global::Plugin.Permissions.Resource.Styleable.ColorStateListItem_android_alpha = global::TINK.Droid.Resource.Styleable.ColorStateListItem_android_alpha;
+ global::Plugin.Permissions.Resource.Styleable.ColorStateListItem_android_color = global::TINK.Droid.Resource.Styleable.ColorStateListItem_android_color;
+ global::Plugin.Permissions.Resource.Styleable.CoordinatorLayout = global::TINK.Droid.Resource.Styleable.CoordinatorLayout;
+ global::Plugin.Permissions.Resource.Styleable.CoordinatorLayout_keylines = global::TINK.Droid.Resource.Styleable.CoordinatorLayout_keylines;
+ global::Plugin.Permissions.Resource.Styleable.CoordinatorLayout_Layout = global::TINK.Droid.Resource.Styleable.CoordinatorLayout_Layout;
+ global::Plugin.Permissions.Resource.Styleable.CoordinatorLayout_Layout_android_layout_gravity = global::TINK.Droid.Resource.Styleable.CoordinatorLayout_Layout_android_layout_gravity;
+ global::Plugin.Permissions.Resource.Styleable.CoordinatorLayout_Layout_layout_anchor = global::TINK.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_anchor;
+ global::Plugin.Permissions.Resource.Styleable.CoordinatorLayout_Layout_layout_anchorGravity = global::TINK.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_anchorGravity;
+ global::Plugin.Permissions.Resource.Styleable.CoordinatorLayout_Layout_layout_behavior = global::TINK.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_behavior;
+ global::Plugin.Permissions.Resource.Styleable.CoordinatorLayout_Layout_layout_dodgeInsetEdges = global::TINK.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_dodgeInsetEdges;
+ global::Plugin.Permissions.Resource.Styleable.CoordinatorLayout_Layout_layout_insetEdge = global::TINK.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_insetEdge;
+ global::Plugin.Permissions.Resource.Styleable.CoordinatorLayout_Layout_layout_keyline = global::TINK.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_keyline;
+ global::Plugin.Permissions.Resource.Styleable.CoordinatorLayout_statusBarBackground = global::TINK.Droid.Resource.Styleable.CoordinatorLayout_statusBarBackground;
+ global::Plugin.Permissions.Resource.Styleable.FontFamily = global::TINK.Droid.Resource.Styleable.FontFamily;
+ global::Plugin.Permissions.Resource.Styleable.FontFamilyFont = global::TINK.Droid.Resource.Styleable.FontFamilyFont;
+ global::Plugin.Permissions.Resource.Styleable.FontFamilyFont_android_font = global::TINK.Droid.Resource.Styleable.FontFamilyFont_android_font;
+ global::Plugin.Permissions.Resource.Styleable.FontFamilyFont_android_fontStyle = global::TINK.Droid.Resource.Styleable.FontFamilyFont_android_fontStyle;
+ global::Plugin.Permissions.Resource.Styleable.FontFamilyFont_android_fontVariationSettings = global::TINK.Droid.Resource.Styleable.FontFamilyFont_android_fontVariationSettings;
+ global::Plugin.Permissions.Resource.Styleable.FontFamilyFont_android_fontWeight = global::TINK.Droid.Resource.Styleable.FontFamilyFont_android_fontWeight;
+ global::Plugin.Permissions.Resource.Styleable.FontFamilyFont_android_ttcIndex = global::TINK.Droid.Resource.Styleable.FontFamilyFont_android_ttcIndex;
+ global::Plugin.Permissions.Resource.Styleable.FontFamilyFont_font = global::TINK.Droid.Resource.Styleable.FontFamilyFont_font;
+ global::Plugin.Permissions.Resource.Styleable.FontFamilyFont_fontStyle = global::TINK.Droid.Resource.Styleable.FontFamilyFont_fontStyle;
+ global::Plugin.Permissions.Resource.Styleable.FontFamilyFont_fontVariationSettings = global::TINK.Droid.Resource.Styleable.FontFamilyFont_fontVariationSettings;
+ global::Plugin.Permissions.Resource.Styleable.FontFamilyFont_fontWeight = global::TINK.Droid.Resource.Styleable.FontFamilyFont_fontWeight;
+ global::Plugin.Permissions.Resource.Styleable.FontFamilyFont_ttcIndex = global::TINK.Droid.Resource.Styleable.FontFamilyFont_ttcIndex;
+ global::Plugin.Permissions.Resource.Styleable.FontFamily_fontProviderAuthority = global::TINK.Droid.Resource.Styleable.FontFamily_fontProviderAuthority;
+ global::Plugin.Permissions.Resource.Styleable.FontFamily_fontProviderCerts = global::TINK.Droid.Resource.Styleable.FontFamily_fontProviderCerts;
+ global::Plugin.Permissions.Resource.Styleable.FontFamily_fontProviderFetchStrategy = global::TINK.Droid.Resource.Styleable.FontFamily_fontProviderFetchStrategy;
+ global::Plugin.Permissions.Resource.Styleable.FontFamily_fontProviderFetchTimeout = global::TINK.Droid.Resource.Styleable.FontFamily_fontProviderFetchTimeout;
+ global::Plugin.Permissions.Resource.Styleable.FontFamily_fontProviderPackage = global::TINK.Droid.Resource.Styleable.FontFamily_fontProviderPackage;
+ global::Plugin.Permissions.Resource.Styleable.FontFamily_fontProviderQuery = global::TINK.Droid.Resource.Styleable.FontFamily_fontProviderQuery;
+ global::Plugin.Permissions.Resource.Styleable.GradientColor = global::TINK.Droid.Resource.Styleable.GradientColor;
+ global::Plugin.Permissions.Resource.Styleable.GradientColorItem = global::TINK.Droid.Resource.Styleable.GradientColorItem;
+ global::Plugin.Permissions.Resource.Styleable.GradientColorItem_android_color = global::TINK.Droid.Resource.Styleable.GradientColorItem_android_color;
+ global::Plugin.Permissions.Resource.Styleable.GradientColorItem_android_offset = global::TINK.Droid.Resource.Styleable.GradientColorItem_android_offset;
+ global::Plugin.Permissions.Resource.Styleable.GradientColor_android_centerColor = global::TINK.Droid.Resource.Styleable.GradientColor_android_centerColor;
+ global::Plugin.Permissions.Resource.Styleable.GradientColor_android_centerX = global::TINK.Droid.Resource.Styleable.GradientColor_android_centerX;
+ global::Plugin.Permissions.Resource.Styleable.GradientColor_android_centerY = global::TINK.Droid.Resource.Styleable.GradientColor_android_centerY;
+ global::Plugin.Permissions.Resource.Styleable.GradientColor_android_endColor = global::TINK.Droid.Resource.Styleable.GradientColor_android_endColor;
+ global::Plugin.Permissions.Resource.Styleable.GradientColor_android_endX = global::TINK.Droid.Resource.Styleable.GradientColor_android_endX;
+ global::Plugin.Permissions.Resource.Styleable.GradientColor_android_endY = global::TINK.Droid.Resource.Styleable.GradientColor_android_endY;
+ global::Plugin.Permissions.Resource.Styleable.GradientColor_android_gradientRadius = global::TINK.Droid.Resource.Styleable.GradientColor_android_gradientRadius;
+ global::Plugin.Permissions.Resource.Styleable.GradientColor_android_startColor = global::TINK.Droid.Resource.Styleable.GradientColor_android_startColor;
+ global::Plugin.Permissions.Resource.Styleable.GradientColor_android_startX = global::TINK.Droid.Resource.Styleable.GradientColor_android_startX;
+ global::Plugin.Permissions.Resource.Styleable.GradientColor_android_startY = global::TINK.Droid.Resource.Styleable.GradientColor_android_startY;
+ global::Plugin.Permissions.Resource.Styleable.GradientColor_android_tileMode = global::TINK.Droid.Resource.Styleable.GradientColor_android_tileMode;
+ global::Plugin.Permissions.Resource.Styleable.GradientColor_android_type = global::TINK.Droid.Resource.Styleable.GradientColor_android_type;
+ global::Plugin.Permissions.Resource.Xml.xamarin_essentials_fileprovider_file_paths = global::TINK.Droid.Resource.Xml.xamarin_essentials_fileprovider_file_paths;
global::Xamarin.Auth.Resource.Animation.slide_in_right = global::TINK.Droid.Resource.Animation.slide_in_right;
global::Xamarin.Auth.Resource.Animation.slide_out_left = global::TINK.Droid.Resource.Animation.slide_out_left;
global::Xamarin.Auth.Resource.Attribute.alpha = global::TINK.Droid.Resource.Attribute.alpha;
diff --git a/Meinkonrad/TINK.iOS/Info.plist b/Meinkonrad/TINK.iOS/Info.plist
index 3360e24..4167c2a 100644
--- a/Meinkonrad/TINK.iOS/Info.plist
+++ b/Meinkonrad/TINK.iOS/Info.plist
@@ -1,4 +1,4 @@
-
+
@@ -49,8 +49,8 @@
CFBundleDisplayName
Mein konrad
CFBundleVersion
- 262
+ 263
CFBundleShortVersionString
- 3.0.262
+ 3.0.263
diff --git a/Meinkonrad/TINK/App.xaml.cs b/Meinkonrad/TINK/App.xaml.cs
index 9e21703..1c42034 100644
--- a/Meinkonrad/TINK/App.xaml.cs
+++ b/Meinkonrad/TINK/App.xaml.cs
@@ -151,6 +151,7 @@ namespace TINK
DependencyService.Get(),
specialFolders,
new Cipher(),
+ null, // Permissions, no more used.
#if ARENDI
DependencyService.Get(),
#else
@@ -282,7 +283,7 @@ namespace TINK
if (_PermissionsService != null)
return _PermissionsService;
- _PermissionsService = new Services.Permissions.Essentials.Permissions();
+ _PermissionsService = new Services.Permissions.Plugin.Permissions();
return _PermissionsService;
}
}
diff --git a/Meinkonrad/TINK/HtmlResouces/V02/InfoLicenses.html b/Meinkonrad/TINK/HtmlResouces/V02/InfoLicenses.html
index ed4f74c..6c5e7aa 100644
--- a/Meinkonrad/TINK/HtmlResouces/V02/InfoLicenses.html
+++ b/Meinkonrad/TINK/HtmlResouces/V02/InfoLicenses.html
@@ -33,6 +33,7 @@
PCLStorage von Daniel Plaisted | Microsoft Public License (Ms-PL) |
Pinvoke von AArnott | MIT- Lizenz für Pinvoke |
Plugin.BLE Adrian Seceleanu, Sven-Michael Stübe | Apache License 2.0 |
+ Plugin.Permissions von James Montemagno | MIT Lizenz 2016 |
Polly von Michael Wolfenden, App vNext | New BSD License |
Serilog von Serilog Contributors | Apache License 2.0 |
Serilog.Sinks.Debug von Serilog Contributors | Apache License 2.0 |
diff --git a/Meinkonrad/TINK/View/Account/AccountPage.xaml.cs b/Meinkonrad/TINK/View/Account/AccountPage.xaml.cs
index 9974c42..81337ba 100644
--- a/Meinkonrad/TINK/View/Account/AccountPage.xaml.cs
+++ b/Meinkonrad/TINK/View/Account/AccountPage.xaml.cs
@@ -149,7 +149,7 @@ namespace TINK.View.Account
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
}
}
\ No newline at end of file
diff --git a/Meinkonrad/TINK/View/BikesAtStation/BikesAtStationPage.xaml.cs b/Meinkonrad/TINK/View/BikesAtStation/BikesAtStationPage.xaml.cs
index 74d357a..dbd12ee 100644
--- a/Meinkonrad/TINK/View/BikesAtStation/BikesAtStationPage.xaml.cs
+++ b/Meinkonrad/TINK/View/BikesAtStation/BikesAtStationPage.xaml.cs
@@ -228,7 +228,10 @@ using TINK.View.MasterDetail;
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ /// Displays user feedback popup.
+ /// Co2 saving information.
+ /// User feedback.
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup(co2Saving));
#endif
}
}
\ No newline at end of file
diff --git a/Meinkonrad/TINK/View/Contact/ContactPage.xaml.cs b/Meinkonrad/TINK/View/Contact/ContactPage.xaml.cs
index 4b5bc68..5553f32 100644
--- a/Meinkonrad/TINK/View/Contact/ContactPage.xaml.cs
+++ b/Meinkonrad/TINK/View/Contact/ContactPage.xaml.cs
@@ -88,7 +88,7 @@ namespace TINK.View.Contact
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
#if USEFLYOUT
diff --git a/Meinkonrad/TINK/View/Contact/SelectStationPage.xaml.cs b/Meinkonrad/TINK/View/Contact/SelectStationPage.xaml.cs
index 7511af0..9950a81 100644
--- a/Meinkonrad/TINK/View/Contact/SelectStationPage.xaml.cs
+++ b/Meinkonrad/TINK/View/Contact/SelectStationPage.xaml.cs
@@ -114,7 +114,7 @@ namespace TINK.View.Contact
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
#if USEFLYOUT
diff --git a/Meinkonrad/TINK/View/FeedbackPopup.xaml b/Meinkonrad/TINK/View/FeedbackPopup.xaml
index fe9dae3..ccbfdff 100644
--- a/Meinkonrad/TINK/View/FeedbackPopup.xaml
+++ b/Meinkonrad/TINK/View/FeedbackPopup.xaml
@@ -12,11 +12,14 @@
+
+
+
@@ -34,7 +37,16 @@
-
+
+
+
+
+
+
@@ -77,8 +89,9 @@
+
diff --git a/Meinkonrad/TINK/View/FeedbackPopup.xaml.cs b/Meinkonrad/TINK/View/FeedbackPopup.xaml.cs
index 35d5e22..d8c73aa 100644
--- a/Meinkonrad/TINK/View/FeedbackPopup.xaml.cs
+++ b/Meinkonrad/TINK/View/FeedbackPopup.xaml.cs
@@ -7,9 +7,15 @@ namespace TINK.View
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class FeedbackPopup : Popup
{
- public FeedbackPopup()
+ /// Constructs user feedback popup.
+ /// Co2 saving information.
+ public FeedbackPopup(string co2Saving = null)
{
InitializeComponent();
+ if (string.IsNullOrEmpty(co2Saving))
+ Co2SavingFrame.IsVisible = false;
+ else
+ Co2SavingLabel.Text = co2Saving;
}
protected override FeedbackPopup.Result GetLightDismissResult()
diff --git a/Meinkonrad/TINK/View/FindBike/FindBikePage.xaml.cs b/Meinkonrad/TINK/View/FindBike/FindBikePage.xaml.cs
index 44a86f0..11c1db2 100644
--- a/Meinkonrad/TINK/View/FindBike/FindBikePage.xaml.cs
+++ b/Meinkonrad/TINK/View/FindBike/FindBikePage.xaml.cs
@@ -138,7 +138,7 @@ namespace TINK.View.FindBike
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup(co2Saving));
#endif
}
}
\ No newline at end of file
diff --git a/Meinkonrad/TINK/View/Info/BikeInfo/BikeInfoCarouselPage.xaml.cs b/Meinkonrad/TINK/View/Info/BikeInfo/BikeInfoCarouselPage.xaml.cs
index 35c410e..38909a5 100644
--- a/Meinkonrad/TINK/View/Info/BikeInfo/BikeInfoCarouselPage.xaml.cs
+++ b/Meinkonrad/TINK/View/Info/BikeInfo/BikeInfoCarouselPage.xaml.cs
@@ -122,7 +122,7 @@ namespace TINK.View.Info.BikeInfo
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
}
}
\ No newline at end of file
diff --git a/Meinkonrad/TINK/View/Login/LoginPage.xaml.cs b/Meinkonrad/TINK/View/Login/LoginPage.xaml.cs
index 427b1f4..2ac640d 100644
--- a/Meinkonrad/TINK/View/Login/LoginPage.xaml.cs
+++ b/Meinkonrad/TINK/View/Login/LoginPage.xaml.cs
@@ -116,7 +116,7 @@ namespace TINK.View.Login
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
}
}
\ No newline at end of file
diff --git a/Meinkonrad/TINK/View/Map/MapPage.xaml.cs b/Meinkonrad/TINK/View/Map/MapPage.xaml.cs
index 5c336a3..4c6b1bc 100644
--- a/Meinkonrad/TINK/View/Map/MapPage.xaml.cs
+++ b/Meinkonrad/TINK/View/Map/MapPage.xaml.cs
@@ -117,7 +117,7 @@ namespace TINK.View.Map
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
#if USEFLYOUT
diff --git a/Meinkonrad/TINK/View/MiniSurvey/MiniSurveyPage.xaml.cs b/Meinkonrad/TINK/View/MiniSurvey/MiniSurveyPage.xaml.cs
index bb8fdb5..bdb257f 100644
--- a/Meinkonrad/TINK/View/MiniSurvey/MiniSurveyPage.xaml.cs
+++ b/Meinkonrad/TINK/View/MiniSurvey/MiniSurveyPage.xaml.cs
@@ -89,7 +89,10 @@ namespace TINK.View.MiniSurvey
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ /// Displays user feedback popup.
+ /// Co2 saving information.
+ /// User feedback.
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup(co2Saving));
#endif
}
}
\ No newline at end of file
diff --git a/Meinkonrad/TINK/View/MyBikes/MyBikesPage.xaml.cs b/Meinkonrad/TINK/View/MyBikes/MyBikesPage.xaml.cs
index e837768..bb5db7d 100644
--- a/Meinkonrad/TINK/View/MyBikes/MyBikesPage.xaml.cs
+++ b/Meinkonrad/TINK/View/MyBikes/MyBikesPage.xaml.cs
@@ -163,7 +163,10 @@ namespace TINK.View.MyBikes
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ /// Displays user feedback popup.
+ /// Co2 saving information.
+ /// User feedback.
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup(co2Saving));
#endif
}
}
\ No newline at end of file
diff --git a/Meinkonrad/TINK/View/Settings/SettingsPage.xaml.cs b/Meinkonrad/TINK/View/Settings/SettingsPage.xaml.cs
index 050a8d9..48d855f 100644
--- a/Meinkonrad/TINK/View/Settings/SettingsPage.xaml.cs
+++ b/Meinkonrad/TINK/View/Settings/SettingsPage.xaml.cs
@@ -146,7 +146,10 @@ namespace TINK.View.Settings
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ /// Displays user feedback popup.
+ /// Co2 saving information.
+ /// User feedback.
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup());
#endif
#if USERFEEDBACKDLG_TRYOUT
diff --git a/Meinkonrad/TINK/View/WhatsNew/Agb/AgbPage.xaml.cs b/Meinkonrad/TINK/View/WhatsNew/Agb/AgbPage.xaml.cs
index adbf981..02c7b7a 100644
--- a/Meinkonrad/TINK/View/WhatsNew/Agb/AgbPage.xaml.cs
+++ b/Meinkonrad/TINK/View/WhatsNew/Agb/AgbPage.xaml.cs
@@ -75,7 +75,7 @@ namespace TINK.View.WhatsNew.Agb
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
}
}
\ No newline at end of file
diff --git a/Meinkonrad/TINK/View/WhatsNew/WhatsNewPage.xaml.cs b/Meinkonrad/TINK/View/WhatsNew/WhatsNewPage.xaml.cs
index ade433a..a7a8845 100644
--- a/Meinkonrad/TINK/View/WhatsNew/WhatsNewPage.xaml.cs
+++ b/Meinkonrad/TINK/View/WhatsNew/WhatsNewPage.xaml.cs
@@ -79,7 +79,7 @@ namespace TINK.View.WhatsNew
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
///
diff --git a/TINK/TINK.Android/MainActivity.cs b/TINK/TINK.Android/MainActivity.cs
index 633720c..323d188 100644
--- a/TINK/TINK.Android/MainActivity.cs
+++ b/TINK/TINK.Android/MainActivity.cs
@@ -4,6 +4,7 @@ using Android.Content.PM;
using Android.OS;
using Android.Content;
using Java.Interop;
+using Plugin.Permissions;
namespace TINK.Droid
{
@@ -51,6 +52,12 @@ namespace TINK.Droid
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
+ else if (App.PermissionsService.GetType() == typeof(TINK.Services.Permissions.Plugin.Permissions))
+ {
+ // Bug in 3.0.244 and earlier versions of sharee.bike app: Call of PermissionsImplementation.Current.OnRequestedPermission result was missing.
+ // see https://dev.azure.com/TeilRad/sharee.bike%20Buchungsplattform/_workitems/edit/136 for further details.
+ PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
+ }
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
diff --git a/TINK/TINK.Android/Properties/AndroidManifest.xml b/TINK/TINK.Android/Properties/AndroidManifest.xml
index 21c793e..cadaa50 100644
--- a/TINK/TINK.Android/Properties/AndroidManifest.xml
+++ b/TINK/TINK.Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/TINK/TINK.Android/Resources/Resource.Designer.cs b/TINK/TINK.Android/Resources/Resource.Designer.cs
index 3a69163..1bbab93 100644
--- a/TINK/TINK.Android/Resources/Resource.Designer.cs
+++ b/TINK/TINK.Android/Resources/Resource.Designer.cs
@@ -14,7 +14,7 @@ namespace TINK.Droid
{
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "12.1.0.11")]
public partial class Resource
{
diff --git a/TINK/TINK.iOS/Info.plist b/TINK/TINK.iOS/Info.plist
index 8c68aa2..33aedb5 100644
--- a/TINK/TINK.iOS/Info.plist
+++ b/TINK/TINK.iOS/Info.plist
@@ -1,4 +1,4 @@
-
+
@@ -49,8 +49,8 @@
CFBundleDisplayName
sharee.bike
CFBundleVersion
- 262
+ 263
CFBundleShortVersionString
- 3.0.262
+ 3.0.263
diff --git a/TINK/TINK/App.xaml.cs b/TINK/TINK/App.xaml.cs
index e406bac..6eb3646 100644
--- a/TINK/TINK/App.xaml.cs
+++ b/TINK/TINK/App.xaml.cs
@@ -282,7 +282,7 @@ namespace TINK
if (_PermissionsService != null)
return _PermissionsService;
- _PermissionsService = new Services.Permissions.Essentials.Permissions();
+ _PermissionsService = new Services.Permissions.Plugin.Permissions();
return _PermissionsService;
}
}
diff --git a/TINK/TINK/View/Account/AccountPage.xaml.cs b/TINK/TINK/View/Account/AccountPage.xaml.cs
index 9974c42..81337ba 100644
--- a/TINK/TINK/View/Account/AccountPage.xaml.cs
+++ b/TINK/TINK/View/Account/AccountPage.xaml.cs
@@ -149,7 +149,7 @@ namespace TINK.View.Account
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
}
}
\ No newline at end of file
diff --git a/TINK/TINK/View/BikesAtStation/BikesAtStationPage.xaml.cs b/TINK/TINK/View/BikesAtStation/BikesAtStationPage.xaml.cs
index 74d357a..dbd12ee 100644
--- a/TINK/TINK/View/BikesAtStation/BikesAtStationPage.xaml.cs
+++ b/TINK/TINK/View/BikesAtStation/BikesAtStationPage.xaml.cs
@@ -228,7 +228,10 @@ using TINK.View.MasterDetail;
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ /// Displays user feedback popup.
+ /// Co2 saving information.
+ /// User feedback.
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup(co2Saving));
#endif
}
}
\ No newline at end of file
diff --git a/TINK/TINK/View/Contact/ContactPage.xaml.cs b/TINK/TINK/View/Contact/ContactPage.xaml.cs
index 4b5bc68..3777185 100644
--- a/TINK/TINK/View/Contact/ContactPage.xaml.cs
+++ b/TINK/TINK/View/Contact/ContactPage.xaml.cs
@@ -88,7 +88,15 @@ namespace TINK.View.Contact
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
+#endif
+
+#if USEFLYOUT
+
+ ///
+ /// Delegate to perform navigation.
+ ///
+ public INavigationMasterDetail NavigationMasterDetail { set; private get; }
#endif
#if USEFLYOUT
diff --git a/TINK/TINK/View/Contact/SelectStationPage.xaml.cs b/TINK/TINK/View/Contact/SelectStationPage.xaml.cs
index 7511af0..9950a81 100644
--- a/TINK/TINK/View/Contact/SelectStationPage.xaml.cs
+++ b/TINK/TINK/View/Contact/SelectStationPage.xaml.cs
@@ -114,7 +114,7 @@ namespace TINK.View.Contact
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
#if USEFLYOUT
diff --git a/TINK/TINK/View/FeedbackPopup.xaml b/TINK/TINK/View/FeedbackPopup.xaml
index fe9dae3..561547d 100644
--- a/TINK/TINK/View/FeedbackPopup.xaml
+++ b/TINK/TINK/View/FeedbackPopup.xaml
@@ -12,11 +12,14 @@
+
+
+
@@ -34,7 +37,16 @@
-
+
+
+
+
+
+
@@ -77,8 +89,9 @@
+
diff --git a/TINK/TINK/View/FeedbackPopup.xaml.cs b/TINK/TINK/View/FeedbackPopup.xaml.cs
index 35d5e22..d8c73aa 100644
--- a/TINK/TINK/View/FeedbackPopup.xaml.cs
+++ b/TINK/TINK/View/FeedbackPopup.xaml.cs
@@ -7,9 +7,15 @@ namespace TINK.View
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class FeedbackPopup : Popup
{
- public FeedbackPopup()
+ /// Constructs user feedback popup.
+ /// Co2 saving information.
+ public FeedbackPopup(string co2Saving = null)
{
InitializeComponent();
+ if (string.IsNullOrEmpty(co2Saving))
+ Co2SavingFrame.IsVisible = false;
+ else
+ Co2SavingLabel.Text = co2Saving;
}
protected override FeedbackPopup.Result GetLightDismissResult()
diff --git a/TINK/TINK/View/FindBike/FindBikePage.xaml.cs b/TINK/TINK/View/FindBike/FindBikePage.xaml.cs
index 44a86f0..3d667fc 100644
--- a/TINK/TINK/View/FindBike/FindBikePage.xaml.cs
+++ b/TINK/TINK/View/FindBike/FindBikePage.xaml.cs
@@ -138,7 +138,10 @@ namespace TINK.View.FindBike
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ /// Displays user feedback popup.
+ /// Co2 saving information.
+ /// User feedback.
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup(co2Saving));
#endif
}
}
\ No newline at end of file
diff --git a/TINK/TINK/View/Info/BikeInfo/BikeInfoCarouselPage.xaml.cs b/TINK/TINK/View/Info/BikeInfo/BikeInfoCarouselPage.xaml.cs
index 35c410e..38909a5 100644
--- a/TINK/TINK/View/Info/BikeInfo/BikeInfoCarouselPage.xaml.cs
+++ b/TINK/TINK/View/Info/BikeInfo/BikeInfoCarouselPage.xaml.cs
@@ -122,7 +122,7 @@ namespace TINK.View.Info.BikeInfo
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
}
}
\ No newline at end of file
diff --git a/TINK/TINK/View/Login/LoginPage.xaml.cs b/TINK/TINK/View/Login/LoginPage.xaml.cs
index 427b1f4..2ac640d 100644
--- a/TINK/TINK/View/Login/LoginPage.xaml.cs
+++ b/TINK/TINK/View/Login/LoginPage.xaml.cs
@@ -116,7 +116,7 @@ namespace TINK.View.Login
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
}
}
\ No newline at end of file
diff --git a/TINK/TINK/View/Map/MapPage.xaml.cs b/TINK/TINK/View/Map/MapPage.xaml.cs
index 4e9fc41..cf70a3f 100644
--- a/TINK/TINK/View/Map/MapPage.xaml.cs
+++ b/TINK/TINK/View/Map/MapPage.xaml.cs
@@ -120,7 +120,7 @@ namespace TINK.View.Map
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
#if USEFLYOUT
@@ -142,6 +142,8 @@ namespace TINK.View.Map
// Pass reference to member Navigation to show bikes at station x dialog.
try
{
+ Log.ForContext().Verbose("Constructing map page view model.");
+
#if TRYNOTBACKSTYLE
MapPageViewModel = new MapPageViewModel();
#else
@@ -193,7 +195,10 @@ namespace TINK.View.Map
try
{
// Pre move and scanle maps to avoid initial display of map in Rome.
- PremoveAndScaleMap();
+ Log.ForContext().Verbose("Moving and scaling map.");
+ MapPageViewModel.MoveAndScale(
+ (mapSpan) => MyMap.MoveToRegion(mapSpan),
+ App.ModelRoot.MapSpan);
}
catch(Exception exception)
{
diff --git a/TINK/TINK/View/MiniSurvey/MiniSurveyPage.xaml.cs b/TINK/TINK/View/MiniSurvey/MiniSurveyPage.xaml.cs
index bb8fdb5..bdb257f 100644
--- a/TINK/TINK/View/MiniSurvey/MiniSurveyPage.xaml.cs
+++ b/TINK/TINK/View/MiniSurvey/MiniSurveyPage.xaml.cs
@@ -89,7 +89,10 @@ namespace TINK.View.MiniSurvey
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ /// Displays user feedback popup.
+ /// Co2 saving information.
+ /// User feedback.
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup(co2Saving));
#endif
}
}
\ No newline at end of file
diff --git a/TINK/TINK/View/MyBikes/MyBikesPage.xaml.cs b/TINK/TINK/View/MyBikes/MyBikesPage.xaml.cs
index e837768..bb5db7d 100644
--- a/TINK/TINK/View/MyBikes/MyBikesPage.xaml.cs
+++ b/TINK/TINK/View/MyBikes/MyBikesPage.xaml.cs
@@ -163,7 +163,10 @@ namespace TINK.View.MyBikes
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ /// Displays user feedback popup.
+ /// Co2 saving information.
+ /// User feedback.
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup(co2Saving));
#endif
}
}
\ No newline at end of file
diff --git a/TINK/TINK/View/Settings/SettingsPage.xaml.cs b/TINK/TINK/View/Settings/SettingsPage.xaml.cs
index 050a8d9..e59394c 100644
--- a/TINK/TINK/View/Settings/SettingsPage.xaml.cs
+++ b/TINK/TINK/View/Settings/SettingsPage.xaml.cs
@@ -146,7 +146,10 @@ namespace TINK.View.Settings
#if USCSHARP9
public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
#else
- public async Task DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync(new FeedbackPopup());
+ /// Displays user feedback popup.
+ /// Co2 saving information.
+ /// User feedback.
+ public async Task DisplayUserFeedbackPopup(string co2Saving = null) => await Navigation.ShowPopupAsync(new FeedbackPopup(co2Saving));
#endif
#if USERFEEDBACKDLG_TRYOUT
diff --git a/TINK/TINK/View/WhatsNew/Agb/AgbPage.xaml.cs b/TINK/TINK/View/WhatsNew/Agb/AgbPage.xaml.cs
index adbf981..02c7b7a 100644
--- a/TINK/TINK/View/WhatsNew/Agb/AgbPage.xaml.cs
+++ b/TINK/TINK/View/WhatsNew/Agb/AgbPage.xaml.cs
@@ -75,7 +75,7 @@ namespace TINK.View.WhatsNew.Agb
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
}
}
\ No newline at end of file
diff --git a/TINK/TINK/View/WhatsNew/WhatsNewPage.xaml.cs b/TINK/TINK/View/WhatsNew/WhatsNewPage.xaml.cs
index ade433a..a7a8845 100644
--- a/TINK/TINK/View/WhatsNew/WhatsNewPage.xaml.cs
+++ b/TINK/TINK/View/WhatsNew/WhatsNewPage.xaml.cs
@@ -79,7 +79,7 @@ namespace TINK.View.WhatsNew
#if USCSHARP9
public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
#else
- public Task DisplayUserFeedbackPopup() => throw new NotSupportedException();
+ public Task DisplayUserFeedbackPopup(string co2Saving = null) => throw new NotSupportedException();
#endif
///
diff --git a/TINKLib/Model/BookingFinishedModel.cs b/TINKLib/Model/BookingFinishedModel.cs
new file mode 100644
index 0000000..0218003
--- /dev/null
+++ b/TINKLib/Model/BookingFinishedModel.cs
@@ -0,0 +1,21 @@
+using TINK.Model.MiniSurvey;
+
+namespace TINK.Model
+{
+ ///
+ /// Holds tasks to be accoumplished/ information shown to user after booking has finished.
+ ///
+ public class BookingFinishedModel
+ {
+ ///
+ /// Minisurvey to query user.
+ ///
+ public MiniSurveyModel MiniSurvey { get; set; } = new MiniSurveyModel();
+
+ ///
+ /// Holds info about co2 saving accomplished by using cargo bike.
+ ///
+ public string Co2Saving { get; set; }
+
+ }
+}
diff --git a/TINKLib/Model/Connector/Command/Command.cs b/TINKLib/Model/Connector/Command/Command.cs
index b839df7..4d67dcd 100644
--- a/TINKLib/Model/Connector/Command/Command.cs
+++ b/TINKLib/Model/Connector/Command/Command.cs
@@ -122,13 +122,13 @@ namespace TINK.Model.Connector
Log.ForContext().Error("Unexpected booking request detected. No user logged in.");
await Task.CompletedTask;
}
- public async Task DoReturn(
+ public async Task DoReturn(
Bikes.Bike.BluetoothLock.IBikeInfoMutable bike,
LocationDto location,
ISmartDevice smartDevice)
{
Log.ForContext().Error("Unexpected returning request detected. No user logged in.");
- return await Task.FromResult(new MiniSurveyModel());
+ return await Task.FromResult(new BookingFinishedModel());
}
///
diff --git a/TINKLib/Model/Connector/Command/CommandLoggedIn.cs b/TINKLib/Model/Connector/Command/CommandLoggedIn.cs
index e4594d4..cdeb2fd 100644
--- a/TINKLib/Model/Connector/Command/CommandLoggedIn.cs
+++ b/TINKLib/Model/Connector/Command/CommandLoggedIn.cs
@@ -248,7 +248,7 @@ namespace TINK.Model.Connector
/// Bike to return.
/// Position of the bike.
/// Provides info about hard and software.
- public async Task DoReturn(
+ public async Task DoReturn(
Bikes.Bike.BluetoothLock.IBikeInfoMutable bike,
LocationDto location,
ISmartDevice smartDevice)
@@ -258,7 +258,7 @@ namespace TINK.Model.Connector
throw new ArgumentNullException("Can not return bike. No bike object available.");
}
- ReservationCancelReturnResponse response;
+ DoReturnResponse response;
try
{
response = (await CopriServer.DoReturn(bike.Id, location, smartDevice, bike.OperatorUri)).GetIsReturnBikeResponseOk(bike.Id);
@@ -270,7 +270,7 @@ namespace TINK.Model.Connector
}
bike.Load(Bikes.Bike.BC.NotifyPropertyChangedLevel.None);
- return response?.Create() ?? new MiniSurveyModel();
+ return response?.Create() ?? new BookingFinishedModel();
}
///
diff --git a/TINKLib/Model/Connector/Command/ICommand.cs b/TINKLib/Model/Connector/Command/ICommand.cs
index fbf2ee2..8d10709 100644
--- a/TINKLib/Model/Connector/Command/ICommand.cs
+++ b/TINKLib/Model/Connector/Command/ICommand.cs
@@ -50,7 +50,7 @@ namespace TINK.Model.Connector
/// Bike to return.
/// Geolocation of lock when returning bike.
/// Provides info about hard and software.
- Task DoReturn(Bikes.Bike.BluetoothLock.IBikeInfoMutable bike, LocationDto geolocation = null, ISmartDevice smartDevice = null);
+ Task DoReturn(Bikes.Bike.BluetoothLock.IBikeInfoMutable bike, LocationDto geolocation = null, ISmartDevice smartDevice = null);
/// True if connector has access to copri server, false if cached values are used.
bool IsConnected { get; }
diff --git a/TINKLib/Model/Connector/Updater/UpdaterJSON.cs b/TINKLib/Model/Connector/Updater/UpdaterJSON.cs
index 007895c..08478d3 100644
--- a/TINKLib/Model/Connector/Updater/UpdaterJSON.cs
+++ b/TINKLib/Model/Connector/Updater/UpdaterJSON.cs
@@ -512,6 +512,46 @@ namespace TINK.Model.Connector
};
}
+ /// Creates a booking finished object from response.
+ /// Response to create survey object from.
+ public static BookingFinishedModel Create(this DoReturnResponse response)
+ {
+ var bookingFinished = new BookingFinishedModel
+ {
+ Co2Saving = response?.co2saving
+ };
+
+ if (response?.user_miniquery == null)
+
+ {
+ return bookingFinished;
+ }
+
+ var miniquery = response.user_miniquery;
+ bookingFinished.MiniSurvey = new MiniSurveyModel
+ {
+ Title = miniquery.title,
+ Subtitle = miniquery.subtitle,
+ Footer = miniquery.footer
+ };
+
+ foreach (var question in miniquery?.questions?.OrderBy(x => x.Key) ?? new Dictionary().OrderBy(x => x.Key))
+ {
+ if (string.IsNullOrEmpty(question.Key.Trim())
+ || question.Value.query == null)
+ {
+ // Skip invalid entries.
+ continue;
+ }
+
+ bookingFinished.MiniSurvey.Questions.Add(
+ question.Key,
+ new MiniSurveyModel.QuestionModel());
+ }
+
+ return bookingFinished;
+ }
+
/// Creates a survey object from response.
/// Response to create survey object from.
public static MiniSurveyModel Create(this ReservationCancelReturnResponse response)
diff --git a/TINKLib/Model/MiniSurvey/MiniSurveyModel.cs b/TINKLib/Model/MiniSurvey/MiniSurveyModel.cs
index 60051bd..768b8c2 100644
--- a/TINKLib/Model/MiniSurvey/MiniSurveyModel.cs
+++ b/TINKLib/Model/MiniSurvey/MiniSurveyModel.cs
@@ -3,6 +3,9 @@
namespace TINK.Model.MiniSurvey
{
+ ///
+ /// Holds mini survey.
+ ///
public class MiniSurveyModel
{
public enum Type
@@ -12,21 +15,17 @@ namespace TINK.Model.MiniSurvey
}
public class QuestionModel
{
- public QuestionModel()
- {
- PossibleAnswers = new Dictionary();
- }
-
+ ///
+ /// Holds the query description.
+ ///
public string Text { get; set; }
public Type Type { get; set; }
- public Dictionary PossibleAnswers { get; private set; }
- }
-
- public MiniSurveyModel()
- {
- Questions = new Dictionary();
+ ///
+ /// Holds the collection of possible answers.
+ ///
+ public Dictionary PossibleAnswers { get; private set; } = new Dictionary();
}
public string Title { get; set; }
@@ -35,6 +34,6 @@ namespace TINK.Model.MiniSurvey
public string Footer { get; set; }
- public Dictionary Questions { get; }
+ public Dictionary Questions { get; } = new Dictionary();
}
}
diff --git a/TINKLib/Model/WhatsNew.cs b/TINKLib/Model/WhatsNew.cs
index c3da4b8..7b45564 100644
--- a/TINKLib/Model/WhatsNew.cs
+++ b/TINKLib/Model/WhatsNew.cs
@@ -455,8 +455,13 @@ namespace TINK.Model
AppResources.ChangeLog3_0_250 // Third-party components updated.
},
{
- new Version(3, 0, 262),
- AppResources.ChangeLog3_0_262
+ new Version(3, 0, 260),
+ // Same info as for version 3.0.251 and 3.0.252
+ AppResources.ChangeLog3_0_231 // Minor improvements.
+ },
+ {
+ new Version(3, 0, 263),
+ AppResources.ChangeLog3_0_263
}
};
diff --git a/TINKLib/MultilingualResources/AppResources.Designer.cs b/TINKLib/MultilingualResources/AppResources.Designer.cs
index 43b82b5..3e7e24e 100644
--- a/TINKLib/MultilingualResources/AppResources.Designer.cs
+++ b/TINKLib/MultilingualResources/AppResources.Designer.cs
@@ -872,11 +872,11 @@ namespace TINK.MultilingualResources {
}
///
- /// Looks up a localized string similar to Geolocation permission request refactored..
+ /// Looks up a localized string similar to CO2 saving is displayed for bikes with GPS-lock after returning bike..
///
- public static string ChangeLog3_0_262 {
+ public static string ChangeLog3_0_263 {
get {
- return ResourceManager.GetString("ChangeLog3_0_262", resourceCulture);
+ return ResourceManager.GetString("ChangeLog3_0_263", resourceCulture);
}
}
diff --git a/TINKLib/MultilingualResources/AppResources.de.resx b/TINKLib/MultilingualResources/AppResources.de.resx
index 518c43f..378dfb4 100644
--- a/TINKLib/MultilingualResources/AppResources.de.resx
+++ b/TINKLib/MultilingualResources/AppResources.de.resx
@@ -710,7 +710,7 @@ Kleinere Verbesserungen.
Kartenzentrierfehler behoben.
Kleine Verbesserungen.
-
- Anfrage nach Geolocation-Zugriffserlaubnis überarbeitet.
+
+ Bei Fahrrädern mit GPS-Schloss wird die CO2-Einsparung nach der Rückgabe des Fahrrads angezeigt.
\ No newline at end of file
diff --git a/TINKLib/MultilingualResources/AppResources.resx b/TINKLib/MultilingualResources/AppResources.resx
index 366129c..4d8c35f 100644
--- a/TINKLib/MultilingualResources/AppResources.resx
+++ b/TINKLib/MultilingualResources/AppResources.resx
@@ -805,7 +805,7 @@ Minor fixes.
Center map to current position issue fixed.
Minor improvements.
-
- Geolocation permission request refactored.
+
+ CO2 saving is displayed for bikes with GPS-lock after returning bike.
\ No newline at end of file
diff --git a/TINKLib/MultilingualResources/TINKLib.de.xlf b/TINKLib/MultilingualResources/TINKLib.de.xlf
index 9f6e631..f6762ec 100644
--- a/TINKLib/MultilingualResources/TINKLib.de.xlf
+++ b/TINKLib/MultilingualResources/TINKLib.de.xlf
@@ -952,9 +952,9 @@ Minor improvements.
Kartenzentrierfehler behoben.
Kleine Verbesserungen.
-
- Geolocation permission request refactored.
- Anfrage nach Geolocation-Zugriffserlaubnis überarbeitet.
+
+ CO2 saving is displayed for bikes with GPS-lock after returning bike.
+ Bei Fahrrädern mit GPS-Schloss wird die CO2-Einsparung nach der Rückgabe des Fahrrads angezeigt.