Browse Source

Merge tag '11.5a' into 12.x-testmerge

Miku AuahDark 1 năm trước cách đây
mục cha
commit
fc6053974f

+ 6 - 1
.github/workflows/main.yml

@@ -14,7 +14,7 @@ jobs:
       uses: actions/checkout@v3
       with:
         submodules: true
-    - name: Setup Java 11
+    - name: Setup Java 17
       uses: actions/setup-java@v3
       with:
         distribution: adopt-hotspot
@@ -47,3 +47,8 @@ jobs:
       with:
         name: love-android-embed.aab
         path: app/build/outputs/bundle/embedNoRecordRelease/app-embed-noRecord-release.aab
+    - name: Artifact (Debug symbols)
+      uses: actions/upload-artifact@v3
+      with:
+        name: love-android-unstripped-debugsyms
+        path: love/build/intermediates/library_jni

+ 18 - 10
README.md

@@ -1,7 +1,7 @@
 Android Port of LÖVE, an awesome 2D game engine for Lua (http://love2d.org)  
 Copyright (c) 2006-2023 LOVE Development Team
 
-![](https://github.com/love2d/love-android/workflows/build/badge.svg)
+![Build Status](https://github.com/love2d/love-android/workflows/build/badge.svg)
 
 Download:
 ---------
@@ -38,32 +38,32 @@ Detailed instructions can be viewed at https://github.com/love2d/love-android/wi
 Quick Start:
 ------------
 
-Before you start, install JDK 11 or later. If you intend to build from Android Studio, skip this step as
-Android Studio bundles its own JDK 11.
+Before you start, install JDK 17 (not later not earlier). If you intend to build from Android Studio, skip this step as
+Android Studio bundles its own JDK 17.
 
-Install CMake version 3.21 or later in your system. Install Android SDK with SDK API 33 (33.0.0) and Android NDK 25.2.9519653.
-Set the environment variables `ANDROID_SDK_ROOT` to your Android SDK location if necessary and run.
+Install CMake version 3.21 or later in your system. Install Android SDK with SDK API 34 (34.x.y) and Android NDK
+25.2.9519653, set the environment variable `ANDROID_HOME` to your Android SDK as necessary then run.
 
 ```
 $ ./gradlew assembleNormalRecord
 ```
 
-in the root folder of this project. This should give you a .apk file in the `app/build/outputs/apk/normalRecord`
-subdirectory that you can then sign and install on your phone. The `normalRecord` .apk flavor is what you normally have
-when downloading one from https://love2d.org.
+in the root folder of this project. This should give you an .apk file in the `app/build/outputs/apk/normalRecord`
+subdirectory that you can then sign and install on your phone. The `normalRecord` .apk variant is what you normally have
+when downloading APK from https://love2d.org.
 
 If you want to put your game inside the APK, you can either:
 
 1. Put all your games in `app/src/embed/assets` such that your `main.lua` path is `app/src/embed/assets/main.lua`; or
 2. Put your zipped \*.love in `app/src/embed/assets` with name `game.love`
 
-And change the package name, application version string and codes, application display name, and the icons (see
+And change the application id, application version string and codes, application display name, and the icons (see
 [Game Packaging Wiki](https://github.com/love2d/love-android/wiki/Game-Packaging). Afterwards,
 run either `gradlew assembleEmbedNoRecordRelease` (or `gradlew assembleEmbedRecordRelease` if your game uses microphone) to
 generate APK which you can install or `gradlew bundleEmbedNoRecordRelease` (or `gradlew bundleEmbedRecordRelease`) to generate
 AAB which you can upload to Play Store.
 
-Alternatively, you can install Android Studio **2022.1.1** or later. After opening it for the first time, open its SDK Manager
+Alternatively, you can install Android Studio **2022.3.1** or later. After opening it for the first time, open its SDK Manager
 and on the tab "SDK Tools", tick "Show Package Details" then select NDK (Side By Side) version 25.2.9519653. After that, open
 the repository root.
 
@@ -76,9 +76,17 @@ Bugs and/or feature requests should be reported to the issue tracker at:
 * https://github.com/love2d/love-android/issues - LÖVE-Android-specific issues
 * https://github.com/love2d/love/issues - for LÖVE in general
 
+Note: If in doubt, fill an issue report to https://github.com/love2d/love/issues. We'll transfer the issue to this repository as needed.
+
 Changelog:
 ----------
 
+11.5:
+
+* Contains all relevant changes for desktop LÖVE [11.5](https://love2d.org/wiki/11.5).
+* Fixed audio in Android still playing in the background in certain cases. ([love2d/love#1828](https://github.com/love2d/love/issues/1828))
+
+
 11.4:
 
 * Contains all relevant changes for desktop LÖVE [11.4](https://love2d.org/wiki/11.4).

+ 1 - 1
app/build.gradle

@@ -172,7 +172,7 @@ dependencies {
     implementation 'com.google.oboe:oboe:1.7.0'
 }
 
-// We don't even use Kotlin. Why we have to suffer...
+// We don't even use Kotlin. Why we have to care about it?
 configurations.implementation {
     exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
 }

+ 60 - 60
app/src/main/AndroidManifest.xml

@@ -1,60 +1,60 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest
-    xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.VIBRATE" />
-    <uses-permission android:name="android.permission.BLUETOOTH" />
-    <uses-permission android:name="android.permission.RECORD_AUDIO" />
-
-    <!-- OpenGL ES 2.0 -->
-    <uses-feature android:glEsVersion="0x00020000" />
-    <!-- Touchscreen support -->
-    <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
-    <!-- Game controller support -->
-    <uses-feature android:name="android.hardware.bluetooth" android:required="false" />
-    <uses-feature android:name="android.hardware.gamepad" android:required="false" />
-    <uses-feature android:name="android.hardware.usb.host" android:required="false" />
-    <!-- External mouse input events -->
-    <uses-feature android:name="android.hardware.type.pc" android:required="false" />
-    <!-- Low latency audio -->
-    <uses-feature android:name="android.hardware.audio.low_latency" android:required="false" />
-    <uses-feature android:name="android.hardware.audio.pro" android:required="false" />
-
-    <application
-        android:allowBackup="true"
-        android:icon="@drawable/love"
-        android:label="${NAME}">
-        <!-- You don't have to change the activity class unless you have special needs! !-->
-        <activity
-            android:name="org.love2d.android.GameActivity"
-            android:exported="true"
-            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
-            android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden|navigation"
-            android:launchMode="singleInstance"
-            android:screenOrientation="${ORIENTATION}">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-                <category android:name="tv.ouya.intent.category.GAME" />
-            </intent-filter>
-            <intent-filter>
-                <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
-            </intent-filter>
-        </activity>
-        <activity
-            android:name=".IntentReceiverActivity"
-            android:exported="true"
-            android:theme="@android:style/Theme.Translucent.NoTitleBar"
-            android:taskAffinity=""
-            android:excludeFromRecents="true"
-            android:relinquishTaskIdentity="true">
-            <intent-filter>
-                <action android:name="android.intent.action.SEND" />
-                <category android:name="android.intent.category.OPENABLE" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="*/*" />
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
+<?xml version="1.0" encoding="utf-8"?>
+<manifest
+    xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.VIBRATE" />
+    <uses-permission android:name="android.permission.BLUETOOTH" />
+    <uses-permission android:name="android.permission.RECORD_AUDIO" />
+
+    <!-- OpenGL ES 2.0 -->
+    <uses-feature android:glEsVersion="0x00020000" />
+    <!-- Touchscreen support -->
+    <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
+    <!-- Game controller support -->
+    <uses-feature android:name="android.hardware.bluetooth" android:required="false" />
+    <uses-feature android:name="android.hardware.gamepad" android:required="false" />
+    <uses-feature android:name="android.hardware.usb.host" android:required="false" />
+    <!-- External mouse input events -->
+    <uses-feature android:name="android.hardware.type.pc" android:required="false" />
+    <!-- Low latency audio -->
+    <uses-feature android:name="android.hardware.audio.low_latency" android:required="false" />
+    <uses-feature android:name="android.hardware.audio.pro" android:required="false" />
+
+    <application
+        android:allowBackup="true"
+        android:icon="@drawable/love"
+        android:label="${NAME}">
+        <!-- You don't have to change the activity class unless you have special needs! !-->
+        <activity
+            android:name="org.love2d.android.GameActivity"
+            android:exported="true"
+            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
+            android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden|navigation"
+            android:launchMode="singleInstance"
+            android:screenOrientation="${ORIENTATION}">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+                <category android:name="tv.ouya.intent.category.GAME" />
+            </intent-filter>
+            <intent-filter>
+                <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name=".IntentReceiverActivity"
+            android:exported="true"
+            android:theme="@android:style/Theme.Translucent.NoTitleBar"
+            android:taskAffinity=""
+            android:excludeFromRecents="true"
+            android:relinquishTaskIdentity="true">
+            <intent-filter>
+                <action android:name="android.intent.action.SEND" />
+                <category android:name="android.intent.category.OPENABLE" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:mimeType="*/*" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>

+ 0 - 7
app/src/noRecord/AndroidManifest.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
-
-    <uses-permission android:name="android.permission.RECORD_AUDIO" tools:node="remove" />
-</manifest>

+ 45 - 45
app/src/normal/AndroidManifest.xml

@@ -1,46 +1,46 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
-
-    <application android:icon="@drawable/love">
-        <activity
-            android:name=".MainActivity"
-            android:exported="true"
-            android:launchMode="singleTop"
-            android:theme="@style/Theme.AppCompat.DayNight">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-        <!--
-            Important: GameActivity class name MUST be explicitly written as
-            "org.love2d.android.GameActivity" without any shortcuts.
-        -->
-        <activity
-            android:name="org.love2d.android.GameActivity"
-            android:exported="false"
-            tools:replace="android:exported">
-            <intent-filter tools:node="removeAll" />
-            <intent-filter>
-                <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
-            </intent-filter>
-        </activity>
-        <activity
-            android:name=".AboutActivity"
-            android:exported="false"
-            android:parentActivityName=".MainActivity"
-            android:theme="@style/Theme.AppCompat.DayNight" />
-        <provider
-            android:name="org.love2d.android.LoveDocumentsProvider"
-            android:authorities="${applicationId}.documents"
-            android:exported="true"
-            android:grantUriPermissions="true"
-            android:permission="android.permission.MANAGE_DOCUMENTS">
-            <intent-filter>
-                <action android:name="android.content.action.DOCUMENTS_PROVIDER" />
-            </intent-filter>
-        </provider>
-    </application>
-
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <application android:icon="@drawable/love">
+        <activity
+            android:name=".MainActivity"
+            android:exported="true"
+            android:launchMode="singleTop"
+            android:theme="@style/Theme.AppCompat.DayNight">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <!--
+            Important: GameActivity class name MUST be explicitly written as
+            "org.love2d.android.GameActivity" without any shortcuts.
+        -->
+        <activity
+            android:name="org.love2d.android.GameActivity"
+            android:exported="false"
+            tools:replace="android:exported">
+            <intent-filter tools:node="removeAll" />
+            <intent-filter>
+                <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name=".AboutActivity"
+            android:exported="false"
+            android:parentActivityName=".MainActivity"
+            android:theme="@style/Theme.AppCompat.DayNight" />
+        <provider
+            android:name="org.love2d.android.LoveDocumentsProvider"
+            android:authorities="${applicationId}.documents"
+            android:exported="true"
+            android:grantUriPermissions="true"
+            android:permission="android.permission.MANAGE_DOCUMENTS">
+            <intent-filter>
+                <action android:name="android.content.action.DOCUMENTS_PROVIDER" />
+            </intent-filter>
+        </provider>
+    </application>
+
 </manifest>

+ 1 - 1
gradle.properties

@@ -8,7 +8,7 @@ app.name_byte_array=76,195,150,86,69,32,102,111,114,32,65,110,100,114,111,105,10
 
 app.application_id=org.love2d.android
 app.orientation=landscape
-app.version_code=32
+app.version_code=33
 app.version_name=12.0
 
 # No need to modify anything past this line!