diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index a3e3d0602..b629610d8 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -5,21 +5,13 @@ android:installLocation="auto"> - - - diff --git a/android/app/src/main/java/net/minetest/minetest/MainActivity.java b/android/app/src/main/java/net/minetest/minetest/MainActivity.java index 7678bbb01..d942e93e3 100644 --- a/android/app/src/main/java/net/minetest/minetest/MainActivity.java +++ b/android/app/src/main/java/net/minetest/minetest/MainActivity.java @@ -20,38 +20,24 @@ with this program; if not, write to the Free Software Foundation, Inc., package net.minetest.minetest; -import android.Manifest; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; -import android.content.pm.PackageManager; -import android.os.Build; import android.os.Bundle; -import android.os.Environment; import android.view.View; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; -import androidx.annotation.NonNull; import androidx.annotation.StringRes; import androidx.appcompat.app.AppCompatActivity; -import androidx.core.app.ActivityCompat; -import androidx.core.content.ContextCompat; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; import static net.minetest.minetest.UnzipService.*; public class MainActivity extends AppCompatActivity { private final static int versionCode = BuildConfig.VERSION_CODE; - private final static int PERMISSIONS = 1; - private static final String[] REQUIRED_SDK_PERMISSIONS = - new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}; private static final String SETTINGS = "MinetestSettings"; private static final String TAG_VERSION_CODE = "versionCode"; @@ -100,58 +86,10 @@ public class MainActivity extends AppCompatActivity { mProgressBar = findViewById(R.id.progressBar); mTextView = findViewById(R.id.textView); sharedPreferences = getSharedPreferences(SETTINGS, Context.MODE_PRIVATE); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && - Build.VERSION.SDK_INT < Build.VERSION_CODES.R) - checkPermission(); - else - checkAppVersion(); - } - - private void checkPermission() { - final List missingPermissions = new ArrayList<>(); - for (final String permission : REQUIRED_SDK_PERMISSIONS) { - final int result = ContextCompat.checkSelfPermission(this, permission); - if (result != PackageManager.PERMISSION_GRANTED) - missingPermissions.add(permission); - } - if (!missingPermissions.isEmpty()) { - final String[] permissions = missingPermissions - .toArray(new String[0]); - ActivityCompat.requestPermissions(this, permissions, PERMISSIONS); - } else { - final int[] grantResults = new int[REQUIRED_SDK_PERMISSIONS.length]; - Arrays.fill(grantResults, PackageManager.PERMISSION_GRANTED); - onRequestPermissionsResult(PERMISSIONS, REQUIRED_SDK_PERMISSIONS, grantResults); - } - } - - @Override - public void onRequestPermissionsResult( - int requestCode, - @NonNull String[] permissions, - @NonNull int[] grantResults - ) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults); - if (requestCode == PERMISSIONS) { - for (int grantResult : grantResults) { - if (grantResult != PackageManager.PERMISSION_GRANTED) { - Toast.makeText(this, R.string.not_granted, Toast.LENGTH_LONG).show(); - finish(); - return; - } - } - checkAppVersion(); - } + checkAppVersion(); } private void checkAppVersion() { - if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { - Toast.makeText(this, R.string.no_external_storage, Toast.LENGTH_LONG).show(); - finish(); - return; - } - if (UnzipService.getIsRunning()) { mProgressBar.setVisibility(View.VISIBLE); mProgressBar.setIndeterminate(true); diff --git a/android/app/src/main/java/net/minetest/minetest/UnzipService.java b/android/app/src/main/java/net/minetest/minetest/UnzipService.java index dedb85cdd..8c293fa89 100644 --- a/android/app/src/main/java/net/minetest/minetest/UnzipService.java +++ b/android/app/src/main/java/net/minetest/minetest/UnzipService.java @@ -28,7 +28,6 @@ import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Build; -import android.os.Environment; import android.util.Log; import androidx.annotation.NonNull; @@ -88,7 +87,6 @@ public class UnzipService extends IntentService { } } - migrate(notificationBuilder, userDataDirectory); unzip(notificationBuilder, zipFile, userDataDirectory); } catch (IOException e) { isSuccess = false; @@ -200,44 +198,6 @@ public class UnzipService extends IntentService { } } - /** - * Migrates user data from deprecated external storage to app scoped storage - */ - private void migrate(Notification.Builder notificationBuilder, File newLocation) throws IOException { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - return; - } - - File oldLocation = new File(Environment.getExternalStorageDirectory(), "Minetest"); - if (!oldLocation.isDirectory()) - return; - - publishProgress(notificationBuilder, R.string.migrating, 0); - if (!newLocation.mkdir()) { - Log.e("UnzipService", "New installation folder cannot be made"); - } - - String[] dirs = new String[] { "worlds", "games", "mods", "textures", "client" }; - for (int i = 0; i < dirs.length; i++) { - publishProgress(notificationBuilder, R.string.migrating, 100 * i / dirs.length); - File dir = new File(oldLocation, dirs[i]), dir2 = new File(newLocation, dirs[i]); - if (dir.isDirectory() && !dir2.isDirectory()) { - moveFileOrDir(dir, dir2); - } - } - - for (String filename : new String[] { "minetest.conf" }) { - File file = new File(oldLocation, filename), file2 = new File(newLocation, filename); - if (file.isFile() && !file2.isFile()) { - moveFileOrDir(file, file2); - } - } - - if (!recursivelyDeleteDirectory(oldLocation)) { - Log.w("UnzipService", "Old installation files cannot be deleted successfully"); - } - } - private void publishProgress(@Nullable Notification.Builder notificationBuilder, @StringRes int message, int progress) { Intent intentUpdate = new Intent(ACTION_UPDATE); intentUpdate.putExtra(ACTION_PROGRESS, progress); diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 99f948c99..d8bb7ac68 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -1,13 +1,8 @@ - Minetest Loading… - Migrating save data from old install… (this may take a while) - Required permission wasn\'t granted, Minetest can\'t run without it Loading Minetest Less than 1 minute… Done - External storage isn\'t available. If you use an SDCard, please reinsert it. Otherwise, try restarting your phone or contacting the Minetest developers -