1 #pragma once
2 
3 
4 
5 #ifdef __cplusplus
6 
7 #include <memory>
8 
9 namespace android::nfc {
10 
11 class flag_provider_interface {
12 public:
13     virtual ~flag_provider_interface() = default;
14     virtual bool enable_card_emulation_euicc() = 0;
15     virtual bool enable_nfc_charging() = 0;
16     virtual bool enable_nfc_mainline() = 0;
17     virtual bool enable_nfc_reader_option() = 0;
18     virtual bool enable_nfc_set_discovery_tech() = 0;
19     virtual bool enable_nfc_user_restriction() = 0;
20     virtual bool enable_tag_detection_broadcasts() = 0;
21     virtual bool nfc_action_manage_services_settings() = 0;
22     virtual bool nfc_associated_role_services() = 0;
23     virtual bool nfc_check_tag_intent_preference() = 0;
24     virtual bool nfc_event_listener() = 0;
25     virtual bool nfc_observe_mode() = 0;
26     virtual bool nfc_observe_mode_st_shim() = 0;
27     virtual bool nfc_oem_extension() = 0;
28     virtual bool nfc_override_recover_routing_table() = 0;
29     virtual bool nfc_persist_log() = 0;
30     virtual bool nfc_read_polling_loop() = 0;
31     virtual bool nfc_read_polling_loop_st_shim() = 0;
32     virtual bool nfc_set_default_disc_tech() = 0;
33     virtual bool nfc_set_service_enabled_for_category_other() = 0;
34     virtual bool nfc_state_change() = 0;
35     virtual bool nfc_state_change_security_log_event_enabled() = 0;
36     virtual bool nfc_vendor_cmd() = 0;
37     virtual bool nfc_watchdog() = 0;
38 };
39 
40 extern std::unique_ptr<flag_provider_interface> provider_;
41 
42 
enable_card_emulation_euicc()43 inline bool enable_card_emulation_euicc() {
44     return false;
45 }
enable_nfc_charging()46 inline bool enable_nfc_charging() {
47     return false;
48 }
enable_nfc_mainline()49 inline bool enable_nfc_mainline() {
50     return true;
51 }
enable_nfc_reader_option()52 inline bool enable_nfc_reader_option() {
53     return true;
54 }
enable_nfc_set_discovery_tech()55 inline bool enable_nfc_set_discovery_tech() {
56     return true;
57 }
enable_nfc_user_restriction()58 inline bool enable_nfc_user_restriction() {
59     return true;
60 }
enable_tag_detection_broadcasts()61 inline bool enable_tag_detection_broadcasts() {
62     return false;
63 }
nfc_action_manage_services_settings()64 inline bool nfc_action_manage_services_settings() {
65     return false;
66 }
nfc_associated_role_services()67 inline bool nfc_associated_role_services() {
68     return false;
69 }
nfc_check_tag_intent_preference()70 inline bool nfc_check_tag_intent_preference() {
71     return false;
72 }
nfc_event_listener()73 inline bool nfc_event_listener() {
74     return false;
75 }
nfc_observe_mode()76 inline bool nfc_observe_mode() {
77     return true;
78 }
nfc_observe_mode_st_shim()79 inline bool nfc_observe_mode_st_shim() {
80     return true;
81 }
nfc_oem_extension()82 inline bool nfc_oem_extension() {
83     return false;
84 }
nfc_override_recover_routing_table()85 inline bool nfc_override_recover_routing_table() {
86     return false;
87 }
nfc_persist_log()88 inline bool nfc_persist_log() {
89     return false;
90 }
nfc_read_polling_loop()91 inline bool nfc_read_polling_loop() {
92     return true;
93 }
nfc_read_polling_loop_st_shim()94 inline bool nfc_read_polling_loop_st_shim() {
95     return true;
96 }
nfc_set_default_disc_tech()97 inline bool nfc_set_default_disc_tech() {
98     return false;
99 }
nfc_set_service_enabled_for_category_other()100 inline bool nfc_set_service_enabled_for_category_other() {
101     return false;
102 }
nfc_state_change()103 inline bool nfc_state_change() {
104     return false;
105 }
nfc_state_change_security_log_event_enabled()106 inline bool nfc_state_change_security_log_event_enabled() {
107     return false;
108 }
nfc_vendor_cmd()109 inline bool nfc_vendor_cmd() {
110     return true;
111 }
nfc_watchdog()112 inline bool nfc_watchdog() {
113     return true;
114 }
115 
116 }
117 
118 extern "C" {
119 #endif // __cplusplus
120 
121 
122 bool android_nfc_enable_card_emulation_euicc();
123 bool android_nfc_enable_nfc_charging();
124 bool android_nfc_enable_nfc_mainline();
125 bool android_nfc_enable_nfc_reader_option();
126 bool android_nfc_enable_nfc_set_discovery_tech();
127 bool android_nfc_enable_nfc_user_restriction();
128 bool android_nfc_enable_tag_detection_broadcasts();
129 bool android_nfc_nfc_action_manage_services_settings();
130 bool android_nfc_nfc_associated_role_services();
131 bool android_nfc_nfc_check_tag_intent_preference();
132 bool android_nfc_nfc_event_listener();
133 bool android_nfc_nfc_observe_mode();
134 bool android_nfc_nfc_observe_mode_st_shim();
135 bool android_nfc_nfc_oem_extension();
136 bool android_nfc_nfc_override_recover_routing_table();
137 bool android_nfc_nfc_persist_log();
138 bool android_nfc_nfc_read_polling_loop();
139 bool android_nfc_nfc_read_polling_loop_st_shim();
140 bool android_nfc_nfc_set_default_disc_tech();
141 bool android_nfc_nfc_set_service_enabled_for_category_other();
142 bool android_nfc_nfc_state_change();
143 bool android_nfc_nfc_state_change_security_log_event_enabled();
144 bool android_nfc_nfc_vendor_cmd();
145 bool android_nfc_nfc_watchdog();
146 
147 #ifdef __cplusplus
148 } // extern "C"
149 #endif
150 
151