diff --git a/.gitignore b/.gitignore index 0036ba52c..b9564a031 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ project/local.properties project/bin project/gen +project/lib project/libs project/assets project/obj diff --git a/build.sh b/build.sh index b77424132..2fd7da1c6 100755 --- a/build.sh +++ b/build.sh @@ -5,6 +5,7 @@ install_apk=false run_apk=false sign_apk=false build_release=true +quick_rebuild=false if [ "$#" -gt 0 -a "$1" = "-s" ]; then shift @@ -22,6 +23,11 @@ if [ "$#" -gt 0 -a "$1" = "-r" ]; then run_apk=true fi +if [ "$#" -gt 0 -a "$1" = "-q" ]; then + shift + quick_rebuild=true +fi + if [ "$#" -gt 0 -a "$1" = "release" ]; then shift build_release=true @@ -34,10 +40,11 @@ if [ "$#" -gt 0 -a "$1" = "debug" ]; then fi if [ "$#" -gt 0 -a "$1" = "-h" ]; then - echo "Usage: $0 [-s] [-i] [-r] [release]" + echo "Usage: $0 [-s] [-i] [-r] [-q] [debug|release]" echo " -s: sign APK file after building" echo " -i: install APK file to device after building" echo " -r: run APK file on device after building" + echo " -q: quick-rebuild C code, without rebuilding Java files" echo " debug: build debug package" echo " release: build release package (default)" exit 0 @@ -78,7 +85,7 @@ if uname -s | grep -i "windows" > /dev/null ; then fi grep "64.bit" "`which ndk-build | sed 's@/ndk-build@@'`/RELEASE.TXT" >/dev/null 2>&1 && MYARCH="${MYARCH}_64" -rm -r -f project/bin/* # New Android SDK introduced some lame-ass optimizations to the build system which we should take care about +$quick_rebuild || rm -r -f project/bin/* # New Android SDK introduced some lame-ass optimizations to the build system which we should take care about [ -x project/jni/application/src/AndroidPreBuild.sh ] && { cd project/jni/application/src ./AndroidPreBuild.sh || { echo "AndroidPreBuild.sh returned with error" ; exit 1 ; } @@ -127,11 +134,21 @@ cd project && env PATH=$NDKBUILDPATH BUILD_NUM_CPUS=$NCPU nice -n19 ndk-build -j || true ; } && \ cd .. && ./copyAssets.sh && cd project && \ { if $build_release ; then \ - ant release || exit 1 ; \ + $quick_rebuild && { \ + ln -s -f libs lib ; \ + zip -u -r bin/MainActivity-release-unsigned.apk lib assets || exit 1 ; \ + } || ant release || exit 1 ; \ jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -sigalg MD5withRSA -digestalg SHA1 bin/MainActivity-release-unsigned.apk androiddebugkey || exit 1 ; \ + rm -f bin/MainActivity-debug.apk ; \ zipalign 4 bin/MainActivity-release-unsigned.apk bin/MainActivity-debug.apk || exit 1 ; \ else \ - ant debug || exit 1 ; \ + $quick_rebuild && { \ + ln -s -f libs lib ; \ + zip -u -r bin/MainActivity-debug-unaligned.apk lib assets || exit 1 ; \ + jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -sigalg MD5withRSA -digestalg SHA1 bin/MainActivity-debug-unaligned.apk androiddebugkey || exit 1 ; \ + rm -f bin/MainActivity-debug.apk ; \ + zipalign 4 bin/MainActivity-debug-unaligned.apk bin/MainActivity-debug.apk || exit 1 ; \ + } || ant debug || exit 1 ; \ fi ; } && \ { if $sign_apk; then cd .. && ./sign.sh && cd project ; else true ; fi ; } && \ { $install_apk && [ -n "`adb devices | tail -n +2`" ] && \ diff --git a/buildQuick.sh b/buildQuick.sh deleted file mode 100755 index 7e6b8b950..000000000 --- a/buildQuick.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# Set here your own NDK path if needed -# export PATH=$PATH:~/src/endless_space/android-ndk-r4b -# Set environment to CrystaX NDK with RTTI and exceptions instead of original NDK -# export PATH=$PATH:~/src/endless_space/android-ndk-r4-crystax/ndk-build -NDKBUILDPATH=$PATH -if grep "AppUseCrystaXToolchain=y" AndroidAppSettings.cfg > /dev/null ; then - NDKBUILDPATH=`which ndk-build | sed 's@/[^/]*/ndk-build@/android-ndk-r4-crystax@'`:$PATH -fi - -[ -e project/bin/lib ] || ln -s ../libs project/bin/lib - -cd project && \ -env PATH=$NDKBUILDPATH ndk-build -j2 V=1 && \ -cd bin && \ -rm -rf DemoActivity-debug-unaligned.apk && \ -cp DemoActivity.ap_ DemoActivity-debug-unaligned.apk && \ -zip -1 -r DemoActivity-debug-unaligned.apk classes.dex lib && \ -jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android DemoActivity-debug-unaligned.apk androiddebugkey && \ -rm -rf DemoActivity-debug.apk && \ -zipalign 4 DemoActivity-debug-unaligned.apk DemoActivity-debug.apk && \ -adb install -r DemoActivity-debug.apk - diff --git a/project/java/GLSurfaceView_SDL.java b/project/java/GLSurfaceView_SDL.java index 9f132e597..93c3a465e 100644 --- a/project/java/GLSurfaceView_SDL.java +++ b/project/java/GLSurfaceView_SDL.java @@ -209,6 +209,7 @@ public class GLSurfaceView_SDL extends SurfaceView implements SurfaceHolder.Call SurfaceHolder holder = getHolder(); holder.addCallback(this); holder.setType(SurfaceHolder.SURFACE_TYPE_GPU); + mKeyguardManager = ((KeyguardManager)getContext().getSystemService(Context.KEYGUARD_SERVICE)); } /** @@ -1106,7 +1107,7 @@ public class GLSurfaceView_SDL extends SurfaceView implements SurfaceHolder.Call } private boolean needToWait() { - if (((KeyguardManager)getContext().getSystemService(Context.KEYGUARD_SERVICE)).inKeyguardRestrictedInputMode()) { + if (mKeyguardManager.inKeyguardRestrictedInputMode()) { return true; // We're in lockscreen - sleep until user unlocks the device } @@ -1281,4 +1282,5 @@ public class GLSurfaceView_SDL extends SurfaceView implements SurfaceHolder.Call private EGLConfigChooser mEGLConfigChooser; private GLWrapper mGLWrapper; private int mDebugFlags; + private KeyguardManager mKeyguardManager; } diff --git a/project/jni/application/openttd/AndroidAppSettings.cfg b/project/jni/application/openttd/AndroidAppSettings.cfg index 578f2bcd7..c42d589ae 100644 --- a/project/jni/application/openttd/AndroidAppSettings.cfg +++ b/project/jni/application/openttd/AndroidAppSettings.cfg @@ -7,10 +7,10 @@ AppName="OpenTTD" AppFullName=org.openttd.sdl # Application version code (integer) -AppVersionCode=14029 +AppVersionCode=14030 # Application user-visible version name (string) -AppVersionName="1.4.0.29" +AppVersionName="1.4.0.30" # Specify path to download application data in zip archive in the form 'Description|URL|MirrorURL^Description2|URL2|MirrorURL2^...' # If you'll start Description with '!' symbol it will be enabled by default, other downloads should be selected by user from startup config menu @@ -18,17 +18,17 @@ AppVersionName="1.4.0.29" # If the URL does not contain 'http://' it is treated as file from 'project/jni/application/src/AndroidData' dir - # these files are put inside .apk package by build system # Also please avoid 'https://' URLs, many Android devices do not have trust certificates and will fail to connect to SF.net over HTTPS -AppDataDownloadUrl="!!Data files - 20 Mb|http://sourceforge.net/projects/libsdl-android/files/OpenTTD/openttd-data-1.4.0-1.zip/download^!!Config file|:.openttd/openttd.cfg:openttd-1.4.0.27.cfg^!MIDI music support (18 Mb)|timidity.zip|http://sourceforge.net/projects/libsdl-android/files/timidity.zip^!!Internationalization files|http://sourceforge.net/projects/libsdl-android/files/icudt52l.zip/download" +AppDataDownloadUrl="!!Data files - 20 Mb|http://sourceforge.net/projects/libsdl-android/files/OpenTTD/openttd-data-1.4.0-2.zip/download^!!Config file|:.openttd/openttd.cfg:openttd-1.4.0.30.cfg^!MIDI music support (18 Mb)|timidity.zip|http://sourceforge.net/projects/libsdl-android/files/timidity.zip^!!Internationalization files|http://sourceforge.net/projects/libsdl-android/files/icudt52l.zip/download" # Reset SDL config when updating application to the new version (y) / (n) ResetSdlConfigForThisVersion=y # Delete application data files when upgrading (specify file/dir paths separated by spaces) -DeleteFilesOnUpgrade="baseset .openttd/windows.cfg .openttd/hotkeys.cfg .openttd/openttd.cfg" +DeleteFilesOnUpgrade="" # Here you may type readme text, which will be shown during startup. Format is: # Text in English, use \\\\n to separate lines (that's four backslashes)^de:Text in Deutsch^ru:Text in Russian^button:Button that will open some URL:http://url-to-open/ -ReadmeText='If this update runs slowly - install OpenTTD-lowmem,\\\\nit is tuned for older devices, and uses simpler 8bpp graphics\\\\n^button:Install OpenTTD-lowmem:https://play.google.com/store/apps/details?id=org.openttd.sdl.lowmem' +ReadmeText='' # libSDL version to use (1.2/1.3/2.0) LibSdlVersion=1.2 @@ -38,7 +38,7 @@ ScreenOrientation=h # Video color depth - 16 BPP is the fastest and supported for all modes, 24 bpp is supported only # with SwVideoMode=y, SDL_OPENGL mode supports everything. (16)/(24)/(32) -VideoDepthBpp=24 +VideoDepthBpp=16 # Enable OpenGL depth buffer (needed only for 3-d applications, small speed decrease) (y) or (n) NeedDepthBuffer=n @@ -201,7 +201,7 @@ FirstStartMenuOptions='' # Enable multi-ABI binary, with hardware FPU support - it will also work on old devices, # but .apk size is 2x bigger (y) / (n) / (x86) / (all) -MultiABI=all +MultiABI=armeabi-v7a # Minimum amount of RAM application requires, in Mb, SDL will print warning to user if it's lower AppMinimumRAM=0 @@ -230,11 +230,11 @@ AppSubdirsBuild='' AppBuildExclude='' # Application command line parameters, including app name as 0-th param -AppCmdline='openttd -d 1 -b 32bpp-anim' +AppCmdline='openttd -d 1 -b 16bpp-simple' # Screen size is used by Google Play to prevent an app to be installed on devices with smaller screens # Minimum screen size that application supports: (s)mall / (m)edium / (l)arge -MinimumScreenSize=s +MinimumScreenSize=m # Your AdMob Publisher ID, (n) if you don't want advertisements AdmobPublisherId=n diff --git a/project/jni/application/openttd/AndroidData/openttd-1.4.0.27.cfg b/project/jni/application/openttd/AndroidData/openttd-1.4.0.30.cfg similarity index 95% rename from project/jni/application/openttd/AndroidData/openttd-1.4.0.27.cfg rename to project/jni/application/openttd/AndroidData/openttd-1.4.0.30.cfg index cc4467b06..6b9a85504 100644 --- a/project/jni/application/openttd/AndroidData/openttd-1.4.0.27.cfg +++ b/project/jni/application/openttd/AndroidData/openttd-1.4.0.30.cfg @@ -18,4 +18,4 @@ min_step_size = 40 [gui] left_mouse_btn_scrolling = true osk_activation = disabled -auto_scrolling = 2 +auto_scrolling = 0 diff --git a/project/jni/application/openttd/src b/project/jni/application/openttd/src index fed40b76f..318ff9d37 160000 --- a/project/jni/application/openttd/src +++ b/project/jni/application/openttd/src @@ -1 +1 @@ -Subproject commit fed40b76ff3533462aaaff943ee9d5e687d7e714 +Subproject commit 318ff9d373a9eb3f33f6c0afaebef8c6d3fffabd diff --git a/todo.txt b/todo.txt index 44fa920b7..af40c00ca 100644 --- a/todo.txt +++ b/todo.txt @@ -15,18 +15,18 @@ TODO, which will get actually done - SuperTux: Update, enable OpenGL renderer, add touchscreen jump helper, add gamepad support, fix zoom in settings. -- OpenTTD: logarithmic music volume, restore volume on new track. - -- OpenTTD: no sounds with music on. - -- OpenTTD: Fix multiplayer lobby dialog. - - OpenTTD: Two-finger scrolling. -- OpenTTD: auto-switch to full toolbar if enough space. +- OpenTTD: Split top toolbar into left/right toolbars. -- OpenTTD: 'build waypoint' button tries to build a train station. +- OpenTTD: Option to hide mouse cursor. -- Debian Noroot: Audio support. +- OpenTTD: Show info about facility on mouse up instead of mouse down. + +- Debian noroot: Audio support. - UQM: use gyroscope to steer the ship, search button for starmap. + +- USB Keyboard: modify /dev/hidg* permissions autmatically, using su. + +- XSDL: add downloadable raster fonts, add path to fonts to Debian/Gimp.