Add a basic presubmit test for the Android Starlark rules. PiperOrigin-RevId: 431042952 Change-Id: I1e70ac4624f017d852d922c690927f049fd1e634
diff --git a/examples/basicapp/WORKSPACE b/examples/basicapp/WORKSPACE new file mode 100644 index 0000000..12ed5b3 --- /dev/null +++ b/examples/basicapp/WORKSPACE
@@ -0,0 +1,39 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +android_sdk_repository( + name = "androidsdk", +) + +android_ndk_repository( + name = "androidndk", +) + +http_archive( + name = "rules_jvm_external", + strip_prefix = "rules_jvm_external-fa73b1a8e4846cee88240d0019b8f80d39feb1c3", + sha256 = "7e13e48b50f9505e8a99cc5a16c557cbe826e9b68d733050cd1e318d69f94bb5", + url = "https://github.com/bazelbuild/rules_jvm_external/archive/fa73b1a8e4846cee88240d0019b8f80d39feb1c3.zip", +) + +http_archive( + name = "bazel_skylib", + urls = [ + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz", + "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz", + ], + sha256 = "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c", +) +load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") +bazel_skylib_workspace() + +local_repository( + name = "rules_android", + path = "../..", # rules_android's WORKSPACE relative to this inner workspace +) +load("@rules_android//:defs.bzl", "rules_android_workspace") +rules_android_workspace() +register_toolchains( + "@rules_android//toolchains/android:android_default_toolchain", + "@rules_android//toolchains/android_sdk:android_sdk_tools", +) +
diff --git a/examples/basicapp/java/com/basicapp/AndroidManifest.xml b/examples/basicapp/java/com/basicapp/AndroidManifest.xml new file mode 100644 index 0000000..d9b0640 --- /dev/null +++ b/examples/basicapp/java/com/basicapp/AndroidManifest.xml
@@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.basic" > + + <uses-sdk + android:minSdkVersion="18" + android:targetSdkVersion="30" /> + + <application + android:allowBackup="true" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" > + <activity + android:name="com.basicapp.BasicActivity" + android:exported="true"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> +</manifest>
diff --git a/examples/basicapp/java/com/basicapp/BUILD b/examples/basicapp/java/com/basicapp/BUILD new file mode 100644 index 0000000..adcb05b --- /dev/null +++ b/examples/basicapp/java/com/basicapp/BUILD
@@ -0,0 +1,14 @@ +load("@rules_android//rules:rules.bzl", "android_binary", "android_library") + +android_binary( + name = "basic_app", + manifest = "AndroidManifest.xml", + deps = [":basic_lib"], +) + +android_library( + name = "basic_lib", + srcs = ["BasicActivity.java"], + manifest = "AndroidManifest.xml", + resource_files = glob(["res/**"]), +)
diff --git a/examples/basicapp/java/com/basicapp/BasicActivity.java b/examples/basicapp/java/com/basicapp/BasicActivity.java new file mode 100644 index 0000000..14042be --- /dev/null +++ b/examples/basicapp/java/com/basicapp/BasicActivity.java
@@ -0,0 +1,40 @@ +// Copyright 2022 The Bazel Authors. All rights reserved. +// +// 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.basicapp; + +import android.app.Activity; +import android.os.Bundle; +import android.view.Menu; +import android.widget.TextView; + + +/** + * The main activity of the Basic Sample App. + */ +public class BasicActivity extends Activity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.basic_activity); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.menu, menu); + return true; + } +}
diff --git a/examples/basicapp/java/com/basicapp/res/drawable-hdpi/ic_launcher.png b/examples/basicapp/java/com/basicapp/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000..6ab2add --- /dev/null +++ b/examples/basicapp/java/com/basicapp/res/drawable-hdpi/ic_launcher.png Binary files differ
diff --git a/examples/basicapp/java/com/basicapp/res/drawable-mdpi/ic_launcher.png b/examples/basicapp/java/com/basicapp/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000..c0a73c3 --- /dev/null +++ b/examples/basicapp/java/com/basicapp/res/drawable-mdpi/ic_launcher.png Binary files differ
diff --git a/examples/basicapp/java/com/basicapp/res/drawable-xhdpi/ic_launcher.png b/examples/basicapp/java/com/basicapp/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000..014b0f1 --- /dev/null +++ b/examples/basicapp/java/com/basicapp/res/drawable-xhdpi/ic_launcher.png Binary files differ
diff --git a/examples/basicapp/java/com/basicapp/res/drawable-xxhdpi/ic_launcher.png b/examples/basicapp/java/com/basicapp/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..20703a1 --- /dev/null +++ b/examples/basicapp/java/com/basicapp/res/drawable-xxhdpi/ic_launcher.png Binary files differ
diff --git a/examples/basicapp/java/com/basicapp/res/layout/basic_activity.xml b/examples/basicapp/java/com/basicapp/res/layout/basic_activity.xml new file mode 100644 index 0000000..61fb73e --- /dev/null +++ b/examples/basicapp/java/com/basicapp/res/layout/basic_activity.xml
@@ -0,0 +1,12 @@ +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" > + + <TextView + android:id="@+id/text_hello" + android:text="@string/hello_world" + android:layout_width="wrap_content" + android:layout_height="wrap_content" /> + +</LinearLayout>
diff --git a/examples/basicapp/java/com/basicapp/res/menu/menu.xml b/examples/basicapp/java/com/basicapp/res/menu/menu.xml new file mode 100644 index 0000000..a56bed6 --- /dev/null +++ b/examples/basicapp/java/com/basicapp/res/menu/menu.xml
@@ -0,0 +1,8 @@ +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + tools:context="com.basicapp.BasicActivity" > + <item android:id="@+id/action_settings" + android:title="@string/action_settings" + android:orderInCategory="100" /> +</menu>
diff --git a/examples/basicapp/java/com/basicapp/res/values/dimens.xml b/examples/basicapp/java/com/basicapp/res/values/dimens.xml new file mode 100644 index 0000000..47c8224 --- /dev/null +++ b/examples/basicapp/java/com/basicapp/res/values/dimens.xml
@@ -0,0 +1,5 @@ +<resources> + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> +</resources>
diff --git a/examples/basicapp/java/com/basicapp/res/values/strings.xml b/examples/basicapp/java/com/basicapp/res/values/strings.xml new file mode 100644 index 0000000..565c987 --- /dev/null +++ b/examples/basicapp/java/com/basicapp/res/values/strings.xml
@@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="app_name" translatable="false">basicapp</string> + <string name="hello_world" translatable="false">Hello world!</string> + <string name="action_settings" translatable="false">Settings</string> + +</resources>