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()43inline bool enable_card_emulation_euicc() { 44 return false; 45 } enable_nfc_charging()46inline bool enable_nfc_charging() { 47 return false; 48 } enable_nfc_mainline()49inline bool enable_nfc_mainline() { 50 return true; 51 } enable_nfc_reader_option()52inline bool enable_nfc_reader_option() { 53 return true; 54 } enable_nfc_set_discovery_tech()55inline bool enable_nfc_set_discovery_tech() { 56 return true; 57 } enable_nfc_user_restriction()58inline bool enable_nfc_user_restriction() { 59 return true; 60 } enable_tag_detection_broadcasts()61inline bool enable_tag_detection_broadcasts() { 62 return false; 63 } nfc_action_manage_services_settings()64inline bool nfc_action_manage_services_settings() { 65 return false; 66 } nfc_associated_role_services()67inline bool nfc_associated_role_services() { 68 return false; 69 } nfc_check_tag_intent_preference()70inline bool nfc_check_tag_intent_preference() { 71 return false; 72 } nfc_event_listener()73inline bool nfc_event_listener() { 74 return false; 75 } nfc_observe_mode()76inline bool nfc_observe_mode() { 77 return true; 78 } nfc_observe_mode_st_shim()79inline bool nfc_observe_mode_st_shim() { 80 return true; 81 } nfc_oem_extension()82inline bool nfc_oem_extension() { 83 return false; 84 } nfc_override_recover_routing_table()85inline bool nfc_override_recover_routing_table() { 86 return false; 87 } nfc_persist_log()88inline bool nfc_persist_log() { 89 return false; 90 } nfc_read_polling_loop()91inline bool nfc_read_polling_loop() { 92 return true; 93 } nfc_read_polling_loop_st_shim()94inline bool nfc_read_polling_loop_st_shim() { 95 return true; 96 } nfc_set_default_disc_tech()97inline bool nfc_set_default_disc_tech() { 98 return false; 99 } nfc_set_service_enabled_for_category_other()100inline bool nfc_set_service_enabled_for_category_other() { 101 return false; 102 } nfc_state_change()103inline bool nfc_state_change() { 104 return false; 105 } nfc_state_change_security_log_event_enabled()106inline bool nfc_state_change_security_log_event_enabled() { 107 return false; 108 } nfc_vendor_cmd()109inline bool nfc_vendor_cmd() { 110 return true; 111 } nfc_watchdog()112inline 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