protected override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); //ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var b = new Button(this).AttachTo(ll); b.WithText("before AtClick"); b.AtClick( v => { b.setText("AtClick"); } ); var b2 = new Button(this); b2.setText("The other button!"); ll.addView(b2); this.setContentView(sv); }
protected override void onCreate(android.os.Bundle arg0) { base.onCreate(arg0); LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); Button btn = new Button(this); btn.setOnClickListener(this); btn.setText("threaD"); layout.addView(btn); btn2 = new Button(this); btn2.setText("debug"); btn2.setOnClickListener(new com.koushikdutta.monojavabridge.android.OnClickListener { OnClick = v => { Console.WriteLine("Foobar"); } }); layout.addView(btn2); tv = new TextView(this); layout.addView(tv); setContentView(layout); }
protected override void onCreate(Bundle savedInstanceState) { var activity = this; base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var b = new Button(this).AttachTo(ll); b.WithText("before AtClick"); b.AtClick( v => { b.setText("AtClick"); } ); }
// http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle) // protected void onCreate (Bundle savedInstanceState) // protected virtual void onCreate(Bundle savedInstanceState); // http://developer.android.com/reference/android/app/ListActivity.html // public void onCreate(Bundle savedInstanceState) { //1>X:\jsc.svn\examples\java\android\synergy\xcatlog\xcatlog\ApplicationActivity.cs(21,33,21,41): error CS0507: 'xcatlog.Activities.ApplicationActivity.onCreate(android.os.Bundle)': cannot change access modifiers when overriding 'public' inherited member 'com.nolanlawson.logcat.LogcatActivity.onCreate(android.os.Bundle)' // public override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); // ok lets do some code review. // whats the least ammount of effort to capture a log line and steam it over udp? // it seems to start by // X:\opensource\github\Catlog\Catlog\src\com\nolanlawson\logcat\LogcatActivity.java // then startUpMainLog // LogReaderAsyncTask // line = reader.readLine() //LogcatReaderLoader loader = LogcatReaderLoader.create(LogcatActivity.this, true); // reader = loader.loadReader(); // import com.nolanlawson.logcat.reader.LogcatReaderLoader; // X:\opensource\github\Catlog\Catlog\src\com\nolanlawson\logcat\reader\LogcatReaderLoader.java // SingleLogcatReader // X:\opensource\github\Catlog\Catlog\src\com\nolanlawson\logcat\reader\SingleLogcatReader.java // logcatProcess = LogcatHelper.getLogcatProcess(logBuffer); //bufferedReader = new BufferedReader(new InputStreamReader(logcatProcess // .getInputStream()), 8192); // did we find the magic? // X:\opensource\github\Catlog\Catlog\src\com\nolanlawson\logcat\helper\LogcatHelper.java // um // "logcat", "-v", "time") // so. logging is like the shell example we used to have? // https://sites.google.com/a/jsc-solutions.net/work/knowledge-base/15-dualvr/20150606/adb }
protected override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); //ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var b = new Button(this).AttachTo(ll); b.WithText(Foo.Bar("hello via .java")); b.AtClick( v => { b.WithText(Foo.Bar("click!")); } ); this.setContentView(sv); }
protected override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); //ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var b = new Button(this).AttachTo(ll); b.WithText("popup"); b.AtClick( v => { XStandOutWindow.closeAll(this, typeof(XWidgetsWindow).ToClass()); XStandOutWindow.show(this, typeof(XWidgetsWindow).ToClass(), XStandOutWindow.DEFAULT_ID); this.finish(); } ); this.setContentView(sv); }
protected override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); //ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var b = new Button(this); b.setText("I don't do anything, but I was added dynamically. :)"); ll.addView(b); Action onclick = delegate { b.setText("onclick"); }; b.setText("before AtClick"); b.AtClick( v => { b.setText("AtClick"); } ); var b2 = new Button(this); b2.setText("The other button!"); ll.addView(b2); this.setContentView(sv); }
protected override void onCreate(Bundle savedInstanceState) { Console.WriteLine("HybridGLES3JNIActivity onCreate"); base.onCreate(savedInstanceState); mView = new GLES3JNIView(getApplication()); setContentView(mView); }
protected override void onCreate(Bundle savedInstanceState) { // Error 1 The expression being assigned to 'TestCharSequenceAsStringAndConst.Activities.ApplicationActivity.uuu' must be constant y:\jsc.svn\examples\java\Test\TestCharSequenceAsStringAndConst\TestCharSequenceAsStringAndConst\ApplicationActivity.cs 40 32 TestCharSequenceAsStringAndConst //Error 3 Argument 1: cannot convert from 'string' to 'java.lang.CharSequence' y:\jsc.svn\examples\java\Test\TestCharSequenceAsStringAndConst\TestCharSequenceAsStringAndConst\ApplicationActivity.cs 37 31 TestCharSequenceAsStringAndConst //Native.IFoo. Native.Foo.invoke("hello" + Native.Foo.iss); }
protected override void onCreate(Bundle value) { this.ApplicationFile = "index.htm"; base.onCreate(value); this.ToNotification("xavalon.net", uri, 0, uri: uri); }
// http://code.google.com/p/modelview-android/ // "C:\util\android-sdk-windows\platform-tools\aapt.exe" package -v -f -m -S Y:\opensource\googlecode\modelview-android\res -M "Y:\opensource\googlecode\modelview-android\AndroidManifest.xml" -I "C:\util\android-sdk-windows\platforms\android-16\android.jar" -J Y:\jsc.svn\examples\java\android\ModelViewerActivity\ModelViewerActivity //E/AndroidRuntime( 1669): Caused by: java.lang.SecurityException: Permission Denial: killBackgroundProcesses() from pid=1669, uid=10109 requires android.permission.KILL_BACKGROUND_PROCESSES //E/AndroidRuntime( 1669): at android.os.Parcel.readException(Parcel.java:1425) //E/AndroidRuntime( 1669): at android.os.Parcel.readException(Parcel.java:1379) //E/AndroidRuntime( 1669): at android.app.ActivityManagerProxy.killBackgroundProcesses(ActivityManagerNative.java:3174) //E/AndroidRuntime( 1669): at android.app.ActivityManager.killBackgroundProcesses(ActivityManager.java:1645) //E/AndroidRuntime( 1669): at org.jtb.modelview.ui.BrowseActivity$1.run(BrowseActivity.java:42) //E/AndroidRuntime( 1669): at org.jtb.modelview.ui.BrowseActivity.onResume(BrowseActivity.java:39) //E/AndroidRuntime( 1669): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1184) //E/AndroidRuntime( 1669): at android.app.Activity.performResume(Activity.java:5082) //E/AndroidRuntime( 1669): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2565) //E/AndroidRuntime( 1669): ... 12 more //W/ActivityManager( 349): Force finishing activity org.jtb.modelview/.ApplicationActivity //W/ActivityManager( 349): Activity pause timeout for ActivityRecord{42130978 org.jtb.modelview/.ApplicationActivity} //I/ActivityManager( 349): No longer want com.skype.raider (pid 26479): hidden #16 protected override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); Toast.makeText( this, "http://jsc-solutions.net", Toast.LENGTH_LONG ).show(); }
//public override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); StandOutWindow.closeAll(this, typeof(XWidgetsWindow).ToClass()); StandOutWindow.show(this, typeof(XWidgetsWindow).ToClass(), StandOutWindow.DEFAULT_ID); this.finish(); }
// ref protected override void onCreate(Bundle savedInstanceState) { Console.WriteLine("LauncherActivity onCreate"); // and yes we are now running jar/so browser. // need /assets and /res too tho base.onCreate(savedInstanceState); //this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }
// X:\opensource\ovr_mobile_sdk_0.5.1\VRLib\src\com\oculusvr\vrlib\VrActivity.java // com.oculusvr.vrlib // ActivityGroup // u:\chromium\src\chrome\android\shell\java\src\org\chromium\chrome\shell\ChromeShellActivity.java // ActionBarActivity // https://developer.android.com/reference/android/support/v4/app/FragmentActivity.html // https://developer.android.com/reference/android/support/v7/app/AppCompatActivity.html // http://developer.android.com/reference/android/app/ActivityGroup.html protected override void onCreate(Bundle savedInstanceState) { //org.chromium.chrome.shell.TabManager.DEFAULT_URL = "https://explore.xavalon.net"; org.chromium.chrome.shell.TabManager.DEFAULT_URL = "http://192.168.1.126:27535"; base.onCreate(savedInstanceState); return; #if xgearvr // https://forums.oculus.com/viewtopic.php?f=67&t=22886&p=266775#p266775 //base.onCreate(savedInstanceState); //var sv = new ScrollView(this); //var ll = new LinearLayout(this); ////ll.setOrientation(LinearLayout.VERTICAL); //sv.addView(ll); //var b = new Button(this).AttachTo(ll); //b.WithText("can we show chrome and vr?"); //this.setContentView(sv); android.content.Intent intent = getIntent(); // we are vr_dual arent we Console.WriteLine("invoke HybridOculusVrActivity.OVRJVM ApplicationActivity onCreate logApplicationVrType"); com.oculusvr.vrlib.VrLib.logApplicationVrType(this); var commandString = com.oculusvr.vrlib.VrLib.getCommandStringFromIntent(intent); var fromPackageNameString = com.oculusvr.vrlib.VrLib.getPackageStringFromIntent(intent); var uriString = com.oculusvr.vrlib.VrLib.getUriStringFromIntent(intent); // why are we roundtriping intent details? Console.WriteLine("invoke base HybridOculusVrActivity.OVRJVM ApplicationActivity nativeSetAppInterface " ); // https://forums.oculus.com/viewtopic.php?f=67&t=17790 this.appPtr = HybridOculusVrActivity.OVRJVM.ApplicationActivity.nativeSetAppInterface( this, fromPackageNameString, commandString, uriString ); Console.WriteLine("invoke base HybridOculusVrActivity.OVRJVM ApplicationActivity nativeSetAppInterface done"); #endif }
protected override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //this.ToFullscreen(); var v = new RenderingContextView(this); var s = new RaySurface(v); this.setContentView(v); //this.TryHideActionbar(v); //this.ShowToast("http://my.jsc-solutions.net"); }
protected override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); //ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var b = new Button(this).AttachTo(ll); b.AtClick( v => { b.setText("AtClick"); } ); //var b2 = new Button(this); //b2.setText("The other button!"); //ll.addView(b2); var ipa = Dns.GetHostAddresses(getLocalIpAddress())[0]; var port = 8080; b.WithText(ipa + ":" + port); ClassLibrary1.Class1Shared.CreateServer( ipa, port, x => { //b.WithText(x); android.util.Log.wtf("APKWebServer", x); } ).Start(); this.setContentView(sv); }
// http://www.samsung.com/us/support/owners/product/GT-I9250TSGGEN protected override void onCreate(Bundle savedInstanceState) { ScriptCoreLib.Android.ThreadLocalContextReference.CurrentContext = this; base.onCreate(savedInstanceState); // USB tether // SAMSUNG Android USB Remote NDIS Network Device ((WifiManager)this.getSystemService(Context.WIFI_SERVICE)).createWifiLock( WifiManager.WIFI_MODE_FULL_HIGH_PERF, "InteractivePortForwarding" ).acquire(); var r = default(global::ScriptCoreLib.Android.Windows.Forms.IAssemblyReferenceToken_Forms); var u = new UserControl1(); u.AttachTo(this); }
protected override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); //ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var b = new Button(this).AttachTo(ll); var uri = new Uri("http://download.jsc-solutions.net/foo/bar.txt?a=1&b=2#frag1/frag2"); Action<string> w = (x) => new Button(this).WithText(x).AttachTo(ll); w( new { uri.OriginalString, uri.Port, uri.Query, uri.PathAndQuery, uri.Fragment, uri.Host }.ToString() ); this.setContentView(sv); //var foo = new Foo<FooElement>(); //foo.Invoke(w); }
protected override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); //ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var b = new Button(this).AttachTo(ll); var goo = new foo.Goo(); //Activator.CreateInstance< //var goo = (foo.Goo)Activator.CreateInstance( // typeof(foo.Goo) //); //E/AndroidRuntime(32112): Caused by: java.lang.RuntimeException //E/AndroidRuntime(32112): at foo.Bar.GetBarString(Bar.java:29) //E/AndroidRuntime(32112): at foo.Goo.GetString(Goo.java:9) //E/AndroidRuntime(32112): at TestJavaNativesOverride.Activities.ApplicationActivity.onCreate(ApplicationActivity.java:69) b.WithText(goo.GetString()); b.AtClick( v => { b.setText( new assets::foo.Bar().GetBarString() ); } ); this.setContentView(sv); }
public override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); __EC2_START_INSTANCE.Handler = new local__EC2_START_INSTANCE { AtInvoke = delegate { Toast.makeText( this, "! __EC2_START_INSTANCE", Toast.LENGTH_LONG ).show(); } }; Toast.makeText( this, "http://jsc-solutions.net", Toast.LENGTH_LONG ).show(); }
protected override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); //ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); { var b = new Button(this).AttachTo(ll); b.WithText("extras:"); } // http://about-android.blogspot.com/2009/12/passing-data-or-parameter-to-another_02.html this.getIntent().With( intent => { intent.getExtras().With( e => { var keys = e.keySet().toArray(); foreach (string key in keys) { var b = new Button(this).AttachTo(ll); b.WithText(new { key }.ToString()); } } ); } ); this.setContentView(sv); }
protected override void onCreate(Bundle savedInstanceState) { this.ApplicationFile = "Class5.htm"; this.ApplicationScale = 200; this.onpagefinished = delegate { try { // http://www.aganazzar.com/midi.html // http://www.lastown.com/public/musique/warcraft/list.html // http://gamemusic.wordpress.com/2007/12/09/warcraft-1-orcs-and-humans/ if (mediaPlayer != null) mediaPlayer.stop(); mediaPlayer = new MediaPlayer(); var n = "zak.mp3"; if (width < height) n = "Zak McKracken (Main Titles).mid"; var assetFileDescritor = this.getAssets().openFd(n); mediaPlayer.reset(); mediaPlayer.setDataSource( //"IntroWarII.mp3"); assetFileDescritor.getFileDescriptor(), assetFileDescritor.getStartOffset(), assetFileDescritor.getLength() ); //add this ? --------------------------------------- //close the descriptor assetFileDescritor.close(); //add this ? --------------------------------------- //mediaPlayer.prepare(); mediaPlayer.setOnPreparedListener( new _prepared { } ); //mediaPlayer.setOnCompletionListener( // new _OnCompletionListener()); //mediaPlayer.setOnErrorListener( // new _OnErrorListener()); mediaPlayer.prepare(); mediaPlayer.setLooping(true); //this.ShowLongToast("music: " + n); } catch //(System.Exception e) { //this.ShowLongToast("error " + ((object)e).ToString()); //throw; } }; base.onCreate(savedInstanceState); }
public XWindow(XStandOutWindow xcontext, int id) : base(xcontext) { var context = xcontext; context.setTheme(context.getThemeStyle()); mContext = context; //mLayoutInflater = LayoutInflater.from(context); this.cls = context.GetType().ToClass(); this.id = id; this.originalParams = context.getParams(id, this); this.flags = context.getFlags(id); this.touchInfo = new XTouchInfo(); touchInfo.ratio = (float)originalParams.width / originalParams.height; this.data = new Bundle(); DisplayMetrics metrics = mContext.getResources() .getDisplayMetrics(); displayWidth = metrics.widthPixels; displayHeight = (int)(metrics.heightPixels - 25 * metrics.density); // create the window contents View content; FrameLayout body; content = new FrameLayout(context); body = (FrameLayout)content; addView(content); body.setOnTouchListener(new XOnTouchListener { yield = (View v, MotionEvent @event) => { // pass all touch events to the implementation var consumed = false; // handle move and bring to front consumed = context.onTouchHandleMove(id, this, v, @event) || consumed; // alert implementation consumed = context.onTouchBody(id, this, v, @event) || consumed; return consumed; } }); // attach the view corresponding to the id from the // implementation context.createAndAttachView(id, body); // make sure the implementation attached the view if (body.getChildCount() == 0) { throw new System.Exception( "You must attach your view to the given frame in createAndAttachView()"); } //// implement StandOut specific workarounds //if (!XUtils.isSet(flags, // XStandOutFlags.FLAG_FIX_COMPATIBILITY_ALL_DISABLE)) //{ // fixCompatibility(body); //} //// implement StandOut specific additional functionality //if (!XUtils.isSet(flags, // XStandOutFlags.FLAG_ADD_FUNCTIONALITY_ALL_DISABLE)) //{ // addFunctionality(body); //} // attach the existing tag from the frame to the window setTag(body.getTag()); }
protected override void onCreate(Bundle savedInstanceState) { var activity = this; // http://stackoverflow.com/questions/11425020/actionbar-in-a-dialogfragment //To show activity as dialog and dim the background, you need to declare android:theme="@style/PopupTheme" on for the chosen activity on the manifest //activity.requestWindowFeature(Window.FEATURE_ACTION_BAR); //activity.getWindow().setFlags(WindowManager_LayoutParams.FLAG_DIM_BEHIND, WindowManager_LayoutParams.FLAG_DIM_BEHIND); //activity.getWindow().setFlags(WindowManager_LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager_LayoutParams.FLAG_TRANSLUCENT_STATUS); //var @params = activity.getWindow().getAttributes(); ////@params.height = WindowManager_LayoutParams.FILL_PARENT; ////@params.width = 850; //fixed width ////@params.height = 450; //fixed width //@params.alpha = 1.0f; //@params.dimAmount = 0.5f; //activity.getWindow().setAttributes(@params); //activity.getWindow().setLayout(850, 850); base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var b = new Button(this).AttachTo(ll); // https://stackoverflow.com/questions/1898886/removing-an-activity-from-the-history-stack b.WithText("start secondary"); b.AtClick( v => { foo = "hi"; Intent intent = new Intent(this, typeof(SecondaryActivity).ToClass()); intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); //intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); } ); this.AtPause += delegate { b.setText("AtPause"); }; this.AtResume += delegate { b.setText("AtResume"); }; AtPrepareOptions += value => { value.clear(); var item1 = value.add( (java.lang.CharSequence)(object)"http://abstractatech.com" ); item1.setIcon(android.R.drawable.ic_menu_view); var item2 = value.add( (java.lang.CharSequence)(object)"http://jsc-solutions.net" ); //item2.setIcon(android.R.drawable.ic_menu_edit); item2.setIcon(android.R.drawable.ic_menu_view); var i = new Intent(Intent.ACTION_VIEW, android.net.Uri.parse("http://jsc-solutions.net") ); // http://vaibhavsarode.wordpress.com/2012/05/14/creating-our-own-activity-launcher-chooser-dialog-android-launcher-selection-dialog/ var ic = Intent.createChooser(i, "http://jsc-solutions.net"); item2.setIntent( ic ); }; AtOption += item => { //b.WithText("menu was clicked!" + (string)(object)item.getTitle()); b.WithText("menu was clicked!" + new { item }); }; var b2 = new Button(this); b2.setText("The other button!"); ll.addView(b2); this.setContentView(sv); vConfigurationChanged = e => { var orientation = getScreenOrientation(); var SystemUiVisibility = getWindow().getDecorView().getSystemUiVisibility(); b2.setText( new { orientation, SystemUiVisibility }.ToString() ); if (orientation == Configuration.ORIENTATION_LANDSCAPE) { hideSystemUI(); } else { showSystemUI(); } }; vConfigurationChanged(null); }
protected override void onCreate(Bundle savedInstanceState) { // http://www.mkyong.com/android/android-activity-from-one-screen-to-another-screen/ base.onCreate(savedInstanceState); //this.getWindow().getDecorView() //this.getWindow().setTitle("secondary " + new { ApplicationActivity.foo}); //this.getWindow().setTitleColor(0xff0000); // Set the IMMERSIVE flag. // Set the content to appear under the system bars so that the content // doesn't resize when the system bars hide and show. getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); var sv = new ScrollView(this); var ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); this.setContentView(sv); var b = new Button(this).AttachTo(ll); b.WithText(" secondary " + new { ApplicationActivity.foo }); b.AtClick( v => { this.finish(); } ); //this.AtPause += delegate //{ // this.finish(); //}; //this.AtWindowFocusChanged += e => // { // if (!e) // this.finish(); // }; //this.AtUserLeaveHint += delegate { this.finish(); }; //this.onfo //this.onWindowFocusChanged //public void onWindowFocusChanged (boolean hasFocus) }
protected override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //this.ToFullscreen(); var v = new RenderingContextView(this); v.onsurface += gl => { //var __gl = (ScriptCoreLib.Android.__WebGLRenderingContext)(object)gl; Log.wtf("AndroidGLEscherDrosteEffectActivity", "onsurface"); var program = gl.createProgram( new EscherDorsteVertexShader(), new EscherDorsteFragmentShader() ); gl.bindAttribLocation(program, 0, "position"); gl.linkProgram(program); gl.useProgram(program); var uniforms = program.Uniforms(gl); #region loadTexture Func<android.graphics.Bitmap, ScriptCoreLib.JavaScript.WebGL.WebGLTexture> loadTexture = (image) => { var texture_ = gl.createTexture(); gl.enable(gl.TEXTURE_2D); gl.bindTexture(gl.TEXTURE_2D, texture_); //public void texImage2D(uint target, int level, uint internalformat, uint format, uint type, IHTMLCanvas canvas); //public void texImage2D(uint target, int level, uint internalformat, uint format, uint type, IHTMLVideo video); //public void texImage2D(uint target, int level, uint internalformat, uint format, uint type, ImageData pixels); //public void texImage2D(uint target, int level, uint internalformat, int width, int height, int border, uint format, uint type, ArrayBufferView pixels); //public void texImage2D(uint target, int level, uint internalformat, uint format, uint type, IHTMLImage image); //gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); //E/AndroidRuntime( 5131): Caused by: java.lang.IllegalArgumentException: invalid Bitmap format //E/AndroidRuntime( 5131): at android.opengl.GLUtils.texImage2D(GLUtils.java:127) //E/AndroidRuntime( 5131): at AndroidGLEscherDrosteEffectActivity.Activities.ApplicationActivity___c__DisplayClass5___c__DisplayClass7._onCreate_b__1(ApplicationActivity___c__DisplayClass5___c__DisplayClass7.java:62) //GLUtils.texImage2D( // /*target*/ (int)gl.TEXTURE_2D, // /*level*/ 0, // /*internalformat*/(int)gl.RGBA, // image, // /*type*/ (int)gl.UNSIGNED_BYTE, // 0 //); // Load the bitmap into the bound texture. GLUtils.texImage2D((int)gl.TEXTURE_2D, 0, image, 0); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, (int)gl.LINEAR); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, (int)gl.LINEAR_MIPMAP_LINEAR); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, (int)gl.REPEAT); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, (int)gl.REPEAT); gl.generateMipmap(gl.TEXTURE_2D); // Recycle the bitmap, since its data has been loaded into OpenGL. image.recycle(); return texture_; }; #endregion #region openFileFromAssets Func<string, InputStream> openFileFromAssets = (string spath) => { InputStream value = null; try { value = this.getResources().getAssets().open(spath); } catch { } return value; }; #endregion var texture__ = android.graphics.BitmapFactory.decodeStream( openFileFromAssets("assets/AndroidGLEscherDrosteEffectActivity/escher.jpg") ); var texture = loadTexture( texture__ ); gl.uniform1i(gl.getUniformLocation(program, "texture"), 0); gl.enableVertexAttribArray(0); var vertices = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, vertices); gl.bufferData(gl.ARRAY_BUFFER, new Float32Array( -1f, -1f, -1f, 1f, 1f, -1f, 1f, 1f ), gl.STATIC_DRAW); gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0); var indices = gl.createBuffer(); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indices); gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array( 0, 1, 2, 3 ), gl.STATIC_DRAW); #region onresize v.onresize += (width, height) => { Log.wtf("AndroidGLEscherDrosteEffectActivity", "onresize"); gl.viewport(0, 0, width, height); var h = (float)height / (float)width; gl.uniform1f(gl.getUniformLocation(program, "h"), h); }; #endregion var parameters_time = 0f; #region onframe var framecount = 0; v.onframe += delegate { var t = parameters_time / 1000f; if (framecount == 0) Log.wtf("AndroidGLEscherDrosteEffectActivity", "onframe " + ((object)t).ToString()); parameters_time += 100; uniforms.t = t; //gl.uniform1f(gl.getUniformLocation(program, "t"), t); gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_SHORT, 0); gl.flush(); framecount++; }; #endregion Log.wtf("AndroidGLEscherDrosteEffectActivity", "onsurface done"); }; this.setContentView(v); //this.TryHideActionbar(v); this.ShowToast("http://my.jsc-solutions.net"); }
protected override void onCreate(Bundle savedInstanceState) { // http://www.mkyong.com/android/android-activity-from-one-screen-to-another-screen/ base.onCreate(savedInstanceState); vCreate(this, savedInstanceState); }
protected override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); //ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var b = new Button(this).AttachTo(ll); var ip = getLocalIpAddress(); b.WithText("server at " + ip); b.AtClick( v => { var random = new System.Random(); // Error 312 (net::ERR_UNSAFE_PORT): Unknown error. var port = random.Next(1024, 32000); var uri = "http://" + ip; uri += ":"; uri += ((object)(port)).ToString(); b.setText(uri); Toast.makeText( this, "connect to this web server", Toast.LENGTH_LONG ).show(); var ipa = Dns.GetHostAddresses(ip)[0]; Action<string> log = x => Log.wtf("ApplicationActivity", x); // jsc does not import generic param, why? //Action<NetworkStream> AtConnection = NetworkStreamAction AtConnection = s => { //log("AtConnection"); var r = new StreamReader(s); var h0 = r.ReadLine(); //log("ReadLine done"); var m = new MemoryStream(); Action<string> WriteLineASCII = (string e) => { var x = Encoding.ASCII.GetBytes(e + "\r\n"); m.Write(x, 0, x.Length); }; WriteLineASCII("HTTP/1.1 200 OK"); WriteLineASCII("Content-Type: text/html; charset=utf-8"); //WriteLineASCII("Content-Length: " + data.Length); WriteLineASCII("Connection: close"); WriteLineASCII(""); WriteLineASCII(""); WriteLineASCII("<html>"); WriteLineASCII("<body><h1 style='color: red;'>Hello world</h2><h3>jsc</h3><pre>" + h0 + "</pre></body>"); WriteLineASCII("</html>"); log("write done"); var oa = m.ToArray(); s.Write(oa, 0, oa.Length); s.Flush(); s.Close(); }; // AndroidTcpListenerActivity.AndroidActivity 003e create: AndroidTcpListenerActivity.Activities.ApplicationActivity+<>c__DisplayClass8+<>c__DisplayClassb //switch to STA Exception: //System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: The IL Generator cannot be used while there are unclosed exceptions. // at System.Reflection.Emit.ILGenerator.BakeByteArray() // at System.Reflection.Emit.MethodBuilder.CreateMethodBodyHelper(ILGenerator il) // at System.Reflection.Emit.TypeBuilder.CreateTypeNoLock() // at System.Reflection.Emit.TypeBuilder.CreateType() new Thread( delegate() { var r = new TcpListener(ipa, port); //try //{ r.Start(); while (true) { //log("AcceptTcpClient"); var c = r.AcceptTcpClient(); //log("AcceptTcpClient done, GetStream"); var s = c.GetStream(); //log("AcceptTcpClient done, GetStream done"); new Thread( delegate() { //log("before AtConnection"); AtConnection(s); } ) { IsBackground = true, }.Start(); } //} //catch //{ // log("AcceptTcpClient error!"); // throw; //} } ) { IsBackground = true, }.Start(); } ); var b2 = new Button(this); b2.setText("The other button!"); ll.addView(b2); this.setContentView(sv); }
// https://forums.oculus.com/viewtopic.php?f=67&t=22886 // // Just as a side note, you can actually run the app on the Note 4 without having a VR Gear. // Just change the manifest android:value="vr_only" to android:value="vr_dual" and the message will be gone. You still need to have a valid signature file nevertheless. // https://forums.oculus.com/viewtopic.php?f=67&t=17244 // The way it is designed, you never see a VR image outside of the Gear headset, or a 2D image inside it. // When you launch a VR app it just tells you to put on the Gear and doesn't show anything on the screen. // Home is a bit of an exception because it does have an out-of-VR store UI as well, but it won't install // on current firmware. //public com.oculusvr.vrlib.VrActivity ref0; //W/JniUtils(10537): enter ovr_GetGlobalClassReference //W/JniUtils(10537): com/oculusvr/vrlib/VrLib //W/JniUtils(10537): fail ovr_GetGlobalClassReference //W/JniUtils(10537): FindClass( com/oculusvr/vrlib/VrLib ) failed // jint JNI_OnLoad( JavaVM* vm, void* reserved ) // X:\opensource\ovr_mobile_sdk_20141111\VRLib\jni\App.cpp // ovr_OnLoad( vm ); // X:\opensource\ovr_mobile_sdk_20141111\VRLib\jni\VrApi\VrApi.cpp // X:\opensource\ovr_mobile_sdk_20141111\VRLib\jni\VrApi\JniUtils.cpp // VrLibClass = ovr_GetGlobalClassReference( jni, "com/oculusvr/vrlib/VrLib" ); // i think it crashes because we do not have the things java source linked with us //I/DEBUG ( 122): #05 pc 000a46d0 /data/app-lib/HybridOculusVrActivity.OVRJVM-1/libHybridOculusVrActivity.so (ovr_GetGlobalClassReference(_JNIEnv*, char const*)+112) //I/DEBUG ( 122): #06 pc 00093364 /data/app-lib/HybridOculusVrActivity.OVRJVM-1/libHybridOculusVrActivity.so (ovr_OnLoad+100) //I/DEBUG ( 122): #07 pc 000b9004 /data/app-lib/HybridOculusVrActivity.OVRJVM-1/libHybridOculusVrActivity.so (JNI_OnLoad+48) //I/DEBUG ( 122): #08 pc 00050005 /system/lib/libdvm.so (dvmLoadNativeCode(char const*, Object*, char**)+468) // if we were to include AssetsLibrary, // how can we force non merge/ script ? // VrActivity // wo dont yet have the cool dispatcher for arm // X:\jsc.svn\core\ScriptCoreLibJava.jni\web\bin\jnistb10\dispatch.c // X:\jsc.svn\core\ScriptCoreLibJava.jni\BCLImplementation\ScriptCoreLib\Shared\PlatformInvocationServices.cs // could we load any .so on will? // X:\opensource\ovr_mobile_sdk_0.5.1\VRLib\jni\Integrations\PureJava\PureJava.cpp protected override void onCreate(android.os.Bundle value) { // E/AndroidRuntime(27462): Caused by: java.lang.SecurityException: Neither user 10249 nor current process has android.permission.WAKE_LOCK. // https://sites.google.com/a/jsc-solutions.net/work/knowledge-base/15-dualvr/20150607 Console.WriteLine("enter HybridOculusVrActivity.OVRJVM ApplicationActivity onCreate"); //getWindow().requestFeature(android.view.Window.FEATURE_NO_TITLE); //setRequestedOrientation(android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); getWindow().requestFeature(android.view.Window.FEATURE_NO_TITLE); getWindow().addFlags(WindowManager_LayoutParams.FLAG_KEEP_SCREEN_ON); // https://developer.android.com/reference/android/os/PowerManager.WakeLock.html#release() PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE); var wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "MyWakelockTag"); wakeLock.acquire(); Toast.makeText( this, stringFromJNI() + " can you see it?", Toast.LENGTH_LONG ).show(); Console.WriteLine("invoke base HybridOculusVrActivity.OVRJVM ApplicationActivity onCreate"); base.onCreate(value); ////var ll = new LinearLayout(this); ////ll.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); ////this.setContentView(ll); ////var leftSurface = new android.opengl.GLSurfaceView(this, null); ////leftSurface.setLayoutParams(new LinearLayout.LayoutParams(1, LinearLayout.LayoutParams.MATCH_PARENT) { weight = 1.0f }); //////leftSurface.setId(); //////leftSurface.AttachTo(ll); ////ll.addView(leftSurface); ////var rightSurface = new android.opengl.GLSurfaceView(this, null); ////rightSurface.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT) { weight = 1.0f }); //////rightSurface.AttachTo(ll); ////ll.addView(rightSurface); // http://through-the-interface.typepad.com/through_the_interface/2015/01/building-a-gear-vr-app-using-the-oculus-mobile-sdk.html //E/AndroidRuntime(13031): android.util.SuperNotCalledException: Activity {HybridOculusVrActivity.OVRJVM/HybridOculusVrActivity.OVRJVM.ApplicationActivity} did not call through to super.onCreate() //E/AndroidRuntime(13031): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2150) //E/AndroidRuntime(13031): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) //E/AndroidRuntime(13031): at android.app.ActivityThread.access$800(ActivityThread.java:135) //E/AndroidRuntime(13031): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) //E/AndroidRuntime(13031): at android.os.Handler.dispatchMessage(Handler.java:102) //E/AndroidRuntime(13031): at android.os.Looper.loop(Looper.java:136) //E/AndroidRuntime(13031): at android.app.ActivityThread.main(ActivityThread.java:5001) // why call the base? // https://sites.google.com/a/jsc-solutions.net/work/knowledge-base/15-dualvr/20150504/dae //var tv = new TextView(this); //tv.setText(stringFromJNI()); //setContentView(tv); //this.ShowToast( // stringFromJNI() // ); //<meta-data android:name="com.samsung.android.vr.application.mode" android:value="vr_dual"/> // // if we do not set it we are going to crash. //var appPtr = nativeSetAppInterface(ref0); android.content.Intent intent = getIntent(); // we are vr_dual arent we Console.WriteLine("invoke HybridOculusVrActivity.OVRJVM ApplicationActivity onCreate logApplicationVrType"); com.oculusvr.vrlib.VrLib.logApplicationVrType(this); var commandString = com.oculusvr.vrlib.VrLib.getCommandStringFromIntent(intent); var fromPackageNameString = com.oculusvr.vrlib.VrLib.getPackageStringFromIntent(intent); var uriString = com.oculusvr.vrlib.VrLib.getUriStringFromIntent(intent); // why are we roundtriping intent details? //assembly: X:\jsc.svn\examples\c\android\HybridOculusVrActivity\HybridOculusVrActivity\bin\Debug\HybridOculusVrActivity.dll at //type: <>f__AnonymousType0`3, HybridOculusVrActivity, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null //method: ToString //type not supported: System.Text.StringBuilder ; consider adding [ScriptAttribute] // I/System.Console(11661): invoke base HybridOculusVrActivity.OVRJVM ApplicationActivity nativeSetAppInterface fromPackageNameString: // empty why? Console.WriteLine("invoke base HybridOculusVrActivity.OVRJVM ApplicationActivity nativeSetAppInterface " + //new //{ " fromPackageNameString: " + fromPackageNameString //commandString, //uriString //} ); // https://forums.oculus.com/viewtopic.php?f=67&t=17790 this.appPtr = nativeSetAppInterface(this, fromPackageNameString, commandString, uriString ); Console.WriteLine("invoke base HybridOculusVrActivity.OVRJVM ApplicationActivity nativeSetAppInterface done"); //nativeResume(appPtr); }
protected override void onCreate(Bundle savedInstanceState) { this.ApplicationFile = "index.htm"; this.ApplicationScale = 150; this.onpagefinished = delegate { try { // http://www.aganazzar.com/midi.html // http://www.lastown.com/public/musique/warcraft/list.html // http://gamemusic.wordpress.com/2007/12/09/warcraft-1-orcs-and-humans/ if (mediaPlayer != null) mediaPlayer.stop(); mediaPlayer = new MediaPlayer(); var music = "Warcraft1_TitleTheme.mid"; if (width > height) music = "war-gfx/intro.mid"; var assetFileDescritor = this.getAssets().openFd(music); mediaPlayer.reset(); mediaPlayer.setDataSource( //"IntroWarII.mp3"); assetFileDescritor.getFileDescriptor(), assetFileDescritor.getStartOffset(), assetFileDescritor.getLength() ); //add this ? --------------------------------------- //close the descriptor assetFileDescritor.close(); //add this ? --------------------------------------- //mediaPlayer.prepare(); mediaPlayer.setOnPreparedListener( new _prepared { } ); mediaPlayer.prepare(); mediaPlayer.setLooping(true); this.ShowLongToast(new { music }.ToString()); } catch (System.Exception e) { this.ShowLongToast("error " + ((object)e).ToString()); //throw; } }; base.onCreate(savedInstanceState); }
// "x:\util\android-sdk-windows\platform-tools\adb.exe" tcpip 5555 // restarting in TCP mode port: 5555 // "x:\util\android-sdk-windows\platform-tools\adb.exe" connect 192.168.1.126:5555 // connected to 192.168.1.126:5555 // https://sites.google.com/a/jsc-solutions.net/backlog/knowledge-base/2015/201505/20150513 // lets verify this thing . deploy over wifi. //C:\Windows\system32> "x:\util\android-sdk-windows\platform-tools\adb.exe" shell netcfg //wlan0 UP 192.168.1.126/24 0x00001043 e8:50:8b:7d:27:7c protected override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); //ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); //var b = new Button(this).AttachTo(ll); //b.WithText("before AtClick"); //b.AtClick( // v => // { // b.setText("AtClick"); // } //); this.setContentView(sv); // http://www.java2s.com/Tutorial/Java/0490__Security/KeyStoreExample.htm //I/System.Console( 5182): 143e:0001 ... { xKeyStoreDefaultType = BKS } //I/System.Console( 5182): 143e:0001 { xKeyStore = java.security.KeyStore@274cc17e } //I/System.Console( 5182): 143e:0001 load... { keyStoreType = BKS } //I/System.Console( 5182): 143e:0001 aliases... var xKeyStoreDefaultType = java.security.KeyStore.getDefaultType(); Console.WriteLine("... " + new { xKeyStoreDefaultType }); // are we running in GUI or TTY? // can we enumerate keystores? // ... { xKeyStoreDefaultType = jks } Action<string> f = keyStoreType => { // jsc should do implicit try catch for closures? while asking for explicit catch for non closures? //{ ks = java.security.KeyStore@d3ade7 } //{ aliasKey = peer integrity authority for cpu BFEBFBFF000306A9, SerialNumber = 03729f49acf3e79d4cc40da08149433d, SimpleName = peer integrity authority for cpu BFEBFBFF000306A9 } //{ aliasKey = peer integrity authority for cpu BFEBFBFF000306C3, SerialNumber = c4761e1ea779bc9546151afce47c7c26, SimpleName = peer integrity authority for cpu BFEBFBFF000306C3 } try { // http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b27/sun/security/mscapi/SunMSCAPI.java // https://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html // https://social.msdn.microsoft.com/Forums/expression/en-US/52dca221-1e05-44c1-8c45-9e0d4a807853/java-keystoreload-for-windowsmy-pops-up-insert-smart-card-window?forum=windowssecurity // I removed some personal certificaties at key manager (certmgr.msc) and wala! //Client Authentication (1.3.6.1.5.5.7.3.2) //Secure Email (1.3.6.1.5.5.7.3.4) // https://www.chilkatsoft.com/p/p_280.asp // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Microsoft Base Smart Card Crypto Provider // http://stackoverflow.com/questions/27692904/how-to-avoid-smart-card-selection-popup-when-accessing-windows-my-using-java // http://stackoverflow.com/questions/4552100/how-to-prevent-popups-when-loading-a-keystore // http://stackoverflow.com/questions/15220976/how-to-obtain-a-users-identity-from-a-smartcard-on-windows-mscapi-with-java KeyStore xKeyStore = KeyStore.getInstance(keyStoreType); Console.WriteLine(new { xKeyStore }); Console.WriteLine("load... " + new { keyStoreType }); xKeyStore.load(null, null); //Console.WriteLine("load... done"); Console.WriteLine("aliases..."); java.util.Enumeration en = xKeyStore.aliases(); //Console.WriteLine("aliases... done"); while (en.hasMoreElements()) { var aliasKey = (string)en.nextElement(); Console.WriteLine(new { aliasKey }); // PCSC? var c509 = xKeyStore.getCertificate(aliasKey) as java.security.cert.X509Certificate; if (c509 != null) { X509Certificate2 crt = new __X509Certificate2 { InternalElement = c509 }; //Console.WriteLine(new { crt.Subject, crt.SerialNumber, SimpleName = crt.GetNameInfo(System.Security.Cryptography.X509Certificates.X509NameType.SimpleName, false) }); Console.WriteLine(new { aliasKey, crt.SerialNumber, SimpleName = crt.GetNameInfo(System.Security.Cryptography.X509Certificates.X509NameType.SimpleName, false), crt.Issuer }); } //if (aliasKey.equals("myKey") ) { // PrivateKey key = (PrivateKey)ks.getKey(aliasKey, "monPassword".toCharArray()); // Certificate[] chain = ks.getCertificateChain(aliasKey); //} } } catch (Exception err) { Console.WriteLine(new { err.Message, err.StackTrace }); } }; //hello ubuntu! { AssemblyQualifiedName = java.lang.Object, rt } //... { xKeyStoreDefaultType = jks } //{ xKeyStore = java.security.KeyStore@9980d5 } //load... { keyStoreType = jks } //aliases... //done new Button(this).AttachTo(ll).WithText(xKeyStoreDefaultType).AtClick( delegate { // on RED there are no entries? // what about ubuntu? f(xKeyStoreDefaultType); } ); //I/System.Console( 7167): 1bff:0001 load... { keyStoreType = AndroidKeyStore } //I/System.Console( 7167): 1bff:0001 aliases... new Button(this).AttachTo(ll).WithText("AndroidKeyStore").AtClick( delegate { // on RED there are no entries? // what about ubuntu? f("AndroidKeyStore"); } ); }
protected override void onCreate(android.os.Bundle savedInstanceState) { // https://sites.google.com/a/jsc-solutions.net/work/knowledge-base/15-dualvr/20160102/x360videos // https://sites.google.com/a/jsc-solutions.net/work/knowledge-base/15-dualvr/20151006 base.onCreate(savedInstanceState); nativeOnCreate(this); //setCurrentLanguage(Locale.getDefault().getLanguage()); // Create the SoundPool soundPool = new SoundPool(3 /* voices */, AudioManager.STREAM_MUSIC, 100); soundPoolSoundIds = new java.util.ArrayList <int>(); soundPoolSoundNames = new java.util.ArrayList <string>(); AudioManager audioMgr; audioMgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE); var rate = audioMgr.getProperty(AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE); var size = audioMgr.getProperty(AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER); System.Console.WriteLine("rate = " + rate); System.Console.WriteLine("size = " + size); // Check preferences SharedPreferences prefs = getApplicationContext().getSharedPreferences("oculusvr", MODE_PRIVATE); var username = prefs.getString("username", "guest"); System.Console.WriteLine("username = "******"action:" + intent.getAction()); System.Console.WriteLine("type:" + intent.getType()); System.Console.WriteLine("fromPackageName:" + fromPackageNameString); System.Console.WriteLine("command:" + commandString); System.Console.WriteLine("uri:" + uriString); SurfaceView sv = new SurfaceView(this); setContentView(sv); #region xCallback // X:\jsc.svn\examples\java\android\synergy\OVRVrCubeWorldSurfaceView\OVRVrCubeWorldSurfaceView\ApplicationActivity.cs var xCallback = new xCallback { onsurfaceCreated = holder => { if (appPtr == 0) { return; } nativeSurfaceCreated(appPtr, holder.getSurface()); mSurfaceHolder = holder; }, onsurfaceChanged = (SurfaceHolder holder, int format, int width, int height) => { if (appPtr == 0) { return; } nativeSurfaceChanged(appPtr, holder.getSurface()); mSurfaceHolder = holder; }, onsurfaceDestroyed = holder => { if (appPtr == 0) { return; } nativeSurfaceDestroyed(appPtr); mSurfaceHolder = holder; } }; #endregion sv.getHolder().addCallback(xCallback); // Force the screen to stay on, rather than letting it dim and shut off // while the user is watching a movie. //getWindow().addFlags( WindowManager_LayoutParams.FLAG_KEEP_SCREEN_ON ); //// Force screen brightness to stay at maximum //WindowManager.LayoutParams params = getWindow().getAttributes(); //params.screenBrightness = 1.0f; //getWindow().setAttributes( params ); this.ondispatchTouchEvent += (e) => { int action = e.getAction(); float x = e.getRawX(); float y = e.getRawY(); Log.d(TAG, "onTouch dev:" + e.getDeviceId() + " act:" + action + " ind:" + e.getActionIndex() + " @ " + x + "," + y); nativeTouch(appPtr, action, x, y); return(true); }; this.ondispatchKeyEvent = (e) => { bool down; int keyCode = e.getKeyCode(); int deviceId = e.getDeviceId(); if (e.getAction() == KeyEvent.ACTION_DOWN) { down = true; } else if (e.getAction() == KeyEvent.ACTION_UP) { down = false; } else { Log.d(TAG, "source " + e.getSource() + " action " + e.getAction() + " keyCode " + keyCode); return(base.dispatchKeyEvent(e)); } Log.d(TAG, "source " + e.getSource() + " keyCode " + keyCode + " down " + down + " repeatCount " + e.getRepeatCount()); if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) { if (down) { adjustVolume(1); } return(true); } if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { if (down) { adjustVolume(-1); } return(true); } // Joypads will register as keyboards, but keyboards won't // register as position classes // || event.getSource() != 16777232) // Volume buttons are source 257 if (e.getSource() == 1281) { // do we have one we can test with? //keyCode |= JoyEvent.BUTTON_JOYPAD_FLAG; } return(buttonEvent(deviceId, keyCode, down, e.getRepeatCount())); }; }
protected override void onCreate(Bundle arg0) { base.onCreate(arg0); LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); TextView tv = new TextView(this); tv.setText("Hello"); tv.setTextSize(20); layout.addView(tv); tv = new TextView(this); tv.setText("World!"); tv.setTextSize(15); tv.setTextColor(unchecked((int)0xFF00FFFF)); layout.addView(tv); button = new Button(this); button.setText("wtf"); layout.addView(button); button.setOnClickListener(new OnClickListener() { OnClick = (v) => { Console.WriteLine(toString()); button.setText(System.Environment.TickCount.ToString()); } }); /* * Normally in Java, you'd handle the onClickListener with an inner class. * In C# there is no inner class construct. button.setOnClickListener(new OnClickListener() { @Override public void onClick() { } }); */ setContentView(layout); }