Skip to content

Commit

Permalink
Android: build fixes & compat fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
MoNTE48 authored and nerzhul committed Nov 9, 2019
1 parent dfd5f7c commit 7f023de
Show file tree
Hide file tree
Showing 11 changed files with 91 additions and 100 deletions.
14 changes: 10 additions & 4 deletions build/android/build.gradle
Expand Up @@ -4,7 +4,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
classpath 'com.android.tools.build:gradle:3.5.1'
}
}

Expand All @@ -24,13 +24,14 @@ def sqlite3_version = "3240000"
apply plugin: "com.android.application"

android {
compileSdkVersion 28
compileSdkVersion 29
buildToolsVersion '29.0.2'

defaultConfig {
versionCode 24
versionName "${System.env.VERSION_STR}.${versionCode}"
minSdkVersion 14
targetSdkVersion 28
targetSdkVersion 29
applicationId "net.minetest.minetest"
manifestPlaceholders = [package: "net.minetest.minetest", project: project.name]
ndk {
Expand All @@ -41,6 +42,11 @@ android {
}
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

lintOptions {
disable "OldTargetApi", "GoogleAppIndexingWarning"
}
Expand Down Expand Up @@ -165,5 +171,5 @@ task cleanAll(type: Delete, dependsOn: [clean, cleanAssets, cleanIconv,
}

dependencies {
implementation 'com.android.support:support-v4:28.0.0'
implementation 'androidx.core:core:1.1.0'
}
2 changes: 2 additions & 0 deletions build/android/gradle.properties
@@ -0,0 +1,2 @@
android.enableJetifier=true
android.useAndroidX=true
7 changes: 1 addition & 6 deletions build/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1 @@
#Fri Aug 09 22:14:33 CEST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
5 changes: 0 additions & 5 deletions build/android/src/debug/AndroidManifest.xml

This file was deleted.

11 changes: 6 additions & 5 deletions build/android/src/main/AndroidManifest.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="net.minetest.minetest"
android:installLocation="auto">

Expand All @@ -11,14 +12,14 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="${project}"
android:resizeableActivity="false">
android:resizeableActivity="false"
tools:targetApi="n">

<meta-data
android:name="android.max_aspect"
android:value="2.1" />
android:value="2.4" />

<activity
android:name=".MainActivity"
Expand Down Expand Up @@ -50,10 +51,10 @@
android:name=".MinetestTextEntry"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@style/Theme.Dialog"
android:windowSoftInputMode="stateAlwaysHidden"/>
android:windowSoftInputMode="stateAlwaysHidden" />
<activity
android:name=".MinetestAssetCopy"
android:screenOrientation="sensorLandscape"
android:theme="@style/AppTheme"/>
android:theme="@style/AppTheme" />
</application>
</manifest>
40 changes: 19 additions & 21 deletions build/android/src/main/java/net.minetest.minetest/MainActivity.java
Expand Up @@ -6,17 +6,17 @@
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class MainActivity extends Activity {

private final static int PERMISSIONS = 1;
private static final String[] REQUIRED_SDK_PERMISSIONS = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE};

Expand All @@ -30,8 +30,8 @@ public void onCreate(Bundle savedInstanceState) {
}
}

protected void checkPermission() {
final List<String> missingPermissions = new ArrayList<String>();
private void checkPermission() {
final List<String> missingPermissions = new ArrayList<>();
// check required permission
for (final String permission : REQUIRED_SDK_PERMISSIONS) {
final int result = ContextCompat.checkSelfPermission(this, permission);
Expand All @@ -42,7 +42,7 @@ protected void checkPermission() {
if (!missingPermissions.isEmpty()) {
// request permission
final String[] permissions = missingPermissions
.toArray(new String[missingPermissions.size()]);
.toArray(new String[0]);
ActivityCompat.requestPermissions(this, permissions, PERMISSIONS);
} else {
final int[] grantResults = new int[REQUIRED_SDK_PERMISSIONS.length];
Expand All @@ -53,25 +53,23 @@ protected void checkPermission() {
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[],
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
switch (requestCode) {
case PERMISSIONS:
for (int index = 0; index < permissions.length; index++) {
if (grantResults[index] != PackageManager.PERMISSION_GRANTED) {
// permission not granted - toast and exit
Toast.makeText(this, R.string.not_granted, Toast.LENGTH_LONG).show();
finish();
return;
}
if (requestCode == PERMISSIONS) {
for (int index = 0; index < permissions.length; index++) {
if (grantResults[index] != PackageManager.PERMISSION_GRANTED) {
// permission not granted - toast and exit
Toast.makeText(this, R.string.not_granted, Toast.LENGTH_LONG).show();
finish();
return;
}
// permission were granted - run
next();
break;
}
// permission were granted - run
next();
}
}

public void next() {
private void next() {
Intent intent = new Intent(this, MtNativeActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
Expand Down
@@ -1,5 +1,6 @@
package net.minetest.minetest;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.os.AsyncTask;
Expand All @@ -19,13 +20,12 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.Vector;

public class MinetestAssetCopy extends Activity {
ProgressBar m_ProgressBar;
TextView m_Filename;
copyAssetTask m_AssetCopy;
private ProgressBar m_ProgressBar;
private TextView m_Filename;
private copyAssetTask m_AssetCopy;

@Override
public void onCreate(Bundle savedInstanceState) {
Expand Down Expand Up @@ -53,29 +53,26 @@ protected void onResume() {
super.onResume();
makeFullScreen();
}

@Override
protected void onDestroy() {
protected void onDestroy() {
super.onDestroy();
if (m_AssetCopy != null) {
m_AssetCopy.cancel(true);
}
}
}

public void makeFullScreen() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
private void makeFullScreen() {
if (Build.VERSION.SDK_INT >= 19)
this.getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
);
}
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}

@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
if (hasFocus)
makeFullScreen();
}
}

/* preserve asset copy background task to prevent restart of copying */
Expand All @@ -85,7 +82,8 @@ public Object onRetainNonConfigurationInstance() {
return this;
}

private static class copyAssetTask extends AsyncTask<String, Integer, String> {
@SuppressLint("StaticFieldLeak")
private class copyAssetTask extends AsyncTask<String, Integer, String> {
boolean m_copy_started = false;
String m_Foldername = "media";
Vector<String> m_foldernames;
Expand All @@ -99,7 +97,7 @@ private long getFullSize(String filename) {
InputStream src = getAssets().open(filename);
byte[] buf = new byte[4096];

int len = 0;
int len;
while ((len = src.read(buf)) > 0) {
size += len;
}
Expand All @@ -111,10 +109,10 @@ private long getFullSize(String filename) {

@Override
protected String doInBackground(String... files) {
m_foldernames = new Vector<String>();
m_filenames = new Vector<String>();
m_tocopy = new Vector<String>();
m_asset_size_unknown = new Vector<String>();
m_foldernames = new Vector<>();
m_filenames = new Vector<>();
m_tocopy = new Vector<>();
m_asset_size_unknown = new Vector<>();
String baseDir =
Environment.getExternalStorageDirectory().getAbsolutePath()
+ "/";
Expand All @@ -128,9 +126,9 @@ protected String doInBackground(String... files) {
} else {
File[] todel = TempFolder.listFiles();

for (int i = 0; i < todel.length; i++) {
Log.v("MinetestAssetCopy", "deleting: " + todel[i].getAbsolutePath());
todel[i].delete();
for (File file : todel) {
Log.v("MinetestAssetCopy", "deleting: " + file.getAbsolutePath());
file.delete();
}
}

Expand Down Expand Up @@ -166,9 +164,9 @@ protected String doInBackground(String... files) {
if (m_asset_size_unknown.contains(filename)) {
File testme = new File(baseDir + "/" + filename);

if (testme.exists()) {
if (testme.exists())
filesize = testme.length();
}

asset_size_unknown = true;
}

Expand Down Expand Up @@ -249,12 +247,10 @@ protected String doInBackground(String... files) {
protected void onProgressUpdate(Integer... progress) {

if (m_copy_started) {
boolean shortened = false;
String todisplay = m_tocopy.get(progress[0]);
m_ProgressBar.setProgress(progress[0]);
m_Filename.setText(todisplay);
} else {
boolean shortened = false;
String todisplay = m_Foldername;
String full_text = "scanning " + todisplay + " ...";
m_Filename.setText(full_text);
Expand All @@ -264,14 +260,11 @@ protected void onProgressUpdate(Integer... progress) {
/**
* check all files and folders in filelist
*/
protected void ProcessFileList() {
void ProcessFileList() {
String FlashBaseDir =
Environment.getExternalStorageDirectory().getAbsolutePath();

Iterator itr = m_filenames.iterator();

while (itr.hasNext()) {
String current_path = (String) itr.next();
for (String current_path : m_filenames) {
String FlashPath = FlashBaseDir + "/" + current_path;

if (isAssetFolder(current_path)) {
Expand Down Expand Up @@ -300,38 +293,35 @@ protected void ProcessFileList() {
File testme = new File(FlashPath);

long asset_filesize = -1;
long stored_filesize = -1;
long stored_filesize;

if (testme.exists()) {
try {
AssetFileDescriptor fd = getAssets().openFd(current_path);
asset_filesize = fd.getLength();
fd.close();
} catch (IOException e) {
refresh = true;
m_asset_size_unknown.add(current_path);
Log.e("MinetestAssetCopy", "Failed to open asset file \"" +
FlashPath + "\" for size check");
}

stored_filesize = testme.length();

if (asset_filesize == stored_filesize) {
if (asset_filesize == stored_filesize)
refresh = false;
}

}

if (refresh) {
if (refresh)
m_tocopy.add(current_path);
}
}
}

/**
* read list of folders prepared on package build
*/
protected void BuildFolderList() {
void BuildFolderList() {
try {
InputStream is = getAssets().open("index.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
Expand All @@ -351,7 +341,7 @@ protected void BuildFolderList() {
/**
* read list of asset files prepared on package build
*/
protected void BuildFileList() {
void BuildFileList() {
long entrycount = 0;
try {
InputStream is = getAssets().open("filelist.txt");
Expand All @@ -374,7 +364,7 @@ protected void onPostExecute(String result) {
finish();
}

protected boolean isAssetFolder(String path) {
boolean isAssetFolder(String path) {
return m_foldernames.contains(path);
}
}
Expand Down

0 comments on commit 7f023de

Please sign in to comment.