Initial commit

This commit is contained in:
alexpete
2021-03-05 11:26:34 -08:00
commit a10351f38d
27091 changed files with 5521199 additions and 0 deletions
@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- BEGIN_INCLUDE(manifest) -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="${ANDROID_PACKAGE}"
android:versionCode="${ANDROID_VERSION_NUMBER}"
android:versionName="${ANDROID_VERSION_NAME}">
<!-- SDK_VERSIONS -->
<!-- OpenGL ES 3.0 -->
<uses-feature android:glEsVersion="0x00030000" android:required="true" />
<!-- Required for Kindle devices, which is based off Android 5.0, to access app specific public storage -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="21" />
<!-- Allow TCP/IP. Needed for PerfHUD ES -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Required to poll the state of the network connection and respond to changes (Obb Download)-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Required to check whether Wi-Fi is enabled (Obb Download) -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!-- Required to keep CPU alive while downloading the Obb files (NOT to keep screen awake) -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- Required to for IAP -->
<uses-permission android:name="com.android.vending.BILLING" />
<application
android:icon="@mipmap/app_icon"
android:label="@string/app_name"
${ANDROID_MULTI_WINDOW} >
<!-- Our activity loads the generated bootstrapping class in order to prelaod any third party shared libraries -->
<activity
android:name="${ANDROID_PROJECT_ACTIVITY}"
android:screenOrientation="${ANDROID_SCREEN_ORIENTATION}"
android:configChanges="${ANDROID_CONFIG_CHANGES}" >
<!-- Multi-window properties, following line can be blank if not specified -->
${ANDROID_MULTI_WINDOW_PROPERTIES}
<!-- Tell NativeActivity the name of or .so -->
<meta-data android:name="android.app.lib_name"
android:value="${ANDROID_LAUNCHER_NAME}" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.amazon.lumberyard.io.obb.ObbDownloaderActivity"
android:launchMode="singleTask"
android:screenOrientation="${ANDROID_SCREEN_ORIENTATION}"/>
<!-- Services for IAP -->
<service android:name="com.android.vending.billing.InAppBillingService" />
<!-- Services for downloading the Obb -->
<service android:name="com.amazon.lumberyard.io.obb.ObbDownloaderService" />
<receiver android:name="com.amazon.lumberyard.io.obb.ObbDownloaderAlarmReceiver" />
<!-- Samsung DEX specific properties, the following line(s) can be blank if not specified -->
${SAMSUNG_DEX_KEEP_ALIVE}
${SAMSUNG_DEX_LAUNCH_WIDTH}
${SAMSUNG_DEX_LAUNCH_HEIGHT}
</application>
</manifest>
<!-- END_INCLUDE(manifest) -->
@@ -0,0 +1,29 @@
/*
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
* its licensors.
*
* For complete copyright and license terms please see the LICENSE at the root of this
* distribution (the "License"). All use of this software is governed by the License,
* or, if provided, by the license below or the license accompanying this file. Do not
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
*/
package ${ANDROID_PACKAGE};
import android.util.Log;
import com.amazon.lumberyard.LumberyardActivity;
////////////////////////////////////////////////////////////////////////////////////////////////////
public class ${ANDROID_PROJECT_ACTIVITY} extends LumberyardActivity
{
// since we are using the NativeActivity, all we need to manually load is the
// shared c++ libray we are using
static
{
Log.d("LMBR", "BootStrap: Starting Library load");
System.loadLibrary("c++_shared");
Log.d("LMBR", "BootStrap: Finished Library load");
}
}
@@ -0,0 +1,88 @@
{
"src" :
{
"main" :
{
"java" :
{
"${ANDROID_PACKAGE_PATH}" :
{
"ProjectActivity.java" : "${ANDROID_PROJECT_ACTIVITY}.java"
}
},
"res" :
{
"values" :
[
"strings.xml",
"bools.xml"
],
"drawable-land-mdpi" :
{
"app_splash-land-mdpi.png" : "app_splash.png"
},
"drawable-land-hdpi" :
{
"app_splash-land-hdpi.png" : "app_splash.png"
},
"drawable-land-xhdpi" :
{
"app_splash-land-xhdpi.png" : "app_splash.png"
},
"drawable-land-xxhdpi" :
{
"app_splash-land-xxhdpi.png" : "app_splash.png"
},
"drawable-port-mdpi" :
{
"app_splash-port-mdpi.png" : "app_splash.png"
},
"drawable-port-hdpi" :
{
"app_splash-port-hdpi.png" : "app_splash.png"
},
"drawable-port-xhdpi" :
{
"app_splash-port-xhdpi.png" : "app_splash.png"
},
"drawable-port-xxhdpi" :
{
"app_splash-port-xxhdpi.png" : "app_splash.png"
},
"layout" :
[
"splash_screen.xml" ,
"obb_downloader.xml"
],
"mipmap-mdpi" :
{
"app_icon-mdpi.png" : "app_icon.png"
},
"mipmap-hdpi" :
{
"app_icon-hdpi.png" : "app_icon.png"
},
"mipmap-xhdpi" :
{
"app_icon-xhdpi.png" : "app_icon.png"
},
"mipmap-xxhdpi" :
{
"app_icon-xxhdpi.png" : "app_icon.png"
},
"mipmap-xxxhdpi" :
{
"app_icon-xxxhdpi.png" : "app_icon.png"
}
},
"" :
[
"AndroidManifest.xml"
]
}
},
"" :
[
"wscript"
]
}
@@ -0,0 +1,81 @@
{
"APKExpansionLibrary": {
"srcDir": ["${ANDROID_SDK_HOME}/extras/google/play_apk_expansion/downloader_library",
"${ANDROID_SDK_HOME}/extras/google/market_apk_expansion/downloader_library"],
"dependencies": [
"LicenseLibrary"
],
"patches": [{
"path": "src/com/google/android/vending/expansion/downloader/impl/DownloadNotification.java",
"changes": [
{
"line": 134,
"old": ["mCurrentNotification.tickerText = mLabel + \": \" + mCurrentText;",
"mCurrentNotification.icon = iconResource;",
"mCurrentNotification.setLatestEventInfo(mContext, mCurrentTitle, mCurrentText,",
" mContentIntent);"],
"new": ["mCurrentNotification = createNotification(iconResource);"]
},
{
"line": 156,
"old": ["mNotification.tickerText = mCurrentTitle;",
"mNotification.icon = android.R.drawable.stat_sys_download;",
"mNotification.setLatestEventInfo(mContext, mLabel, mCurrentText, mContentIntent);"],
"new": ["mNotification = createNotification(android.R.drawable.stat_sys_download);"]
},
{
"line": 229,
"old" : [""],
"new": ["",
" private Notification createNotification(int iconRes) {",
" return new Notification.Builder(mContext)",
" .setContentText(mCurrentText)",
" .setContentTitle(mCurrentTitle)",
" .setContentIntent(mContentIntent)",
" .setTicker(mLabel + \": \" + mCurrentText)",
" .setSmallIcon(iconRes)",
" .build();",
" }"]
}]
},
{
"path": "AndroidManifest.xml",
"changes": [
{
"line": 6,
"old": ["<uses-sdk android:minSdkVersion=\"4\" android:targetSdkVersion=\"15\"/>"],
"new": [""]
}]
}],
"launcherDependency": "true"
},
"LicenseLibrary": {
"srcDir": ["${ANDROID_SDK_HOME}/extras/google/play_licensing/library",
"${ANDROID_SDK_HOME}/extras/google/market_licensing/library"],
"buildDependencies": [
"org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2"
],
"libs" : [{
"path" : "${ANDROID_SDK_HOME}/platforms/${ANDROID_SDK_VERSION}/optional/org.apache.http.legacy.jar",
"required" : false
}],
"patches": [{
"path": "src/com/google/android/vending/licensing/LicenseChecker.java",
"changes": [{
"line": 152,
"old": ["Base64.decode(\"Y29tLmFuZHJvaWQudmVuZGluZy5saWNlbnNpbmcuSUxpY2Vuc2luZ1NlcnZpY2U=\"))),"],
"new": ["Base64.decode(\"Y29tLmFuZHJvaWQudmVuZGluZy5saWNlbnNpbmcuSUxpY2Vuc2luZ1NlcnZpY2U=\"))).setPackage(\"com.android.vending\"),"]
}]
},
{
"path": "AndroidManifest.xml",
"changes": [
{
"line": 19,
"old": ["<!-- Devices >= 3 have version of Android Market that supports licensing. -->",
"<uses-sdk android:minSdkVersion=\"3\" android:targetSdkVersion=\"15\" />"],
"new": [""]
}]
}]
}
}
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2505ee83c0e435700601d38c7c4b08b601478c5194a088ff6577e1017731b3ae
size 2368
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:32d4da537649036b18aa116c1337b8b23d1a4536b907034a1262cc6764e65627
size 1615
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6a7f38fe03aba465b65189fdf183281c0d7397962f93168379ebca25f9581a30
size 3362
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:02392ac01615ce21710b8566085941fea67926cab062ac2a4c7cdfc594aff428
size 5482
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3636ef346cf87d2382ed67ef0a7396bfe3b4df13f9ef223b1911e96ef42ae2ec
size 8238
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:df22836ffc2ab5cca07c6e0d152ed8ef01d56d66cdc56435d6b48304753c4990
size 196450
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:70250143d6b53978c7a164330c38cf34777688b92e0def691b68777be111ac75
size 156821
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:80752114b225ad43028278ac8372cbf4543f493a55e5fe05c24ff1e20f9b24b5
size 324436
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:44de927141f19e10672012a8e0675d03fd06e6b20d5a7c759cdc233a1262ef55
size 441038
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d3fb185179d26442087087401dd96443ed094122b8b7a1b7985aae299764bcf6
size 271782
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:04c9bc74b51d3bd7cf85e178b15c631fd78c6251ef014a41506f36852ec4a500
size 209127
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:913fdddb651ff6d74fb0583b06c6f32f6c87bf9eabe4b861d662c9c409cff733
size 461061
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cb9fd81fb4ad83132db7401fe412cce61bf0577e1822653115930f31f3db6241
size 570118
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="use_main_obb">${ANDROID_USE_MAIN_OBB}</bool>
<bool name="use_patch_obb">${ANDROID_USE_PATCH_OBB}</bool>
<bool name="enable_keep_screen_on">${ANDROID_ENABLE_KEEP_SCREEN_ON}</bool>
<bool name="disable_immersive_mode">${ANDROID_DISABLE_IMMERSIVE_MODE}</bool>
</resources>
@@ -0,0 +1,82 @@
//
// All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
// its licensors.
//
// For complete copyright and license terms please see the LICENSE at the root of this
// distribution (the "License"). All use of this software is governed by the License,
// or, if provided, by the license below or the license accompanying this file. Do not
// remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
apply plugin: "com.android.${TARGET_TYPE}"
android {
${SIGNING_CONFIGS}
compileSdkVersion sdkVer
buildToolsVersion buildToolsVer
lintOptions {
abortOnError false
checkReleaseBuilds false
}
defaultConfig {
minSdkVersion ndkPlatformVer
targetSdkVersion sdkVer
${NATIVE_CMAKE_SECTION_DEFAULT_CONFIG}
}
buildTypes {
debug {
debuggable true
${NATIVE_CMAKE_SECTION_DEBUG_CONFIG}
${SIGNING_DEBUG_CONFIG}
}
profile {
debuggable true
${NATIVE_CMAKE_SECTION_PROFILE_CONFIG}
${SIGNING_PROFILE_CONFIG}
}
release {
debuggable false
minifyEnabled false
${NATIVE_CMAKE_SECTION_RELEASE_CONFIG}
${SIGNING_RELEASE_CONFIG}
}
}
compileOptions {
targetCompatibility JavaVersion.VERSION_1_7
sourceCompatibility JavaVersion.VERSION_1_7
}
${NATIVE_CMAKE_SECTION_ANDROID}
sourceSets {
main {
${OVERRIDE_JAVA_SOURCESET}
jniLibs {
srcDirs = ["src/main/jniLibs"${OPTIONAL_JNI_SRC_LIB_SET}]
}
}
}
packagingOptions {
pickFirst '**/*.so'
}
}
${PROJECT_DEPENDENCIES}
afterEvaluate {
${CUSTOM_APPLY_ASSET_LAYOUT_DEBUG_TASK}
${CUSTOM_APPLY_ASSET_LAYOUT_PROFILE_TASK}
${CUSTOM_APPLY_ASSET_LAYOUT_RELEASE_TASK}
${CUSTOM_GRADLE_COPY_NATIVE_DEBUG_LIB_TASK}
${CUSTOM_GRADLE_COPY_NATIVE_PROFILE_LIB_TASK}
${CUSTOM_GRADLE_COPY_NATIVE_RELEASE_LIB_TASK}
}
@@ -0,0 +1,30 @@
###
### All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
### its licensors.
###
### For complete copyright and license terms please see the LICENSE at the root of this
### distribution (the "License"). All use of this software is governed by the License,
### or, if provided, by the license below or the license accompanying this file. Do not
### remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
### WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
###
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Android Studio project settings overrides
# Enable Gradle as a daemon to improve the startup and execution time
org.gradle.daemon=true
# Enable parallel execution to improve execution time
org.gradle.parallel=true
# make sure configure-on-demand is disabled as it really only benefits when
# there are a large number of sub-projects
org.gradle.configureondemand=false
# bump the JVM memory limits due to the size of Lumberyard. Defaults: -Xmx1280m -XX:MaxPermSize=256m
org.gradle.jvmargs=
# required to use Android X libraries
android.useAndroidX=true
@@ -0,0 +1,21 @@
###
### All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
### its licensors.
###
### For complete copyright and license terms please see the LICENSE at the root of this
### distribution (the "License"). All use of this software is governed by the License,
### or, if provided, by the license below or the license accompanying this file. Do not
### remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
### WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
###
## This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
# ${GENERATION_TIMESTAMP}
ndk.dir=${ANDROID_NDK_PATH}
sdk.dir=${ANDROID_SDK_PATH}
${CMAKE_DIR_LINE}
@@ -0,0 +1,167 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@android:color/transparent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:orientation="vertical" >
<TextView
android:id="@+id/statusText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:textStyle="bold" />
<LinearLayout
android:id="@+id/downloaderDashboard"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/statusText"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<TextView
android:id="@+id/progressAsFraction"
style="@android:style/TextAppearance.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="5dp"
android:text="0MB / 0MB" >
</TextView>
<TextView
android:id="@+id/progressAsPercentage"
style="@android:style/TextAppearance.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/progressBar"
android:text="0%" />
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/progressAsFraction"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:layout_weight="1" />
<TextView
android:id="@+id/progressAverageSpeed"
style="@android:style/TextAppearance.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/progressBar"
android:layout_marginLeft="5dp" />
<TextView
android:id="@+id/progressTimeRemaining"
style="@android:style/TextAppearance.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/progressBar"
android:layout_below="@+id/progressBar" />
</RelativeLayout>
<LinearLayout
android:id="@+id/downloaderDashboard"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/pauseButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="5dp"
android:layout_marginTop="10dp"
android:layout_weight="0"
android:minHeight="40dp"
android:minWidth="94dp"
android:text="@string/text_button_pause" />
<Button
android:id="@+id/cancelButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="10dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="10dp"
android:layout_weight="0"
android:minHeight="40dp"
android:minWidth="94dp"
android:text="@string/text_button_cancel"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/approveCellular"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical"
android:visibility="gone" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:id="@+id/textPausedParagraph1"
android:text="@string/text_paused_cellular" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:id="@+id/textPausedParagraph2"
android:text="@string/text_paused_cellular_2" />
<LinearLayout
android:id="@+id/buttonRow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/resumeOverCellular"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:text="@string/text_button_resume_cellular" />
<Button
android:id="@+id/wifiSettingsButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:text="@string/text_button_wifi_settings" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
@@ -0,0 +1,44 @@
//
// All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
// its licensors.
//
// For complete copyright and license terms please see the LICENSE at the root of this
// distribution (the "License"). All use of this software is governed by the License,
// or, if provided, by the license below or the license accompanying this file. Do not
// remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
subprojects {
ext {
sdkVer = ${SDK_VER}
ndkPlatformVer = ${NDK_PLATFORM_VER}
buildToolsVer = '${SDK_BUILD_TOOL_VER}'
lyDevRoot = '${LY_DEV_ROOT}'
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
@@ -0,0 +1,15 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0099cc"
tools:context=".LumberyardActivity">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/splash_image"
android:background="#414141"
android:src="@drawable/app_splash"
android:scaleType="centerCrop" />
</RelativeLayout>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">${ANDROID_APP_NAME}</string>
<string name="public_key">${ANDROID_APP_PUBLIC_KEY}</string>
<string name="obfuscator_salt">${ANDROID_APP_OBFUSCATOR_SALT}</string>
<!-- Strings used for the Obb Downloader Activity -->
<string name="text_paused_cellular">Would you like to enable downloading over cellular connections? Depending on your data plan, this may cost you money.</string>
<string name="text_paused_cellular_2">If you choose not to enable downloading over cellular connections, the download will automatically resume when wi-fi is available.</string>
<string name="text_button_resume_cellular">Resume download</string>
<string name="text_button_wifi_settings">Wi-Fi settings</string>
<string name="text_verifying_download">Verifying Download</string>
<string name="text_validation_complete">XAPK File Validation Complete. Select OK to exit.</string>
<string name="text_validation_failed">XAPK File Validation Failed.</string>
<string name="text_button_pause">Pause Download</string>
<string name="text_button_resume">Resume Download</string>
<string name="text_button_cancel">Cancel</string>
<string name="text_button_cancel_verify">Cancel Verification</string>
<!-- End Obb Downloader strings -->
</resources>