SDL: updated Gradle and Play Games library, this fixes cloud saves
This commit is contained in:
3
build.sh
3
build.sh
@@ -142,6 +142,9 @@ strip_libs() {
|
||||
return 0
|
||||
}
|
||||
|
||||
# Fix Gradle compilation error
|
||||
[ -z "$ANDROID_NDK_HOME" ] && export ANDROID_NDK_HOME="`which ndk-build | sed 's@/ndk-build@@'`"
|
||||
|
||||
cd project && env PATH=$NDKBUILDPATH BUILD_NUM_CPUS=$NCPU ndk-build -j$NCPU V=1 $QUICK_REBUILD_ARGS && \
|
||||
strip_libs && \
|
||||
cd .. && ./copyAssets.sh && cd project && \
|
||||
|
||||
@@ -60,9 +60,6 @@
|
||||
/>
|
||||
</application>
|
||||
|
||||
<!-- Must match version numbers in project/app/build-template.gradle -->
|
||||
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="29" />
|
||||
|
||||
<!-- ==INTERNET== --> <uses-permission android:name="android.permission.INTERNET" />
|
||||
<!-- ==EXTERNAL_STORAGE== --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<!-- ==EXTERNAL_STORAGE== --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
|
||||
@@ -2,6 +2,7 @@ apply plugin: 'com.android.application'
|
||||
|
||||
android {
|
||||
compileSdkVersion 29
|
||||
buildToolsVersion "29.0.3"
|
||||
|
||||
defaultConfig {
|
||||
applicationId "net.olofson.ballfield"
|
||||
@@ -12,11 +13,11 @@ android {
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled true
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../proguard-local.cfg', '../proguard.cfg'
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), '../proguard-local.cfg', '../proguard.cfg'
|
||||
}
|
||||
}
|
||||
|
||||
dependencies { compile 'com.google.android.gms:play-services-games:11.4.0' } // ==GOOGLEPLAYGAMESERVICES==
|
||||
dependencies { compile 'com.google.android.gms:play-services-drive:11.4.0' } // ==GOOGLEPLAYGAMESERVICES==
|
||||
dependencies { compile 'com.google.android.gms:play-services-games:19.0.0' } // ==GOOGLEPLAYGAMESERVICES==
|
||||
dependencies { compile 'com.google.android.gms:play-services-drive:17.0.0' } // ==GOOGLEPLAYGAMESERVICES==
|
||||
}
|
||||
|
||||
|
||||
@@ -5,9 +5,10 @@ buildscript {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.2.1'
|
||||
classpath 'com.android.tools.build:gradle:3.6.2'
|
||||
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
@@ -19,6 +20,7 @@ allprojects {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
20
project/gradle.properties
Normal file
20
project/gradle.properties
Normal file
@@ -0,0 +1,20 @@
|
||||
# Project-wide Gradle settings.
|
||||
# IDE (e.g. Android Studio) users:
|
||||
# Gradle settings configured through the IDE *will override*
|
||||
# any settings specified in this file.
|
||||
# For more details on how to configure your build environment visit
|
||||
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
||||
# Specifies the JVM arguments used for the daemon process.
|
||||
# The setting is particularly useful for tweaking memory settings.
|
||||
org.gradle.jvmargs=-Xmx1536m
|
||||
# When configured, Gradle will run in incubating parallel mode.
|
||||
# This option should only be used with decoupled projects. More details, visit
|
||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
||||
# org.gradle.parallel=true
|
||||
# AndroidX package structure to make it clearer which packages are bundled with the
|
||||
# Android operating system, and which are packaged with your app's APK
|
||||
# https://developer.android.com/topic/libraries/support-library/androidx-rn
|
||||
android.useAndroidX=true
|
||||
# Automatically convert third-party libraries to use AndroidX
|
||||
android.enableJetifier=true
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#Thu Apr 16 21:28:37 EEST 2020
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
|
||||
|
||||
@@ -364,10 +364,6 @@ public class CloudSave implements GameHelper.GameHelperListener {
|
||||
mHelper.enableDebugLog(enabled);
|
||||
}
|
||||
|
||||
public String getInvitationId() {
|
||||
return mHelper.getInvitationId();
|
||||
}
|
||||
|
||||
public void reconnectClient() {
|
||||
mHelper.reconnectClient();
|
||||
}
|
||||
|
||||
@@ -37,12 +37,6 @@ import com.google.android.gms.drive.Drive;
|
||||
import com.google.android.gms.games.Games;
|
||||
import com.google.android.gms.games.Games.GamesOptions;
|
||||
import com.google.android.gms.games.GamesActivityResultCodes;
|
||||
import com.google.android.gms.games.multiplayer.Invitation;
|
||||
import com.google.android.gms.games.multiplayer.Multiplayer;
|
||||
import com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch;
|
||||
import com.google.android.gms.games.request.GameRequest;
|
||||
//import com.google.android.gms.plus.Plus;
|
||||
//import com.google.android.gms.plus.Plus.PlusOptions;
|
||||
|
||||
public class GameHelper implements GoogleApiClient.ConnectionCallbacks,
|
||||
GoogleApiClient.OnConnectionFailedListener {
|
||||
@@ -121,11 +115,9 @@ public class GameHelper implements GoogleApiClient.ConnectionCallbacks,
|
||||
// Client request flags
|
||||
public final static int CLIENT_NONE = 0x00;
|
||||
public final static int CLIENT_GAMES = 0x01;
|
||||
//public final static int CLIENT_PLUS = 0x02;
|
||||
public final static int CLIENT_APPSTATE = 0x04;
|
||||
public final static int CLIENT_SNAPSHOT = 0x05;
|
||||
public final static int CLIENT_ALL = CLIENT_GAMES //| CLIENT_PLUS
|
||||
| CLIENT_APPSTATE | CLIENT_SNAPSHOT;
|
||||
public final static int CLIENT_ALL = CLIENT_GAMES | CLIENT_APPSTATE | CLIENT_SNAPSHOT;
|
||||
|
||||
// What clients were requested? (bit flags)
|
||||
int mRequestedClients = CLIENT_NONE;
|
||||
@@ -157,24 +149,6 @@ public class GameHelper implements GoogleApiClient.ConnectionCallbacks,
|
||||
|
||||
Handler mHandler;
|
||||
|
||||
/*
|
||||
* If we got an invitation when we connected to the games client, it's here.
|
||||
* Otherwise, it's null.
|
||||
*/
|
||||
Invitation mInvitation;
|
||||
|
||||
/*
|
||||
* If we got turn-based match when we connected to the games client, it's
|
||||
* here. Otherwise, it's null.
|
||||
*/
|
||||
TurnBasedMatch mTurnBasedMatch;
|
||||
|
||||
/*
|
||||
* If we have incoming requests when we connected to the games client, they
|
||||
* are here. Otherwise, it's null.
|
||||
*/
|
||||
ArrayList<GameRequest> mRequests;
|
||||
|
||||
// Listener
|
||||
GameHelperListener mListener = null;
|
||||
|
||||
@@ -414,101 +388,6 @@ public class GameHelper implements GoogleApiClient.ConnectionCallbacks,
|
||||
mActivity = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the invitation ID received through an invitation notification.
|
||||
* This should be called from your GameHelperListener's
|
||||
*
|
||||
* @link{GameHelperListener#onSignInSucceeded method, to check if there's an
|
||||
* invitation available. In that
|
||||
* case, accept the invitation.
|
||||
* @return The id of the invitation, or null if none was received.
|
||||
*/
|
||||
public String getInvitationId() {
|
||||
if (!mGoogleApiClient.isConnected()) {
|
||||
Log.w(TAG,
|
||||
"Warning: getInvitationId() should only be called when signed in, "
|
||||
+ "that is, after getting onSignInSuceeded()");
|
||||
}
|
||||
return mInvitation == null ? null : mInvitation.getInvitationId();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the invitation received through an invitation notification. This
|
||||
* should be called from your GameHelperListener's
|
||||
*
|
||||
* @link{GameHelperListener#onSignInSucceeded method, to check if there's an
|
||||
* invitation available. In that
|
||||
* case, accept the invitation.
|
||||
* @return The invitation, or null if none was received.
|
||||
*/
|
||||
public Invitation getInvitation() {
|
||||
if (!mGoogleApiClient.isConnected()) {
|
||||
Log.w(TAG,
|
||||
"Warning: getInvitation() should only be called when signed in, "
|
||||
+ "that is, after getting onSignInSuceeded()");
|
||||
}
|
||||
return mInvitation;
|
||||
}
|
||||
|
||||
public boolean hasInvitation() {
|
||||
return mInvitation != null;
|
||||
}
|
||||
|
||||
public boolean hasTurnBasedMatch() {
|
||||
return mTurnBasedMatch != null;
|
||||
}
|
||||
|
||||
public boolean hasRequests() {
|
||||
return mRequests != null;
|
||||
}
|
||||
|
||||
public void clearInvitation() {
|
||||
mInvitation = null;
|
||||
}
|
||||
|
||||
public void clearTurnBasedMatch() {
|
||||
mTurnBasedMatch = null;
|
||||
}
|
||||
|
||||
public void clearRequests() {
|
||||
mRequests = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the tbmp match received through an invitation notification. This
|
||||
* should be called from your GameHelperListener's
|
||||
*
|
||||
* @link{GameHelperListener#onSignInSucceeded method, to check if there's a
|
||||
* match available.
|
||||
* @return The match, or null if none was received.
|
||||
*/
|
||||
public TurnBasedMatch getTurnBasedMatch() {
|
||||
if (!mGoogleApiClient.isConnected()) {
|
||||
Log.w(TAG,
|
||||
"Warning: getTurnBasedMatch() should only be called when signed in, "
|
||||
+ "that is, after getting onSignInSuceeded()");
|
||||
}
|
||||
return mTurnBasedMatch;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the requests received through the onConnected bundle. This should
|
||||
* be called from your GameHelperListener's
|
||||
*
|
||||
* @link{GameHelperListener#onSignInSucceeded method, to check if there are
|
||||
* incoming requests that must be
|
||||
* handled.
|
||||
* @return The requests, or null if none were received.
|
||||
*/
|
||||
public ArrayList<GameRequest> getRequests() {
|
||||
if (!mGoogleApiClient.isConnected()) {
|
||||
Log.w(TAG, "Warning: getRequests() should only be called "
|
||||
+ "when signed in, "
|
||||
+ "that is, after getting onSignInSuceeded()");
|
||||
}
|
||||
return mRequests;
|
||||
}
|
||||
|
||||
/** Enables debug logging */
|
||||
public void enableDebugLog(boolean enabled) {
|
||||
mDebugLog = enabled;
|
||||
@@ -686,8 +565,6 @@ public class GameHelper implements GoogleApiClient.ConnectionCallbacks,
|
||||
}
|
||||
debugLog("Starting connection.");
|
||||
mConnecting = true;
|
||||
mInvitation = null;
|
||||
mTurnBasedMatch = null;
|
||||
mGoogleApiClient.connect();
|
||||
}
|
||||
|
||||
@@ -712,27 +589,6 @@ public class GameHelper implements GoogleApiClient.ConnectionCallbacks,
|
||||
|
||||
if (connectionHint != null) {
|
||||
debugLog("onConnected: connection hint provided. Checking for invite.");
|
||||
Invitation inv = connectionHint
|
||||
.getParcelable(Multiplayer.EXTRA_INVITATION);
|
||||
if (inv != null && inv.getInvitationId() != null) {
|
||||
// retrieve and cache the invitation ID
|
||||
debugLog("onConnected: connection hint has a room invite!");
|
||||
mInvitation = inv;
|
||||
debugLog("Invitation ID: " + mInvitation.getInvitationId());
|
||||
}
|
||||
|
||||
// Do we have any requests pending?
|
||||
mRequests = Games.Requests
|
||||
.getGameRequestsFromBundle(connectionHint);
|
||||
if (!mRequests.isEmpty()) {
|
||||
// We have requests in onConnected's connectionHint.
|
||||
debugLog("onConnected: connection hint has " + mRequests.size()
|
||||
+ " request(s)");
|
||||
}
|
||||
|
||||
debugLog("onConnected: connection hint provided. Checking for TBMP game.");
|
||||
mTurnBasedMatch = connectionHint
|
||||
.getParcelable(Multiplayer.EXTRA_TURN_BASED_MATCH);
|
||||
}
|
||||
|
||||
// we're good to go
|
||||
|
||||
@@ -13,11 +13,13 @@ AppVersionCode=1406
|
||||
AppVersionName="1.4.06"
|
||||
|
||||
# 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
|
||||
# If you'll start Description with '!' symbol it will be enabled by default, '!!' will also hide the entry from the menu, so it cannot be disabled
|
||||
# If the URL in in the form ':dir/file.dat:http://URL/' it will be downloaded as binary BLOB to the application dir and not unzipped
|
||||
# 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
|
||||
# If the URL does not contain 'http://' or 'https://', it is treated as file from 'project/jni/application/src/AndroidData' dir -
|
||||
# these files are put inside .apk package by the build system
|
||||
# You can specify Google Play expansion files in the form 'obb:main.12345' or 'obb:patch.12345' where 12345 is the app version for obb file
|
||||
# You can use .zip.xz archives for better compression, but you need to add 'lzma' to CompiledLibraries
|
||||
# Generate .zip.xz files like this: zip -0 -r data.zip your-data/* ; xz -8 data.zip
|
||||
AppDataDownloadUrl="!Game data|data3.zip"
|
||||
|
||||
# Reset SDL config when updating application to the new version (y) / (n)
|
||||
@@ -46,10 +48,17 @@ NeedDepthBuffer=n
|
||||
# Enable OpenGL stencil buffer (needed only for 3-d applications, small speed decrease) (y) or (n)
|
||||
NeedStencilBuffer=n
|
||||
|
||||
# Try to use GLES 2.x context - will revert to GLES 1.X if unsupported by device
|
||||
# Use GLES 2.x context
|
||||
# you need this option only if you're developing 3-d app (y) or (n)
|
||||
NeedGles2=n
|
||||
|
||||
# Use GLES 3.x context
|
||||
# you need this option only if you're developing 3-d app (y) or (n)
|
||||
NeedGles3=n
|
||||
|
||||
# Use gl4es library for provide OpenGL 1.x functionality to OpenGL ES accelerated cards (y) or (n)
|
||||
UseGl4es=
|
||||
|
||||
# Application uses software video buffer - you're calling SDL_SetVideoMode() without SDL_HWSURFACE and without SDL_OPENGL,
|
||||
# this will allow small speed optimization. Enable this even when you're using SDL_HWSURFACE. (y) or (n)
|
||||
SwVideoMode=y
|
||||
@@ -80,6 +89,14 @@ CompatibilityHacksStaticInit=n
|
||||
# On-screen Android soft text input emulates hardware keyboard, this will only work with Hackers Keyboard app (y)/(n)
|
||||
CompatibilityHacksTextInputEmulatesHwKeyboard=n
|
||||
|
||||
# Built-in text input keyboards with custom layouts for emulators, requires CompatibilityHacksTextInputEmulatesHwKeyboard=y
|
||||
# 0 or empty - standard Android keyboard
|
||||
# 1 - Simple QWERTY keyboard, no function keys, no arrow keys
|
||||
# 2 - Commodore 64 keyboard
|
||||
# 3 - Amiga keyboard
|
||||
# 4 - Atari800 keyboard
|
||||
TextInputKeyboard=
|
||||
|
||||
# Hack for broken devices: prevent audio chopping, by sleeping a bit after pushing each audio chunk (y)/(n)
|
||||
CompatibilityHacksPreventAudioChopping=n
|
||||
|
||||
@@ -113,6 +130,9 @@ RightMouseButtonLongPress=
|
||||
# Show SDL mouse cursor, for applications that do not draw cursor at all (y) or (n)
|
||||
ShowMouseCursor=n
|
||||
|
||||
# Screen follows mouse cursor, when it's covered by soft keyboard, this works only in software video mode (y) or (n)
|
||||
ScreenFollowsMouse=
|
||||
|
||||
# Generate more touch events, by default SDL generates one event per one video frame, this is useful for drawing apps (y) or (n)
|
||||
GenerateSubframeTouchEvents=
|
||||
|
||||
@@ -145,6 +165,9 @@ AppUsesAccelerometer=n
|
||||
# Application uses gyroscope (y) or (n), the gyroscope will be used as joystick 1 axes 2-4
|
||||
AppUsesGyroscope=n
|
||||
|
||||
# Application uses orientation sensor (y) or (n), reported as joystick 1 axes 8-10
|
||||
AppUsesOrientationSensor=
|
||||
|
||||
# Use gyroscope to move mouse cursor (y) or (n), it eats battery, and can be disabled in settings, do not use with AppUsesGyroscope setting
|
||||
MoveMouseWithGyroscope=
|
||||
|
||||
@@ -156,15 +179,21 @@ AppUsesMultitouch=n
|
||||
# This option will add additional permission to Android manifest (y)/(n)
|
||||
AppRecordsAudio=n
|
||||
|
||||
# Application needs to access SD card. If your data files are bigger than 5 Mb, enable it. (y) / (n)
|
||||
# Application needs read/write access SD card. Always disable it, unless you want to access user photos and downloads. (y) / (n)
|
||||
AccessSdCard=
|
||||
|
||||
# Application needs to read it's own OBB file. Enable this if you are using Play Store expansion files. (y) / (n)
|
||||
ReadObbFile=
|
||||
|
||||
# Application needs Internet access. If you disable it, you'll have to bundle all your data files inside .apk (y) / (n)
|
||||
AccessInternet=
|
||||
|
||||
# Immersive mode - Android will hide on-screen Home/Back keys. Looks bad if you invoke Android keyboard. (y) / (n)
|
||||
ImmersiveMode=
|
||||
|
||||
# Hide Android system mouse cursor image when USB mouse is attached (y) or (n) - the app must draw it's own mouse cursor
|
||||
HideSystemMousePointer=
|
||||
|
||||
# Application implements Android-specific routines to put to background, and will not draw anything to screen
|
||||
# between SDL_ACTIVEEVENT lost / gained notifications - you should check for them
|
||||
# rigth after SDL_Flip(), if (n) then SDL_Flip() will block till app in background (y) or (n)
|
||||
@@ -188,38 +217,62 @@ RedefinedKeysScreenKb="RETURN SPACE"
|
||||
RedefinedKeysScreenKbNames="RETURN SPACE"
|
||||
|
||||
# On-screen keys theme
|
||||
# 0 = Ultimate Droid by Sean Stieber (green, with gamepad joystick)
|
||||
# 1 = Simple Theme by Beholder (white, with gamepad joystick)
|
||||
# 0 = Ultimate Droid by Sean Stieber (green, with cross joystick)
|
||||
# 1 = Simple Theme by Beholder (white, with cross joystick)
|
||||
# 2 = Sun by Sirea (yellow, with round joystick)
|
||||
# 3 = Keen by Gerstrong (multicolor, with round joystick)
|
||||
# 4 = Retro by Santiago Radeff (red/white, with cross joystick)
|
||||
# 5 = GameBoy from RetroArch
|
||||
# 6 = PlayStation from RetroArch
|
||||
# 7 = SuperNintendo from RetroArch
|
||||
# 8 = DualShock from RetroArch
|
||||
# 9 = Nintendo64 from RetroArch
|
||||
TouchscreenKeysTheme=2
|
||||
|
||||
# Redefine gamepad keys to SDL keysyms, button order is:
|
||||
# A B X Y L1 R1 L2 R2 LThumb RThumb
|
||||
# A B X Y L1 R1 L2 R2 LThumb RThumb Start Select Up Down Left Right LThumbUp LThumbDown LThumbLeft LThumbRight RThumbUp RThumbDown RThumbLeft RThumbRight
|
||||
RedefinedKeysGamepad="RETURN ESCAPE SPACE SPACE"
|
||||
|
||||
# Redefine keys for the second gamepad, same as the first gamepad if not set:
|
||||
RedefinedKeysSecondGamepad=""
|
||||
|
||||
# Redefine keys for the third gamepad, same as the first gamepad if not set:
|
||||
RedefinedKeysThirdGamepad=""
|
||||
|
||||
# Redefine keys for the fourth gamepad, same as the first gamepad if not set:
|
||||
RedefinedKeysFourthGamepad=""
|
||||
|
||||
# How long to show startup menu button, in msec, 0 to disable startup menu
|
||||
StartupMenuButtonTimeout=0
|
||||
|
||||
# Menu items to hide from startup menu, available menu items:
|
||||
# SettingsMenu.OkButton SettingsMenu.DummyMenu SettingsMenu.MainMenu SettingsMenuMisc.DownloadConfig SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMisc.AudioConfig SettingsMenuMisc.VideoSettingsConfig SettingsMenuMisc.ShowReadme SettingsMenuMisc.GyroscopeCalibration SettingsMenuMisc.ResetToDefaultsConfig SettingsMenuMouse.MouseConfigMainMenu SettingsMenuMouse.DisplaySizeConfig SettingsMenuMouse.LeftClickConfig SettingsMenuMouse.RightClickConfig SettingsMenuMouse.AdditionalMouseConfig SettingsMenuMouse.JoystickMouseConfig SettingsMenuMouse.TouchPressureMeasurementTool SettingsMenuMouse.CalibrateTouchscreenMenu SettingsMenuKeyboard.KeyboardConfigMainMenu SettingsMenuKeyboard.ScreenKeyboardSizeConfig SettingsMenuKeyboard.ScreenKeyboardDrawSizeConfig SettingsMenuKeyboard.ScreenKeyboardThemeConfig SettingsMenuKeyboard.ScreenKeyboardTransparencyConfig SettingsMenuKeyboard.RemapHwKeysConfig SettingsMenuKeyboard.RemapScreenKbConfig SettingsMenuKeyboard.ScreenGesturesConfig SettingsMenuKeyboard.CustomizeScreenKbLayout SettingsMenuKeyboard.ScreenKeyboardAdvanced
|
||||
# SettingsMenu.OkButton SettingsMenu.DummyMenu SettingsMenu.MainMenu SettingsMenuMisc.DownloadConfig SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMisc.AudioConfig SettingsMenuMisc.VideoSettingsConfig SettingsMenuMisc.ShowReadme SettingsMenuMisc.GyroscopeCalibration SettingsMenuMisc.StorageAccessConfig SettingsMenuMisc.CommandlineConfig SettingsMenuMisc.ResetToDefaultsConfig SettingsMenuMouse.MouseConfigMainMenu SettingsMenuMouse.DisplaySizeConfig SettingsMenuMouse.LeftClickConfig SettingsMenuMouse.RightClickConfig SettingsMenuMouse.AdditionalMouseConfig SettingsMenuMouse.JoystickMouseConfig SettingsMenuMouse.TouchPressureMeasurementTool SettingsMenuMouse.CalibrateTouchscreenMenu SettingsMenuKeyboard.KeyboardConfigMainMenu SettingsMenuKeyboard.ScreenKeyboardSizeConfig SettingsMenuKeyboard.ScreenKeyboardDrawSizeConfig SettingsMenuKeyboard.ScreenKeyboardThemeConfig SettingsMenuKeyboard.ScreenKeyboardTransparencyConfig SettingsMenuKeyboard.RemapHwKeysConfig SettingsMenuKeyboard.RemapScreenKbConfig SettingsMenuKeyboard.ScreenGesturesConfig SettingsMenuKeyboard.CustomizeScreenKbLayout SettingsMenuKeyboard.ScreenKeyboardAdvanced
|
||||
HiddenMenuOptions='SettingsMenuMouse.DisplaySizeConfig SettingsMenuMouse.MouseConfigMainMenu'
|
||||
|
||||
# Menu items to show at startup - this is Java code snippet, leave empty for default
|
||||
# new SettingsMenuMisc.ShowReadme(), (AppUsesMouse \&\& \! ForceRelativeMouseMode \? new SettingsMenuMouse.DisplaySizeConfig(true) : new SettingsMenu.DummyMenu()), new SettingsMenuMisc.OptionalDownloadConfig(true), new SettingsMenuMisc.GyroscopeCalibration()
|
||||
# Available menu items:
|
||||
# SettingsMenu.OkButton SettingsMenu.DummyMenu SettingsMenu.MainMenu SettingsMenuMisc.DownloadConfig SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMisc.AudioConfig SettingsMenuMisc.VideoSettingsConfig SettingsMenuMisc.ShowReadme SettingsMenuMisc.GyroscopeCalibration SettingsMenuMisc.ResetToDefaultsConfig SettingsMenuMouse.MouseConfigMainMenu SettingsMenuMouse.DisplaySizeConfig SettingsMenuMouse.LeftClickConfig SettingsMenuMouse.RightClickConfig SettingsMenuMouse.AdditionalMouseConfig SettingsMenuMouse.JoystickMouseConfig SettingsMenuMouse.TouchPressureMeasurementTool SettingsMenuMouse.CalibrateTouchscreenMenu SettingsMenuKeyboard.KeyboardConfigMainMenu SettingsMenuKeyboard.ScreenKeyboardSizeConfig SettingsMenuKeyboard.ScreenKeyboardDrawSizeConfig SettingsMenuKeyboard.ScreenKeyboardThemeConfig SettingsMenuKeyboard.ScreenKeyboardTransparencyConfig SettingsMenuKeyboard.RemapHwKeysConfig SettingsMenuKeyboard.RemapScreenKbConfig SettingsMenuKeyboard.ScreenGesturesConfig SettingsMenuKeyboard.CustomizeScreenKbLayout SettingsMenuKeyboard.ScreenKeyboardAdvanced
|
||||
# SettingsMenu.OkButton SettingsMenu.DummyMenu SettingsMenu.MainMenu SettingsMenuMisc.DownloadConfig SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMisc.AudioConfig SettingsMenuMisc.VideoSettingsConfig SettingsMenuMisc.ShowReadme SettingsMenuMisc.GyroscopeCalibration SettingsMenuMisc.StorageAccessConfig SettingsMenuMisc.CommandlineConfig SettingsMenuMisc.ResetToDefaultsConfig SettingsMenuMouse.MouseConfigMainMenu SettingsMenuMouse.DisplaySizeConfig SettingsMenuMouse.LeftClickConfig SettingsMenuMouse.RightClickConfig SettingsMenuMouse.AdditionalMouseConfig SettingsMenuMouse.JoystickMouseConfig SettingsMenuMouse.TouchPressureMeasurementTool SettingsMenuMouse.CalibrateTouchscreenMenu SettingsMenuKeyboard.KeyboardConfigMainMenu SettingsMenuKeyboard.ScreenKeyboardSizeConfig SettingsMenuKeyboard.ScreenKeyboardDrawSizeConfig SettingsMenuKeyboard.ScreenKeyboardThemeConfig SettingsMenuKeyboard.ScreenKeyboardTransparencyConfig SettingsMenuKeyboard.RemapHwKeysConfig SettingsMenuKeyboard.RemapScreenKbConfig SettingsMenuKeyboard.ScreenGesturesConfig SettingsMenuKeyboard.CustomizeScreenKbLayout SettingsMenuKeyboard.ScreenKeyboardAdvanced
|
||||
FirstStartMenuOptions=''
|
||||
|
||||
# Specify architectures to compile, 'all' or 'y' to compile for all architectures.
|
||||
# Available architectures: armeabi armeabi-v7a armeabi-v7a-hard x86 mips
|
||||
MultiABI='armeabi-v7a x86'
|
||||
|
||||
# Minimum amount of RAM application requires, in Mb, SDL will print warning to user if it's lower
|
||||
AppMinimumRAM=0
|
||||
|
||||
# GCC version, or 'clang' for CLANG
|
||||
NDK_TOOLCHAIN_VERSION=
|
||||
|
||||
# Android platform version.
|
||||
# android-16 = Android 4.1, the earliest supported version in NDK r18.
|
||||
# android-18 = Android 4.3, the first version supporting GLES3.
|
||||
# android-21 = Android 5.1, the first version with SO_REUSEPORT defined.
|
||||
APP_PLATFORM=
|
||||
|
||||
# Specify architectures to compile, 'all' or 'y' to compile for all architectures.
|
||||
# Available architectures: armeabi-v7a arm64-v8a x86 x86_64
|
||||
MultiABI='arm64-v8a'
|
||||
|
||||
# Optional shared libraries to compile - removing some of them will save space
|
||||
# MP3 support by libMAD is encumbered by patents and libMAD is GPL-ed
|
||||
# MP3 patents are expired, but libmad license is GPL, not LGPL
|
||||
# Available libraries: mad (GPL-ed!) sdl_mixer sdl_image sdl_ttf sdl_net sdl_blitpool sdl_gfx sdl_sound intl xml2 lua jpeg png ogg flac tremor vorbis freetype xerces curl theora fluidsynth lzma lzo2 mikmod openal timidity zzip bzip2 yaml-cpp python boost_date_time boost_filesystem boost_iostreams boost_program_options boost_regex boost_signals boost_system boost_thread glu avcodec avdevice avfilter avformat avresample avutil swscale swresample bzip2
|
||||
CompiledLibraries="sdl_image sdl_mixer"
|
||||
|
||||
@@ -229,6 +282,9 @@ CustomBuildScript=n
|
||||
# Aditional CFLAGS for application
|
||||
AppCflags=''
|
||||
|
||||
# Aditional C++-specific compiler flags for application, added after AppCflags
|
||||
AppCppflags=''
|
||||
|
||||
# Additional LDFLAGS for application
|
||||
AppLdflags=''
|
||||
|
||||
@@ -260,3 +316,6 @@ AdmobBannerSize=
|
||||
# Google Play Game Services application ID, required for cloud saves to work
|
||||
GooglePlayGameServicesId=520035027247
|
||||
|
||||
# The app will open files with following extension, file path will be added to commandline params
|
||||
AppOpenFileExtension=''
|
||||
|
||||
|
||||
@@ -7,10 +7,10 @@ AppName="OpenTTD"
|
||||
AppFullName=org.openttd.sdl
|
||||
|
||||
# Application version code (integer)
|
||||
AppVersionCode=110086
|
||||
AppVersionCode=110186
|
||||
|
||||
# Application user-visible version name (string)
|
||||
AppVersionName="1.10.0.86"
|
||||
AppVersionName="1.10.1.86"
|
||||
|
||||
# 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, '!!' will also hide the entry from the menu, so it cannot be disabled
|
||||
|
||||
Submodule project/jni/application/openttd/src updated: 907d22046a...7b72277dbe
50
project/res/layout-v28/notification.xml
Normal file
50
project/res/layout-v28/notification.xml
Normal file
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:id="@+id/notificationView"
|
||||
android:clickable="true"
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="fill_parent"
|
||||
android:id="@+id/notificationIcon"
|
||||
android:gravity="center_vertical"
|
||||
android:src="@drawable/icon"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:clickable="true"
|
||||
android:scaleType="centerInside"
|
||||
android:adjustViewBounds="true"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="fill_parent"
|
||||
android:layout_toRightOf="@id/notificationIcon"
|
||||
android:id="@+id/notificationText"
|
||||
android:text="App is running"
|
||||
android:gravity="center_vertical"
|
||||
android:clickable="true"
|
||||
android:paddingLeft="10dp"
|
||||
/>
|
||||
|
||||
<Button
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="fill_parent"
|
||||
android:id="@+id/notificationStop"
|
||||
android:text="@string/notification_stop"
|
||||
android:gravity="center_vertical"
|
||||
android:singleLine="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:textAlignment="center"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingRight="5dp"
|
||||
/>
|
||||
|
||||
</RelativeLayout>
|
||||
Reference in New Issue
Block a user