mirror of
https://github.com/doukutsu-rs/doukutsu-rs
synced 2024-10-31 19:44:20 +00:00
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
This commit is contained in:
parent
21c255efb4
commit
397cd8f584
|
@ -81,8 +81,9 @@ android {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'androidx.annotation:annotation:1.5.0'
|
implementation 'androidx.annotation:annotation:1.5.0'
|
||||||
implementation 'androidx.appcompat:appcompat:1.6.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.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")
|
println("cargo target: ${project.buildDir.getAbsolutePath()}/rust-target")
|
||||||
|
|
|
@ -6,9 +6,13 @@
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
|
android:appCategory="game"
|
||||||
|
android:description="@string/app_description"
|
||||||
android:extractNativeLibs="true"
|
android:extractNativeLibs="true"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
|
android:isGame="true"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
|
android:resizeableActivity="false"
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/Theme.Doukutsurs">
|
android:theme="@style/Theme.Doukutsurs">
|
||||||
|
|
|
@ -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());
|
||||||
|
}
|
||||||
|
}
|
|
@ -64,7 +64,7 @@ public class DoukutsuDocumentsProvider extends DocumentsProvider {
|
||||||
row.add(Root.COLUMN_ROOT_ID, id);
|
row.add(Root.COLUMN_ROOT_ID, id);
|
||||||
row.add(Root.COLUMN_ICON, R.mipmap.ic_launcher);
|
row.add(Root.COLUMN_ICON, R.mipmap.ic_launcher);
|
||||||
row.add(Root.COLUMN_TITLE,
|
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_MIME_TYPES, "*/*");
|
||||||
row.add(Root.COLUMN_AVAILABLE_BYTES, file.getFreeSpace());
|
row.add(Root.COLUMN_AVAILABLE_BYTES, file.getFreeSpace());
|
||||||
row.add(Root.COLUMN_FLAGS, Root.FLAG_SUPPORTS_IS_CHILD | Root.FLAG_SUPPORTS_CREATE);
|
row.add(Root.COLUMN_FLAGS, Root.FLAG_SUPPORTS_IS_CHILD | Root.FLAG_SUPPORTS_CREATE);
|
||||||
|
|
|
@ -3,9 +3,9 @@ package io.github.doukutsu_rs;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
|
@ -28,6 +28,8 @@ public class DownloadActivity extends AppCompatActivity {
|
||||||
setContentView(R.layout.activity_download);
|
setContentView(R.layout.activity_download);
|
||||||
txtProgress = findViewById(R.id.txtProgress);
|
txtProgress = findViewById(R.id.txtProgress);
|
||||||
progressBar = findViewById(R.id.progressBar);
|
progressBar = findViewById(R.id.progressBar);
|
||||||
|
ActivityUtils.hideSystemBars(this);
|
||||||
|
|
||||||
basePath = getFilesDir().getAbsolutePath() + "/";
|
basePath = getFilesDir().getAbsolutePath() + "/";
|
||||||
|
|
||||||
downloadThread = new DownloadThread();
|
downloadThread = new DownloadThread();
|
||||||
|
@ -50,7 +52,7 @@ public class DownloadActivity extends AppCompatActivity {
|
||||||
this.filesWhitelist.add("data/");
|
this.filesWhitelist.add("data/");
|
||||||
this.filesWhitelist.add("Doukutsu.exe");
|
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));
|
this.urls.add(new DownloadEntry(R.string.download_entries_base, "https://www.cavestory.org/downloads/cavestoryen.zip", true));
|
||||||
|
|
||||||
for (DownloadEntry entry : this.urls) {
|
for (DownloadEntry entry : this.urls) {
|
||||||
|
|
|
@ -25,6 +25,8 @@ public class GameActivity extends NativeActivity {
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
ActivityUtils.hideSystemBars(this);
|
||||||
|
|
||||||
listener = new OrientationEventListener(this, SensorManager.SENSOR_DELAY_UI) {
|
listener = new OrientationEventListener(this, SensorManager.SENSOR_DELAY_UI) {
|
||||||
@Override
|
@Override
|
||||||
public void onOrientationChanged(int orientation) {
|
public void onOrientationChanged(int orientation) {
|
||||||
|
|
|
@ -3,7 +3,6 @@ package io.github.doukutsu_rs;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -15,10 +14,12 @@ public class MainActivity extends AppCompatActivity {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
|
|
||||||
|
ActivityUtils.hideSystemBars(this);
|
||||||
|
|
||||||
File f = new File(getFilesDir().getAbsolutePath() + "/data/");
|
File f = new File(getFilesDir().getAbsolutePath() + "/data/");
|
||||||
String[] list = f.list();
|
String[] list = f.list();
|
||||||
if (!f.exists() || (list != null && list.length == 0)) {
|
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 intent = new Intent(this, DownloadActivity.class);
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
android:id="@+id/txtTitle"
|
android:id="@+id/txtTitle"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Downloading game data"
|
android:text="@string/download_title"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Display1" />
|
android:textAppearance="@style/TextAppearance.AppCompat.Display1" />
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
<resources>
|
<resources>
|
||||||
<string name="app_name" translatable="false">doukutsu-rs</string>
|
<string name="app_name" translatable="false">doukutsu-rs</string>
|
||||||
<string name="document_provider_name">doukutsu-rs game data</string>
|
<string name="app_description">A faithful and open-source remake of Cave Story engine written in Rust.</string>
|
||||||
|
|
||||||
<string name="download_title">Missing data files</string>
|
<string name="missing_data_title">Missing data files</string>
|
||||||
<string name="download_desc">No data files found, would you like to download them?</string>
|
<string name="missing_data_desc">No data files found, would you like to download them?</string>
|
||||||
|
|
||||||
|
<string name="download_title">Downloading game data</string>
|
||||||
<string name="download_status_error_http">Bad HTTP response code: %d</string>
|
<string name="download_status_error_http">Bad HTTP response code: %d</string>
|
||||||
<!-- Downloading {entry_name}… {progress}% ({downloaded_size}/{total_size} KiB, {speed} KiB/s) -->
|
<!-- Downloading {entry_name}… {progress}% ({downloaded_size}/{total_size} KiB, {speed} KiB/s) -->
|
||||||
<string name="download_status_downloading">Downloading %1$s… %2$d%% (%3$d/%4$d KiB, %5$d KiB/s)</string>
|
<string name="download_status_downloading">Downloading %1$s… %2$d%% (%3$d/%4$d KiB, %5$d KiB/s)</string>
|
||||||
|
|
Loading…
Reference in a new issue