From 397cd8f58479146df29741e39788483c87e374a0 Mon Sep 17 00:00:00 2001
From: biroder <107300789+biroder@users.noreply.github.com>
Date: Tue, 16 Jan 2024 12:17:52 +0000
Subject: [PATCH] Make some changes to the Android port
- Add application category and description
- Hide system navigation bar
- Change documents provider name to application name
- Disable multi-window mode support because touch controls don't work in this mode
---
app/app/build.gradle | 3 ++-
app/app/src/main/AndroidManifest.xml | 6 +++++-
.../io/github/doukutsu_rs/ActivityUtils.java | 16 ++++++++++++++++
.../doukutsu_rs/DoukutsuDocumentsProvider.java | 2 +-
.../io/github/doukutsu_rs/DownloadActivity.java | 6 ++++--
.../java/io/github/doukutsu_rs/GameActivity.java | 2 ++
.../java/io/github/doukutsu_rs/MainActivity.java | 5 +++--
.../src/main/res/layout/activity_download.xml | 4 ++--
app/app/src/main/res/values/strings.xml | 7 ++++---
9 files changed, 39 insertions(+), 12 deletions(-)
create mode 100644 app/app/src/main/java/io/github/doukutsu_rs/ActivityUtils.java
diff --git a/app/app/build.gradle b/app/app/build.gradle
index 90dfd07..7940a4a 100644
--- a/app/app/build.gradle
+++ b/app/app/build.gradle
@@ -81,8 +81,9 @@ android {
dependencies {
implementation 'androidx.annotation:annotation:1.5.0'
implementation 'androidx.appcompat:appcompat:1.6.0'
- implementation 'com.google.android.material:material:1.8.0-rc01'
implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
+ implementation 'androidx.core:core:1.9.0'
+ implementation 'com.google.android.material:material:1.8.0'
}
println("cargo target: ${project.buildDir.getAbsolutePath()}/rust-target")
diff --git a/app/app/src/main/AndroidManifest.xml b/app/app/src/main/AndroidManifest.xml
index d22316e..7ce76ea 100644
--- a/app/app/src/main/AndroidManifest.xml
+++ b/app/app/src/main/AndroidManifest.xml
@@ -6,9 +6,13 @@
@@ -57,4 +61,4 @@
-
\ No newline at end of file
+
diff --git a/app/app/src/main/java/io/github/doukutsu_rs/ActivityUtils.java b/app/app/src/main/java/io/github/doukutsu_rs/ActivityUtils.java
new file mode 100644
index 0000000..e6e80c3
--- /dev/null
+++ b/app/app/src/main/java/io/github/doukutsu_rs/ActivityUtils.java
@@ -0,0 +1,16 @@
+package io.github.doukutsu_rs;
+
+import android.app.Activity;
+import android.view.Window;
+import androidx.core.view.WindowCompat;
+import androidx.core.view.WindowInsetsCompat;
+import androidx.core.view.WindowInsetsControllerCompat;
+
+public class ActivityUtils {
+ public static void hideSystemBars(Activity activity) {
+ Window window = activity.getWindow();
+ WindowInsetsControllerCompat windowInsetsController =
+ WindowCompat.getInsetsController(window, window.getDecorView());
+ windowInsetsController.hide(WindowInsetsCompat.Type.systemBars());
+ }
+}
diff --git a/app/app/src/main/java/io/github/doukutsu_rs/DoukutsuDocumentsProvider.java b/app/app/src/main/java/io/github/doukutsu_rs/DoukutsuDocumentsProvider.java
index 8b7d4ed..2a64bcb 100644
--- a/app/app/src/main/java/io/github/doukutsu_rs/DoukutsuDocumentsProvider.java
+++ b/app/app/src/main/java/io/github/doukutsu_rs/DoukutsuDocumentsProvider.java
@@ -64,7 +64,7 @@ public class DoukutsuDocumentsProvider extends DocumentsProvider {
row.add(Root.COLUMN_ROOT_ID, id);
row.add(Root.COLUMN_ICON, R.mipmap.ic_launcher);
row.add(Root.COLUMN_TITLE,
- getContext().getString(R.string.document_provider_name));
+ getContext().getString(R.string.app_name));
row.add(Root.COLUMN_MIME_TYPES, "*/*");
row.add(Root.COLUMN_AVAILABLE_BYTES, file.getFreeSpace());
row.add(Root.COLUMN_FLAGS, Root.FLAG_SUPPORTS_IS_CHILD | Root.FLAG_SUPPORTS_CREATE);
diff --git a/app/app/src/main/java/io/github/doukutsu_rs/DownloadActivity.java b/app/app/src/main/java/io/github/doukutsu_rs/DownloadActivity.java
index c5b403f..2783bc8 100644
--- a/app/app/src/main/java/io/github/doukutsu_rs/DownloadActivity.java
+++ b/app/app/src/main/java/io/github/doukutsu_rs/DownloadActivity.java
@@ -3,9 +3,9 @@ package io.github.doukutsu_rs;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
-import androidx.appcompat.app.AppCompatActivity;
import android.widget.ProgressBar;
import android.widget.TextView;
+import androidx.appcompat.app.AppCompatActivity;
import java.io.*;
import java.net.HttpURLConnection;
@@ -28,6 +28,8 @@ public class DownloadActivity extends AppCompatActivity {
setContentView(R.layout.activity_download);
txtProgress = findViewById(R.id.txtProgress);
progressBar = findViewById(R.id.progressBar);
+ ActivityUtils.hideSystemBars(this);
+
basePath = getFilesDir().getAbsolutePath() + "/";
downloadThread = new DownloadThread();
@@ -50,7 +52,7 @@ public class DownloadActivity extends AppCompatActivity {
this.filesWhitelist.add("data/");
this.filesWhitelist.add("Doukutsu.exe");
- //BE CAREFUL, DON'T SET `true` VALUE FOR TRANSLATIONS
+ // DON'T SET `true` VALUE FOR TRANSLATIONS
this.urls.add(new DownloadEntry(R.string.download_entries_base, "https://www.cavestory.org/downloads/cavestoryen.zip", true));
for (DownloadEntry entry : this.urls) {
diff --git a/app/app/src/main/java/io/github/doukutsu_rs/GameActivity.java b/app/app/src/main/java/io/github/doukutsu_rs/GameActivity.java
index 2471e99..beafbbe 100644
--- a/app/app/src/main/java/io/github/doukutsu_rs/GameActivity.java
+++ b/app/app/src/main/java/io/github/doukutsu_rs/GameActivity.java
@@ -25,6 +25,8 @@ public class GameActivity extends NativeActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ ActivityUtils.hideSystemBars(this);
+
listener = new OrientationEventListener(this, SensorManager.SENSOR_DELAY_UI) {
@Override
public void onOrientationChanged(int orientation) {
diff --git a/app/app/src/main/java/io/github/doukutsu_rs/MainActivity.java b/app/app/src/main/java/io/github/doukutsu_rs/MainActivity.java
index 9eacf00..c3915fb 100644
--- a/app/app/src/main/java/io/github/doukutsu_rs/MainActivity.java
+++ b/app/app/src/main/java/io/github/doukutsu_rs/MainActivity.java
@@ -3,7 +3,6 @@ package io.github.doukutsu_rs;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
-
import androidx.appcompat.app.AppCompatActivity;
import java.io.File;
@@ -15,10 +14,12 @@ public class MainActivity extends AppCompatActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
+ ActivityUtils.hideSystemBars(this);
+
File f = new File(getFilesDir().getAbsolutePath() + "/data/");
String[] list = f.list();
if (!f.exists() || (list != null && list.length == 0)) {
- messageBox(getString(R.string.download_title), getString(R.string.download_desc), () -> {
+ messageBox(getString(R.string.missing_data_title), getString(R.string.missing_data_desc), () -> {
Intent intent = new Intent(this, DownloadActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
diff --git a/app/app/src/main/res/layout/activity_download.xml b/app/app/src/main/res/layout/activity_download.xml
index 97f1db2..4bd1511 100644
--- a/app/app/src/main/res/layout/activity_download.xml
+++ b/app/app/src/main/res/layout/activity_download.xml
@@ -22,7 +22,7 @@
android:id="@+id/txtTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="Downloading game data"
+ android:text="@string/download_title"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Display1" />
@@ -40,4 +40,4 @@
android:layout_width="match_parent"
android:layout_height="wrap_content" />
-
\ No newline at end of file
+
diff --git a/app/app/src/main/res/values/strings.xml b/app/app/src/main/res/values/strings.xml
index f1bfda1..09f7ad6 100644
--- a/app/app/src/main/res/values/strings.xml
+++ b/app/app/src/main/res/values/strings.xml
@@ -1,10 +1,11 @@
doukutsu-rs
- doukutsu-rs game data
+ A faithful and open-source remake of Cave Story engine written in Rust.
- Missing data files
- No data files found, would you like to download them?
+ Missing data files
+ No data files found, would you like to download them?
+ Downloading game data
Bad HTTP response code: %d
Downloading %1$s… %2$d%% (%3$d/%4$d KiB, %5$d KiB/s)