v0.7.4b: restructured initialization logic into new android module
A lot of cleanup is needed for this, but everything works
@@ -1,3 +1,4 @@
|
|||||||
|
//FIXME currently an android library while small amounts of android-specific code remain
|
||||||
apply plugin: 'com.android.library'
|
apply plugin: 'com.android.library'
|
||||||
|
|
||||||
android {
|
android {
|
||||||
@@ -6,13 +7,6 @@ android {
|
|||||||
defaultConfig {
|
defaultConfig {
|
||||||
//noinspection MinSdkTooLow
|
//noinspection MinSdkTooLow
|
||||||
minSdkVersion appAndroidMinSDK
|
minSdkVersion appAndroidMinSDK
|
||||||
|
|
||||||
consumerProguardFiles 'proguard-rules.pro'
|
|
||||||
}
|
|
||||||
sourceSets {
|
|
||||||
main {
|
|
||||||
jniLibs.srcDirs = ['libs']
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -21,39 +15,7 @@ configurations { natives }
|
|||||||
dependencies {
|
dependencies {
|
||||||
//TODO migrate this to implementation from api
|
//TODO migrate this to implementation from api
|
||||||
//in order to do this I have to remove 100% of libGDX API access from core
|
//in order to do this I have to remove 100% of libGDX API access from core
|
||||||
|
api "com.badlogicgames.gdx:gdx:$gdxVersion"
|
||||||
api "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
|
api "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
|
||||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
|
|
||||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
|
|
||||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
|
|
||||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
|
|
||||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
|
|
||||||
implementation "com.badlogicgames.gdx:gdx-controllers:$gdxVersion"
|
implementation "com.badlogicgames.gdx:gdx-controllers:$gdxVersion"
|
||||||
implementation "com.badlogicgames.gdx:gdx-controllers-android:$gdxVersion"
|
|
||||||
}
|
|
||||||
|
|
||||||
// called every time gradle gets executed, takes the native dependencies of
|
|
||||||
// the natives configuration, and extracts them to the proper libs/ folders
|
|
||||||
// so they get packed with the APK.
|
|
||||||
task copyAndroidNatives() {
|
|
||||||
file("libs/armeabi/").mkdirs()
|
|
||||||
file("libs/armeabi-v7a/").mkdirs()
|
|
||||||
file("libs/arm64-v8a/").mkdirs()
|
|
||||||
file("libs/x86_64/").mkdirs()
|
|
||||||
file("libs/x86/").mkdirs()
|
|
||||||
|
|
||||||
configurations.natives.files.each { jar ->
|
|
||||||
def outputDir = null
|
|
||||||
if(jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
|
|
||||||
if(jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
|
|
||||||
if(jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
|
|
||||||
if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
|
|
||||||
if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
|
|
||||||
if(outputDir != null) {
|
|
||||||
copy {
|
|
||||||
from zipTree(jar)
|
|
||||||
into outputDir
|
|
||||||
include "*.so"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -21,30 +21,24 @@
|
|||||||
|
|
||||||
package com.watabou.noosa;
|
package com.watabou.noosa;
|
||||||
|
|
||||||
import android.content.pm.PackageManager.NameNotFoundException;
|
|
||||||
import android.opengl.GLSurfaceView;
|
import android.opengl.GLSurfaceView;
|
||||||
import android.os.Build;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
|
|
||||||
import com.badlogic.gdx.ApplicationListener;
|
import com.badlogic.gdx.ApplicationListener;
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
import com.badlogic.gdx.backends.android.AndroidApplication;
|
|
||||||
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
|
|
||||||
import com.watabou.glscripts.Script;
|
import com.watabou.glscripts.Script;
|
||||||
import com.watabou.gltextures.TextureCache;
|
import com.watabou.gltextures.TextureCache;
|
||||||
import com.watabou.glwrap.Blending;
|
import com.watabou.glwrap.Blending;
|
||||||
import com.watabou.glwrap.Vertexbuffer;
|
import com.watabou.glwrap.Vertexbuffer;
|
||||||
import com.watabou.input.InputHandler;
|
import com.watabou.input.InputHandler;
|
||||||
import com.watabou.input.KeyEvent;
|
import com.watabou.input.KeyEvent;
|
||||||
import com.watabou.noosa.audio.Music;
|
import com.watabou.utils.PlatformSupport;
|
||||||
import com.watabou.utils.SystemTime;
|
import com.watabou.utils.SystemTime;
|
||||||
|
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
public class Game extends AndroidApplication implements ApplicationListener {
|
public class Game implements ApplicationListener {
|
||||||
|
|
||||||
public static Game instance;
|
public static Game instance;
|
||||||
|
|
||||||
@@ -85,62 +79,27 @@ public class Game extends AndroidApplication implements ApplicationListener {
|
|||||||
protected GLSurfaceView view;
|
protected GLSurfaceView view;
|
||||||
//protected SurfaceHolder holder;
|
//protected SurfaceHolder holder;
|
||||||
|
|
||||||
protected InputHandler inputHandler;
|
protected static InputHandler inputHandler;
|
||||||
|
|
||||||
public Game( Class<? extends Scene> c ) {
|
protected static PlatformSupport platform;
|
||||||
super();
|
|
||||||
|
public Game(Class<? extends Scene> c, PlatformSupport platform) {
|
||||||
sceneClass = c;
|
sceneClass = c;
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate( Bundle savedInstanceState ) {
|
|
||||||
super.onCreate( savedInstanceState );
|
|
||||||
|
|
||||||
instance = this;
|
instance = this;
|
||||||
|
this.platform = platform;
|
||||||
//FIXME this should be moved into a separate class, once we start to move to multiplatform
|
}
|
||||||
try {
|
|
||||||
version = getPackageManager().getPackageInfo( getPackageName(), 0 ).versionName;
|
/*@Override
|
||||||
} catch (NameNotFoundException e) {
|
protected void onCreate( Bundle savedInstanceState ) {
|
||||||
version = "???";
|
super.onCreate( savedInstanceState );
|
||||||
}
|
|
||||||
try {
|
|
||||||
versionCode = getPackageManager().getPackageInfo( getPackageName(), 0 ).versionCode;
|
|
||||||
} catch (NameNotFoundException e) {
|
|
||||||
versionCode = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
|
|
||||||
config.depth = 0;
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
|
||||||
//use rgb888 on more modern devices for better visuals
|
|
||||||
config.r = config.g = config.b = 8;
|
|
||||||
} else {
|
|
||||||
//and rgb565 (default) on older ones for better performance
|
|
||||||
}
|
|
||||||
|
|
||||||
config.useCompass = false;
|
|
||||||
config.useAccelerometer = false;
|
|
||||||
//TODO consider the following additional options, might be better than setting manually
|
|
||||||
//config.hideStatusBar
|
|
||||||
//config.useImmersiveMode
|
|
||||||
|
|
||||||
initialize(this, config);
|
|
||||||
|
|
||||||
//FIXME shouldn't have a reference to the view here, remove things which access this
|
//FIXME shouldn't have a reference to the view here, remove things which access this
|
||||||
view = (GLSurfaceView)graphics.getView();
|
view = (GLSurfaceView)graphics.getView();
|
||||||
|
|
||||||
inputHandler = new InputHandler();
|
|
||||||
Gdx.input.setInputProcessor(inputHandler);
|
|
||||||
Gdx.input.setCatchKey(KeyEvent.BACK, true);
|
|
||||||
Gdx.input.setCatchKey(KeyEvent.MENU, true);
|
|
||||||
|
|
||||||
//FIXME this doesn't seem to work quite right. That might not be due to LibGDX though.
|
|
||||||
Music.setMuteListener();
|
|
||||||
|
|
||||||
//so first call to onstart/onresume calls correct logic.
|
//so first call to onstart/onresume calls correct logic.
|
||||||
paused = true;
|
//paused = true;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
private boolean paused;
|
private boolean paused;
|
||||||
|
|
||||||
@@ -156,6 +115,11 @@ public class Game extends AndroidApplication implements ApplicationListener {
|
|||||||
|
|
||||||
Blending.useDefault();
|
Blending.useDefault();
|
||||||
|
|
||||||
|
inputHandler = new InputHandler();
|
||||||
|
Gdx.input.setInputProcessor(inputHandler);
|
||||||
|
Gdx.input.setCatchKey(KeyEvent.BACK, true);
|
||||||
|
Gdx.input.setCatchKey(KeyEvent.MENU, true);
|
||||||
|
|
||||||
//refreshes texture and vertex data stored on the gpu
|
//refreshes texture and vertex data stored on the gpu
|
||||||
TextureCache.reload();
|
TextureCache.reload();
|
||||||
RenderedText.reloadCache();
|
RenderedText.reloadCache();
|
||||||
@@ -219,6 +183,10 @@ public class Game extends AndroidApplication implements ApplicationListener {
|
|||||||
//Sample.INSTANCE.resume();
|
//Sample.INSTANCE.resume();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void finish(){
|
||||||
|
Gdx.app.exit();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dispose() {
|
public void dispose() {
|
||||||
destroyGame();
|
destroyGame();
|
||||||
@@ -325,4 +293,5 @@ public class Game extends AndroidApplication implements ApplicationListener {
|
|||||||
void beforeCreate();
|
void beforeCreate();
|
||||||
void afterCreate();
|
void afterCreate();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ public class Scene extends Group {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void onBackPressed() {
|
protected void onBackPressed() {
|
||||||
Gdx.app.exit();
|
Game.instance.finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void onMenuPressed() {
|
protected void onMenuPressed() {
|
||||||
|
|||||||
@@ -21,13 +21,7 @@
|
|||||||
|
|
||||||
package com.watabou.noosa.audio;
|
package com.watabou.noosa.audio;
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.os.Build;
|
|
||||||
import android.telephony.PhoneStateListener;
|
|
||||||
import android.telephony.TelephonyManager;
|
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
import com.watabou.noosa.Game;
|
|
||||||
|
|
||||||
public enum Music {
|
public enum Music {
|
||||||
|
|
||||||
@@ -114,29 +108,4 @@ public enum Music {
|
|||||||
return enabled;
|
return enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
//FIXME android-specific code, that is also broken by being part of this class.
|
|
||||||
public static void setMuteListener(){
|
|
||||||
//versions lower than this require READ_PHONE_STATE permission
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
|
||||||
TelephonyManager mgr =
|
|
||||||
(TelephonyManager) Game.instance.getSystemService(Activity.TELEPHONY_SERVICE);
|
|
||||||
mgr.listen(new PhoneStateListener(){
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCallStateChanged(int state, String incomingNumber)
|
|
||||||
{
|
|
||||||
if( state == TelephonyManager.CALL_STATE_RINGING ) {
|
|
||||||
INSTANCE.pause();
|
|
||||||
|
|
||||||
} else if( state == TelephonyManager.CALL_STATE_IDLE ) {
|
|
||||||
if (!Game.instance.isPaused()) {
|
|
||||||
INSTANCE.resume();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
super.onCallStateChanged(state, incomingNumber);
|
|
||||||
}
|
|
||||||
}, PhoneStateListener.LISTEN_CALL_STATE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ package com.watabou.utils;
|
|||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
import com.watabou.BuildConfig;
|
import com.watabou.BuildConfig;
|
||||||
|
|
||||||
|
//TODO migrate to platformSupport class
|
||||||
public class DeviceCompat {
|
public class DeviceCompat {
|
||||||
|
|
||||||
public static boolean supportsFullScreen(){
|
public static boolean supportsFullScreen(){
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
* Pixel Dungeon
|
||||||
|
* Copyright (C) 2012-2015 Oleg Dolya
|
||||||
|
*
|
||||||
|
* Shattered Pixel Dungeon
|
||||||
|
* Copyright (C) 2014-2019 Evan Debenham
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.watabou.utils;
|
||||||
|
|
||||||
|
public abstract class PlatformSupport {
|
||||||
|
|
||||||
|
public abstract void updateDisplaySize();
|
||||||
|
|
||||||
|
public abstract void updateSystemUI();
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,106 @@
|
|||||||
|
/*
|
||||||
|
* Pixel Dungeon
|
||||||
|
* Copyright (C) 2012-2015 Oleg Dolya
|
||||||
|
*
|
||||||
|
* Shattered Pixel Dungeon
|
||||||
|
* Copyright (C) 2014-2019 Evan Debenham
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||||
|
*/
|
||||||
|
|
||||||
|
apply plugin: 'com.android.application'
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdkVersion appAndroidCompileSDK
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
manifestPlaceholders = [appName:appName]
|
||||||
|
applicationId appPackageName
|
||||||
|
|
||||||
|
versionCode appVersionCode
|
||||||
|
versionName appVersionName
|
||||||
|
|
||||||
|
//noinspection MinSdkTooLow
|
||||||
|
minSdkVersion appAndroidMinSDK
|
||||||
|
targetSdkVersion appAndroidTargetSDK
|
||||||
|
|
||||||
|
resConfigs "en_US", "cs", "tr", "ca", "ko", "pl", "it",
|
||||||
|
"eo", "ru", "zh_CN", "de", "fr", "es", "pt", "fi", "hu", "in"
|
||||||
|
}
|
||||||
|
|
||||||
|
buildTypes {
|
||||||
|
debug {
|
||||||
|
applicationIdSuffix ".indev"
|
||||||
|
versionNameSuffix '-INDEV'
|
||||||
|
}
|
||||||
|
release {
|
||||||
|
|
||||||
|
//These lines enable R8, which is a code shrinker/optimizer/obfuscator.
|
||||||
|
//This makes release APKs smaller and more efficient, but also makes debugging trickier
|
||||||
|
//as the information produced in stack traces must be de-obfuscated.
|
||||||
|
//See here: https://developer.android.com/studio/build/shrink-code#decode-stack-trace
|
||||||
|
shrinkResources true
|
||||||
|
minifyEnabled true
|
||||||
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
main {
|
||||||
|
jniLibs.srcDirs = ['libs']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
configurations { natives }
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation project(':core')
|
||||||
|
|
||||||
|
implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
|
||||||
|
implementation "com.badlogicgames.gdx:gdx-controllers:$gdxVersion"
|
||||||
|
implementation "com.badlogicgames.gdx:gdx-controllers-android:$gdxVersion"
|
||||||
|
}
|
||||||
|
|
||||||
|
// called every time gradle gets executed, takes the native dependencies of
|
||||||
|
// the natives configuration, and extracts them to the proper libs/ folders
|
||||||
|
// so they get packed with the APK.
|
||||||
|
task copyAndroidNatives() {
|
||||||
|
file("libs/armeabi/").mkdirs()
|
||||||
|
file("libs/armeabi-v7a/").mkdirs()
|
||||||
|
file("libs/arm64-v8a/").mkdirs()
|
||||||
|
file("libs/x86_64/").mkdirs()
|
||||||
|
file("libs/x86/").mkdirs()
|
||||||
|
|
||||||
|
configurations.natives.files.each { jar ->
|
||||||
|
def outputDir = null
|
||||||
|
if(jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
|
||||||
|
if(jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
|
||||||
|
if(jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
|
||||||
|
if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
|
||||||
|
if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
|
||||||
|
if(outputDir != null) {
|
||||||
|
copy {
|
||||||
|
from zipTree(jar)
|
||||||
|
into outputDir
|
||||||
|
include "*.so"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,3 +1,12 @@
|
|||||||
|
# retain these to support class references for the bundling and translation systems
|
||||||
|
-keepnames class com.shatteredpixel.** { *; }
|
||||||
|
-keepnames class com.watabou.** { *; }
|
||||||
|
|
||||||
|
# retained to support meaningful stack traces
|
||||||
|
# note that the mapping file must be referenced in order to make sense of line numbers
|
||||||
|
# mapping file can be found in core/build/outputs/mapping after running a release build
|
||||||
|
-keepattributes SourceFile,LineNumberTable
|
||||||
|
|
||||||
-dontwarn android.support.**
|
-dontwarn android.support.**
|
||||||
-dontwarn com.badlogic.gdx.backends.android.AndroidFragmentApplication
|
-dontwarn com.badlogic.gdx.backends.android.AndroidFragmentApplication
|
||||||
-dontwarn com.badlogic.gdx.utils.GdxBuild
|
-dontwarn com.badlogic.gdx.utils.GdxBuild
|
||||||
|
Before Width: | Height: | Size: 1017 B After Width: | Height: | Size: 1017 B |
|
Before Width: | Height: | Size: 470 B After Width: | Height: | Size: 470 B |
|
Before Width: | Height: | Size: 376 B After Width: | Height: | Size: 376 B |
|
Before Width: | Height: | Size: 498 B After Width: | Height: | Size: 498 B |
|
Before Width: | Height: | Size: 749 B After Width: | Height: | Size: 749 B |
|
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 351 B |
|
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 354 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 468 B After Width: | Height: | Size: 468 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 619 B After Width: | Height: | Size: 619 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 953 B After Width: | Height: | Size: 953 B |
|
Before Width: | Height: | Size: 595 B After Width: | Height: | Size: 595 B |
@@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="com.shatteredpixel.shatteredpixeldungeon.android"
|
||||||
|
android:installLocation="auto">
|
||||||
|
|
||||||
|
<uses-feature
|
||||||
|
android:glEsVersion="0x00020000"/>
|
||||||
|
|
||||||
|
<!-- Note that the game doesn't truly support small screen resolutions,
|
||||||
|
it instead forces downscaling to work on these displays.-->
|
||||||
|
<supports-screens
|
||||||
|
android:smallScreens="true"
|
||||||
|
android:normalScreens="true"
|
||||||
|
android:largeScreens="true"
|
||||||
|
android:xlargeScreens="true"/>
|
||||||
|
|
||||||
|
<application
|
||||||
|
android:icon="@mipmap/ic_launcher"
|
||||||
|
android:label="${appName}"
|
||||||
|
android:theme="@android:style/Theme.Black.NoTitleBar"
|
||||||
|
android:resizeableActivity="true"
|
||||||
|
android:allowBackup="true"
|
||||||
|
android:fullBackupOnly="true"
|
||||||
|
android:backupAgent=".AndroidBackupHandler">
|
||||||
|
<activity
|
||||||
|
android:label="${appName}"
|
||||||
|
android:name=".AndroidLauncher"
|
||||||
|
android:screenOrientation="nosensor"
|
||||||
|
android:configChanges="keyboard|keyboardHidden|orientation">
|
||||||
|
<intent-filter >
|
||||||
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
||||||
|
Before Width: | Height: | Size: 423 B After Width: | Height: | Size: 423 B |
|
Before Width: | Height: | Size: 121 B After Width: | Height: | Size: 121 B |
|
Before Width: | Height: | Size: 180 B After Width: | Height: | Size: 180 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 351 B |
|
Before Width: | Height: | Size: 598 B After Width: | Height: | Size: 598 B |
|
Before Width: | Height: | Size: 350 B After Width: | Height: | Size: 350 B |
|
Before Width: | Height: | Size: 413 B After Width: | Height: | Size: 413 B |
|
Before Width: | Height: | Size: 1019 B After Width: | Height: | Size: 1019 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 860 B After Width: | Height: | Size: 860 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 289 B After Width: | Height: | Size: 289 B |
|
Before Width: | Height: | Size: 716 B After Width: | Height: | Size: 716 B |
|
Before Width: | Height: | Size: 337 B After Width: | Height: | Size: 337 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 83 B After Width: | Height: | Size: 83 B |
|
Before Width: | Height: | Size: 712 B After Width: | Height: | Size: 712 B |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 299 B After Width: | Height: | Size: 299 B |
|
Before Width: | Height: | Size: 1002 B After Width: | Height: | Size: 1002 B |
|
Before Width: | Height: | Size: 408 B After Width: | Height: | Size: 408 B |
|
Before Width: | Height: | Size: 491 B After Width: | Height: | Size: 491 B |
|
Before Width: | Height: | Size: 702 B After Width: | Height: | Size: 702 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 109 B After Width: | Height: | Size: 109 B |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 276 B After Width: | Height: | Size: 276 B |
|
Before Width: | Height: | Size: 172 B After Width: | Height: | Size: 172 B |
|
Before Width: | Height: | Size: 208 B After Width: | Height: | Size: 208 B |
|
Before Width: | Height: | Size: 120 B After Width: | Height: | Size: 120 B |
|
Before Width: | Height: | Size: 475 B After Width: | Height: | Size: 475 B |
|
Before Width: | Height: | Size: 232 B After Width: | Height: | Size: 232 B |
|
Before Width: | Height: | Size: 146 B After Width: | Height: | Size: 146 B |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 404 B After Width: | Height: | Size: 404 B |
|
Before Width: | Height: | Size: 751 B After Width: | Height: | Size: 751 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 416 B After Width: | Height: | Size: 416 B |
|
Before Width: | Height: | Size: 543 B After Width: | Height: | Size: 543 B |
|
Before Width: | Height: | Size: 797 B After Width: | Height: | Size: 797 B |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 511 B After Width: | Height: | Size: 511 B |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 865 B After Width: | Height: | Size: 865 B |
|
Before Width: | Height: | Size: 375 B After Width: | Height: | Size: 375 B |
|
Before Width: | Height: | Size: 671 B After Width: | Height: | Size: 671 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 74 B After Width: | Height: | Size: 74 B |
|
Before Width: | Height: | Size: 598 B After Width: | Height: | Size: 598 B |
|
Before Width: | Height: | Size: 280 B After Width: | Height: | Size: 280 B |
|
Before Width: | Height: | Size: 108 B After Width: | Height: | Size: 108 B |
|
Before Width: | Height: | Size: 279 B After Width: | Height: | Size: 279 B |
|
Before Width: | Height: | Size: 548 B After Width: | Height: | Size: 548 B |