xref: /aosp_15_r20/development/samples/AconfigDemo/src/example_cpp_lib.cc (revision 90c8c64db3049935a07c6143d7fd006e26f8ecca)
1*90c8c64dSAndroid Build Coastguard Worker #include "example_cpp_lib.h"
2*90c8c64dSAndroid Build Coastguard Worker #include <string>
3*90c8c64dSAndroid Build Coastguard Worker #include <com_example_android_aconfig_demo_flags.h>
4*90c8c64dSAndroid Build Coastguard Worker 
5*90c8c64dSAndroid Build Coastguard Worker namespace demo_flags = com::example::android::aconfig::demo::flags;
6*90c8c64dSAndroid Build Coastguard Worker 
7*90c8c64dSAndroid Build Coastguard Worker // use static methods interface
get_flag_via_static_interface()8*90c8c64dSAndroid Build Coastguard Worker static std::string get_flag_via_static_interface() {
9*90c8c64dSAndroid Build Coastguard Worker   return std::string("flag value : ") +
10*90c8c64dSAndroid Build Coastguard Worker       (demo_flags::append_static_content() ? "true" : "false");
11*90c8c64dSAndroid Build Coastguard Worker }
12*90c8c64dSAndroid Build Coastguard Worker 
13*90c8c64dSAndroid Build Coastguard Worker // use flag provider for injection interface
get_flag_via_injection_interface(demo_flags::flag_provider_interface * provider)14*90c8c64dSAndroid Build Coastguard Worker static std::string get_flag_via_injection_interface(
15*90c8c64dSAndroid Build Coastguard Worker   demo_flags::flag_provider_interface* provider) {
16*90c8c64dSAndroid Build Coastguard Worker   return std::string("flag value : ") +
17*90c8c64dSAndroid Build Coastguard Worker       ((provider->append_injected_content()) ? "true" : "false");
18*90c8c64dSAndroid Build Coastguard Worker }
19*90c8c64dSAndroid Build Coastguard Worker 
Java_com_example_android_aconfig_demo_AconfigDemoActivity_printCFlag(JNIEnv * env,jobject thiz)20*90c8c64dSAndroid Build Coastguard Worker jstring Java_com_example_android_aconfig_demo_AconfigDemoActivity_printCFlag(
21*90c8c64dSAndroid Build Coastguard Worker     JNIEnv* env,
22*90c8c64dSAndroid Build Coastguard Worker     jobject thiz) {
23*90c8c64dSAndroid Build Coastguard Worker   auto result = std::string("flag name : append_static_content\n");
24*90c8c64dSAndroid Build Coastguard Worker   result += "use pattern : static method\n";
25*90c8c64dSAndroid Build Coastguard Worker   result += get_flag_via_static_interface();
26*90c8c64dSAndroid Build Coastguard Worker 
27*90c8c64dSAndroid Build Coastguard Worker   result += "\n\n";
28*90c8c64dSAndroid Build Coastguard Worker 
29*90c8c64dSAndroid Build Coastguard Worker   result += "flag name : append_injected_content\n";
30*90c8c64dSAndroid Build Coastguard Worker   result += "use pattern : injection\n";
31*90c8c64dSAndroid Build Coastguard Worker   result += get_flag_via_injection_interface(demo_flags::provider_.get());
32*90c8c64dSAndroid Build Coastguard Worker 
33*90c8c64dSAndroid Build Coastguard Worker   return env->NewStringUTF(result.c_str());
34*90c8c64dSAndroid Build Coastguard Worker }
35