From 3b6365a04892bae4272233f21f59623911ba539e Mon Sep 17 00:00:00 2001 From: "Alibek Omarov (a1batross)" Date: Sat, 1 Apr 2017 00:52:13 +0300 Subject: [PATCH] Remove OPEN_DOCUMENT_TREE request, because it's still does not gives permission to use fopen() call. So, forbid unwritable SD cards at all. --- res/values-ru/strings.xml | 13 +++++++++++++ res/values/strings.xml | 7 ++++--- src/in/celest/xash3d/XashActivity.java | 19 ++++++++++--------- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index f9720fcb..3623b5f3 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -54,4 +54,17 @@ Отмена Обновления не найдены Работаю... + Включить Immersive Mode(Полноэкранный режим, для KitKat и старше) + + Тест чтения не удался + + Переместите файлы игры куда-нибудь ещё. Например, в Android/data/in.celest.xash3d.hl или во внутренюю память. На следующий запуск я снова спрошу местоположение файлов игры. + + + + Тест записи не удался дважды. + Из-за политик записи в новых версиях Android, полноценно воспользоваться внешней памятью невозможно. + Из-за политик записи Android 4.4, вы не можете воспользоваться внешней памятью. + Похоже, ваша файловая система в режиме только для чтения. + diff --git a/res/values/strings.xml b/res/values/strings.xml index 31453e15..2cb283f2 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3,7 +3,7 @@ Xash3D Xash3D Xash3D (test) - v0.18 + v0.19 Launch Xash3D! Command line arguments(experts only) @@ -62,11 +62,12 @@ Write test has failed Move your game files somewhere else, for example Android/data/in.celest.xash3d.hl or internal memory. At next run I will ask you about folder again. - Due to writing politics of newer Android versions, you need to select a root folder of storage where game data is located. - Select folder + Write test has been failed twice. + Due to writing politics of newer Android versions, you can\'t use this storage. Due to writing politics of Android 4.4, you can\'t use this storage. Seems you have read-only filesystem. diff --git a/src/in/celest/xash3d/XashActivity.java b/src/in/celest/xash3d/XashActivity.java index f2fc398c..16cc1590 100644 --- a/src/in/celest/xash3d/XashActivity.java +++ b/src/in/celest/xash3d/XashActivity.java @@ -173,7 +173,7 @@ public class XashActivity extends Activity { String basedir = mPref.getString( "basedir", "/sdcard/xash/" ); checkWritePermission( basedir ); } - else if( mReturingWithResultCode == OPEN_DOCUMENT_TREE_RESULT ) + /*else if( mReturingWithResultCode == OPEN_DOCUMENT_TREE_RESULT ) { String basedir = getStringExtraFromIntent( getIntent(), "basedir", mPref.getString("basedir","/sdcard/xash/")); Log.v(TAG, "Got permissions. Checking writing again..."); @@ -202,7 +202,7 @@ public class XashActivity extends Activity { { launchSurfaceAndEngine(); } - } + }*/ mReturingWithResultCode = 0; } @@ -320,18 +320,19 @@ public class XashActivity extends Activity { if( sdk > 20 ) { - // OPEN_DOCUMENT_TREE - - // first try + // 5.0 and higher _allows_ writing to SD card, but have broken fopen() call. So, no Xash here. F*ck you, Google! + String msg = getString(R.string.lollipop_write_fail_msg) + getString(R.string.ask_about_new_basedir_msg); + new AlertDialog.Builder(this) .setTitle( R.string.write_failed ) - .setMessage( R.string.lollipop_request_permission_msg ) - .setPositiveButton( R.string.lollipop_select_folder_btn, new DialogInterface.OnClickListener() + .setMessage( msg ) + .setPositiveButton( R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { - Intent intent = new Intent("android.intent.action.OPEN_DOCUMENT_TREE"); - XashActivity.this.startActivityForResult(intent, OPEN_DOCUMENT_TREE_RESULT); + XashActivity act = XashActivity.this; + act.setFolderAsk( true ); + act.finish(); } }) .setCancelable(false)