diff --git a/src/Android/8bit.keystore.enc b/src/Android/8bit.keystore.enc
new file mode 100644
index 000000000..0318720af
Binary files /dev/null and b/src/Android/8bit.keystore.enc differ
diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj
index c5a1d6637..72d6f8793 100644
--- a/src/Android/Android.csproj
+++ b/src/Android/Android.csproj
@@ -30,6 +30,7 @@
prompt
4
None
+ true
true
@@ -59,6 +60,9 @@
1.1.0
+
+ 60.1142.1
+
@@ -80,6 +84,8 @@
+
+
@@ -89,6 +95,7 @@
+
@@ -111,6 +118,10 @@
+
+
+
+
diff --git a/src/Android/MainApplication.cs b/src/Android/MainApplication.cs
index ab0f5bd10..83b62208a 100644
--- a/src/Android/MainApplication.cs
+++ b/src/Android/MainApplication.cs
@@ -76,6 +76,20 @@ namespace Bit.Droid
ServiceContainer.Register("secureStorageService", secureStorageService);
ServiceContainer.Register("deviceActionService", deviceActionService);
ServiceContainer.Register("platformUtilsService", platformUtilsService);
+
+ // Push
+#if FDROID
+ container.RegisterSingleton();
+ container.RegisterSingleton();
+#else
+ var notificationListenerService = new PushNotificationListenerService();
+ ServiceContainer.Register(
+ "pushNotificationListenerService", notificationListenerService);
+ var androidPushNotificationService = new AndroidPushNotificationService(
+ mobileStorageService, notificationListenerService);
+ ServiceContainer.Register(
+ "pushNotificationService", androidPushNotificationService);
+#endif
}
private void Bootstrap()
diff --git a/src/Android/Push/FirebaseInstanceIdService.cs b/src/Android/Push/FirebaseInstanceIdService.cs
new file mode 100644
index 000000000..9a4f3d327
--- /dev/null
+++ b/src/Android/Push/FirebaseInstanceIdService.cs
@@ -0,0 +1,25 @@
+#if !FDROID
+using Android.App;
+using Android.Content;
+using Bit.App.Abstractions;
+using Bit.Core;
+using Bit.Core.Abstractions;
+using Bit.Core.Utilities;
+using Firebase.Iid;
+
+namespace Bit.Droid.Push
+{
+ [Service]
+ [IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })]
+ public class FirebaseInstanceIdService : Firebase.Iid.FirebaseInstanceIdService
+ {
+ public override void OnTokenRefresh()
+ {
+ var storageService = ServiceContainer.Resolve("storageService");
+ var pushNotificationService = ServiceContainer.Resolve("pushNotificationService");
+ storageService.SaveAsync(Constants.PushRegisteredTokenKey, FirebaseInstanceId.Instance.Token);
+ pushNotificationService.RegisterAsync();
+ }
+ }
+}
+#endif
diff --git a/src/Android/Push/FirebaseMessagingService.cs b/src/Android/Push/FirebaseMessagingService.cs
new file mode 100644
index 000000000..a9331f2f5
--- /dev/null
+++ b/src/Android/Push/FirebaseMessagingService.cs
@@ -0,0 +1,42 @@
+#if !FDROID
+using Android.App;
+using Android.Content;
+using Bit.App.Abstractions;
+using Bit.Core.Utilities;
+using Firebase.Messaging;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using Xamarin.Forms;
+
+namespace Bit.Droid.Push
+{
+ [Service]
+ [IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
+ public class FirebaseMessagingService : Firebase.Messaging.FirebaseMessagingService
+ {
+ public override void OnMessageReceived(RemoteMessage message)
+ {
+ if(message?.Data == null)
+ {
+ return;
+ }
+ var data = message.Data.ContainsKey("data") ? message.Data["data"] : null;
+ if(data == null)
+ {
+ return;
+ }
+ try
+ {
+ var obj = JObject.Parse(data);
+ var listener = ServiceContainer.Resolve(
+ "pushNotificationListenerService");
+ listener.OnMessageAsync(obj, Device.Android);
+ }
+ catch(JsonReaderException ex)
+ {
+ System.Diagnostics.Debug.WriteLine(ex.ToString());
+ }
+ }
+ }
+}
+#endif
diff --git a/src/Android/Resources/Resource.designer.cs b/src/Android/Resources/Resource.designer.cs
index 9e6b37d61..88c85d200 100644
--- a/src/Android/Resources/Resource.designer.cs
+++ b/src/Android/Resources/Resource.designer.cs
@@ -7024,701 +7024,701 @@ namespace Bit.Droid
public partial class Dimension
{
- // aapt resource value: 0x7f0a001a
- public const int abc_action_bar_content_inset_material = 2131361818;
+ // aapt resource value: 0x7f0b001a
+ public const int abc_action_bar_content_inset_material = 2131427354;
- // aapt resource value: 0x7f0a001b
- public const int abc_action_bar_content_inset_with_nav = 2131361819;
+ // aapt resource value: 0x7f0b001b
+ public const int abc_action_bar_content_inset_with_nav = 2131427355;
- // aapt resource value: 0x7f0a0010
- public const int abc_action_bar_default_height_material = 2131361808;
+ // aapt resource value: 0x7f0b0010
+ public const int abc_action_bar_default_height_material = 2131427344;
- // aapt resource value: 0x7f0a001c
- public const int abc_action_bar_default_padding_end_material = 2131361820;
+ // aapt resource value: 0x7f0b001c
+ public const int abc_action_bar_default_padding_end_material = 2131427356;
- // aapt resource value: 0x7f0a001d
- public const int abc_action_bar_default_padding_start_material = 2131361821;
+ // aapt resource value: 0x7f0b001d
+ public const int abc_action_bar_default_padding_start_material = 2131427357;
- // aapt resource value: 0x7f0a001f
- public const int abc_action_bar_elevation_material = 2131361823;
+ // aapt resource value: 0x7f0b001f
+ public const int abc_action_bar_elevation_material = 2131427359;
- // aapt resource value: 0x7f0a0020
- public const int abc_action_bar_icon_vertical_padding_material = 2131361824;
+ // aapt resource value: 0x7f0b0020
+ public const int abc_action_bar_icon_vertical_padding_material = 2131427360;
- // aapt resource value: 0x7f0a0021
- public const int abc_action_bar_overflow_padding_end_material = 2131361825;
+ // aapt resource value: 0x7f0b0021
+ public const int abc_action_bar_overflow_padding_end_material = 2131427361;
- // aapt resource value: 0x7f0a0022
- public const int abc_action_bar_overflow_padding_start_material = 2131361826;
+ // aapt resource value: 0x7f0b0022
+ public const int abc_action_bar_overflow_padding_start_material = 2131427362;
- // aapt resource value: 0x7f0a0023
- public const int abc_action_bar_stacked_max_height = 2131361827;
+ // aapt resource value: 0x7f0b0023
+ public const int abc_action_bar_stacked_max_height = 2131427363;
- // aapt resource value: 0x7f0a0024
- public const int abc_action_bar_stacked_tab_max_width = 2131361828;
+ // aapt resource value: 0x7f0b0024
+ public const int abc_action_bar_stacked_tab_max_width = 2131427364;
- // aapt resource value: 0x7f0a0025
- public const int abc_action_bar_subtitle_bottom_margin_material = 2131361829;
+ // aapt resource value: 0x7f0b0025
+ public const int abc_action_bar_subtitle_bottom_margin_material = 2131427365;
- // aapt resource value: 0x7f0a0026
- public const int abc_action_bar_subtitle_top_margin_material = 2131361830;
+ // aapt resource value: 0x7f0b0026
+ public const int abc_action_bar_subtitle_top_margin_material = 2131427366;
- // aapt resource value: 0x7f0a0027
- public const int abc_action_button_min_height_material = 2131361831;
+ // aapt resource value: 0x7f0b0027
+ public const int abc_action_button_min_height_material = 2131427367;
- // aapt resource value: 0x7f0a0028
- public const int abc_action_button_min_width_material = 2131361832;
+ // aapt resource value: 0x7f0b0028
+ public const int abc_action_button_min_width_material = 2131427368;
- // aapt resource value: 0x7f0a0029
- public const int abc_action_button_min_width_overflow_material = 2131361833;
+ // aapt resource value: 0x7f0b0029
+ public const int abc_action_button_min_width_overflow_material = 2131427369;
- // aapt resource value: 0x7f0a000f
- public const int abc_alert_dialog_button_bar_height = 2131361807;
+ // aapt resource value: 0x7f0b000f
+ public const int abc_alert_dialog_button_bar_height = 2131427343;
- // aapt resource value: 0x7f0a002a
- public const int abc_alert_dialog_button_dimen = 2131361834;
+ // aapt resource value: 0x7f0b002a
+ public const int abc_alert_dialog_button_dimen = 2131427370;
- // aapt resource value: 0x7f0a002b
- public const int abc_button_inset_horizontal_material = 2131361835;
+ // aapt resource value: 0x7f0b002b
+ public const int abc_button_inset_horizontal_material = 2131427371;
- // aapt resource value: 0x7f0a002c
- public const int abc_button_inset_vertical_material = 2131361836;
+ // aapt resource value: 0x7f0b002c
+ public const int abc_button_inset_vertical_material = 2131427372;
- // aapt resource value: 0x7f0a002d
- public const int abc_button_padding_horizontal_material = 2131361837;
+ // aapt resource value: 0x7f0b002d
+ public const int abc_button_padding_horizontal_material = 2131427373;
- // aapt resource value: 0x7f0a002e
- public const int abc_button_padding_vertical_material = 2131361838;
+ // aapt resource value: 0x7f0b002e
+ public const int abc_button_padding_vertical_material = 2131427374;
- // aapt resource value: 0x7f0a002f
- public const int abc_cascading_menus_min_smallest_width = 2131361839;
+ // aapt resource value: 0x7f0b002f
+ public const int abc_cascading_menus_min_smallest_width = 2131427375;
- // aapt resource value: 0x7f0a0013
- public const int abc_config_prefDialogWidth = 2131361811;
+ // aapt resource value: 0x7f0b0013
+ public const int abc_config_prefDialogWidth = 2131427347;
- // aapt resource value: 0x7f0a0030
- public const int abc_control_corner_material = 2131361840;
+ // aapt resource value: 0x7f0b0030
+ public const int abc_control_corner_material = 2131427376;
- // aapt resource value: 0x7f0a0031
- public const int abc_control_inset_material = 2131361841;
+ // aapt resource value: 0x7f0b0031
+ public const int abc_control_inset_material = 2131427377;
- // aapt resource value: 0x7f0a0032
- public const int abc_control_padding_material = 2131361842;
+ // aapt resource value: 0x7f0b0032
+ public const int abc_control_padding_material = 2131427378;
- // aapt resource value: 0x7f0a0033
- public const int abc_dialog_corner_radius_material = 2131361843;
+ // aapt resource value: 0x7f0b0033
+ public const int abc_dialog_corner_radius_material = 2131427379;
- // aapt resource value: 0x7f0a0014
- public const int abc_dialog_fixed_height_major = 2131361812;
+ // aapt resource value: 0x7f0b0014
+ public const int abc_dialog_fixed_height_major = 2131427348;
- // aapt resource value: 0x7f0a0015
- public const int abc_dialog_fixed_height_minor = 2131361813;
+ // aapt resource value: 0x7f0b0015
+ public const int abc_dialog_fixed_height_minor = 2131427349;
- // aapt resource value: 0x7f0a0016
- public const int abc_dialog_fixed_width_major = 2131361814;
+ // aapt resource value: 0x7f0b0016
+ public const int abc_dialog_fixed_width_major = 2131427350;
- // aapt resource value: 0x7f0a0017
- public const int abc_dialog_fixed_width_minor = 2131361815;
+ // aapt resource value: 0x7f0b0017
+ public const int abc_dialog_fixed_width_minor = 2131427351;
- // aapt resource value: 0x7f0a0034
- public const int abc_dialog_list_padding_bottom_no_buttons = 2131361844;
+ // aapt resource value: 0x7f0b0034
+ public const int abc_dialog_list_padding_bottom_no_buttons = 2131427380;
- // aapt resource value: 0x7f0a0035
- public const int abc_dialog_list_padding_top_no_title = 2131361845;
+ // aapt resource value: 0x7f0b0035
+ public const int abc_dialog_list_padding_top_no_title = 2131427381;
- // aapt resource value: 0x7f0a0018
- public const int abc_dialog_min_width_major = 2131361816;
+ // aapt resource value: 0x7f0b0018
+ public const int abc_dialog_min_width_major = 2131427352;
- // aapt resource value: 0x7f0a0019
- public const int abc_dialog_min_width_minor = 2131361817;
+ // aapt resource value: 0x7f0b0019
+ public const int abc_dialog_min_width_minor = 2131427353;
- // aapt resource value: 0x7f0a0036
- public const int abc_dialog_padding_material = 2131361846;
+ // aapt resource value: 0x7f0b0036
+ public const int abc_dialog_padding_material = 2131427382;
- // aapt resource value: 0x7f0a0037
- public const int abc_dialog_padding_top_material = 2131361847;
+ // aapt resource value: 0x7f0b0037
+ public const int abc_dialog_padding_top_material = 2131427383;
- // aapt resource value: 0x7f0a0038
- public const int abc_dialog_title_divider_material = 2131361848;
+ // aapt resource value: 0x7f0b0038
+ public const int abc_dialog_title_divider_material = 2131427384;
- // aapt resource value: 0x7f0a0039
- public const int abc_disabled_alpha_material_dark = 2131361849;
+ // aapt resource value: 0x7f0b0039
+ public const int abc_disabled_alpha_material_dark = 2131427385;
- // aapt resource value: 0x7f0a003a
- public const int abc_disabled_alpha_material_light = 2131361850;
+ // aapt resource value: 0x7f0b003a
+ public const int abc_disabled_alpha_material_light = 2131427386;
- // aapt resource value: 0x7f0a003b
- public const int abc_dropdownitem_icon_width = 2131361851;
+ // aapt resource value: 0x7f0b003b
+ public const int abc_dropdownitem_icon_width = 2131427387;
- // aapt resource value: 0x7f0a003c
- public const int abc_dropdownitem_text_padding_left = 2131361852;
+ // aapt resource value: 0x7f0b003c
+ public const int abc_dropdownitem_text_padding_left = 2131427388;
- // aapt resource value: 0x7f0a003d
- public const int abc_dropdownitem_text_padding_right = 2131361853;
+ // aapt resource value: 0x7f0b003d
+ public const int abc_dropdownitem_text_padding_right = 2131427389;
- // aapt resource value: 0x7f0a003e
- public const int abc_edit_text_inset_bottom_material = 2131361854;
+ // aapt resource value: 0x7f0b003e
+ public const int abc_edit_text_inset_bottom_material = 2131427390;
- // aapt resource value: 0x7f0a003f
- public const int abc_edit_text_inset_horizontal_material = 2131361855;
+ // aapt resource value: 0x7f0b003f
+ public const int abc_edit_text_inset_horizontal_material = 2131427391;
- // aapt resource value: 0x7f0a0040
- public const int abc_edit_text_inset_top_material = 2131361856;
+ // aapt resource value: 0x7f0b0040
+ public const int abc_edit_text_inset_top_material = 2131427392;
- // aapt resource value: 0x7f0a0041
- public const int abc_floating_window_z = 2131361857;
+ // aapt resource value: 0x7f0b0041
+ public const int abc_floating_window_z = 2131427393;
- // aapt resource value: 0x7f0a0042
- public const int abc_list_item_padding_horizontal_material = 2131361858;
+ // aapt resource value: 0x7f0b0042
+ public const int abc_list_item_padding_horizontal_material = 2131427394;
- // aapt resource value: 0x7f0a0043
- public const int abc_panel_menu_list_width = 2131361859;
+ // aapt resource value: 0x7f0b0043
+ public const int abc_panel_menu_list_width = 2131427395;
- // aapt resource value: 0x7f0a0044
- public const int abc_progress_bar_height_material = 2131361860;
+ // aapt resource value: 0x7f0b0044
+ public const int abc_progress_bar_height_material = 2131427396;
- // aapt resource value: 0x7f0a0045
- public const int abc_search_view_preferred_height = 2131361861;
+ // aapt resource value: 0x7f0b0045
+ public const int abc_search_view_preferred_height = 2131427397;
- // aapt resource value: 0x7f0a0046
- public const int abc_search_view_preferred_width = 2131361862;
+ // aapt resource value: 0x7f0b0046
+ public const int abc_search_view_preferred_width = 2131427398;
- // aapt resource value: 0x7f0a0047
- public const int abc_seekbar_track_background_height_material = 2131361863;
+ // aapt resource value: 0x7f0b0047
+ public const int abc_seekbar_track_background_height_material = 2131427399;
- // aapt resource value: 0x7f0a0048
- public const int abc_seekbar_track_progress_height_material = 2131361864;
+ // aapt resource value: 0x7f0b0048
+ public const int abc_seekbar_track_progress_height_material = 2131427400;
- // aapt resource value: 0x7f0a0049
- public const int abc_select_dialog_padding_start_material = 2131361865;
+ // aapt resource value: 0x7f0b0049
+ public const int abc_select_dialog_padding_start_material = 2131427401;
- // aapt resource value: 0x7f0a001e
- public const int abc_switch_padding = 2131361822;
+ // aapt resource value: 0x7f0b001e
+ public const int abc_switch_padding = 2131427358;
- // aapt resource value: 0x7f0a004a
- public const int abc_text_size_body_1_material = 2131361866;
+ // aapt resource value: 0x7f0b004a
+ public const int abc_text_size_body_1_material = 2131427402;
- // aapt resource value: 0x7f0a004b
- public const int abc_text_size_body_2_material = 2131361867;
+ // aapt resource value: 0x7f0b004b
+ public const int abc_text_size_body_2_material = 2131427403;
- // aapt resource value: 0x7f0a004c
- public const int abc_text_size_button_material = 2131361868;
+ // aapt resource value: 0x7f0b004c
+ public const int abc_text_size_button_material = 2131427404;
- // aapt resource value: 0x7f0a004d
- public const int abc_text_size_caption_material = 2131361869;
+ // aapt resource value: 0x7f0b004d
+ public const int abc_text_size_caption_material = 2131427405;
- // aapt resource value: 0x7f0a004e
- public const int abc_text_size_display_1_material = 2131361870;
+ // aapt resource value: 0x7f0b004e
+ public const int abc_text_size_display_1_material = 2131427406;
- // aapt resource value: 0x7f0a004f
- public const int abc_text_size_display_2_material = 2131361871;
+ // aapt resource value: 0x7f0b004f
+ public const int abc_text_size_display_2_material = 2131427407;
- // aapt resource value: 0x7f0a0050
- public const int abc_text_size_display_3_material = 2131361872;
+ // aapt resource value: 0x7f0b0050
+ public const int abc_text_size_display_3_material = 2131427408;
- // aapt resource value: 0x7f0a0051
- public const int abc_text_size_display_4_material = 2131361873;
+ // aapt resource value: 0x7f0b0051
+ public const int abc_text_size_display_4_material = 2131427409;
- // aapt resource value: 0x7f0a0052
- public const int abc_text_size_headline_material = 2131361874;
+ // aapt resource value: 0x7f0b0052
+ public const int abc_text_size_headline_material = 2131427410;
- // aapt resource value: 0x7f0a0053
- public const int abc_text_size_large_material = 2131361875;
+ // aapt resource value: 0x7f0b0053
+ public const int abc_text_size_large_material = 2131427411;
- // aapt resource value: 0x7f0a0054
- public const int abc_text_size_medium_material = 2131361876;
+ // aapt resource value: 0x7f0b0054
+ public const int abc_text_size_medium_material = 2131427412;
- // aapt resource value: 0x7f0a0055
- public const int abc_text_size_menu_header_material = 2131361877;
+ // aapt resource value: 0x7f0b0055
+ public const int abc_text_size_menu_header_material = 2131427413;
- // aapt resource value: 0x7f0a0056
- public const int abc_text_size_menu_material = 2131361878;
+ // aapt resource value: 0x7f0b0056
+ public const int abc_text_size_menu_material = 2131427414;
- // aapt resource value: 0x7f0a0057
- public const int abc_text_size_small_material = 2131361879;
+ // aapt resource value: 0x7f0b0057
+ public const int abc_text_size_small_material = 2131427415;
- // aapt resource value: 0x7f0a0058
- public const int abc_text_size_subhead_material = 2131361880;
+ // aapt resource value: 0x7f0b0058
+ public const int abc_text_size_subhead_material = 2131427416;
- // aapt resource value: 0x7f0a0011
- public const int abc_text_size_subtitle_material_toolbar = 2131361809;
+ // aapt resource value: 0x7f0b0011
+ public const int abc_text_size_subtitle_material_toolbar = 2131427345;
- // aapt resource value: 0x7f0a0059
- public const int abc_text_size_title_material = 2131361881;
+ // aapt resource value: 0x7f0b0059
+ public const int abc_text_size_title_material = 2131427417;
- // aapt resource value: 0x7f0a0012
- public const int abc_text_size_title_material_toolbar = 2131361810;
+ // aapt resource value: 0x7f0b0012
+ public const int abc_text_size_title_material_toolbar = 2131427346;
- // aapt resource value: 0x7f0a00cb
- public const int browser_actions_context_menu_max_width = 2131361995;
+ // aapt resource value: 0x7f0b00cb
+ public const int browser_actions_context_menu_max_width = 2131427531;
- // aapt resource value: 0x7f0a00cc
- public const int browser_actions_context_menu_min_padding = 2131361996;
+ // aapt resource value: 0x7f0b00cc
+ public const int browser_actions_context_menu_min_padding = 2131427532;
- // aapt resource value: 0x7f0a000c
- public const int cardview_compat_inset_shadow = 2131361804;
+ // aapt resource value: 0x7f0b000c
+ public const int cardview_compat_inset_shadow = 2131427340;
- // aapt resource value: 0x7f0a000d
- public const int cardview_default_elevation = 2131361805;
+ // aapt resource value: 0x7f0b000d
+ public const int cardview_default_elevation = 2131427341;
- // aapt resource value: 0x7f0a000e
- public const int cardview_default_radius = 2131361806;
+ // aapt resource value: 0x7f0b000e
+ public const int cardview_default_radius = 2131427342;
- // aapt resource value: 0x7f0a00d1
- public const int compat_button_inset_horizontal_material = 2131362001;
+ // aapt resource value: 0x7f0b00d1
+ public const int compat_button_inset_horizontal_material = 2131427537;
- // aapt resource value: 0x7f0a00d2
- public const int compat_button_inset_vertical_material = 2131362002;
+ // aapt resource value: 0x7f0b00d2
+ public const int compat_button_inset_vertical_material = 2131427538;
- // aapt resource value: 0x7f0a00d3
- public const int compat_button_padding_horizontal_material = 2131362003;
+ // aapt resource value: 0x7f0b00d3
+ public const int compat_button_padding_horizontal_material = 2131427539;
- // aapt resource value: 0x7f0a00d4
- public const int compat_button_padding_vertical_material = 2131362004;
+ // aapt resource value: 0x7f0b00d4
+ public const int compat_button_padding_vertical_material = 2131427540;
- // aapt resource value: 0x7f0a00d5
- public const int compat_control_corner_material = 2131362005;
+ // aapt resource value: 0x7f0b00d5
+ public const int compat_control_corner_material = 2131427541;
- // aapt resource value: 0x7f0a00d6
- public const int compat_notification_large_icon_max_height = 2131362006;
+ // aapt resource value: 0x7f0b00d6
+ public const int compat_notification_large_icon_max_height = 2131427542;
- // aapt resource value: 0x7f0a00d7
- public const int compat_notification_large_icon_max_width = 2131362007;
+ // aapt resource value: 0x7f0b00d7
+ public const int compat_notification_large_icon_max_width = 2131427543;
- // aapt resource value: 0x7f0a0077
- public const int design_appbar_elevation = 2131361911;
+ // aapt resource value: 0x7f0b0077
+ public const int design_appbar_elevation = 2131427447;
- // aapt resource value: 0x7f0a0078
- public const int design_bottom_navigation_active_item_max_width = 2131361912;
+ // aapt resource value: 0x7f0b0078
+ public const int design_bottom_navigation_active_item_max_width = 2131427448;
- // aapt resource value: 0x7f0a0079
- public const int design_bottom_navigation_active_item_min_width = 2131361913;
+ // aapt resource value: 0x7f0b0079
+ public const int design_bottom_navigation_active_item_min_width = 2131427449;
- // aapt resource value: 0x7f0a007a
- public const int design_bottom_navigation_active_text_size = 2131361914;
+ // aapt resource value: 0x7f0b007a
+ public const int design_bottom_navigation_active_text_size = 2131427450;
- // aapt resource value: 0x7f0a007b
- public const int design_bottom_navigation_elevation = 2131361915;
+ // aapt resource value: 0x7f0b007b
+ public const int design_bottom_navigation_elevation = 2131427451;
- // aapt resource value: 0x7f0a007c
- public const int design_bottom_navigation_height = 2131361916;
+ // aapt resource value: 0x7f0b007c
+ public const int design_bottom_navigation_height = 2131427452;
- // aapt resource value: 0x7f0a007d
- public const int design_bottom_navigation_icon_size = 2131361917;
+ // aapt resource value: 0x7f0b007d
+ public const int design_bottom_navigation_icon_size = 2131427453;
- // aapt resource value: 0x7f0a007e
- public const int design_bottom_navigation_item_max_width = 2131361918;
+ // aapt resource value: 0x7f0b007e
+ public const int design_bottom_navigation_item_max_width = 2131427454;
- // aapt resource value: 0x7f0a007f
- public const int design_bottom_navigation_item_min_width = 2131361919;
+ // aapt resource value: 0x7f0b007f
+ public const int design_bottom_navigation_item_min_width = 2131427455;
- // aapt resource value: 0x7f0a0080
- public const int design_bottom_navigation_margin = 2131361920;
+ // aapt resource value: 0x7f0b0080
+ public const int design_bottom_navigation_margin = 2131427456;
- // aapt resource value: 0x7f0a0081
- public const int design_bottom_navigation_shadow_height = 2131361921;
+ // aapt resource value: 0x7f0b0081
+ public const int design_bottom_navigation_shadow_height = 2131427457;
- // aapt resource value: 0x7f0a0082
- public const int design_bottom_navigation_text_size = 2131361922;
+ // aapt resource value: 0x7f0b0082
+ public const int design_bottom_navigation_text_size = 2131427458;
- // aapt resource value: 0x7f0a0083
- public const int design_bottom_sheet_modal_elevation = 2131361923;
+ // aapt resource value: 0x7f0b0083
+ public const int design_bottom_sheet_modal_elevation = 2131427459;
- // aapt resource value: 0x7f0a0084
- public const int design_bottom_sheet_peek_height_min = 2131361924;
+ // aapt resource value: 0x7f0b0084
+ public const int design_bottom_sheet_peek_height_min = 2131427460;
- // aapt resource value: 0x7f0a0085
- public const int design_fab_border_width = 2131361925;
+ // aapt resource value: 0x7f0b0085
+ public const int design_fab_border_width = 2131427461;
- // aapt resource value: 0x7f0a0086
- public const int design_fab_elevation = 2131361926;
+ // aapt resource value: 0x7f0b0086
+ public const int design_fab_elevation = 2131427462;
- // aapt resource value: 0x7f0a0087
- public const int design_fab_image_size = 2131361927;
+ // aapt resource value: 0x7f0b0087
+ public const int design_fab_image_size = 2131427463;
- // aapt resource value: 0x7f0a0088
- public const int design_fab_size_mini = 2131361928;
+ // aapt resource value: 0x7f0b0088
+ public const int design_fab_size_mini = 2131427464;
- // aapt resource value: 0x7f0a0089
- public const int design_fab_size_normal = 2131361929;
+ // aapt resource value: 0x7f0b0089
+ public const int design_fab_size_normal = 2131427465;
- // aapt resource value: 0x7f0a008a
- public const int design_fab_translation_z_hovered_focused = 2131361930;
+ // aapt resource value: 0x7f0b008a
+ public const int design_fab_translation_z_hovered_focused = 2131427466;
- // aapt resource value: 0x7f0a008b
- public const int design_fab_translation_z_pressed = 2131361931;
+ // aapt resource value: 0x7f0b008b
+ public const int design_fab_translation_z_pressed = 2131427467;
- // aapt resource value: 0x7f0a008c
- public const int design_navigation_elevation = 2131361932;
+ // aapt resource value: 0x7f0b008c
+ public const int design_navigation_elevation = 2131427468;
- // aapt resource value: 0x7f0a008d
- public const int design_navigation_icon_padding = 2131361933;
+ // aapt resource value: 0x7f0b008d
+ public const int design_navigation_icon_padding = 2131427469;
- // aapt resource value: 0x7f0a008e
- public const int design_navigation_icon_size = 2131361934;
+ // aapt resource value: 0x7f0b008e
+ public const int design_navigation_icon_size = 2131427470;
- // aapt resource value: 0x7f0a008f
- public const int design_navigation_item_horizontal_padding = 2131361935;
+ // aapt resource value: 0x7f0b008f
+ public const int design_navigation_item_horizontal_padding = 2131427471;
- // aapt resource value: 0x7f0a0090
- public const int design_navigation_item_icon_padding = 2131361936;
+ // aapt resource value: 0x7f0b0090
+ public const int design_navigation_item_icon_padding = 2131427472;
- // aapt resource value: 0x7f0a006f
- public const int design_navigation_max_width = 2131361903;
+ // aapt resource value: 0x7f0b006f
+ public const int design_navigation_max_width = 2131427439;
- // aapt resource value: 0x7f0a0091
- public const int design_navigation_padding_bottom = 2131361937;
+ // aapt resource value: 0x7f0b0091
+ public const int design_navigation_padding_bottom = 2131427473;
- // aapt resource value: 0x7f0a0092
- public const int design_navigation_separator_vertical_padding = 2131361938;
+ // aapt resource value: 0x7f0b0092
+ public const int design_navigation_separator_vertical_padding = 2131427474;
- // aapt resource value: 0x7f0a0070
- public const int design_snackbar_action_inline_max_width = 2131361904;
+ // aapt resource value: 0x7f0b0070
+ public const int design_snackbar_action_inline_max_width = 2131427440;
- // aapt resource value: 0x7f0a0071
- public const int design_snackbar_background_corner_radius = 2131361905;
+ // aapt resource value: 0x7f0b0071
+ public const int design_snackbar_background_corner_radius = 2131427441;
- // aapt resource value: 0x7f0a0093
- public const int design_snackbar_elevation = 2131361939;
+ // aapt resource value: 0x7f0b0093
+ public const int design_snackbar_elevation = 2131427475;
- // aapt resource value: 0x7f0a0072
- public const int design_snackbar_extra_spacing_horizontal = 2131361906;
+ // aapt resource value: 0x7f0b0072
+ public const int design_snackbar_extra_spacing_horizontal = 2131427442;
- // aapt resource value: 0x7f0a0073
- public const int design_snackbar_max_width = 2131361907;
+ // aapt resource value: 0x7f0b0073
+ public const int design_snackbar_max_width = 2131427443;
- // aapt resource value: 0x7f0a0074
- public const int design_snackbar_min_width = 2131361908;
+ // aapt resource value: 0x7f0b0074
+ public const int design_snackbar_min_width = 2131427444;
- // aapt resource value: 0x7f0a0094
- public const int design_snackbar_padding_horizontal = 2131361940;
+ // aapt resource value: 0x7f0b0094
+ public const int design_snackbar_padding_horizontal = 2131427476;
- // aapt resource value: 0x7f0a0095
- public const int design_snackbar_padding_vertical = 2131361941;
+ // aapt resource value: 0x7f0b0095
+ public const int design_snackbar_padding_vertical = 2131427477;
- // aapt resource value: 0x7f0a0075
- public const int design_snackbar_padding_vertical_2lines = 2131361909;
+ // aapt resource value: 0x7f0b0075
+ public const int design_snackbar_padding_vertical_2lines = 2131427445;
- // aapt resource value: 0x7f0a0096
- public const int design_snackbar_text_size = 2131361942;
+ // aapt resource value: 0x7f0b0096
+ public const int design_snackbar_text_size = 2131427478;
- // aapt resource value: 0x7f0a0097
- public const int design_tab_max_width = 2131361943;
+ // aapt resource value: 0x7f0b0097
+ public const int design_tab_max_width = 2131427479;
- // aapt resource value: 0x7f0a0076
- public const int design_tab_scrollable_min_width = 2131361910;
+ // aapt resource value: 0x7f0b0076
+ public const int design_tab_scrollable_min_width = 2131427446;
- // aapt resource value: 0x7f0a0098
- public const int design_tab_text_size = 2131361944;
+ // aapt resource value: 0x7f0b0098
+ public const int design_tab_text_size = 2131427480;
- // aapt resource value: 0x7f0a0099
- public const int design_tab_text_size_2line = 2131361945;
+ // aapt resource value: 0x7f0b0099
+ public const int design_tab_text_size_2line = 2131427481;
- // aapt resource value: 0x7f0a009a
- public const int design_textinput_caption_translate_y = 2131361946;
+ // aapt resource value: 0x7f0b009a
+ public const int design_textinput_caption_translate_y = 2131427482;
- // aapt resource value: 0x7f0a005a
- public const int disabled_alpha_material_dark = 2131361882;
+ // aapt resource value: 0x7f0b005a
+ public const int disabled_alpha_material_dark = 2131427418;
- // aapt resource value: 0x7f0a005b
- public const int disabled_alpha_material_light = 2131361883;
+ // aapt resource value: 0x7f0b005b
+ public const int disabled_alpha_material_light = 2131427419;
- // aapt resource value: 0x7f0a00e7
- public const int fab_elevation_lollipop = 2131362023;
+ // aapt resource value: 0x7f0b00e7
+ public const int fab_elevation_lollipop = 2131427559;
- // aapt resource value: 0x7f0a00e6
- public const int fab_scroll_threshold = 2131362022;
+ // aapt resource value: 0x7f0b00e6
+ public const int fab_scroll_threshold = 2131427558;
- // aapt resource value: 0x7f0a00e5
- public const int fab_shadow_size = 2131362021;
+ // aapt resource value: 0x7f0b00e5
+ public const int fab_shadow_size = 2131427557;
- // aapt resource value: 0x7f0a00e4
- public const int fab_size_mini = 2131362020;
+ // aapt resource value: 0x7f0b00e4
+ public const int fab_size_mini = 2131427556;
- // aapt resource value: 0x7f0a00e3
- public const int fab_size_normal = 2131362019;
+ // aapt resource value: 0x7f0b00e3
+ public const int fab_size_normal = 2131427555;
- // aapt resource value: 0x7f0a0000
- public const int fastscroll_default_thickness = 2131361792;
+ // aapt resource value: 0x7f0b0000
+ public const int fastscroll_default_thickness = 2131427328;
- // aapt resource value: 0x7f0a0001
- public const int fastscroll_margin = 2131361793;
+ // aapt resource value: 0x7f0b0001
+ public const int fastscroll_margin = 2131427329;
- // aapt resource value: 0x7f0a0002
- public const int fastscroll_minimum_range = 2131361794;
+ // aapt resource value: 0x7f0b0002
+ public const int fastscroll_minimum_range = 2131427330;
- // aapt resource value: 0x7f0a005c
- public const int highlight_alpha_material_colored = 2131361884;
+ // aapt resource value: 0x7f0b005c
+ public const int highlight_alpha_material_colored = 2131427420;
- // aapt resource value: 0x7f0a005d
- public const int highlight_alpha_material_dark = 2131361885;
+ // aapt resource value: 0x7f0b005d
+ public const int highlight_alpha_material_dark = 2131427421;
- // aapt resource value: 0x7f0a005e
- public const int highlight_alpha_material_light = 2131361886;
+ // aapt resource value: 0x7f0b005e
+ public const int highlight_alpha_material_light = 2131427422;
- // aapt resource value: 0x7f0a005f
- public const int hint_alpha_material_dark = 2131361887;
+ // aapt resource value: 0x7f0b005f
+ public const int hint_alpha_material_dark = 2131427423;
- // aapt resource value: 0x7f0a0060
- public const int hint_alpha_material_light = 2131361888;
+ // aapt resource value: 0x7f0b0060
+ public const int hint_alpha_material_light = 2131427424;
- // aapt resource value: 0x7f0a0061
- public const int hint_pressed_alpha_material_dark = 2131361889;
+ // aapt resource value: 0x7f0b0061
+ public const int hint_pressed_alpha_material_dark = 2131427425;
- // aapt resource value: 0x7f0a0062
- public const int hint_pressed_alpha_material_light = 2131361890;
+ // aapt resource value: 0x7f0b0062
+ public const int hint_pressed_alpha_material_light = 2131427426;
- // aapt resource value: 0x7f0a0003
- public const int item_touch_helper_max_drag_scroll_per_frame = 2131361795;
+ // aapt resource value: 0x7f0b0003
+ public const int item_touch_helper_max_drag_scroll_per_frame = 2131427331;
- // aapt resource value: 0x7f0a0004
- public const int item_touch_helper_swipe_escape_max_velocity = 2131361796;
+ // aapt resource value: 0x7f0b0004
+ public const int item_touch_helper_swipe_escape_max_velocity = 2131427332;
- // aapt resource value: 0x7f0a0005
- public const int item_touch_helper_swipe_escape_velocity = 2131361797;
+ // aapt resource value: 0x7f0b0005
+ public const int item_touch_helper_swipe_escape_velocity = 2131427333;
- // aapt resource value: 0x7f0a0006
- public const int mr_controller_volume_group_list_item_height = 2131361798;
+ // aapt resource value: 0x7f0b0006
+ public const int mr_controller_volume_group_list_item_height = 2131427334;
- // aapt resource value: 0x7f0a0007
- public const int mr_controller_volume_group_list_item_icon_size = 2131361799;
+ // aapt resource value: 0x7f0b0007
+ public const int mr_controller_volume_group_list_item_icon_size = 2131427335;
- // aapt resource value: 0x7f0a0008
- public const int mr_controller_volume_group_list_max_height = 2131361800;
+ // aapt resource value: 0x7f0b0008
+ public const int mr_controller_volume_group_list_max_height = 2131427336;
- // aapt resource value: 0x7f0a000b
- public const int mr_controller_volume_group_list_padding_top = 2131361803;
+ // aapt resource value: 0x7f0b000b
+ public const int mr_controller_volume_group_list_padding_top = 2131427339;
- // aapt resource value: 0x7f0a0009
- public const int mr_dialog_fixed_width_major = 2131361801;
+ // aapt resource value: 0x7f0b0009
+ public const int mr_dialog_fixed_width_major = 2131427337;
- // aapt resource value: 0x7f0a000a
- public const int mr_dialog_fixed_width_minor = 2131361802;
+ // aapt resource value: 0x7f0b000a
+ public const int mr_dialog_fixed_width_minor = 2131427338;
- // aapt resource value: 0x7f0a009b
- public const int mtrl_bottomappbar_fabOffsetEndMode = 2131361947;
+ // aapt resource value: 0x7f0b009b
+ public const int mtrl_bottomappbar_fabOffsetEndMode = 2131427483;
- // aapt resource value: 0x7f0a009c
- public const int mtrl_bottomappbar_fab_cradle_margin = 2131361948;
+ // aapt resource value: 0x7f0b009c
+ public const int mtrl_bottomappbar_fab_cradle_margin = 2131427484;
- // aapt resource value: 0x7f0a009d
- public const int mtrl_bottomappbar_fab_cradle_rounded_corner_radius = 2131361949;
+ // aapt resource value: 0x7f0b009d
+ public const int mtrl_bottomappbar_fab_cradle_rounded_corner_radius = 2131427485;
- // aapt resource value: 0x7f0a009e
- public const int mtrl_bottomappbar_fab_cradle_vertical_offset = 2131361950;
+ // aapt resource value: 0x7f0b009e
+ public const int mtrl_bottomappbar_fab_cradle_vertical_offset = 2131427486;
- // aapt resource value: 0x7f0a009f
- public const int mtrl_bottomappbar_height = 2131361951;
+ // aapt resource value: 0x7f0b009f
+ public const int mtrl_bottomappbar_height = 2131427487;
- // aapt resource value: 0x7f0a00a0
- public const int mtrl_btn_corner_radius = 2131361952;
+ // aapt resource value: 0x7f0b00a0
+ public const int mtrl_btn_corner_radius = 2131427488;
- // aapt resource value: 0x7f0a00a1
- public const int mtrl_btn_dialog_btn_min_width = 2131361953;
+ // aapt resource value: 0x7f0b00a1
+ public const int mtrl_btn_dialog_btn_min_width = 2131427489;
- // aapt resource value: 0x7f0a00a2
- public const int mtrl_btn_disabled_elevation = 2131361954;
+ // aapt resource value: 0x7f0b00a2
+ public const int mtrl_btn_disabled_elevation = 2131427490;
- // aapt resource value: 0x7f0a00a3
- public const int mtrl_btn_disabled_z = 2131361955;
+ // aapt resource value: 0x7f0b00a3
+ public const int mtrl_btn_disabled_z = 2131427491;
- // aapt resource value: 0x7f0a00a4
- public const int mtrl_btn_elevation = 2131361956;
+ // aapt resource value: 0x7f0b00a4
+ public const int mtrl_btn_elevation = 2131427492;
- // aapt resource value: 0x7f0a00a5
- public const int mtrl_btn_focused_z = 2131361957;
+ // aapt resource value: 0x7f0b00a5
+ public const int mtrl_btn_focused_z = 2131427493;
- // aapt resource value: 0x7f0a00a6
- public const int mtrl_btn_hovered_z = 2131361958;
+ // aapt resource value: 0x7f0b00a6
+ public const int mtrl_btn_hovered_z = 2131427494;
- // aapt resource value: 0x7f0a00a7
- public const int mtrl_btn_icon_btn_padding_left = 2131361959;
+ // aapt resource value: 0x7f0b00a7
+ public const int mtrl_btn_icon_btn_padding_left = 2131427495;
- // aapt resource value: 0x7f0a00a8
- public const int mtrl_btn_icon_padding = 2131361960;
+ // aapt resource value: 0x7f0b00a8
+ public const int mtrl_btn_icon_padding = 2131427496;
- // aapt resource value: 0x7f0a00a9
- public const int mtrl_btn_inset = 2131361961;
+ // aapt resource value: 0x7f0b00a9
+ public const int mtrl_btn_inset = 2131427497;
- // aapt resource value: 0x7f0a00aa
- public const int mtrl_btn_letter_spacing = 2131361962;
+ // aapt resource value: 0x7f0b00aa
+ public const int mtrl_btn_letter_spacing = 2131427498;
- // aapt resource value: 0x7f0a00ab
- public const int mtrl_btn_padding_bottom = 2131361963;
+ // aapt resource value: 0x7f0b00ab
+ public const int mtrl_btn_padding_bottom = 2131427499;
- // aapt resource value: 0x7f0a00ac
- public const int mtrl_btn_padding_left = 2131361964;
+ // aapt resource value: 0x7f0b00ac
+ public const int mtrl_btn_padding_left = 2131427500;
- // aapt resource value: 0x7f0a00ad
- public const int mtrl_btn_padding_right = 2131361965;
+ // aapt resource value: 0x7f0b00ad
+ public const int mtrl_btn_padding_right = 2131427501;
- // aapt resource value: 0x7f0a00ae
- public const int mtrl_btn_padding_top = 2131361966;
+ // aapt resource value: 0x7f0b00ae
+ public const int mtrl_btn_padding_top = 2131427502;
- // aapt resource value: 0x7f0a00af
- public const int mtrl_btn_pressed_z = 2131361967;
+ // aapt resource value: 0x7f0b00af
+ public const int mtrl_btn_pressed_z = 2131427503;
- // aapt resource value: 0x7f0a00b0
- public const int mtrl_btn_stroke_size = 2131361968;
+ // aapt resource value: 0x7f0b00b0
+ public const int mtrl_btn_stroke_size = 2131427504;
- // aapt resource value: 0x7f0a00b1
- public const int mtrl_btn_text_btn_icon_padding = 2131361969;
+ // aapt resource value: 0x7f0b00b1
+ public const int mtrl_btn_text_btn_icon_padding = 2131427505;
- // aapt resource value: 0x7f0a00b2
- public const int mtrl_btn_text_btn_padding_left = 2131361970;
+ // aapt resource value: 0x7f0b00b2
+ public const int mtrl_btn_text_btn_padding_left = 2131427506;
- // aapt resource value: 0x7f0a00b3
- public const int mtrl_btn_text_btn_padding_right = 2131361971;
+ // aapt resource value: 0x7f0b00b3
+ public const int mtrl_btn_text_btn_padding_right = 2131427507;
- // aapt resource value: 0x7f0a00b4
- public const int mtrl_btn_text_size = 2131361972;
+ // aapt resource value: 0x7f0b00b4
+ public const int mtrl_btn_text_size = 2131427508;
- // aapt resource value: 0x7f0a00b5
- public const int mtrl_btn_z = 2131361973;
+ // aapt resource value: 0x7f0b00b5
+ public const int mtrl_btn_z = 2131427509;
- // aapt resource value: 0x7f0a00b6
- public const int mtrl_card_elevation = 2131361974;
+ // aapt resource value: 0x7f0b00b6
+ public const int mtrl_card_elevation = 2131427510;
- // aapt resource value: 0x7f0a00b7
- public const int mtrl_card_spacing = 2131361975;
+ // aapt resource value: 0x7f0b00b7
+ public const int mtrl_card_spacing = 2131427511;
- // aapt resource value: 0x7f0a00b8
- public const int mtrl_chip_pressed_translation_z = 2131361976;
+ // aapt resource value: 0x7f0b00b8
+ public const int mtrl_chip_pressed_translation_z = 2131427512;
- // aapt resource value: 0x7f0a00b9
- public const int mtrl_chip_text_size = 2131361977;
+ // aapt resource value: 0x7f0b00b9
+ public const int mtrl_chip_text_size = 2131427513;
- // aapt resource value: 0x7f0a00ba
- public const int mtrl_fab_elevation = 2131361978;
+ // aapt resource value: 0x7f0b00ba
+ public const int mtrl_fab_elevation = 2131427514;
- // aapt resource value: 0x7f0a00bb
- public const int mtrl_fab_translation_z_hovered_focused = 2131361979;
+ // aapt resource value: 0x7f0b00bb
+ public const int mtrl_fab_translation_z_hovered_focused = 2131427515;
- // aapt resource value: 0x7f0a00bc
- public const int mtrl_fab_translation_z_pressed = 2131361980;
+ // aapt resource value: 0x7f0b00bc
+ public const int mtrl_fab_translation_z_pressed = 2131427516;
- // aapt resource value: 0x7f0a00bd
- public const int mtrl_navigation_elevation = 2131361981;
+ // aapt resource value: 0x7f0b00bd
+ public const int mtrl_navigation_elevation = 2131427517;
- // aapt resource value: 0x7f0a00be
- public const int mtrl_navigation_item_horizontal_padding = 2131361982;
+ // aapt resource value: 0x7f0b00be
+ public const int mtrl_navigation_item_horizontal_padding = 2131427518;
- // aapt resource value: 0x7f0a00bf
- public const int mtrl_navigation_item_icon_padding = 2131361983;
+ // aapt resource value: 0x7f0b00bf
+ public const int mtrl_navigation_item_icon_padding = 2131427519;
- // aapt resource value: 0x7f0a00c0
- public const int mtrl_snackbar_background_corner_radius = 2131361984;
+ // aapt resource value: 0x7f0b00c0
+ public const int mtrl_snackbar_background_corner_radius = 2131427520;
- // aapt resource value: 0x7f0a00c1
- public const int mtrl_snackbar_margin = 2131361985;
+ // aapt resource value: 0x7f0b00c1
+ public const int mtrl_snackbar_margin = 2131427521;
- // aapt resource value: 0x7f0a00c2
- public const int mtrl_textinput_box_bottom_offset = 2131361986;
+ // aapt resource value: 0x7f0b00c2
+ public const int mtrl_textinput_box_bottom_offset = 2131427522;
- // aapt resource value: 0x7f0a00c3
- public const int mtrl_textinput_box_corner_radius_medium = 2131361987;
+ // aapt resource value: 0x7f0b00c3
+ public const int mtrl_textinput_box_corner_radius_medium = 2131427523;
- // aapt resource value: 0x7f0a00c4
- public const int mtrl_textinput_box_corner_radius_small = 2131361988;
+ // aapt resource value: 0x7f0b00c4
+ public const int mtrl_textinput_box_corner_radius_small = 2131427524;
- // aapt resource value: 0x7f0a00c5
- public const int mtrl_textinput_box_label_cutout_padding = 2131361989;
+ // aapt resource value: 0x7f0b00c5
+ public const int mtrl_textinput_box_label_cutout_padding = 2131427525;
- // aapt resource value: 0x7f0a00c6
- public const int mtrl_textinput_box_padding_end = 2131361990;
+ // aapt resource value: 0x7f0b00c6
+ public const int mtrl_textinput_box_padding_end = 2131427526;
- // aapt resource value: 0x7f0a00c7
- public const int mtrl_textinput_box_stroke_width_default = 2131361991;
+ // aapt resource value: 0x7f0b00c7
+ public const int mtrl_textinput_box_stroke_width_default = 2131427527;
- // aapt resource value: 0x7f0a00c8
- public const int mtrl_textinput_box_stroke_width_focused = 2131361992;
+ // aapt resource value: 0x7f0b00c8
+ public const int mtrl_textinput_box_stroke_width_focused = 2131427528;
- // aapt resource value: 0x7f0a00c9
- public const int mtrl_textinput_outline_box_expanded_padding = 2131361993;
+ // aapt resource value: 0x7f0b00c9
+ public const int mtrl_textinput_outline_box_expanded_padding = 2131427529;
- // aapt resource value: 0x7f0a00ca
- public const int mtrl_toolbar_default_height = 2131361994;
+ // aapt resource value: 0x7f0b00ca
+ public const int mtrl_toolbar_default_height = 2131427530;
- // aapt resource value: 0x7f0a00d8
- public const int notification_action_icon_size = 2131362008;
+ // aapt resource value: 0x7f0b00d8
+ public const int notification_action_icon_size = 2131427544;
- // aapt resource value: 0x7f0a00d9
- public const int notification_action_text_size = 2131362009;
+ // aapt resource value: 0x7f0b00d9
+ public const int notification_action_text_size = 2131427545;
- // aapt resource value: 0x7f0a00da
- public const int notification_big_circle_margin = 2131362010;
+ // aapt resource value: 0x7f0b00da
+ public const int notification_big_circle_margin = 2131427546;
- // aapt resource value: 0x7f0a00ce
- public const int notification_content_margin_start = 2131361998;
+ // aapt resource value: 0x7f0b00ce
+ public const int notification_content_margin_start = 2131427534;
- // aapt resource value: 0x7f0a00db
- public const int notification_large_icon_height = 2131362011;
+ // aapt resource value: 0x7f0b00db
+ public const int notification_large_icon_height = 2131427547;
- // aapt resource value: 0x7f0a00dc
- public const int notification_large_icon_width = 2131362012;
+ // aapt resource value: 0x7f0b00dc
+ public const int notification_large_icon_width = 2131427548;
- // aapt resource value: 0x7f0a00cf
- public const int notification_main_column_padding_top = 2131361999;
+ // aapt resource value: 0x7f0b00cf
+ public const int notification_main_column_padding_top = 2131427535;
- // aapt resource value: 0x7f0a00d0
- public const int notification_media_narrow_margin = 2131362000;
+ // aapt resource value: 0x7f0b00d0
+ public const int notification_media_narrow_margin = 2131427536;
- // aapt resource value: 0x7f0a00dd
- public const int notification_right_icon_size = 2131362013;
+ // aapt resource value: 0x7f0b00dd
+ public const int notification_right_icon_size = 2131427549;
- // aapt resource value: 0x7f0a00cd
- public const int notification_right_side_padding_top = 2131361997;
+ // aapt resource value: 0x7f0b00cd
+ public const int notification_right_side_padding_top = 2131427533;
- // aapt resource value: 0x7f0a00de
- public const int notification_small_icon_background_padding = 2131362014;
+ // aapt resource value: 0x7f0b00de
+ public const int notification_small_icon_background_padding = 2131427550;
- // aapt resource value: 0x7f0a00df
- public const int notification_small_icon_size_as_large = 2131362015;
+ // aapt resource value: 0x7f0b00df
+ public const int notification_small_icon_size_as_large = 2131427551;
- // aapt resource value: 0x7f0a00e0
- public const int notification_subtext_size = 2131362016;
+ // aapt resource value: 0x7f0b00e0
+ public const int notification_subtext_size = 2131427552;
- // aapt resource value: 0x7f0a00e1
- public const int notification_top_pad = 2131362017;
+ // aapt resource value: 0x7f0b00e1
+ public const int notification_top_pad = 2131427553;
- // aapt resource value: 0x7f0a00e2
- public const int notification_top_pad_large_text = 2131362018;
+ // aapt resource value: 0x7f0b00e2
+ public const int notification_top_pad_large_text = 2131427554;
- // aapt resource value: 0x7f0a006b
- public const int subtitle_corner_radius = 2131361899;
+ // aapt resource value: 0x7f0b006b
+ public const int subtitle_corner_radius = 2131427435;
- // aapt resource value: 0x7f0a006c
- public const int subtitle_outline_width = 2131361900;
+ // aapt resource value: 0x7f0b006c
+ public const int subtitle_outline_width = 2131427436;
- // aapt resource value: 0x7f0a006d
- public const int subtitle_shadow_offset = 2131361901;
+ // aapt resource value: 0x7f0b006d
+ public const int subtitle_shadow_offset = 2131427437;
- // aapt resource value: 0x7f0a006e
- public const int subtitle_shadow_radius = 2131361902;
+ // aapt resource value: 0x7f0b006e
+ public const int subtitle_shadow_radius = 2131427438;
- // aapt resource value: 0x7f0a0063
- public const int tooltip_corner_radius = 2131361891;
+ // aapt resource value: 0x7f0b0063
+ public const int tooltip_corner_radius = 2131427427;
- // aapt resource value: 0x7f0a0064
- public const int tooltip_horizontal_padding = 2131361892;
+ // aapt resource value: 0x7f0b0064
+ public const int tooltip_horizontal_padding = 2131427428;
- // aapt resource value: 0x7f0a0065
- public const int tooltip_margin = 2131361893;
+ // aapt resource value: 0x7f0b0065
+ public const int tooltip_margin = 2131427429;
- // aapt resource value: 0x7f0a0066
- public const int tooltip_precise_anchor_extra_offset = 2131361894;
+ // aapt resource value: 0x7f0b0066
+ public const int tooltip_precise_anchor_extra_offset = 2131427430;
- // aapt resource value: 0x7f0a0067
- public const int tooltip_precise_anchor_threshold = 2131361895;
+ // aapt resource value: 0x7f0b0067
+ public const int tooltip_precise_anchor_threshold = 2131427431;
- // aapt resource value: 0x7f0a0068
- public const int tooltip_vertical_padding = 2131361896;
+ // aapt resource value: 0x7f0b0068
+ public const int tooltip_vertical_padding = 2131427432;
- // aapt resource value: 0x7f0a0069
- public const int tooltip_y_offset_non_touch = 2131361897;
+ // aapt resource value: 0x7f0b0069
+ public const int tooltip_y_offset_non_touch = 2131427433;
- // aapt resource value: 0x7f0a006a
- public const int tooltip_y_offset_touch = 2131361898;
+ // aapt resource value: 0x7f0b006a
+ public const int tooltip_y_offset_touch = 2131427434;
static Dimension()
{
@@ -8766,830 +8766,830 @@ namespace Bit.Droid
public partial class Id
{
- // aapt resource value: 0x7f0b0039
- public const int ALT = 2131427385;
+ // aapt resource value: 0x7f0c0039
+ public const int ALT = 2131492921;
- // aapt resource value: 0x7f0b003a
- public const int CTRL = 2131427386;
+ // aapt resource value: 0x7f0c003a
+ public const int CTRL = 2131492922;
- // aapt resource value: 0x7f0b00a9
- public const int CellAccessory = 2131427497;
+ // aapt resource value: 0x7f0c00a9
+ public const int CellAccessory = 2131493033;
- // aapt resource value: 0x7f0b00aa
- public const int CellButton1 = 2131427498;
+ // aapt resource value: 0x7f0c00aa
+ public const int CellButton1 = 2131493034;
- // aapt resource value: 0x7f0b00ab
- public const int CellButton2 = 2131427499;
+ // aapt resource value: 0x7f0c00ab
+ public const int CellButton2 = 2131493035;
- // aapt resource value: 0x7f0b00ac
- public const int CellButton3 = 2131427500;
+ // aapt resource value: 0x7f0c00ac
+ public const int CellButton3 = 2131493036;
- // aapt resource value: 0x7f0b00a6
- public const int CellButtonContent = 2131427494;
+ // aapt resource value: 0x7f0c00a6
+ public const int CellButtonContent = 2131493030;
- // aapt resource value: 0x7f0b00a5
- public const int CellContent = 2131427493;
+ // aapt resource value: 0x7f0c00a5
+ public const int CellContent = 2131493029;
- // aapt resource value: 0x7f0b00a8
- public const int CellTitle = 2131427496;
+ // aapt resource value: 0x7f0c00a8
+ public const int CellTitle = 2131493032;
- // aapt resource value: 0x7f0b00a7
- public const int CellTitleContent = 2131427495;
+ // aapt resource value: 0x7f0c00a7
+ public const int CellTitleContent = 2131493031;
- // aapt resource value: 0x7f0b00ad
- public const int ContentCellBody = 2131427501;
+ // aapt resource value: 0x7f0c00ad
+ public const int ContentCellBody = 2131493037;
- // aapt resource value: 0x7f0b00ae
- public const int ContentCellBorder = 2131427502;
+ // aapt resource value: 0x7f0c00ae
+ public const int ContentCellBorder = 2131493038;
- // aapt resource value: 0x7f0b003b
- public const int FUNCTION = 2131427387;
+ // aapt resource value: 0x7f0c003b
+ public const int FUNCTION = 2131492923;
- // aapt resource value: 0x7f0b00c2
- public const int FooterCellText = 2131427522;
+ // aapt resource value: 0x7f0c00c2
+ public const int FooterCellText = 2131493058;
- // aapt resource value: 0x7f0b00c4
- public const int HeaderCellBorder = 2131427524;
+ // aapt resource value: 0x7f0c00c4
+ public const int HeaderCellBorder = 2131493060;
- // aapt resource value: 0x7f0b00c3
- public const int HeaderCellText = 2131427523;
+ // aapt resource value: 0x7f0c00c3
+ public const int HeaderCellText = 2131493059;
- // aapt resource value: 0x7f0b003c
- public const int META = 2131427388;
+ // aapt resource value: 0x7f0c003c
+ public const int META = 2131492924;
- // aapt resource value: 0x7f0b003d
- public const int SHIFT = 2131427389;
+ // aapt resource value: 0x7f0c003d
+ public const int SHIFT = 2131492925;
- // aapt resource value: 0x7f0b003e
- public const int SYM = 2131427390;
+ // aapt resource value: 0x7f0c003e
+ public const int SYM = 2131492926;
- // aapt resource value: 0x7f0b00f7
- public const int action0 = 2131427575;
+ // aapt resource value: 0x7f0c00f7
+ public const int action0 = 2131493111;
- // aapt resource value: 0x7f0b008d
- public const int action_bar = 2131427469;
+ // aapt resource value: 0x7f0c008d
+ public const int action_bar = 2131493005;
- // aapt resource value: 0x7f0b0001
- public const int action_bar_activity_content = 2131427329;
+ // aapt resource value: 0x7f0c0001
+ public const int action_bar_activity_content = 2131492865;
- // aapt resource value: 0x7f0b008c
- public const int action_bar_container = 2131427468;
+ // aapt resource value: 0x7f0c008c
+ public const int action_bar_container = 2131493004;
- // aapt resource value: 0x7f0b0088
- public const int action_bar_root = 2131427464;
+ // aapt resource value: 0x7f0c0088
+ public const int action_bar_root = 2131493000;
- // aapt resource value: 0x7f0b0002
- public const int action_bar_spinner = 2131427330;
+ // aapt resource value: 0x7f0c0002
+ public const int action_bar_spinner = 2131492866;
- // aapt resource value: 0x7f0b006a
- public const int action_bar_subtitle = 2131427434;
+ // aapt resource value: 0x7f0c006a
+ public const int action_bar_subtitle = 2131492970;
- // aapt resource value: 0x7f0b0069
- public const int action_bar_title = 2131427433;
+ // aapt resource value: 0x7f0c0069
+ public const int action_bar_title = 2131492969;
- // aapt resource value: 0x7f0b00f4
- public const int action_container = 2131427572;
+ // aapt resource value: 0x7f0c00f4
+ public const int action_container = 2131493108;
- // aapt resource value: 0x7f0b008e
- public const int action_context_bar = 2131427470;
+ // aapt resource value: 0x7f0c008e
+ public const int action_context_bar = 2131493006;
- // aapt resource value: 0x7f0b00fb
- public const int action_divider = 2131427579;
+ // aapt resource value: 0x7f0c00fb
+ public const int action_divider = 2131493115;
- // aapt resource value: 0x7f0b00f5
- public const int action_image = 2131427573;
+ // aapt resource value: 0x7f0c00f5
+ public const int action_image = 2131493109;
- // aapt resource value: 0x7f0b0003
- public const int action_menu_divider = 2131427331;
+ // aapt resource value: 0x7f0c0003
+ public const int action_menu_divider = 2131492867;
- // aapt resource value: 0x7f0b0004
- public const int action_menu_presenter = 2131427332;
+ // aapt resource value: 0x7f0c0004
+ public const int action_menu_presenter = 2131492868;
- // aapt resource value: 0x7f0b008a
- public const int action_mode_bar = 2131427466;
+ // aapt resource value: 0x7f0c008a
+ public const int action_mode_bar = 2131493002;
- // aapt resource value: 0x7f0b0089
- public const int action_mode_bar_stub = 2131427465;
+ // aapt resource value: 0x7f0c0089
+ public const int action_mode_bar_stub = 2131493001;
- // aapt resource value: 0x7f0b006b
- public const int action_mode_close_button = 2131427435;
+ // aapt resource value: 0x7f0c006b
+ public const int action_mode_close_button = 2131492971;
- // aapt resource value: 0x7f0b00f6
- public const int action_text = 2131427574;
+ // aapt resource value: 0x7f0c00f6
+ public const int action_text = 2131493110;
- // aapt resource value: 0x7f0b0104
- public const int actions = 2131427588;
+ // aapt resource value: 0x7f0c0104
+ public const int actions = 2131493124;
- // aapt resource value: 0x7f0b006c
- public const int activity_chooser_view_content = 2131427436;
+ // aapt resource value: 0x7f0c006c
+ public const int activity_chooser_view_content = 2131492972;
- // aapt resource value: 0x7f0b002e
- public const int add = 2131427374;
+ // aapt resource value: 0x7f0c002e
+ public const int add = 2131492910;
- // aapt resource value: 0x7f0b007f
- public const int alertTitle = 2131427455;
+ // aapt resource value: 0x7f0c007f
+ public const int alertTitle = 2131492991;
- // aapt resource value: 0x7f0b0064
- public const int all = 2131427428;
+ // aapt resource value: 0x7f0c0064
+ public const int all = 2131492964;
- // aapt resource value: 0x7f0b003f
- public const int always = 2131427391;
+ // aapt resource value: 0x7f0c003f
+ public const int always = 2131492927;
- // aapt resource value: 0x7f0b0065
- public const int async = 2131427429;
+ // aapt resource value: 0x7f0c0065
+ public const int async = 2131492965;
- // aapt resource value: 0x7f0b004d
- public const int auto = 2131427405;
+ // aapt resource value: 0x7f0c004d
+ public const int auto = 2131492941;
- // aapt resource value: 0x7f0b0036
- public const int beginning = 2131427382;
+ // aapt resource value: 0x7f0c0036
+ public const int beginning = 2131492918;
- // aapt resource value: 0x7f0b0066
- public const int blocking = 2131427430;
+ // aapt resource value: 0x7f0c0066
+ public const int blocking = 2131492966;
- // aapt resource value: 0x7f0b0044
- public const int bottom = 2131427396;
+ // aapt resource value: 0x7f0c0044
+ public const int bottom = 2131492932;
- // aapt resource value: 0x7f0b009e
- public const int bottomtab_navarea = 2131427486;
+ // aapt resource value: 0x7f0c009e
+ public const int bottomtab_navarea = 2131493022;
- // aapt resource value: 0x7f0b009f
- public const int bottomtab_tabbar = 2131427487;
+ // aapt resource value: 0x7f0c009f
+ public const int bottomtab_tabbar = 2131493023;
- // aapt resource value: 0x7f0b00a1
- public const int browser_actions_header_text = 2131427489;
+ // aapt resource value: 0x7f0c00a1
+ public const int browser_actions_header_text = 2131493025;
- // aapt resource value: 0x7f0b00a3
- public const int browser_actions_menu_item_icon = 2131427491;
+ // aapt resource value: 0x7f0c00a3
+ public const int browser_actions_menu_item_icon = 2131493027;
- // aapt resource value: 0x7f0b00a4
- public const int browser_actions_menu_item_text = 2131427492;
+ // aapt resource value: 0x7f0c00a4
+ public const int browser_actions_menu_item_text = 2131493028;
- // aapt resource value: 0x7f0b00a2
- public const int browser_actions_menu_items = 2131427490;
+ // aapt resource value: 0x7f0c00a2
+ public const int browser_actions_menu_items = 2131493026;
- // aapt resource value: 0x7f0b00a0
- public const int browser_actions_menu_view = 2131427488;
+ // aapt resource value: 0x7f0c00a0
+ public const int browser_actions_menu_view = 2131493024;
- // aapt resource value: 0x7f0b0072
- public const int buttonPanel = 2131427442;
+ // aapt resource value: 0x7f0c0072
+ public const int buttonPanel = 2131492978;
- // aapt resource value: 0x7f0b00f8
- public const int cancel_action = 2131427576;
+ // aapt resource value: 0x7f0c00f8
+ public const int cancel_action = 2131493112;
- // aapt resource value: 0x7f0b004c
- public const int center = 2131427404;
+ // aapt resource value: 0x7f0c004c
+ public const int center = 2131492940;
- // aapt resource value: 0x7f0b0051
- public const int center_horizontal = 2131427409;
+ // aapt resource value: 0x7f0c0051
+ public const int center_horizontal = 2131492945;
- // aapt resource value: 0x7f0b0052
- public const int center_vertical = 2131427410;
+ // aapt resource value: 0x7f0c0052
+ public const int center_vertical = 2131492946;
- // aapt resource value: 0x7f0b0086
- public const int checkbox = 2131427462;
+ // aapt resource value: 0x7f0c0086
+ public const int checkbox = 2131492998;
- // aapt resource value: 0x7f0b0100
- public const int chronometer = 2131427584;
+ // aapt resource value: 0x7f0c0100
+ public const int chronometer = 2131493120;
- // aapt resource value: 0x7f0b0061
- public const int clip_horizontal = 2131427425;
+ // aapt resource value: 0x7f0c0061
+ public const int clip_horizontal = 2131492961;
- // aapt resource value: 0x7f0b0062
- public const int clip_vertical = 2131427426;
+ // aapt resource value: 0x7f0c0062
+ public const int clip_vertical = 2131492962;
- // aapt resource value: 0x7f0b0040
- public const int collapseActionView = 2131427392;
+ // aapt resource value: 0x7f0c0040
+ public const int collapseActionView = 2131492928;
- // aapt resource value: 0x7f0b00b1
- public const int container = 2131427505;
+ // aapt resource value: 0x7f0c00b1
+ public const int container = 2131493041;
- // aapt resource value: 0x7f0b0082
- public const int content = 2131427458;
+ // aapt resource value: 0x7f0c0082
+ public const int content = 2131492994;
- // aapt resource value: 0x7f0b0110
- public const int contentFrame = 2131427600;
+ // aapt resource value: 0x7f0c0110
+ public const int contentFrame = 2131493136;
- // aapt resource value: 0x7f0b0075
- public const int contentPanel = 2131427445;
+ // aapt resource value: 0x7f0c0075
+ public const int contentPanel = 2131492981;
- // aapt resource value: 0x7f0b00b2
- public const int coordinator = 2131427506;
+ // aapt resource value: 0x7f0c00b2
+ public const int coordinator = 2131493042;
- // aapt resource value: 0x7f0b007c
- public const int custom = 2131427452;
+ // aapt resource value: 0x7f0c007c
+ public const int custom = 2131492988;
- // aapt resource value: 0x7f0b007b
- public const int customPanel = 2131427451;
+ // aapt resource value: 0x7f0c007b
+ public const int customPanel = 2131492987;
- // aapt resource value: 0x7f0b008b
- public const int decor_content_parent = 2131427467;
+ // aapt resource value: 0x7f0c008b
+ public const int decor_content_parent = 2131493003;
- // aapt resource value: 0x7f0b006f
- public const int default_activity_button = 2131427439;
+ // aapt resource value: 0x7f0c006f
+ public const int default_activity_button = 2131492975;
- // aapt resource value: 0x7f0b00b4
- public const int design_bottom_sheet = 2131427508;
+ // aapt resource value: 0x7f0c00b4
+ public const int design_bottom_sheet = 2131493044;
- // aapt resource value: 0x7f0b00b9
- public const int design_menu_item_action_area = 2131427513;
+ // aapt resource value: 0x7f0c00b9
+ public const int design_menu_item_action_area = 2131493049;
- // aapt resource value: 0x7f0b00b8
- public const int design_menu_item_action_area_stub = 2131427512;
+ // aapt resource value: 0x7f0c00b8
+ public const int design_menu_item_action_area_stub = 2131493048;
- // aapt resource value: 0x7f0b00b7
- public const int design_menu_item_text = 2131427511;
+ // aapt resource value: 0x7f0c00b7
+ public const int design_menu_item_text = 2131493047;
- // aapt resource value: 0x7f0b00b6
- public const int design_navigation_view = 2131427510;
+ // aapt resource value: 0x7f0c00b6
+ public const int design_navigation_view = 2131493046;
- // aapt resource value: 0x7f0b0027
- public const int disableHome = 2131427367;
+ // aapt resource value: 0x7f0c0027
+ public const int disableHome = 2131492903;
- // aapt resource value: 0x7f0b008f
- public const int edit_query = 2131427471;
+ // aapt resource value: 0x7f0c008f
+ public const int edit_query = 2131493007;
- // aapt resource value: 0x7f0b0037
- public const int end = 2131427383;
+ // aapt resource value: 0x7f0c0037
+ public const int end = 2131492919;
- // aapt resource value: 0x7f0b0106
- public const int end_padder = 2131427590;
+ // aapt resource value: 0x7f0c0106
+ public const int end_padder = 2131493126;
- // aapt resource value: 0x7f0b0046
- public const int enterAlways = 2131427398;
+ // aapt resource value: 0x7f0c0046
+ public const int enterAlways = 2131492934;
- // aapt resource value: 0x7f0b0047
- public const int enterAlwaysCollapsed = 2131427399;
+ // aapt resource value: 0x7f0c0047
+ public const int enterAlwaysCollapsed = 2131492935;
- // aapt resource value: 0x7f0b0048
- public const int exitUntilCollapsed = 2131427400;
+ // aapt resource value: 0x7f0c0048
+ public const int exitUntilCollapsed = 2131492936;
- // aapt resource value: 0x7f0b006d
- public const int expand_activities_button = 2131427437;
+ // aapt resource value: 0x7f0c006d
+ public const int expand_activities_button = 2131492973;
- // aapt resource value: 0x7f0b0085
- public const int expanded_menu = 2131427461;
+ // aapt resource value: 0x7f0c0085
+ public const int expanded_menu = 2131492997;
- // aapt resource value: 0x7f0b005e
- public const int fill = 2131427422;
+ // aapt resource value: 0x7f0c005e
+ public const int fill = 2131492958;
- // aapt resource value: 0x7f0b0063
- public const int fill_horizontal = 2131427427;
+ // aapt resource value: 0x7f0c0063
+ public const int fill_horizontal = 2131492963;
- // aapt resource value: 0x7f0b0053
- public const int fill_vertical = 2131427411;
+ // aapt resource value: 0x7f0c0053
+ public const int fill_vertical = 2131492947;
- // aapt resource value: 0x7f0b005f
- public const int filled = 2131427423;
+ // aapt resource value: 0x7f0c005f
+ public const int filled = 2131492959;
- // aapt resource value: 0x7f0b00be
- public const int fingerprint_btnCancel = 2131427518;
+ // aapt resource value: 0x7f0c00be
+ public const int fingerprint_btnCancel = 2131493054;
- // aapt resource value: 0x7f0b00bf
- public const int fingerprint_btnFallback = 2131427519;
+ // aapt resource value: 0x7f0c00bf
+ public const int fingerprint_btnFallback = 2131493055;
- // aapt resource value: 0x7f0b00bb
- public const int fingerprint_imgFingerprint = 2131427515;
+ // aapt resource value: 0x7f0c00bb
+ public const int fingerprint_imgFingerprint = 2131493051;
- // aapt resource value: 0x7f0b00bc
- public const int fingerprint_txtHelp = 2131427516;
+ // aapt resource value: 0x7f0c00bc
+ public const int fingerprint_txtHelp = 2131493052;
- // aapt resource value: 0x7f0b00bd
- public const int fingerprint_txtReason = 2131427517;
+ // aapt resource value: 0x7f0c00bd
+ public const int fingerprint_txtReason = 2131493053;
- // aapt resource value: 0x7f0b005c
- public const int @fixed = 2131427420;
+ // aapt resource value: 0x7f0c005c
+ public const int @fixed = 2131492956;
- // aapt resource value: 0x7f0b00c0
- public const int flyoutcontent_appbar = 2131427520;
+ // aapt resource value: 0x7f0c00c0
+ public const int flyoutcontent_appbar = 2131493056;
- // aapt resource value: 0x7f0b00c1
- public const int flyoutcontent_recycler = 2131427521;
+ // aapt resource value: 0x7f0c00c1
+ public const int flyoutcontent_recycler = 2131493057;
- // aapt resource value: 0x7f0b0067
- public const int forever = 2131427431;
+ // aapt resource value: 0x7f0c0067
+ public const int forever = 2131492967;
- // aapt resource value: 0x7f0b000a
- public const int ghost_view = 2131427338;
+ // aapt resource value: 0x7f0c000a
+ public const int ghost_view = 2131492874;
- // aapt resource value: 0x7f0b0081
- public const int group_divider = 2131427457;
+ // aapt resource value: 0x7f0c0081
+ public const int group_divider = 2131492993;
- // aapt resource value: 0x7f0b0005
- public const int home = 2131427333;
+ // aapt resource value: 0x7f0c0005
+ public const int home = 2131492869;
- // aapt resource value: 0x7f0b0028
- public const int homeAsUp = 2131427368;
+ // aapt resource value: 0x7f0c0028
+ public const int homeAsUp = 2131492904;
- // aapt resource value: 0x7f0b0071
- public const int icon = 2131427441;
+ // aapt resource value: 0x7f0c0071
+ public const int icon = 2131492977;
- // aapt resource value: 0x7f0b0105
- public const int icon_group = 2131427589;
+ // aapt resource value: 0x7f0c0105
+ public const int icon_group = 2131493125;
- // aapt resource value: 0x7f0b0041
- public const int ifRoom = 2131427393;
+ // aapt resource value: 0x7f0c0041
+ public const int ifRoom = 2131492929;
- // aapt resource value: 0x7f0b006e
- public const int image = 2131427438;
+ // aapt resource value: 0x7f0c006e
+ public const int image = 2131492974;
- // aapt resource value: 0x7f0b0101
- public const int info = 2131427585;
+ // aapt resource value: 0x7f0c0101
+ public const int info = 2131493121;
- // aapt resource value: 0x7f0b0068
- public const int italic = 2131427432;
+ // aapt resource value: 0x7f0c0068
+ public const int italic = 2131492968;
- // aapt resource value: 0x7f0b0000
- public const int item_touch_helper_previous_elevation = 2131427328;
+ // aapt resource value: 0x7f0c0000
+ public const int item_touch_helper_previous_elevation = 2131492864;
- // aapt resource value: 0x7f0b004e
- public const int labeled = 2131427406;
+ // aapt resource value: 0x7f0c004e
+ public const int labeled = 2131492942;
- // aapt resource value: 0x7f0b00b0
- public const int largeLabel = 2131427504;
+ // aapt resource value: 0x7f0c00b0
+ public const int largeLabel = 2131493040;
- // aapt resource value: 0x7f0b0054
- public const int left = 2131427412;
+ // aapt resource value: 0x7f0c0054
+ public const int left = 2131492948;
- // aapt resource value: 0x7f0b001c
- public const int line1 = 2131427356;
+ // aapt resource value: 0x7f0c001c
+ public const int line1 = 2131492892;
- // aapt resource value: 0x7f0b001d
- public const int line3 = 2131427357;
+ // aapt resource value: 0x7f0c001d
+ public const int line3 = 2131492893;
- // aapt resource value: 0x7f0b0024
- public const int listMode = 2131427364;
+ // aapt resource value: 0x7f0c0024
+ public const int listMode = 2131492900;
- // aapt resource value: 0x7f0b0070
- public const int list_item = 2131427440;
+ // aapt resource value: 0x7f0c0070
+ public const int list_item = 2131492976;
- // aapt resource value: 0x7f0b0107
- public const int main_appbar = 2131427591;
+ // aapt resource value: 0x7f0c0107
+ public const int main_appbar = 2131493127;
- // aapt resource value: 0x7f0b010a
- public const int main_scrollview = 2131427594;
+ // aapt resource value: 0x7f0c010a
+ public const int main_scrollview = 2131493130;
- // aapt resource value: 0x7f0b0109
- public const int main_tablayout = 2131427593;
+ // aapt resource value: 0x7f0c0109
+ public const int main_tablayout = 2131493129;
- // aapt resource value: 0x7f0b0108
- public const int main_toolbar = 2131427592;
+ // aapt resource value: 0x7f0c0108
+ public const int main_toolbar = 2131493128;
- // aapt resource value: 0x7f0b0112
- public const int masked = 2131427602;
+ // aapt resource value: 0x7f0c0112
+ public const int masked = 2131493138;
- // aapt resource value: 0x7f0b00fa
- public const int media_actions = 2131427578;
+ // aapt resource value: 0x7f0c00fa
+ public const int media_actions = 2131493114;
- // aapt resource value: 0x7f0b009c
- public const int message = 2131427484;
+ // aapt resource value: 0x7f0c009c
+ public const int message = 2131493020;
- // aapt resource value: 0x7f0b0038
- public const int middle = 2131427384;
+ // aapt resource value: 0x7f0c0038
+ public const int middle = 2131492920;
- // aapt resource value: 0x7f0b0059
- public const int mini = 2131427417;
+ // aapt resource value: 0x7f0c0059
+ public const int mini = 2131492953;
- // aapt resource value: 0x7f0b00e1
- public const int mr_art = 2131427553;
+ // aapt resource value: 0x7f0c00e1
+ public const int mr_art = 2131493089;
- // aapt resource value: 0x7f0b00d2
- public const int mr_cast_checkbox = 2131427538;
+ // aapt resource value: 0x7f0c00d2
+ public const int mr_cast_checkbox = 2131493074;
- // aapt resource value: 0x7f0b00cb
- public const int mr_cast_close_button = 2131427531;
+ // aapt resource value: 0x7f0c00cb
+ public const int mr_cast_close_button = 2131493067;
- // aapt resource value: 0x7f0b00c6
- public const int mr_cast_group_icon = 2131427526;
+ // aapt resource value: 0x7f0c00c6
+ public const int mr_cast_group_icon = 2131493062;
- // aapt resource value: 0x7f0b00c7
- public const int mr_cast_group_name = 2131427527;
+ // aapt resource value: 0x7f0c00c7
+ public const int mr_cast_group_name = 2131493063;
- // aapt resource value: 0x7f0b00c5
- public const int mr_cast_list = 2131427525;
+ // aapt resource value: 0x7f0c00c5
+ public const int mr_cast_list = 2131493061;
- // aapt resource value: 0x7f0b00ca
- public const int mr_cast_meta = 2131427530;
+ // aapt resource value: 0x7f0c00ca
+ public const int mr_cast_meta = 2131493066;
- // aapt resource value: 0x7f0b00cc
- public const int mr_cast_meta_art = 2131427532;
+ // aapt resource value: 0x7f0c00cc
+ public const int mr_cast_meta_art = 2131493068;
- // aapt resource value: 0x7f0b00ce
- public const int mr_cast_meta_subtitle = 2131427534;
+ // aapt resource value: 0x7f0c00ce
+ public const int mr_cast_meta_subtitle = 2131493070;
- // aapt resource value: 0x7f0b00cd
- public const int mr_cast_meta_title = 2131427533;
+ // aapt resource value: 0x7f0c00cd
+ public const int mr_cast_meta_title = 2131493069;
- // aapt resource value: 0x7f0b00d0
- public const int mr_cast_route_icon = 2131427536;
+ // aapt resource value: 0x7f0c00d0
+ public const int mr_cast_route_icon = 2131493072;
- // aapt resource value: 0x7f0b00d1
- public const int mr_cast_route_name = 2131427537;
+ // aapt resource value: 0x7f0c00d1
+ public const int mr_cast_route_name = 2131493073;
- // aapt resource value: 0x7f0b00cf
- public const int mr_cast_stop_button = 2131427535;
+ // aapt resource value: 0x7f0c00cf
+ public const int mr_cast_stop_button = 2131493071;
- // aapt resource value: 0x7f0b00d3
- public const int mr_cast_volume_layout = 2131427539;
+ // aapt resource value: 0x7f0c00d3
+ public const int mr_cast_volume_layout = 2131493075;
- // aapt resource value: 0x7f0b00d4
- public const int mr_cast_volume_slider = 2131427540;
+ // aapt resource value: 0x7f0c00d4
+ public const int mr_cast_volume_slider = 2131493076;
- // aapt resource value: 0x7f0b00d6
- public const int mr_chooser_list = 2131427542;
+ // aapt resource value: 0x7f0c00d6
+ public const int mr_chooser_list = 2131493078;
- // aapt resource value: 0x7f0b00d9
- public const int mr_chooser_route_desc = 2131427545;
+ // aapt resource value: 0x7f0c00d9
+ public const int mr_chooser_route_desc = 2131493081;
- // aapt resource value: 0x7f0b00d7
- public const int mr_chooser_route_icon = 2131427543;
+ // aapt resource value: 0x7f0c00d7
+ public const int mr_chooser_route_icon = 2131493079;
- // aapt resource value: 0x7f0b00d8
- public const int mr_chooser_route_name = 2131427544;
+ // aapt resource value: 0x7f0c00d8
+ public const int mr_chooser_route_name = 2131493080;
- // aapt resource value: 0x7f0b00d5
- public const int mr_chooser_title = 2131427541;
+ // aapt resource value: 0x7f0c00d5
+ public const int mr_chooser_title = 2131493077;
- // aapt resource value: 0x7f0b00de
- public const int mr_close = 2131427550;
+ // aapt resource value: 0x7f0c00de
+ public const int mr_close = 2131493086;
- // aapt resource value: 0x7f0b00e4
- public const int mr_control_divider = 2131427556;
+ // aapt resource value: 0x7f0c00e4
+ public const int mr_control_divider = 2131493092;
- // aapt resource value: 0x7f0b00ef
- public const int mr_control_playback_ctrl = 2131427567;
+ // aapt resource value: 0x7f0c00ef
+ public const int mr_control_playback_ctrl = 2131493103;
- // aapt resource value: 0x7f0b00f2
- public const int mr_control_subtitle = 2131427570;
+ // aapt resource value: 0x7f0c00f2
+ public const int mr_control_subtitle = 2131493106;
- // aapt resource value: 0x7f0b00f1
- public const int mr_control_title = 2131427569;
+ // aapt resource value: 0x7f0c00f1
+ public const int mr_control_title = 2131493105;
- // aapt resource value: 0x7f0b00f0
- public const int mr_control_title_container = 2131427568;
+ // aapt resource value: 0x7f0c00f0
+ public const int mr_control_title_container = 2131493104;
- // aapt resource value: 0x7f0b00df
- public const int mr_custom_control = 2131427551;
+ // aapt resource value: 0x7f0c00df
+ public const int mr_custom_control = 2131493087;
- // aapt resource value: 0x7f0b00e0
- public const int mr_default_control = 2131427552;
+ // aapt resource value: 0x7f0c00e0
+ public const int mr_default_control = 2131493088;
- // aapt resource value: 0x7f0b00db
- public const int mr_dialog_area = 2131427547;
+ // aapt resource value: 0x7f0c00db
+ public const int mr_dialog_area = 2131493083;
- // aapt resource value: 0x7f0b00ea
- public const int mr_dialog_header_name = 2131427562;
+ // aapt resource value: 0x7f0c00ea
+ public const int mr_dialog_header_name = 2131493098;
- // aapt resource value: 0x7f0b00da
- public const int mr_expandable_area = 2131427546;
+ // aapt resource value: 0x7f0c00da
+ public const int mr_expandable_area = 2131493082;
- // aapt resource value: 0x7f0b00f3
- public const int mr_group_expand_collapse = 2131427571;
+ // aapt resource value: 0x7f0c00f3
+ public const int mr_group_expand_collapse = 2131493107;
- // aapt resource value: 0x7f0b00c8
- public const int mr_group_volume_route_name = 2131427528;
+ // aapt resource value: 0x7f0c00c8
+ public const int mr_group_volume_route_name = 2131493064;
- // aapt resource value: 0x7f0b00c9
- public const int mr_group_volume_slider = 2131427529;
+ // aapt resource value: 0x7f0c00c9
+ public const int mr_group_volume_slider = 2131493065;
- // aapt resource value: 0x7f0b00e2
- public const int mr_media_main_control = 2131427554;
+ // aapt resource value: 0x7f0c00e2
+ public const int mr_media_main_control = 2131493090;
- // aapt resource value: 0x7f0b00dd
- public const int mr_name = 2131427549;
+ // aapt resource value: 0x7f0c00dd
+ public const int mr_name = 2131493085;
- // aapt resource value: 0x7f0b00eb
- public const int mr_picker_close_button = 2131427563;
+ // aapt resource value: 0x7f0c00eb
+ public const int mr_picker_close_button = 2131493099;
- // aapt resource value: 0x7f0b00ec
- public const int mr_picker_list = 2131427564;
+ // aapt resource value: 0x7f0c00ec
+ public const int mr_picker_list = 2131493100;
- // aapt resource value: 0x7f0b00ed
- public const int mr_picker_route_icon = 2131427565;
+ // aapt resource value: 0x7f0c00ed
+ public const int mr_picker_route_icon = 2131493101;
- // aapt resource value: 0x7f0b00ee
- public const int mr_picker_route_name = 2131427566;
+ // aapt resource value: 0x7f0c00ee
+ public const int mr_picker_route_name = 2131493102;
- // aapt resource value: 0x7f0b00e3
- public const int mr_playback_control = 2131427555;
+ // aapt resource value: 0x7f0c00e3
+ public const int mr_playback_control = 2131493091;
- // aapt resource value: 0x7f0b00dc
- public const int mr_title_bar = 2131427548;
+ // aapt resource value: 0x7f0c00dc
+ public const int mr_title_bar = 2131493084;
- // aapt resource value: 0x7f0b00e5
- public const int mr_volume_control = 2131427557;
+ // aapt resource value: 0x7f0c00e5
+ public const int mr_volume_control = 2131493093;
- // aapt resource value: 0x7f0b00e6
- public const int mr_volume_group_list = 2131427558;
+ // aapt resource value: 0x7f0c00e6
+ public const int mr_volume_group_list = 2131493094;
- // aapt resource value: 0x7f0b00e8
- public const int mr_volume_item_icon = 2131427560;
+ // aapt resource value: 0x7f0c00e8
+ public const int mr_volume_item_icon = 2131493096;
- // aapt resource value: 0x7f0b00e9
- public const int mr_volume_slider = 2131427561;
+ // aapt resource value: 0x7f0c00e9
+ public const int mr_volume_slider = 2131493097;
- // aapt resource value: 0x7f0b0014
- public const int mtrl_child_content_container = 2131427348;
+ // aapt resource value: 0x7f0c0014
+ public const int mtrl_child_content_container = 2131492884;
- // aapt resource value: 0x7f0b0015
- public const int mtrl_internal_children_alpha_tag = 2131427349;
+ // aapt resource value: 0x7f0c0015
+ public const int mtrl_internal_children_alpha_tag = 2131492885;
- // aapt resource value: 0x7f0b002f
- public const int multiply = 2131427375;
+ // aapt resource value: 0x7f0c002f
+ public const int multiply = 2131492911;
- // aapt resource value: 0x7f0b00b5
- public const int navigation_header_container = 2131427509;
+ // aapt resource value: 0x7f0c00b5
+ public const int navigation_header_container = 2131493045;
- // aapt resource value: 0x7f0b0042
- public const int never = 2131427394;
+ // aapt resource value: 0x7f0c0042
+ public const int never = 2131492930;
- // aapt resource value: 0x7f0b0029
- public const int none = 2131427369;
+ // aapt resource value: 0x7f0c0029
+ public const int none = 2131492905;
- // aapt resource value: 0x7f0b0025
- public const int normal = 2131427365;
+ // aapt resource value: 0x7f0c0025
+ public const int normal = 2131492901;
- // aapt resource value: 0x7f0b0103
- public const int notification_background = 2131427587;
+ // aapt resource value: 0x7f0c0103
+ public const int notification_background = 2131493123;
- // aapt resource value: 0x7f0b00fd
- public const int notification_main_column = 2131427581;
+ // aapt resource value: 0x7f0c00fd
+ public const int notification_main_column = 2131493117;
- // aapt resource value: 0x7f0b00fc
- public const int notification_main_column_container = 2131427580;
+ // aapt resource value: 0x7f0c00fc
+ public const int notification_main_column_container = 2131493116;
- // aapt resource value: 0x7f0b0060
- public const int outline = 2131427424;
+ // aapt resource value: 0x7f0c0060
+ public const int outline = 2131492960;
- // aapt resource value: 0x7f0b0057
- public const int parallax = 2131427415;
+ // aapt resource value: 0x7f0c0057
+ public const int parallax = 2131492951;
- // aapt resource value: 0x7f0b0074
- public const int parentPanel = 2131427444;
+ // aapt resource value: 0x7f0c0074
+ public const int parentPanel = 2131492980;
- // aapt resource value: 0x7f0b000b
- public const int parent_matrix = 2131427339;
+ // aapt resource value: 0x7f0c000b
+ public const int parent_matrix = 2131492875;
- // aapt resource value: 0x7f0b0058
- public const int pin = 2131427416;
+ // aapt resource value: 0x7f0c0058
+ public const int pin = 2131492952;
- // aapt resource value: 0x7f0b0006
- public const int progress_circular = 2131427334;
+ // aapt resource value: 0x7f0c0006
+ public const int progress_circular = 2131492870;
- // aapt resource value: 0x7f0b0007
- public const int progress_horizontal = 2131427335;
+ // aapt resource value: 0x7f0c0007
+ public const int progress_horizontal = 2131492871;
- // aapt resource value: 0x7f0b0087
- public const int radio = 2131427463;
+ // aapt resource value: 0x7f0c0087
+ public const int radio = 2131492999;
- // aapt resource value: 0x7f0b0055
- public const int right = 2131427413;
+ // aapt resource value: 0x7f0c0055
+ public const int right = 2131492949;
- // aapt resource value: 0x7f0b0102
- public const int right_icon = 2131427586;
+ // aapt resource value: 0x7f0c0102
+ public const int right_icon = 2131493122;
- // aapt resource value: 0x7f0b00fe
- public const int right_side = 2131427582;
+ // aapt resource value: 0x7f0c00fe
+ public const int right_side = 2131493118;
- // aapt resource value: 0x7f0b000c
- public const int save_image_matrix = 2131427340;
+ // aapt resource value: 0x7f0c000c
+ public const int save_image_matrix = 2131492876;
- // aapt resource value: 0x7f0b000d
- public const int save_non_transition_alpha = 2131427341;
+ // aapt resource value: 0x7f0c000d
+ public const int save_non_transition_alpha = 2131492877;
- // aapt resource value: 0x7f0b000e
- public const int save_scale_type = 2131427342;
+ // aapt resource value: 0x7f0c000e
+ public const int save_scale_type = 2131492878;
- // aapt resource value: 0x7f0b0030
- public const int screen = 2131427376;
+ // aapt resource value: 0x7f0c0030
+ public const int screen = 2131492912;
- // aapt resource value: 0x7f0b0049
- public const int scroll = 2131427401;
+ // aapt resource value: 0x7f0c0049
+ public const int scroll = 2131492937;
- // aapt resource value: 0x7f0b007a
- public const int scrollIndicatorDown = 2131427450;
+ // aapt resource value: 0x7f0c007a
+ public const int scrollIndicatorDown = 2131492986;
- // aapt resource value: 0x7f0b0076
- public const int scrollIndicatorUp = 2131427446;
+ // aapt resource value: 0x7f0c0076
+ public const int scrollIndicatorUp = 2131492982;
- // aapt resource value: 0x7f0b0077
- public const int scrollView = 2131427447;
+ // aapt resource value: 0x7f0c0077
+ public const int scrollView = 2131492983;
- // aapt resource value: 0x7f0b005d
- public const int scrollable = 2131427421;
+ // aapt resource value: 0x7f0c005d
+ public const int scrollable = 2131492957;
- // aapt resource value: 0x7f0b0091
- public const int search_badge = 2131427473;
+ // aapt resource value: 0x7f0c0091
+ public const int search_badge = 2131493009;
- // aapt resource value: 0x7f0b0090
- public const int search_bar = 2131427472;
+ // aapt resource value: 0x7f0c0090
+ public const int search_bar = 2131493008;
- // aapt resource value: 0x7f0b0092
- public const int search_button = 2131427474;
+ // aapt resource value: 0x7f0c0092
+ public const int search_button = 2131493010;
- // aapt resource value: 0x7f0b0097
- public const int search_close_btn = 2131427479;
+ // aapt resource value: 0x7f0c0097
+ public const int search_close_btn = 2131493015;
- // aapt resource value: 0x7f0b0093
- public const int search_edit_frame = 2131427475;
+ // aapt resource value: 0x7f0c0093
+ public const int search_edit_frame = 2131493011;
- // aapt resource value: 0x7f0b0099
- public const int search_go_btn = 2131427481;
+ // aapt resource value: 0x7f0c0099
+ public const int search_go_btn = 2131493017;
- // aapt resource value: 0x7f0b0094
- public const int search_mag_icon = 2131427476;
+ // aapt resource value: 0x7f0c0094
+ public const int search_mag_icon = 2131493012;
- // aapt resource value: 0x7f0b0095
- public const int search_plate = 2131427477;
+ // aapt resource value: 0x7f0c0095
+ public const int search_plate = 2131493013;
- // aapt resource value: 0x7f0b0096
- public const int search_src_text = 2131427478;
+ // aapt resource value: 0x7f0c0096
+ public const int search_src_text = 2131493014;
- // aapt resource value: 0x7f0b009a
- public const int search_voice_btn = 2131427482;
+ // aapt resource value: 0x7f0c009a
+ public const int search_voice_btn = 2131493018;
- // aapt resource value: 0x7f0b009b
- public const int select_dialog_listview = 2131427483;
+ // aapt resource value: 0x7f0c009b
+ public const int select_dialog_listview = 2131493019;
- // aapt resource value: 0x7f0b004f
- public const int selected = 2131427407;
+ // aapt resource value: 0x7f0c004f
+ public const int selected = 2131492943;
- // aapt resource value: 0x7f0b010b
- public const int shellcontent_appbar = 2131427595;
+ // aapt resource value: 0x7f0c010b
+ public const int shellcontent_appbar = 2131493131;
- // aapt resource value: 0x7f0b010d
- public const int shellcontent_scrollview = 2131427597;
+ // aapt resource value: 0x7f0c010d
+ public const int shellcontent_scrollview = 2131493133;
- // aapt resource value: 0x7f0b010c
- public const int shellcontent_toolbar = 2131427596;
+ // aapt resource value: 0x7f0c010c
+ public const int shellcontent_toolbar = 2131493132;
- // aapt resource value: 0x7f0b0083
- public const int shortcut = 2131427459;
+ // aapt resource value: 0x7f0c0083
+ public const int shortcut = 2131492995;
- // aapt resource value: 0x7f0b002a
- public const int showCustom = 2131427370;
+ // aapt resource value: 0x7f0c002a
+ public const int showCustom = 2131492906;
- // aapt resource value: 0x7f0b002b
- public const int showHome = 2131427371;
+ // aapt resource value: 0x7f0c002b
+ public const int showHome = 2131492907;
- // aapt resource value: 0x7f0b002c
- public const int showTitle = 2131427372;
+ // aapt resource value: 0x7f0c002c
+ public const int showTitle = 2131492908;
- // aapt resource value: 0x7f0b010e
- public const int sliding_tabs = 2131427598;
+ // aapt resource value: 0x7f0c010e
+ public const int sliding_tabs = 2131493134;
- // aapt resource value: 0x7f0b00af
- public const int smallLabel = 2131427503;
+ // aapt resource value: 0x7f0c00af
+ public const int smallLabel = 2131493039;
- // aapt resource value: 0x7f0b0016
- public const int snackbar_action = 2131427350;
+ // aapt resource value: 0x7f0c0016
+ public const int snackbar_action = 2131492886;
- // aapt resource value: 0x7f0b0017
- public const int snackbar_text = 2131427351;
+ // aapt resource value: 0x7f0c0017
+ public const int snackbar_text = 2131492887;
- // aapt resource value: 0x7f0b004a
- public const int snap = 2131427402;
+ // aapt resource value: 0x7f0c004a
+ public const int snap = 2131492938;
- // aapt resource value: 0x7f0b004b
- public const int snapMargins = 2131427403;
+ // aapt resource value: 0x7f0c004b
+ public const int snapMargins = 2131492939;
- // aapt resource value: 0x7f0b0073
- public const int spacer = 2131427443;
+ // aapt resource value: 0x7f0c0073
+ public const int spacer = 2131492979;
- // aapt resource value: 0x7f0b0008
- public const int split_action_bar = 2131427336;
+ // aapt resource value: 0x7f0c0008
+ public const int split_action_bar = 2131492872;
- // aapt resource value: 0x7f0b0031
- public const int src_atop = 2131427377;
+ // aapt resource value: 0x7f0c0031
+ public const int src_atop = 2131492913;
- // aapt resource value: 0x7f0b0032
- public const int src_in = 2131427378;
+ // aapt resource value: 0x7f0c0032
+ public const int src_in = 2131492914;
- // aapt resource value: 0x7f0b0033
- public const int src_over = 2131427379;
+ // aapt resource value: 0x7f0c0033
+ public const int src_over = 2131492915;
- // aapt resource value: 0x7f0b0056
- public const int start = 2131427414;
+ // aapt resource value: 0x7f0c0056
+ public const int start = 2131492950;
- // aapt resource value: 0x7f0b00f9
- public const int status_bar_latest_event_content = 2131427577;
+ // aapt resource value: 0x7f0c00f9
+ public const int status_bar_latest_event_content = 2131493113;
- // aapt resource value: 0x7f0b005b
- public const int stretch = 2131427419;
+ // aapt resource value: 0x7f0c005b
+ public const int stretch = 2131492955;
- // aapt resource value: 0x7f0b0084
- public const int submenuarrow = 2131427460;
+ // aapt resource value: 0x7f0c0084
+ public const int submenuarrow = 2131492996;
- // aapt resource value: 0x7f0b0098
- public const int submit_area = 2131427480;
+ // aapt resource value: 0x7f0c0098
+ public const int submit_area = 2131493016;
- // aapt resource value: 0x7f0b0026
- public const int tabMode = 2131427366;
+ // aapt resource value: 0x7f0c0026
+ public const int tabMode = 2131492902;
- // aapt resource value: 0x7f0b001e
- public const int tag_transition_group = 2131427358;
+ // aapt resource value: 0x7f0c001e
+ public const int tag_transition_group = 2131492894;
- // aapt resource value: 0x7f0b001f
- public const int tag_unhandled_key_event_manager = 2131427359;
+ // aapt resource value: 0x7f0c001f
+ public const int tag_unhandled_key_event_manager = 2131492895;
- // aapt resource value: 0x7f0b0020
- public const int tag_unhandled_key_listeners = 2131427360;
+ // aapt resource value: 0x7f0c0020
+ public const int tag_unhandled_key_listeners = 2131492896;
- // aapt resource value: 0x7f0b0021
- public const int text = 2131427361;
+ // aapt resource value: 0x7f0c0021
+ public const int text = 2131492897;
- // aapt resource value: 0x7f0b009d
- public const int text1 = 2131427485;
+ // aapt resource value: 0x7f0c009d
+ public const int text1 = 2131493021;
- // aapt resource value: 0x7f0b0022
- public const int text2 = 2131427362;
+ // aapt resource value: 0x7f0c0022
+ public const int text2 = 2131492898;
- // aapt resource value: 0x7f0b0079
- public const int textSpacerNoButtons = 2131427449;
+ // aapt resource value: 0x7f0c0079
+ public const int textSpacerNoButtons = 2131492985;
- // aapt resource value: 0x7f0b0078
- public const int textSpacerNoTitle = 2131427448;
+ // aapt resource value: 0x7f0c0078
+ public const int textSpacerNoTitle = 2131492984;
- // aapt resource value: 0x7f0b005a
- public const int textStart = 2131427418;
+ // aapt resource value: 0x7f0c005a
+ public const int textStart = 2131492954;
- // aapt resource value: 0x7f0b00ba
- public const int text_input_password_toggle = 2131427514;
+ // aapt resource value: 0x7f0c00ba
+ public const int text_input_password_toggle = 2131493050;
- // aapt resource value: 0x7f0b0018
- public const int textinput_counter = 2131427352;
+ // aapt resource value: 0x7f0c0018
+ public const int textinput_counter = 2131492888;
- // aapt resource value: 0x7f0b0019
- public const int textinput_error = 2131427353;
+ // aapt resource value: 0x7f0c0019
+ public const int textinput_error = 2131492889;
- // aapt resource value: 0x7f0b001a
- public const int textinput_helper_text = 2131427354;
+ // aapt resource value: 0x7f0c001a
+ public const int textinput_helper_text = 2131492890;
- // aapt resource value: 0x7f0b00ff
- public const int time = 2131427583;
+ // aapt resource value: 0x7f0c00ff
+ public const int time = 2131493119;
- // aapt resource value: 0x7f0b0023
- public const int title = 2131427363;
+ // aapt resource value: 0x7f0c0023
+ public const int title = 2131492899;
- // aapt resource value: 0x7f0b0080
- public const int titleDividerNoCustom = 2131427456;
+ // aapt resource value: 0x7f0c0080
+ public const int titleDividerNoCustom = 2131492992;
- // aapt resource value: 0x7f0b007e
- public const int title_template = 2131427454;
+ // aapt resource value: 0x7f0c007e
+ public const int title_template = 2131492990;
- // aapt resource value: 0x7f0b010f
- public const int toolbar = 2131427599;
+ // aapt resource value: 0x7f0c010f
+ public const int toolbar = 2131493135;
- // aapt resource value: 0x7f0b0045
- public const int top = 2131427397;
+ // aapt resource value: 0x7f0c0045
+ public const int top = 2131492933;
- // aapt resource value: 0x7f0b007d
- public const int topPanel = 2131427453;
+ // aapt resource value: 0x7f0c007d
+ public const int topPanel = 2131492989;
- // aapt resource value: 0x7f0b00b3
- public const int touch_outside = 2131427507;
+ // aapt resource value: 0x7f0c00b3
+ public const int touch_outside = 2131493043;
- // aapt resource value: 0x7f0b000f
- public const int transition_current_scene = 2131427343;
+ // aapt resource value: 0x7f0c000f
+ public const int transition_current_scene = 2131492879;
- // aapt resource value: 0x7f0b0010
- public const int transition_layout_save = 2131427344;
+ // aapt resource value: 0x7f0c0010
+ public const int transition_layout_save = 2131492880;
- // aapt resource value: 0x7f0b0011
- public const int transition_position = 2131427345;
+ // aapt resource value: 0x7f0c0011
+ public const int transition_position = 2131492881;
- // aapt resource value: 0x7f0b0012
- public const int transition_scene_layoutid_cache = 2131427346;
+ // aapt resource value: 0x7f0c0012
+ public const int transition_scene_layoutid_cache = 2131492882;
- // aapt resource value: 0x7f0b0013
- public const int transition_transform = 2131427347;
+ // aapt resource value: 0x7f0c0013
+ public const int transition_transform = 2131492883;
- // aapt resource value: 0x7f0b0034
- public const int uniform = 2131427380;
+ // aapt resource value: 0x7f0c0034
+ public const int uniform = 2131492916;
- // aapt resource value: 0x7f0b0050
- public const int unlabeled = 2131427408;
+ // aapt resource value: 0x7f0c0050
+ public const int unlabeled = 2131492944;
- // aapt resource value: 0x7f0b0009
- public const int up = 2131427337;
+ // aapt resource value: 0x7f0c0009
+ public const int up = 2131492873;
- // aapt resource value: 0x7f0b002d
- public const int useLogo = 2131427373;
+ // aapt resource value: 0x7f0c002d
+ public const int useLogo = 2131492909;
- // aapt resource value: 0x7f0b001b
- public const int view_offset_helper = 2131427355;
+ // aapt resource value: 0x7f0c001b
+ public const int view_offset_helper = 2131492891;
- // aapt resource value: 0x7f0b0111
- public const int visible = 2131427601;
+ // aapt resource value: 0x7f0c0111
+ public const int visible = 2131493137;
- // aapt resource value: 0x7f0b00e7
- public const int volume_item_container = 2131427559;
+ // aapt resource value: 0x7f0c00e7
+ public const int volume_item_container = 2131493095;
- // aapt resource value: 0x7f0b0043
- public const int withText = 2131427395;
+ // aapt resource value: 0x7f0c0043
+ public const int withText = 2131492931;
- // aapt resource value: 0x7f0b0035
- public const int wrap_content = 2131427381;
+ // aapt resource value: 0x7f0c0035
+ public const int wrap_content = 2131492917;
static Id()
{
@@ -9604,62 +9604,65 @@ namespace Bit.Droid
public partial class Integer
{
- // aapt resource value: 0x7f0c0004
- public const int abc_config_activityDefaultDur = 2131492868;
+ // aapt resource value: 0x7f0a0005
+ public const int abc_config_activityDefaultDur = 2131361797;
- // aapt resource value: 0x7f0c0005
- public const int abc_config_activityShortDur = 2131492869;
+ // aapt resource value: 0x7f0a0006
+ public const int abc_config_activityShortDur = 2131361798;
- // aapt resource value: 0x7f0c0009
- public const int app_bar_elevation_anim_duration = 2131492873;
+ // aapt resource value: 0x7f0a000a
+ public const int app_bar_elevation_anim_duration = 2131361802;
- // aapt resource value: 0x7f0c000a
- public const int bottom_sheet_slide_duration = 2131492874;
+ // aapt resource value: 0x7f0a000b
+ public const int bottom_sheet_slide_duration = 2131361803;
- // aapt resource value: 0x7f0c0006
- public const int cancel_button_image_alpha = 2131492870;
+ // aapt resource value: 0x7f0a0007
+ public const int cancel_button_image_alpha = 2131361799;
- // aapt resource value: 0x7f0c0007
- public const int config_tooltipAnimTime = 2131492871;
+ // aapt resource value: 0x7f0a0008
+ public const int config_tooltipAnimTime = 2131361800;
- // aapt resource value: 0x7f0c0008
- public const int design_snackbar_text_max_lines = 2131492872;
+ // aapt resource value: 0x7f0a0009
+ public const int design_snackbar_text_max_lines = 2131361801;
- // aapt resource value: 0x7f0c000b
- public const int design_tab_indicator_anim_duration_ms = 2131492875;
+ // aapt resource value: 0x7f0a000c
+ public const int design_tab_indicator_anim_duration_ms = 2131361804;
- // aapt resource value: 0x7f0c000c
- public const int hide_password_duration = 2131492876;
+ // aapt resource value: 0x7f0a0000
+ public const int google_play_services_version = 2131361792;
- // aapt resource value: 0x7f0c0000
- public const int mr_controller_volume_group_list_animation_duration_ms = 2131492864;
+ // aapt resource value: 0x7f0a000d
+ public const int hide_password_duration = 2131361805;
- // aapt resource value: 0x7f0c0001
- public const int mr_controller_volume_group_list_fade_in_duration_ms = 2131492865;
+ // aapt resource value: 0x7f0a0001
+ public const int mr_controller_volume_group_list_animation_duration_ms = 2131361793;
- // aapt resource value: 0x7f0c0002
- public const int mr_controller_volume_group_list_fade_out_duration_ms = 2131492866;
+ // aapt resource value: 0x7f0a0002
+ public const int mr_controller_volume_group_list_fade_in_duration_ms = 2131361794;
- // aapt resource value: 0x7f0c0003
- public const int mr_update_routes_delay_ms = 2131492867;
+ // aapt resource value: 0x7f0a0003
+ public const int mr_controller_volume_group_list_fade_out_duration_ms = 2131361795;
- // aapt resource value: 0x7f0c000d
- public const int mtrl_btn_anim_delay_ms = 2131492877;
+ // aapt resource value: 0x7f0a0004
+ public const int mr_update_routes_delay_ms = 2131361796;
- // aapt resource value: 0x7f0c000e
- public const int mtrl_btn_anim_duration_ms = 2131492878;
+ // aapt resource value: 0x7f0a000e
+ public const int mtrl_btn_anim_delay_ms = 2131361806;
- // aapt resource value: 0x7f0c000f
- public const int mtrl_chip_anim_duration = 2131492879;
+ // aapt resource value: 0x7f0a000f
+ public const int mtrl_btn_anim_duration_ms = 2131361807;
- // aapt resource value: 0x7f0c0010
- public const int mtrl_tab_indicator_anim_duration_ms = 2131492880;
+ // aapt resource value: 0x7f0a0010
+ public const int mtrl_chip_anim_duration = 2131361808;
- // aapt resource value: 0x7f0c0011
- public const int show_password_duration = 2131492881;
+ // aapt resource value: 0x7f0a0011
+ public const int mtrl_tab_indicator_anim_duration_ms = 2131361809;
- // aapt resource value: 0x7f0c0012
- public const int status_bar_notification_info_maxnum = 2131492882;
+ // aapt resource value: 0x7f0a0012
+ public const int show_password_duration = 2131361810;
+
+ // aapt resource value: 0x7f0a0013
+ public const int status_bar_notification_info_maxnum = 2131361811;
static Integer()
{
@@ -10019,257 +10022,284 @@ namespace Bit.Droid
public partial class String
{
- // aapt resource value: 0x7f090050
- public const int ApplicationName = 2131296336;
+ // aapt resource value: 0x7f090059
+ public const int ApplicationName = 2131296345;
- // aapt resource value: 0x7f090052
- public const int AutoFillServiceDescription = 2131296338;
+ // aapt resource value: 0x7f09005b
+ public const int AutoFillServiceDescription = 2131296347;
- // aapt resource value: 0x7f090051
- public const int AutoFillServiceSummary = 2131296337;
+ // aapt resource value: 0x7f09005a
+ public const int AutoFillServiceSummary = 2131296346;
- // aapt resource value: 0x7f09004f
- public const int Hello = 2131296335;
+ // aapt resource value: 0x7f090058
+ public const int Hello = 2131296344;
- // aapt resource value: 0x7f090053
- public const int MyVault = 2131296339;
-
- // aapt resource value: 0x7f090019
- public const int abc_action_bar_home_description = 2131296281;
-
- // aapt resource value: 0x7f09001a
- public const int abc_action_bar_up_description = 2131296282;
-
- // aapt resource value: 0x7f09001b
- public const int abc_action_menu_overflow_description = 2131296283;
-
- // aapt resource value: 0x7f09001c
- public const int abc_action_mode_done = 2131296284;
-
- // aapt resource value: 0x7f09001d
- public const int abc_activity_chooser_view_see_all = 2131296285;
-
- // aapt resource value: 0x7f09001e
- public const int abc_activitychooserview_choose_application = 2131296286;
-
- // aapt resource value: 0x7f09001f
- public const int abc_capital_off = 2131296287;
-
- // aapt resource value: 0x7f090020
- public const int abc_capital_on = 2131296288;
-
- // aapt resource value: 0x7f090035
- public const int abc_font_family_body_1_material = 2131296309;
-
- // aapt resource value: 0x7f090036
- public const int abc_font_family_body_2_material = 2131296310;
-
- // aapt resource value: 0x7f090037
- public const int abc_font_family_button_material = 2131296311;
-
- // aapt resource value: 0x7f090038
- public const int abc_font_family_caption_material = 2131296312;
-
- // aapt resource value: 0x7f090039
- public const int abc_font_family_display_1_material = 2131296313;
-
- // aapt resource value: 0x7f09003a
- public const int abc_font_family_display_2_material = 2131296314;
-
- // aapt resource value: 0x7f09003b
- public const int abc_font_family_display_3_material = 2131296315;
-
- // aapt resource value: 0x7f09003c
- public const int abc_font_family_display_4_material = 2131296316;
-
- // aapt resource value: 0x7f09003d
- public const int abc_font_family_headline_material = 2131296317;
-
- // aapt resource value: 0x7f09003e
- public const int abc_font_family_menu_material = 2131296318;
-
- // aapt resource value: 0x7f09003f
- public const int abc_font_family_subhead_material = 2131296319;
-
- // aapt resource value: 0x7f090040
- public const int abc_font_family_title_material = 2131296320;
-
- // aapt resource value: 0x7f090021
- public const int abc_menu_alt_shortcut_label = 2131296289;
+ // aapt resource value: 0x7f09005c
+ public const int MyVault = 2131296348;
// aapt resource value: 0x7f090022
- public const int abc_menu_ctrl_shortcut_label = 2131296290;
+ public const int abc_action_bar_home_description = 2131296290;
// aapt resource value: 0x7f090023
- public const int abc_menu_delete_shortcut_label = 2131296291;
+ public const int abc_action_bar_up_description = 2131296291;
// aapt resource value: 0x7f090024
- public const int abc_menu_enter_shortcut_label = 2131296292;
+ public const int abc_action_menu_overflow_description = 2131296292;
// aapt resource value: 0x7f090025
- public const int abc_menu_function_shortcut_label = 2131296293;
+ public const int abc_action_mode_done = 2131296293;
// aapt resource value: 0x7f090026
- public const int abc_menu_meta_shortcut_label = 2131296294;
+ public const int abc_activity_chooser_view_see_all = 2131296294;
// aapt resource value: 0x7f090027
- public const int abc_menu_shift_shortcut_label = 2131296295;
+ public const int abc_activitychooserview_choose_application = 2131296295;
// aapt resource value: 0x7f090028
- public const int abc_menu_space_shortcut_label = 2131296296;
+ public const int abc_capital_off = 2131296296;
// aapt resource value: 0x7f090029
- public const int abc_menu_sym_shortcut_label = 2131296297;
+ public const int abc_capital_on = 2131296297;
- // aapt resource value: 0x7f09002a
- public const int abc_prepend_shortcut_label = 2131296298;
+ // aapt resource value: 0x7f09003e
+ public const int abc_font_family_body_1_material = 2131296318;
- // aapt resource value: 0x7f09002b
- public const int abc_search_hint = 2131296299;
+ // aapt resource value: 0x7f09003f
+ public const int abc_font_family_body_2_material = 2131296319;
- // aapt resource value: 0x7f09002c
- public const int abc_searchview_description_clear = 2131296300;
-
- // aapt resource value: 0x7f09002d
- public const int abc_searchview_description_query = 2131296301;
-
- // aapt resource value: 0x7f09002e
- public const int abc_searchview_description_search = 2131296302;
-
- // aapt resource value: 0x7f09002f
- public const int abc_searchview_description_submit = 2131296303;
-
- // aapt resource value: 0x7f090030
- public const int abc_searchview_description_voice = 2131296304;
-
- // aapt resource value: 0x7f090031
- public const int abc_shareactionprovider_share_with = 2131296305;
-
- // aapt resource value: 0x7f090032
- public const int abc_shareactionprovider_share_with_application = 2131296306;
-
- // aapt resource value: 0x7f090033
- public const int abc_toolbar_collapse_description = 2131296307;
+ // aapt resource value: 0x7f090040
+ public const int abc_font_family_button_material = 2131296320;
// aapt resource value: 0x7f090041
- public const int appbar_scrolling_view_behavior = 2131296321;
+ public const int abc_font_family_caption_material = 2131296321;
// aapt resource value: 0x7f090042
- public const int bottom_sheet_behavior = 2131296322;
+ public const int abc_font_family_display_1_material = 2131296322;
// aapt resource value: 0x7f090043
- public const int character_counter_content_description = 2131296323;
+ public const int abc_font_family_display_2_material = 2131296323;
// aapt resource value: 0x7f090044
- public const int character_counter_pattern = 2131296324;
+ public const int abc_font_family_display_3_material = 2131296324;
// aapt resource value: 0x7f090045
- public const int fab_transformation_scrim_behavior = 2131296325;
+ public const int abc_font_family_display_4_material = 2131296325;
// aapt resource value: 0x7f090046
- public const int fab_transformation_sheet_behavior = 2131296326;
+ public const int abc_font_family_headline_material = 2131296326;
// aapt resource value: 0x7f090047
- public const int hide_bottom_view_on_scroll_behavior = 2131296327;
-
- // aapt resource value: 0x7f090000
- public const int library_name = 2131296256;
-
- // aapt resource value: 0x7f090001
- public const int mr_button_content_description = 2131296257;
-
- // aapt resource value: 0x7f090002
- public const int mr_cast_button_connected = 2131296258;
-
- // aapt resource value: 0x7f090003
- public const int mr_cast_button_connecting = 2131296259;
-
- // aapt resource value: 0x7f090004
- public const int mr_cast_button_disconnected = 2131296260;
-
- // aapt resource value: 0x7f090016
- public const int mr_cast_dialog_title_view_placeholder = 2131296278;
-
- // aapt resource value: 0x7f090005
- public const int mr_chooser_searching = 2131296261;
-
- // aapt resource value: 0x7f090006
- public const int mr_chooser_title = 2131296262;
-
- // aapt resource value: 0x7f090007
- public const int mr_controller_album_art = 2131296263;
-
- // aapt resource value: 0x7f090008
- public const int mr_controller_casting_screen = 2131296264;
-
- // aapt resource value: 0x7f090009
- public const int mr_controller_close_description = 2131296265;
-
- // aapt resource value: 0x7f09000a
- public const int mr_controller_collapse_group = 2131296266;
-
- // aapt resource value: 0x7f09000b
- public const int mr_controller_disconnect = 2131296267;
-
- // aapt resource value: 0x7f09000c
- public const int mr_controller_expand_group = 2131296268;
-
- // aapt resource value: 0x7f09000d
- public const int mr_controller_no_info_available = 2131296269;
-
- // aapt resource value: 0x7f09000e
- public const int mr_controller_no_media_selected = 2131296270;
-
- // aapt resource value: 0x7f09000f
- public const int mr_controller_pause = 2131296271;
-
- // aapt resource value: 0x7f090010
- public const int mr_controller_play = 2131296272;
-
- // aapt resource value: 0x7f090011
- public const int mr_controller_stop = 2131296273;
-
- // aapt resource value: 0x7f090012
- public const int mr_controller_stop_casting = 2131296274;
-
- // aapt resource value: 0x7f090013
- public const int mr_controller_volume_slider = 2131296275;
-
- // aapt resource value: 0x7f090017
- public const int mr_dialog_device_header = 2131296279;
-
- // aapt resource value: 0x7f090018
- public const int mr_dialog_route_header = 2131296280;
-
- // aapt resource value: 0x7f090014
- public const int mr_system_route_name = 2131296276;
-
- // aapt resource value: 0x7f090015
- public const int mr_user_route_category_name = 2131296277;
+ public const int abc_font_family_menu_material = 2131296327;
// aapt resource value: 0x7f090048
- public const int mtrl_chip_close_icon_content_description = 2131296328;
+ public const int abc_font_family_subhead_material = 2131296328;
// aapt resource value: 0x7f090049
- public const int password_toggle_content_description = 2131296329;
+ public const int abc_font_family_title_material = 2131296329;
- // aapt resource value: 0x7f09004a
- public const int path_password_eye = 2131296330;
+ // aapt resource value: 0x7f09002a
+ public const int abc_menu_alt_shortcut_label = 2131296298;
- // aapt resource value: 0x7f09004b
- public const int path_password_eye_mask_strike_through = 2131296331;
+ // aapt resource value: 0x7f09002b
+ public const int abc_menu_ctrl_shortcut_label = 2131296299;
- // aapt resource value: 0x7f09004c
- public const int path_password_eye_mask_visible = 2131296332;
+ // aapt resource value: 0x7f09002c
+ public const int abc_menu_delete_shortcut_label = 2131296300;
- // aapt resource value: 0x7f09004d
- public const int path_password_strike_through = 2131296333;
+ // aapt resource value: 0x7f09002d
+ public const int abc_menu_enter_shortcut_label = 2131296301;
+
+ // aapt resource value: 0x7f09002e
+ public const int abc_menu_function_shortcut_label = 2131296302;
+
+ // aapt resource value: 0x7f09002f
+ public const int abc_menu_meta_shortcut_label = 2131296303;
+
+ // aapt resource value: 0x7f090030
+ public const int abc_menu_shift_shortcut_label = 2131296304;
+
+ // aapt resource value: 0x7f090031
+ public const int abc_menu_space_shortcut_label = 2131296305;
+
+ // aapt resource value: 0x7f090032
+ public const int abc_menu_sym_shortcut_label = 2131296306;
+
+ // aapt resource value: 0x7f090033
+ public const int abc_prepend_shortcut_label = 2131296307;
// aapt resource value: 0x7f090034
- public const int search_menu_title = 2131296308;
+ public const int abc_search_hint = 2131296308;
+
+ // aapt resource value: 0x7f090035
+ public const int abc_searchview_description_clear = 2131296309;
+
+ // aapt resource value: 0x7f090036
+ public const int abc_searchview_description_query = 2131296310;
+
+ // aapt resource value: 0x7f090037
+ public const int abc_searchview_description_search = 2131296311;
+
+ // aapt resource value: 0x7f090038
+ public const int abc_searchview_description_submit = 2131296312;
+
+ // aapt resource value: 0x7f090039
+ public const int abc_searchview_description_voice = 2131296313;
+
+ // aapt resource value: 0x7f09003a
+ public const int abc_shareactionprovider_share_with = 2131296314;
+
+ // aapt resource value: 0x7f09003b
+ public const int abc_shareactionprovider_share_with_application = 2131296315;
+
+ // aapt resource value: 0x7f09003c
+ public const int abc_toolbar_collapse_description = 2131296316;
+
+ // aapt resource value: 0x7f09004a
+ public const int appbar_scrolling_view_behavior = 2131296330;
+
+ // aapt resource value: 0x7f09004b
+ public const int bottom_sheet_behavior = 2131296331;
+
+ // aapt resource value: 0x7f09004c
+ public const int character_counter_content_description = 2131296332;
+
+ // aapt resource value: 0x7f09004d
+ public const int character_counter_pattern = 2131296333;
+
+ // aapt resource value: 0x7f090008
+ public const int common_google_play_services_unknown_issue = 2131296264;
+
+ // aapt resource value: 0x7f090002
+ public const int default_web_client_id = 2131296258;
// aapt resource value: 0x7f09004e
- public const int status_bar_notification_info_overflow = 2131296334;
+ public const int fab_transformation_scrim_behavior = 2131296334;
+
+ // aapt resource value: 0x7f09004f
+ public const int fab_transformation_sheet_behavior = 2131296335;
+
+ // aapt resource value: 0x7f090009
+ public const int fcm_fallback_notification_channel_label = 2131296265;
+
+ // aapt resource value: 0x7f090003
+ public const int firebase_database_url = 2131296259;
+
+ // aapt resource value: 0x7f090000
+ public const int gcm_defaultSenderId = 2131296256;
+
+ // aapt resource value: 0x7f090004
+ public const int google_api_key = 2131296260;
+
+ // aapt resource value: 0x7f090001
+ public const int google_app_id = 2131296257;
+
+ // aapt resource value: 0x7f090005
+ public const int google_crash_reporting_api_key = 2131296261;
+
+ // aapt resource value: 0x7f090006
+ public const int google_storage_bucket = 2131296262;
+
+ // aapt resource value: 0x7f090050
+ public const int hide_bottom_view_on_scroll_behavior = 2131296336;
+
+ // aapt resource value: 0x7f090007
+ public const int library_name = 2131296263;
+
+ // aapt resource value: 0x7f09000a
+ public const int mr_button_content_description = 2131296266;
+
+ // aapt resource value: 0x7f09000b
+ public const int mr_cast_button_connected = 2131296267;
+
+ // aapt resource value: 0x7f09000c
+ public const int mr_cast_button_connecting = 2131296268;
+
+ // aapt resource value: 0x7f09000d
+ public const int mr_cast_button_disconnected = 2131296269;
+
+ // aapt resource value: 0x7f09001f
+ public const int mr_cast_dialog_title_view_placeholder = 2131296287;
+
+ // aapt resource value: 0x7f09000e
+ public const int mr_chooser_searching = 2131296270;
+
+ // aapt resource value: 0x7f09000f
+ public const int mr_chooser_title = 2131296271;
+
+ // aapt resource value: 0x7f090010
+ public const int mr_controller_album_art = 2131296272;
+
+ // aapt resource value: 0x7f090011
+ public const int mr_controller_casting_screen = 2131296273;
+
+ // aapt resource value: 0x7f090012
+ public const int mr_controller_close_description = 2131296274;
+
+ // aapt resource value: 0x7f090013
+ public const int mr_controller_collapse_group = 2131296275;
+
+ // aapt resource value: 0x7f090014
+ public const int mr_controller_disconnect = 2131296276;
+
+ // aapt resource value: 0x7f090015
+ public const int mr_controller_expand_group = 2131296277;
+
+ // aapt resource value: 0x7f090016
+ public const int mr_controller_no_info_available = 2131296278;
+
+ // aapt resource value: 0x7f090017
+ public const int mr_controller_no_media_selected = 2131296279;
+
+ // aapt resource value: 0x7f090018
+ public const int mr_controller_pause = 2131296280;
+
+ // aapt resource value: 0x7f090019
+ public const int mr_controller_play = 2131296281;
+
+ // aapt resource value: 0x7f09001a
+ public const int mr_controller_stop = 2131296282;
+
+ // aapt resource value: 0x7f09001b
+ public const int mr_controller_stop_casting = 2131296283;
+
+ // aapt resource value: 0x7f09001c
+ public const int mr_controller_volume_slider = 2131296284;
+
+ // aapt resource value: 0x7f090020
+ public const int mr_dialog_device_header = 2131296288;
+
+ // aapt resource value: 0x7f090021
+ public const int mr_dialog_route_header = 2131296289;
+
+ // aapt resource value: 0x7f09001d
+ public const int mr_system_route_name = 2131296285;
+
+ // aapt resource value: 0x7f09001e
+ public const int mr_user_route_category_name = 2131296286;
+
+ // aapt resource value: 0x7f090051
+ public const int mtrl_chip_close_icon_content_description = 2131296337;
+
+ // aapt resource value: 0x7f090052
+ public const int password_toggle_content_description = 2131296338;
+
+ // aapt resource value: 0x7f090053
+ public const int path_password_eye = 2131296339;
+
+ // aapt resource value: 0x7f090054
+ public const int path_password_eye_mask_strike_through = 2131296340;
+
+ // aapt resource value: 0x7f090055
+ public const int path_password_eye_mask_visible = 2131296341;
+
+ // aapt resource value: 0x7f090056
+ public const int path_password_strike_through = 2131296342;
+
+ // aapt resource value: 0x7f09003d
+ public const int search_menu_title = 2131296317;
+
+ // aapt resource value: 0x7f090057
+ public const int status_bar_notification_info_overflow = 2131296343;
static String()
{
diff --git a/src/Android/Services/AndroidPushNotificationService.cs b/src/Android/Services/AndroidPushNotificationService.cs
new file mode 100644
index 000000000..5b536c5cd
--- /dev/null
+++ b/src/Android/Services/AndroidPushNotificationService.cs
@@ -0,0 +1,50 @@
+#if !FDROID
+using System;
+using System.Threading.Tasks;
+using Bit.App.Abstractions;
+using Bit.Core;
+using Bit.Core.Abstractions;
+using Xamarin.Forms;
+
+namespace Bit.Droid.Services
+{
+ public class AndroidPushNotificationService : IPushNotificationService
+ {
+ private readonly IStorageService _storageService;
+ private readonly IPushNotificationListenerService _pushNotificationListenerService;
+
+ public AndroidPushNotificationService(
+ IStorageService storageService,
+ IPushNotificationListenerService pushNotificationListenerService)
+ {
+ _storageService = storageService;
+ _pushNotificationListenerService = pushNotificationListenerService;
+ }
+
+ public async Task GetTokenAsync()
+ {
+ return await _storageService.GetAsync(Constants.PushCurrentTokenKey);
+ }
+
+ public async Task RegisterAsync()
+ {
+ var registeredToken = await _storageService.GetAsync(Constants.PushRegisteredTokenKey);
+ var currentToken = await GetTokenAsync();
+ if(!string.IsNullOrWhiteSpace(registeredToken) && registeredToken != currentToken)
+ {
+ await _pushNotificationListenerService.OnRegisteredAsync(registeredToken, Device.Android);
+ }
+ else
+ {
+ await _storageService.SaveAsync(Constants.PushLastRegistrationDateKey, DateTime.UtcNow);
+ }
+ }
+
+ public Task UnregisterAsync()
+ {
+ // Do we ever need to unregister?
+ return Task.FromResult(0);
+ }
+ }
+}
+#endif
diff --git a/src/Android/ci-build-apks.ps1 b/src/Android/ci-build-apks.ps1
new file mode 100644
index 000000000..7c8057fb0
--- /dev/null
+++ b/src/Android/ci-build-apks.ps1
@@ -0,0 +1,87 @@
+$rootPath = $env:APPVEYOR_BUILD_FOLDER;
+
+$androidPath = $($rootPath + "\src\Android\Android.csproj");
+$appPath = $($rootPath + "\src\App\App.csproj");
+
+echo "##### Increment Version"
+
+$androidManifest = $($rootPath + "\src\Android\Properties\AndroidManifest.xml");
+
+$xml=New-Object XML;
+$xml.Load($androidManifest);
+
+$node=$xml.SelectNodes("/manifest");
+$node.SetAttribute("android:versionCode", $env:APPVEYOR_BUILD_NUMBER);
+
+$xml.Save($androidManifest);
+
+echo "##### Decrypt Keystore"
+
+$encKeystorePath = $($rootPath + "\src\Android\8bit.keystore.enc");
+$secureFilePath = $($rootPath + "\secure-file\tools\secure-file.exe");
+
+Invoke-Expression "& `"$secureFilePath`" -decrypt $($encKeystorePath) -secret $($env:keystore_dec_secret)"
+
+echo "##### Sign Release Configuration"
+
+msbuild "$($androidPath)" "/t:SignAndroidPackage" "/p:Configuration=Release" "/p:AndroidKeyStore=true" "/p:AndroidSigningKeyAlias=bitwarden" "/p:AndroidSigningKeyPass=$($env:keystore_password)" "/p:AndroidSigningKeyStore=8bit.keystore" "/p:AndroidSigningStorePass=$($env:keystore_password)" "/v:quiet"
+
+echo "##### Copy Release apk to project root"
+
+$signedApkPath = $($rootPath + "\src\Android\bin\Release\com.x8bit.bitwarden-Signed.apk");
+$signedApkDestPath = $($rootPath + "\com.x8bit.bitwarden-" + $env:APPVEYOR_BUILD_NUMBER + ".apk");
+
+Copy-Item $signedApkPath $signedApkDestPath
+
+echo "##### Clean Android and App"
+
+msbuild "$($androidPath)" "/t:Clean" "/p:Configuration=FDroid"
+msbuild "$($appPath)" "/t:Clean" "/p:Configuration=FDroid"
+
+echo "##### Backup project files"
+
+Copy-Item $androidPath $($androidPath + ".original");
+Copy-Item $appPath $($appPath + ".original");
+
+echo "##### Uninstall from Android.csproj"
+
+$xml=New-Object XML;
+$xml.Load($androidPath);
+
+$ns=New-Object System.Xml.XmlNamespaceManager($xml.NameTable);
+$ns.AddNamespace("ns", $xml.DocumentElement.NamespaceURI);
+
+$firebaseNode=$xml.SelectSingleNode("/ns:Project/ns:ItemGroup/ns:PackageReference[@Include='Xamarin.Firebase.Messaging']", $ns);
+$firebaseNode.ParentNode.RemoveChild($firebaseNode);
+
+$xml.Save($androidPath);
+
+echo "##### Uninstall from App.csproj"
+
+$xml=New-Object XML;
+$xml.Load($appPath);
+
+$hockeyNode=$xml.SelectSingleNode("/Project/ItemGroup/PackageReference[@Include='HockeySDK.Xamarin']");
+$hockeyNode.ParentNode.RemoveChild($hockeyNode);
+
+$xml.Save($appPath);
+
+echo "##### Restore NuGet"
+
+$nugetPath = $($rootPath + "\nuget.exe");
+
+Invoke-Expression "& `"$nugetPath`" restore"
+
+echo "##### Build and Sign FDroid Configuration"
+
+msbuild "$($androidPath)" "/logger:C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" "/p:Configuration=FDroid"
+msbuild "$($androidPath)" "/t:SignAndroidPackage" "/p:Configuration=FDroid" "/p:AndroidKeyStore=true" "/p:AndroidSigningKeyAlias=bitwarden" "/p:AndroidSigningKeyPass=$($env:keystore_password)" "/p:AndroidSigningKeyStore=8bit.keystore" "/p:AndroidSigningStorePass=$($env:keystore_password)" "/v:quiet"
+
+echo "##### Copy FDroid apk to project root"
+
+$signedApkPath = $($rootPath + "\src\Android\bin\FDroid\com.x8bit.bitwarden-Signed.apk");
+$signedApkDestPath = $($rootPath + "\com.x8bit.bitwarden-fdroid-" + $env:APPVEYOR_BUILD_NUMBER + ".apk");
+
+Copy-Item $signedApkPath $signedApkDestPath
+
+echo "##### Done"
diff --git a/src/Android/google-services.json b/src/Android/google-services.json
new file mode 100644
index 000000000..5e12a62b9
--- /dev/null
+++ b/src/Android/google-services.json
@@ -0,0 +1,42 @@
+{
+ "project_info": {
+ "project_number": "1093287226212",
+ "firebase_url": "https://bitwarden-dev.firebaseio.com",
+ "project_id": "bitwarden-dev",
+ "storage_bucket": "bitwarden-dev.appspot.com"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:1093287226212:android:f8d67b786db1b844",
+ "android_client_info": {
+ "package_name": "com.x8bit.bitwarden"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "1093287226212-m4mv8ho387tdgosc9lsltnmruul7ouo0.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyA4Xkn0do7Ky_OLff2L_7MXeNK6s-JVgXg"
+ }
+ ],
+ "services": {
+ "analytics_service": {
+ "status": 1
+ },
+ "appinvite_service": {
+ "status": 1,
+ "other_platform_oauth_client": []
+ },
+ "ads_service": {
+ "status": 2
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/src/Android/google-services.json.enc b/src/Android/google-services.json.enc
new file mode 100644
index 000000000..1a4c873cb
Binary files /dev/null and b/src/Android/google-services.json.enc differ
diff --git a/src/App/Abstractions/IPushNotificationListenerService.cs b/src/App/Abstractions/IPushNotificationListenerService.cs
new file mode 100644
index 000000000..65104a1c9
--- /dev/null
+++ b/src/App/Abstractions/IPushNotificationListenerService.cs
@@ -0,0 +1,14 @@
+using Newtonsoft.Json.Linq;
+using System.Threading.Tasks;
+
+namespace Bit.App.Abstractions
+{
+ public interface IPushNotificationListenerService
+ {
+ Task OnMessageAsync(JObject values, string device);
+ Task OnRegisteredAsync(string token, string device);
+ void OnUnregistered(string device);
+ void OnError(string message, string device);
+ bool ShouldShowNotification();
+ }
+}
diff --git a/src/App/Abstractions/IPushNotificationService.cs b/src/App/Abstractions/IPushNotificationService.cs
new file mode 100644
index 000000000..ae227f292
--- /dev/null
+++ b/src/App/Abstractions/IPushNotificationService.cs
@@ -0,0 +1,11 @@
+using System.Threading.Tasks;
+
+namespace Bit.App.Abstractions
+{
+ public interface IPushNotificationService
+ {
+ Task GetTokenAsync();
+ Task RegisterAsync();
+ Task UnregisterAsync();
+ }
+}
diff --git a/src/App/Pages/Vault/GroupingsPage/GroupingsPage.xaml.cs b/src/App/Pages/Vault/GroupingsPage/GroupingsPage.xaml.cs
index 3df964d9e..9053f02f6 100644
--- a/src/App/Pages/Vault/GroupingsPage/GroupingsPage.xaml.cs
+++ b/src/App/Pages/Vault/GroupingsPage/GroupingsPage.xaml.cs
@@ -1,4 +1,6 @@
-using Bit.App.Resources;
+using Bit.App.Abstractions;
+using Bit.App.Resources;
+using Bit.Core;
using Bit.Core.Abstractions;
using Bit.Core.Enums;
using Bit.Core.Utilities;
@@ -12,6 +14,8 @@ namespace Bit.App.Pages
{
private readonly IBroadcasterService _broadcasterService;
private readonly ISyncService _syncService;
+ private readonly IPushNotificationService _pushNotificationService;
+ private readonly IStorageService _storageService;
private readonly GroupingsPageViewModel _vm;
private readonly string _pageName;
@@ -23,6 +27,8 @@ namespace Bit.App.Pages
SetActivityIndicator(_mainContent);
_broadcasterService = ServiceContainer.Resolve("broadcasterService");
_syncService = ServiceContainer.Resolve("syncService");
+ _pushNotificationService = ServiceContainer.Resolve("pushNotificationService");
+ _storageService = ServiceContainer.Resolve("storageService");
_vm = BindingContext as GroupingsPageViewModel;
_vm.Page = this;
_vm.MainPage = mainPage;
@@ -71,6 +77,30 @@ namespace Bit.App.Pages
}
}
}, _mainContent);
+
+ // Push registration
+ var lastPushRegistration = await _storageService.GetAsync(Constants.PushLastRegistrationDateKey);
+ lastPushRegistration = lastPushRegistration.GetValueOrDefault(DateTime.MinValue);
+ if(Device.RuntimePlatform == Device.iOS)
+ {
+ var pushPromptShow = await _storageService.GetAsync(Constants.PushInitialPromptShownKey);
+ if(!pushPromptShow.GetValueOrDefault(false))
+ {
+ await _storageService.SaveAsync(Constants.PushInitialPromptShownKey, true);
+ await DisplayAlert(AppResources.EnableAutomaticSyncing, AppResources.PushNotificationAlert,
+ AppResources.OkGotIt);
+ }
+ if(!pushPromptShow.GetValueOrDefault(false) ||
+ DateTime.UtcNow - lastPushRegistration > TimeSpan.FromDays(1))
+ {
+ await _pushNotificationService.RegisterAsync();
+ }
+ }
+ else if(Device.RuntimePlatform == Device.Android &&
+ DateTime.UtcNow - lastPushRegistration > TimeSpan.FromDays(1))
+ {
+ await _pushNotificationService.RegisterAsync();
+ }
}
protected override void OnDisappearing()
diff --git a/src/App/Services/NoopPushNotificationListenerService.cs b/src/App/Services/NoopPushNotificationListenerService.cs
new file mode 100644
index 000000000..7bb42b424
--- /dev/null
+++ b/src/App/Services/NoopPushNotificationListenerService.cs
@@ -0,0 +1,32 @@
+using Newtonsoft.Json.Linq;
+using Bit.App.Abstractions;
+using System.Threading.Tasks;
+
+namespace Bit.App.Services
+{
+ public class NoopPushNotificationListenerService : IPushNotificationListenerService
+ {
+ public Task OnMessageAsync(JObject value, string deviceType)
+ {
+ return Task.FromResult(0);
+ }
+
+ public Task OnRegisteredAsync(string token, string deviceType)
+ {
+ return Task.FromResult(0);
+ }
+
+ public void OnUnregistered(string deviceType)
+ {
+ }
+
+ public void OnError(string message, string deviceType)
+ {
+ }
+
+ public bool ShouldShowNotification()
+ {
+ return false;
+ }
+ }
+}
diff --git a/src/App/Services/NoopPushNotificationService.cs b/src/App/Services/NoopPushNotificationService.cs
new file mode 100644
index 000000000..edf501a73
--- /dev/null
+++ b/src/App/Services/NoopPushNotificationService.cs
@@ -0,0 +1,23 @@
+using System.Threading.Tasks;
+using Bit.App.Abstractions;
+
+namespace Bit.App.Services
+{
+ public class NoopPushNotificationService : IPushNotificationService
+ {
+ public Task GetTokenAsync()
+ {
+ return Task.FromResult(null as string);
+ }
+
+ public Task RegisterAsync()
+ {
+ return Task.FromResult(0);
+ }
+
+ public Task UnregisterAsync()
+ {
+ return Task.FromResult(0);
+ }
+ }
+}
diff --git a/src/App/Services/PushNotificationListenerService.cs b/src/App/Services/PushNotificationListenerService.cs
new file mode 100644
index 000000000..c06abc84e
--- /dev/null
+++ b/src/App/Services/PushNotificationListenerService.cs
@@ -0,0 +1,187 @@
+#if !FDROID
+using System.Diagnostics;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using Bit.App.Abstractions;
+using System;
+using Xamarin.Forms;
+using Bit.Core.Abstractions;
+using Bit.Core.Utilities;
+using System.Threading.Tasks;
+using Bit.Core.Enums;
+using Bit.Core;
+using Bit.Core.Models.Response;
+using Bit.Core.Exceptions;
+
+namespace Bit.App.Services
+{
+ public class PushNotificationListenerService : IPushNotificationListenerService
+ {
+ private bool _showNotification;
+ private bool _resolved;
+ private IStorageService _storageService;
+ private ISyncService _syncService;
+ private IUserService _userService;
+ private IAppIdService _appIdService;
+ private IApiService _apiService;
+ private IMessagingService _messagingService;
+
+ public async Task OnMessageAsync(JObject value, string deviceType)
+ {
+ Resolve();
+ if(value == null)
+ {
+ return;
+ }
+
+ _showNotification = false;
+ Debug.WriteLine("Message Arrived: {0}", JsonConvert.SerializeObject(value));
+
+ NotificationResponse notification = null;
+ if(deviceType == Device.Android)
+ {
+ notification = value.ToObject();
+ }
+ else
+ {
+ if(!value.TryGetValue("data", StringComparison.OrdinalIgnoreCase, out JToken dataToken) ||
+ dataToken == null)
+ {
+ return;
+ }
+ notification = dataToken.ToObject();
+ }
+
+ var appId = await _appIdService.GetAppIdAsync();
+ if(notification?.Payload == null || notification.ContextId == appId)
+ {
+ return;
+ }
+
+ var myUserId = await _userService.GetUserIdAsync();
+ var isAuthenticated = await _userService.IsAuthenticatedAsync();
+ switch(notification.Type)
+ {
+ case NotificationType.SyncCipherUpdate:
+ case NotificationType.SyncCipherCreate:
+ var cipherCreateUpdateMessage = JsonConvert.DeserializeObject(
+ notification.Payload);
+ if(isAuthenticated && cipherCreateUpdateMessage.UserId == myUserId)
+ {
+ await _syncService.SyncUpsertCipherAsync(cipherCreateUpdateMessage,
+ notification.Type == NotificationType.SyncCipherUpdate);
+ }
+ break;
+ case NotificationType.SyncFolderUpdate:
+ case NotificationType.SyncFolderCreate:
+ var folderCreateUpdateMessage = JsonConvert.DeserializeObject(
+ notification.Payload);
+ if(isAuthenticated && folderCreateUpdateMessage.UserId == myUserId)
+ {
+ await _syncService.SyncUpsertFolderAsync(folderCreateUpdateMessage,
+ notification.Type == NotificationType.SyncFolderUpdate);
+ }
+ break;
+ case NotificationType.SyncLoginDelete:
+ case NotificationType.SyncCipherDelete:
+ var loginDeleteMessage = JsonConvert.DeserializeObject(
+ notification.Payload);
+ if(isAuthenticated && loginDeleteMessage.UserId == myUserId)
+ {
+ await _syncService.SyncDeleteCipherAsync(loginDeleteMessage);
+ }
+ break;
+ case NotificationType.SyncFolderDelete:
+ var folderDeleteMessage = JsonConvert.DeserializeObject(
+ notification.Payload);
+ if(isAuthenticated && folderDeleteMessage.UserId == myUserId)
+ {
+ await _syncService.SyncDeleteFolderAsync(folderDeleteMessage);
+ }
+ break;
+ case NotificationType.SyncCiphers:
+ case NotificationType.SyncVault:
+ case NotificationType.SyncSettings:
+ if(isAuthenticated)
+ {
+ await _syncService.FullSyncAsync(false);
+ }
+ break;
+ case NotificationType.SyncOrgKeys:
+ if(isAuthenticated)
+ {
+ await _apiService.RefreshIdentityTokenAsync();
+ await _syncService.FullSyncAsync(true);
+ }
+ break;
+ case NotificationType.LogOut:
+ if(isAuthenticated)
+ {
+ _messagingService.Send("logout");
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ public async Task OnRegisteredAsync(string token, string deviceType)
+ {
+ Resolve();
+ Debug.WriteLine(string.Format("Push Notification - Device Registered - Token : {0}", token));
+ var isAuthenticated = await _userService.IsAuthenticatedAsync();
+ if(!isAuthenticated)
+ {
+ return;
+ }
+
+ var appId = await _appIdService.GetAppIdAsync();
+ try
+ {
+ await _apiService.PutDeviceTokenAsync(appId,
+ new Core.Models.Request.DeviceTokenRequest { PushToken = token });
+ Debug.WriteLine("Registered device with server.");
+ await _storageService.SaveAsync(Constants.PushLastRegistrationDateKey, DateTime.UtcNow);
+ if(deviceType == Device.Android)
+ {
+ await _storageService.SaveAsync(Constants.PushCurrentTokenKey, token);
+ }
+ }
+ catch(ApiException)
+ {
+ Debug.WriteLine("Failed to register device.");
+ }
+ }
+
+ public void OnUnregistered(string deviceType)
+ {
+ Debug.WriteLine("Push Notification - Device Unnregistered");
+ }
+
+ public void OnError(string message, string deviceType)
+ {
+ Debug.WriteLine(string.Format("Push notification error - {0}", message));
+ }
+
+ public bool ShouldShowNotification()
+ {
+ return _showNotification;
+ }
+
+ private void Resolve()
+ {
+ if(_resolved)
+ {
+ return;
+ }
+ _storageService = ServiceContainer.Resolve("storageService");
+ _syncService = ServiceContainer.Resolve("syncService");
+ _userService = ServiceContainer.Resolve("userService");
+ _appIdService = ServiceContainer.Resolve("appIdService");
+ _apiService = ServiceContainer.Resolve("apiService");
+ _messagingService = ServiceContainer.Resolve("messagingService");
+ _resolved = true;
+ }
+ }
+}
+#endif
diff --git a/src/Core/Abstractions/IApiService.cs b/src/Core/Abstractions/IApiService.cs
index e8dae133b..a44665afb 100644
--- a/src/Core/Abstractions/IApiService.cs
+++ b/src/Core/Abstractions/IApiService.cs
@@ -45,5 +45,6 @@ namespace Bit.Core.Abstractions
string organizationId);
Task> GetHibpBreachAsync(string username);
Task PostTwoFactorEmailAsync(TwoFactorEmailRequest request);
+ Task PutDeviceTokenAsync(string identifier, DeviceTokenRequest request);
}
}
diff --git a/src/Core/Constants.cs b/src/Core/Constants.cs
index 33eb1fbd1..8211aad70 100644
--- a/src/Core/Constants.cs
+++ b/src/Core/Constants.cs
@@ -16,6 +16,10 @@
public static string AccessibilityAutofillPasswordFieldKey = "accessibilityAutofillPasswordField";
public static string AccessibilityAutofillPersistNotificationKey = "accessibilityAutofillPersistNotification";
public static string DisableFaviconKey = "disableFavicon";
+ public static string PushRegisteredTokenKey = "pushRegisteredToken";
+ public static string PushCurrentTokenKey = "pushCurrentToken";
+ public static string PushLastRegistrationDateKey = "pushLastRegistrationDate";
+ public static string PushInitialPromptShownKey = "pushInitialPromptShown";
public const int SelectFileRequestCode = 42;
public const int SelectFilePermissionRequestCode = 43;
}
diff --git a/src/Core/Models/Request/DeviceTokenRequest.cs b/src/Core/Models/Request/DeviceTokenRequest.cs
new file mode 100644
index 000000000..8806f3b0a
--- /dev/null
+++ b/src/Core/Models/Request/DeviceTokenRequest.cs
@@ -0,0 +1,7 @@
+namespace Bit.Core.Models.Request
+{
+ public class DeviceTokenRequest
+ {
+ public string PushToken { get; set; }
+ }
+}
diff --git a/src/Core/Models/Response/NotificationResponse.cs b/src/Core/Models/Response/NotificationResponse.cs
index 34ad01ddf..8e37b2673 100644
--- a/src/Core/Models/Response/NotificationResponse.cs
+++ b/src/Core/Models/Response/NotificationResponse.cs
@@ -4,10 +4,12 @@ using System.Collections.Generic;
namespace Bit.Core.Models.Response
{
- public class PushNotificationResponse
+ public class NotificationResponse
{
+ public string ContextId { get; set; }
public NotificationType Type { get; set; }
public string Payload { get; set; }
+ public object PayloadObject { get; set; }
}
public class SyncCipherNotification
diff --git a/src/Core/Services/ApiService.cs b/src/Core/Services/ApiService.cs
index cb44fc70a..600d1f11c 100644
--- a/src/Core/Services/ApiService.cs
+++ b/src/Core/Services/ApiService.cs
@@ -281,6 +281,16 @@ namespace Bit.Core.Services
#endregion
+ #region Device APIs
+
+ public Task PutDeviceTokenAsync(string identifier, DeviceTokenRequest request)
+ {
+ return SendAsync(
+ HttpMethod.Post, $"identifier/{identifier}/token", request, true, false);
+ }
+
+ #endregion
+
#region HIBP APIs
public Task> GetHibpBreachAsync(string username)
diff --git a/src/iOS/Services/iOSPushNotificationHandler.cs b/src/iOS/Services/iOSPushNotificationHandler.cs
new file mode 100644
index 000000000..85345c148
--- /dev/null
+++ b/src/iOS/Services/iOSPushNotificationHandler.cs
@@ -0,0 +1,66 @@
+using Foundation;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Diagnostics;
+using Xamarin.Forms;
+
+namespace Bit.iOS.Services
+{
+ public class iOSPushNotificationHandler
+ {
+ private const string TokenSetting = "token";
+ private const string DomainName = "iOSPushNotificationService";
+
+ private readonly IPushNotificationListener _pushNotificationListener;
+
+ public iOSPushNotificationHandler(
+ IPushNotificationListener pushNotificationListener)
+ {
+ _pushNotificationListener = pushNotificationListener;
+ }
+
+ public void OnMessageReceived(NSDictionary userInfo)
+ {
+ var json = DictionaryToJson(userInfo);
+ var values = JObject.Parse(json);
+ var keyAps = new NSString("aps");
+ if(userInfo.ContainsKey(keyAps) && userInfo.ValueForKey(keyAps) is NSDictionary aps)
+ {
+ foreach(var apsKey in aps)
+ {
+ if(!values.TryGetValue(apsKey.Key.ToString(), out JToken temp))
+ {
+ values.Add(apsKey.Key.ToString(), apsKey.Value.ToString());
+ }
+ }
+ }
+ _pushNotificationListener.OnMessage(values, Device.iOS);
+ }
+
+ public void OnErrorReceived(NSError error)
+ {
+ Debug.WriteLine("{0} - Registration Failed.", DomainName);
+ _pushNotificationListener.OnError(error.LocalizedDescription, Device.iOS);
+ }
+
+ public void OnRegisteredSuccess(NSData token)
+ {
+ Debug.WriteLine("{0} - Successfully Registered.", DomainName);
+ var trimmedDeviceToken = token.Description;
+ if(!string.IsNullOrWhiteSpace(trimmedDeviceToken))
+ {
+ trimmedDeviceToken = trimmedDeviceToken.Trim('<').Trim('>').Trim().Replace(" ", string.Empty);
+ }
+ Console.WriteLine("{0} - Token: {1}", DomainName, trimmedDeviceToken);
+ _pushNotificationListener.OnRegistered(trimmedDeviceToken, Device.iOS);
+ NSUserDefaults.StandardUserDefaults.SetString(trimmedDeviceToken, TokenSetting);
+ NSUserDefaults.StandardUserDefaults.Synchronize();
+ }
+
+ private static string DictionaryToJson(NSDictionary dictionary)
+ {
+ var json = NSJsonSerialization.Serialize(dictionary, NSJsonWritingOptions.PrettyPrinted, out NSError error);
+ return json.ToString(NSStringEncoding.UTF8);
+ }
+ }
+}
diff --git a/src/iOS/Services/iOSPushNotificationService.cs b/src/iOS/Services/iOSPushNotificationService.cs
new file mode 100644
index 000000000..dedd715a5
--- /dev/null
+++ b/src/iOS/Services/iOSPushNotificationService.cs
@@ -0,0 +1,36 @@
+using System.Threading.Tasks;
+using Bit.App.Abstractions;
+using Foundation;
+using UIKit;
+
+namespace Bit.iOS.Services
+{
+ public class iOSPushNotificationService : IPushNotificationService
+ {
+ private const string TokenSetting = "token";
+
+ public Task GetTokenAsync()
+ {
+ return Task.FromResult(NSUserDefaults.StandardUserDefaults.StringForKey(TokenSetting));
+ }
+
+ public Task RegisterAsync()
+ {
+ var userNotificationTypes = UIUserNotificationType.Alert | UIUserNotificationType.Badge |
+ UIUserNotificationType.Sound;
+ var settings = UIUserNotificationSettings.GetSettingsForTypes(userNotificationTypes, null);
+ UIApplication.SharedApplication.RegisterUserNotificationSettings(settings);
+ return Task.FromResult(0);
+ }
+
+ public Task UnregisterAsync()
+ {
+ UIApplication.SharedApplication.UnregisterForRemoteNotifications();
+ // TODO: unregister call
+ // _pushNotificationListener.OnUnregistered(Device.iOS);
+ NSUserDefaults.StandardUserDefaults.SetString(string.Empty, TokenSetting);
+ NSUserDefaults.StandardUserDefaults.Synchronize();
+ return Task.FromResult(0);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/iOS/iOS.csproj b/src/iOS/iOS.csproj
index d0b42c801..58fcba9f6 100644
--- a/src/iOS/iOS.csproj
+++ b/src/iOS/iOS.csproj
@@ -94,6 +94,8 @@
+
+