Sean Barbeau b2246b1c8f
feat: Get Maps API key from unversioned file instead of resource - Java (#190)
Previously the Java demo app API key was hard-coded directly in a versioned string resource file, which is dangerous as it's easy to accidentally commit your key into version control.

This PR adds a new process to add your own Google Maps API key for the Java demo app:

1. [Get a Maps API key](https://developers.google.com/maps/documentation/android-sdk/get-api-key)
1. Create a file in the `ApiDemos/java/app` directory called `secure.properties` (this file should *NOT* be under version control to protect your API key)
1. Add a single line to `ApiDemos/java/app/secure.properties` that looks like `MAPS_API_KEY=YOUR_API_KEY`, where `YOUR_API_KEY` is the API key you obtained in the first step
1. Build and run
2020-05-06 14:05:14 -07:00

45 lines
1.5 KiB
Groovy

apply plugin: 'com.android.application'
apply plugin: 'project-report'
android {
compileSdkVersion 29
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.example.mapdemo"
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
// Read the API key from ApiDemos/java/app/secure.properties into R.string.maps_api_key
def secureProps = new Properties()
if (file("secure.properties").exists()) {
file("secure.properties")?.withInputStream { secureProps.load(it) }
}
resValue "string", "maps_api_key", (secureProps.getProperty("MAPS_API_KEY") ?: "")
// To add your Maps API key to this project:
// 1. Create a file ApiDemos/java/app/secure.properties
// 2. Add this line, where YOUR_API_KEY is your API key:
// MAPS_API_KEY=YOUR_API_KEY
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.gms:play-services-maps:17.0.0'
testImplementation 'junit:junit:4.13'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
// Needed for the LiteListDemo
implementation "androidx.recyclerview:recyclerview:1.1.0"
}