diff --git a/samples/AconfigDemo/Android.bp b/samples/AconfigDemo/Android.bp
index 7dbf6b648..8bd0e75d3 100644
--- a/samples/AconfigDemo/Android.bp
+++ b/samples/AconfigDemo/Android.bp
@@ -1,3 +1,45 @@
package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
+
+android_app {
+ name: "AconfigDemoActivity",
+ manifest: "AndroidManifest.xml",
+ srcs: ["src/com/example/android/aconfig/demo/activity/AconfigDemoActivity.java"],
+ certificate: "platform",
+ sdk_version: "current",
+ static_libs: [
+ "ContentProvider",
+ ],
+ optimize: {
+ enabled: true,
+ proguard_compatibility: false,
+ shrink: true,
+ optimize: false,
+ obfuscate: false,
+ shrink_resources: true,
+ },
+}
+
+aconfig_declarations {
+ name: "aconfig_demo_flags",
+ package: "com.example.android.aconfig.demo.activity",
+ srcs: ["aconfig_demo_flags.aconfig"],
+}
+
+
+java_aconfig_library {
+ name: "aconfig_demo_flags_lib",
+ aconfig_declarations: "aconfig_demo_flags",
+}
+
+java_library {
+ name: "ContentProvider",
+ srcs: [
+ "src/com/example/android/aconfig/demo/activity/ContentProvider.java",
+ ],
+ sdk_version: "current",
+ static_libs: [
+ "aconfig_demo_flags_lib",
+ ],
+}
diff --git a/samples/AconfigDemo/AndroidManifest.xml b/samples/AconfigDemo/AndroidManifest.xml
new file mode 100644
index 000000000..b2320b3f7
--- /dev/null
+++ b/samples/AconfigDemo/AndroidManifest.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/AconfigDemo/aconfig_demo_flags.aconfig b/samples/AconfigDemo/aconfig_demo_flags.aconfig
new file mode 100644
index 000000000..ecf699329
--- /dev/null
+++ b/samples/AconfigDemo/aconfig_demo_flags.aconfig
@@ -0,0 +1,7 @@
+package: "com.example.android.aconfig.demo.activity"
+
+flag {
+ name: "append_content"
+ namespace: "aconfig_demo_ns"
+ description: "This flag is buildtime flag"
+}
diff --git a/samples/AconfigDemo/res/layout/main.xml b/samples/AconfigDemo/res/layout/main.xml
new file mode 100644
index 000000000..e54a53bd8
--- /dev/null
+++ b/samples/AconfigDemo/res/layout/main.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
diff --git a/samples/AconfigDemo/src/com/example/android/aconfig/demo/activity/AconfigDemoActivity.java b/samples/AconfigDemo/src/com/example/android/aconfig/demo/activity/AconfigDemoActivity.java
new file mode 100644
index 000000000..523380f8c
--- /dev/null
+++ b/samples/AconfigDemo/src/com/example/android/aconfig/demo/activity/AconfigDemoActivity.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.android.aconfig.demo.activity;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.TextView;
+import android.view.WindowManager;
+
+
+/**
+ * A minimal "Hello, World!" application.
+ */
+public class AconfigDemoActivity extends Activity {
+ /**
+ * Called with the activity is first created.
+ */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setContentView(R.layout.main);
+ TextView simpleTextView = (TextView) findViewById(R.id.simpleTextView);
+ simpleTextView.setText("Show Flags: \n\n");
+
+ ContentProvider cp = new ContentProvider();
+ simpleTextView.append(cp.getContent());
+ }
+}
+
diff --git a/samples/AconfigDemo/src/com/example/android/aconfig/demo/activity/ContentProvider.java b/samples/AconfigDemo/src/com/example/android/aconfig/demo/activity/ContentProvider.java
new file mode 100644
index 000000000..f6d2599a7
--- /dev/null
+++ b/samples/AconfigDemo/src/com/example/android/aconfig/demo/activity/ContentProvider.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.android.aconfig.demo.activity;
+
+/**
+ * A minimal "Hello, World!" application.
+ */
+public class ContentProvider {
+
+ public ContentProvider() {};
+
+ public String getContent() {
+
+ StringBuilder sBuffer = new StringBuilder();
+
+ if (Flags.appendContent()) {
+ sBuffer.append("The flag is ON!!\n");
+ } else {
+ sBuffer.append("The flag is OFF!!\n");
+ }
+
+ return sBuffer.toString();
+ }
+}
+
diff --git a/samples/AconfigDemo/tests/Android.bp b/samples/AconfigDemo/tests/Android.bp
new file mode 100644
index 000000000..12efabde1
--- /dev/null
+++ b/samples/AconfigDemo/tests/Android.bp
@@ -0,0 +1,15 @@
+package {
+ default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_test {
+ name: "AconfigDemo_ContentProvide_Test",
+ srcs: ["src/com/example/android/aconfig/demo/activity/ContentProviderTests.java"],
+ certificate: "platform",
+ static_libs: [
+ "ContentProvider",
+ "junit",
+ "androidx.test.runner",
+ ],
+ manifest: "AndroidManifest.xml",
+}
\ No newline at end of file
diff --git a/samples/AconfigDemo/tests/AndroidManifest.xml b/samples/AconfigDemo/tests/AndroidManifest.xml
new file mode 100644
index 000000000..fcc480e90
--- /dev/null
+++ b/samples/AconfigDemo/tests/AndroidManifest.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/AconfigDemo/tests/build.properties b/samples/AconfigDemo/tests/build.properties
new file mode 100644
index 000000000..e0c39def1
--- /dev/null
+++ b/samples/AconfigDemo/tests/build.properties
@@ -0,0 +1 @@
+tested.project.dir=..
diff --git a/samples/AconfigDemo/tests/src/com/example/android/aconfig/demo/activity/ContentProviderTests.java b/samples/AconfigDemo/tests/src/com/example/android/aconfig/demo/activity/ContentProviderTests.java
new file mode 100644
index 000000000..8c9d6aac3
--- /dev/null
+++ b/samples/AconfigDemo/tests/src/com/example/android/aconfig/demo/activity/ContentProviderTests.java
@@ -0,0 +1,17 @@
+package com.example.android.aconfig.demo.activity;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+@RunWith(JUnit4.class)
+public final class ContentProviderTests {
+
+ @Test
+ public void testFlag() {
+ assertFalse(Flags.appendContent());
+ }
+}
\ No newline at end of file