diff --git a/project/jni/application/xserver/AndroidAppSettings.cfg b/project/jni/application/xserver/AndroidAppSettings.cfg index 44f91128f..bec654dcb 100644 --- a/project/jni/application/xserver/AndroidAppSettings.cfg +++ b/project/jni/application/xserver/AndroidAppSettings.cfg @@ -7,10 +7,10 @@ AppName="XServer XSDL" AppFullName=x.org.server # Application version code (integer) -AppVersionCode=11136 +AppVersionCode=11137 # Application user-visible version name (string) -AppVersionName="1.11.36" +AppVersionName="1.11.37" # Specify path to download application data in zip archive in the form 'Description|URL|MirrorURL^Description2|URL2|MirrorURL2^...' # If you'll start Description with '!' symbol it will be enabled by default, other downloads should be selected by user from startup config menu diff --git a/project/jni/application/xserver/java.patch b/project/jni/application/xserver/java.patch index 8560bb177..daa0ffc83 100644 --- a/project/jni/application/xserver/java.patch +++ b/project/jni/application/xserver/java.patch @@ -1,21 +1,161 @@ -diff --git a/project/java/Video.java b/project/java/Video.java -index eb25252..a327c6b 100644 ---- a/project/java/Video.java -+++ b/project/java/Video.java -@@ -691,6 +691,16 @@ class DemoRenderer extends GLSurfaceView_SDL.Renderer - if(Globals.AudioBufferConfig >= 2) - Thread.currentThread().setPriority( (Thread.NORM_PRIORITY + Thread.MIN_PRIORITY) / 2 ); // Lower than normal - // Calls main() and never returns, hehe - we'll call eglSwapBuffers() from native code -+ if (context.getIntent().getScheme() != null && context.getIntent().getScheme().equals("x11")) +--- /dev/null 2015-10-05 15:25:29.521608647 +0300 ++++ RunFromOtherApp.java 2015-10-26 22:53:03.765597769 +0200 +@@ -0,0 +1,158 @@ ++/* ++Simple DirectMedia Layer ++Java source code (C) 2009-2014 Sergii Pylypenko ++ ++This software is provided 'as-is', without any express or implied ++warranty. In no event will the authors be held liable for any damages ++arising from the use of this software. ++ ++Permission is granted to anyone to use this software for any purpose, ++including commercial applications, and to alter it and redistribute it ++freely, subject to the following restrictions: ++ ++1. The origin of this software must not be misrepresented; you must not ++ claim that you wrote the original software. If you use this software ++ in a product, an acknowledgment in the product documentation would be ++ appreciated but is not required. ++2. Altered source versions must be plainly marked as such, and must not be ++ misrepresented as being the original software. ++3. This notice may not be removed or altered from any source distribution. ++*/ ++ ++package x.org.server; ++ ++import android.app.Activity; ++import android.app.Service; ++import android.content.Context; ++import android.os.Bundle; ++import android.os.IBinder; ++import android.view.MotionEvent; ++import android.view.KeyEvent; ++import android.view.Window; ++import android.view.WindowManager; ++import android.view.View; ++import android.view.ViewGroup; ++import android.widget.TextView; ++import android.widget.EditText; ++import android.text.Editable; ++import android.widget.Button; ++import android.widget.ImageView; ++import android.widget.LinearLayout; ++import android.widget.FrameLayout; ++import android.graphics.drawable.Drawable; ++import android.graphics.Color; ++import android.content.res.Configuration; ++import android.app.Notification; ++import android.app.NotificationManager; ++import android.app.PendingIntent; ++import android.content.Intent; ++import android.view.View.OnKeyListener; ++import android.view.MenuItem; ++import android.view.Menu; ++import android.view.Gravity; ++import android.text.method.TextKeyListener; ++import java.util.LinkedList; ++import java.io.SequenceInputStream; ++import java.io.BufferedInputStream; ++import java.io.IOException; ++import java.io.InputStream; ++import java.io.OutputStream; ++import java.io.FileOutputStream; ++import java.io.File; ++import java.io.FileInputStream; ++import java.util.zip.*; ++import java.util.zip.ZipEntry; ++import java.util.zip.ZipInputStream; ++import java.util.Set; ++import android.text.SpannedString; ++import java.io.BufferedReader; ++import java.io.BufferedInputStream; ++import java.io.InputStreamReader; ++import android.view.inputmethod.InputMethodManager; ++import android.content.pm.PackageInfo; ++import android.content.pm.PackageManager; ++import android.os.Handler; ++import android.os.Message; ++import android.os.SystemClock; ++import java.util.concurrent.Semaphore; ++import android.content.pm.ActivityInfo; ++import android.view.Display; ++import android.util.DisplayMetrics; ++import android.text.InputType; ++import android.util.Log; ++import android.view.Surface; ++import android.app.ProgressDialog; ++import android.app.KeyguardManager; ++import android.view.ViewTreeObserver; ++import android.graphics.Rect; ++import android.net.Uri; ++import android.content.ComponentName; ++ ++ ++public class RunFromOtherApp extends Activity ++{ ++ @Override ++ protected void onCreate(Bundle savedInstanceState) ++ { ++ super.onCreate(savedInstanceState); ++ ++ Log.i("SDL", "Run from another app, getCallingActivity() is " +( getCallingActivity() == null ? "null" : "not null" )); ++ ++ Intent main = new Intent(this, MainActivity.class); ++ main.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); ++ if( getIntent().getScheme() != null && getIntent().getScheme().equals("x11") ) + { -+ int port = context.getIntent().getData().getPort(); ++ int port = getIntent().getData().getPort(); + if (port >= 0) + { + if (port >= 6000) + port -= 6000; -+ Globals.CommandLine = Globals.CommandLine + " :" + port; ++ //Globals.CommandLine = Globals.CommandLine + " :" + port; ++ main.putExtra(RestartMainActivity.SDL_RESTART_PARAMS, ":" + port); + } + } - nativeInit( Globals.DataDir, - Globals.CommandLine, - ( (Globals.SwVideoMode && Globals.MultiThreadedVideo) || Globals.CompatibilityHacksVideo ) ? 1 : 0, ++ startActivity(main); ++ ++ new Thread(new Runnable() ++ { ++ public void run() ++ { ++ Log.i("SDL", "Waiting for env vars to be set"); ++ while( System.getenv("DISPLAY") == null || System.getenv("PULSE_SERVER") == null ) ++ { ++ try { ++ Thread.sleep(300); ++ } catch (InterruptedException e) {} ++ } ++ Log.i("SDL", "Env vars set, returning result, getCallingActivity() is " + (getCallingActivity() == null ? "null" : "not null")); ++ ++ if( getCallingActivity() != null ) ++ { ++ final ComponentName callingActivity = getCallingActivity().clone(); ++ Log.i("SDL", "Launching calling activity: " + getCallingActivity().toString()); ++ new Thread(new Runnable() ++ { ++ public void run() ++ { ++ try { ++ Thread.sleep(500); ++ } catch (InterruptedException e) {} ++ Intent caller = new Intent(); ++ caller.setComponent(callingActivity); ++ caller.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ++ Log.i("SDL", "Launching calling activity: " + caller.toString()); ++ startActivity(caller); ++ } ++ }).start(); ++ } ++ ++ Intent intent = new Intent(Intent.ACTION_RUN, Uri.parse("x11://run?DISPLAY=" + Uri.encode(System.getenv("DISPLAY")) + "&PULSE_SERVER=" + Uri.encode(System.getenv("PULSE_SERVER")))); ++ intent.putExtra("DISPLAY", System.getenv("DISPLAY")); ++ intent.putExtra("PULSE_SERVER", System.getenv("PULSE_SERVER")); ++ intent.putExtra("run", "export DISPLAY=" + System.getenv("DISPLAY") + " ; export PULSE_SERVER=" + System.getenv("PULSE_SERVER")); ++ setResult(Activity.RESULT_OK, intent); ++ finish(); ++ } ++ }).start(); ++ } ++} diff --git a/project/jni/application/xserver/project.patch b/project/jni/application/xserver/project.patch index 74673cb0d..baf96cee6 100644 --- a/project/jni/application/xserver/project.patch +++ b/project/jni/application/xserver/project.patch @@ -1,15 +1,20 @@ --- a/project/AndroidManifest.xml 2015-01-01 23:59:34.805231773 +0200 +++ a/project/AndroidManifest.xml 2015-01-01 23:59:45.189378809 +0200 -@@ -23,6 +23,12 @@ - - - +@@ -43,6 +43,17 @@ + android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize|layoutDirection" + android:enabled="true" + /> ++ + -+ -+ -+ ++ ++ + + - - - + + +