// called by? public override void InternalBeforeSetContext(android.content.Context c) { InternalScrollView = new ScrollView(c); InternalLinearLayout = new LinearLayout(c); var p = this.Padding; InternalLinearLayout.setPadding( p.Left, p.Top, p.Right, p.Bottom ); // shal we allow dynamic change after we have been shown? //InternalLinearLayout.setPadding( // this.Padding.Left, // this.Padding.Top, // this.Padding.Right, // this.Padding.Bottom // ); InternalLinearLayout.setOrientation(1); InternalScrollView.addView(InternalLinearLayout); // X:\jsc.svn\examples\java\android\forms\InteractivePortForwarding\InteractivePortForwarding\UserControl1.cs if (Load != null) Load(this, new EventArgs()); }
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); }
// connect s6 via usb . // turn on wifi! // kill adb //"x:\util\android-sdk-windows\platform-tools\adb.exe" tcpip 5555 // restarting in TCP mode port: 5555 //13: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 // inet 192.168.1.126/24 brd 192.168.1.255 scope global wlan0 // valid_lft forever preferred_lft forever // on red // "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/201511/20151121 // http://stackoverflow.com/questions/17513502/support-for-multi-window-app-development protected override void onCreate(global::android.os.Bundle savedInstanceState) { // http://www.dreamincode.net/forums/topic/130521-android-part-iii-dynamic-layouts/ 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("Vibrate!"); b.AtClick( delegate { var vibrator = (Vibrator)this.getSystemService(Context.VIBRATOR_SERVICE); vibrator.vibrate(600); } ); ll.addView(b); this.setContentView(sv); //this.ShowLongToast("http://my.jsc-solutions.net x"); }
// X:\opensource\ovr_mobile_sdk_0.5.0 // https://developer.oculus.com/downloads/#version=mobile-0.5.0 //<ItemGroup> // <Content Include="X:\opensource\ovr_mobile_sdk_20141111\VRLib\src\**\*.*"> // <Link>opensource\ovr_mobile_sdk_20141111\VRLib\src\%(RecursiveDir)%(FileName)%(Extension)</Link> // </Content> //</ItemGroup> // https://sites.google.com/a/jsc-solutions.net/work/knowledge-base/15-dualvr/20150402 // https://sites.google.com/a/jsc-solutions.net/work/knowledge-base/15-dualvr/20141127 // https://sites.google.com/a/jsc-solutions.net/work/knowledge-base/15-dualvr/20150504/dae // http://stackoverflow.com/questions/9821875/where-is-buildconfig-debug // tested by? protected override void onCreate(global::android.os.Bundle savedInstanceState) { // cmd /K c:\util\android-sdk-windows\platform-tools\adb.exe logcat // Camera PTP // http://developer.android.com/guide/topics/ui/notifiers/notifications.html base.onCreate(savedInstanceState); ScrollView sv = new ScrollView(this); LinearLayout ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); Button b = new Button(this); b.setText("Notify!"); int counter = 0; ll.addView(b); this.setContentView(sv); this.ShowToast("http://jsc-solutions.net"); }
protected override void onCreate(global::android.os.Bundle savedInstanceState) { // http://www.dreamincode.net/forums/topic/130521-android-part-iii-dynamic-layouts/ base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); ll.setOrientation(0); sv.addView(ll); var key = new TextView(this).AttachTo(ll); var value = new TextView(this).AttachTo(ll); var xml = new TextView(this).AttachTo(ll); key.setText("foo"); value.setText("bar"); xml.setText( new XElement("KeyValuePair", new XAttribute("Key", "foo"), new XElement("Value", "bar") ).ToString() ); setContentView(sv); //this.ShowToast("http://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.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(global::android.os.Bundle savedInstanceState) { // http://www.dreamincode.net/forums/topic/130521-android-part-iii-dynamic-layouts/ base.onCreate(savedInstanceState); ScrollView sv = new ScrollView(this); LinearLayout ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); //// http://stackoverflow.com/questions/9784570/webview-inside-scrollview-disappears-after-zooming //// http://stackoverflow.com/questions/8123804/unable-to-add-web-view-dynamically //// http://developer.android.com/reference/android/webkit/WebView.html TextView tv = new TextView(this); tv.setText("What would you like to create today?"); ll.addView(tv); this.setContentView(sv); var version = SDKVersionCheck.GetSDKVersion(); this.ShowLongToast(new { version }.ToString()); }
TextView zCoor; // declare Z axis object // running it on device: // attach device to usb protected override void onCreate(global::android.os.Bundle savedInstanceState) { // http://www.dreamincode.net/forums/topic/130521-android-part-iii-dynamic-layouts/ base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); xCoor = new TextView(this).AttachTo(ll); yCoor = new TextView(this).AttachTo(ll); zCoor = new TextView(this).AttachTo(ll); setContentView(sv); this.onaccelerometer += (x, y, z) => { xCoor.setText("X: " + ((object)x).ToString()); yCoor.setText("Y: " + ((object)y).ToString()); zCoor.setText("Z: " + ((object)z).ToString()); }; //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //this.ShowToast("http://jsc-solutions.net"); }
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://stackoverflow.com/questions/6274141/trigger-background-service-at-a-specific-time-in-android // http://stackoverflow.com/questions/7144908/how-is-an-intent-service-declared-in-the-android-manifest // http://developer.android.com/guide/topics/manifest/service-element.html protected override void onCreate(global::android.os.Bundle savedInstanceState) { // http://developer.android.com/guide/topics/ui/notifiers/notifications.html base.onCreate(savedInstanceState); ScrollView sv = new ScrollView(this); LinearLayout ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); #region startservice var startservice = new Button(this); startservice.setText("Start Service to send Notification"); startservice.AtClick( delegate { this.ShowToast("startservice_onclick"); var intent = new Intent(this, typeof(NotifyService).ToClass()); this.startService(intent); } ); ll.addView(startservice); #endregion #region stopservice var stopservice = new Button(this); stopservice.setText("Stop Service"); stopservice.AtClick( delegate { this.ShowToast("stopservice_onclick"); Intent intent = new Intent(); intent.setAction(NotifyService.ACTION); intent.putExtra("RQS", NotifyService.RQS_STOP_SERVICE); this.sendBroadcast(intent); } ); ll.addView(stopservice); #endregion this.setContentView(sv); this.ShowToast("http://jsc-solutions.net"); }
protected override void onCreate(global::android.os.Bundle savedInstanceState) { // why isnt jsc doing automatic ref? var r = default(global::ScriptCoreLib.Android.Windows.Forms.IAssemblyReferenceToken_Forms); ScriptCoreLib.Android.ThreadLocalContextReference.CurrentContext = this; // X:\jsc.svn\examples\java\android\forms\FormsMessageBox\FormsMessageBox\Library\ApplicationControl.cs // cmd /K c:\util\android-sdk-windows\platform-tools\adb.exe logcat // Camera PTP // http://developer.android.com/guide/topics/ui/notifiers/notifications.html base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var b = new android.widget.Button(this); // jsc is doing the wrong thing here //var SDK_INT = android.os.Build.VERSION.SDK_INT; //b.setText("Notify! " + new { SDK_INT, android.os.Build.VERSION.SDK }); b.setText("Notify! " ); int counter = 0; b.AtClick( delegate { counter++; var f = new Form1(); var value = f.ShowDialog(); b.setText("ShowDialog! " + new { value, f.textBox1.Text }); } ); ll.addView(b); this.setContentView(sv); }
static __InitializeAndroidActivity() { Console.WriteLine("StaticInvoke"); // Exception Ljava/lang/RuntimeException; thrown while initializing LTryHideActionbarExperiment/StaticInvoke; try { // https://groups.google.com/forum/?fromgroups=#!topic/android-developers/suLMCWiG0D8 var c = ScriptCoreLib.Android.ThreadLocalContextReference.CurrentContext; (ScriptCoreLib.Android.ThreadLocalContextReference.CurrentContext as Activity).runOnUiThread( a => { // http://stackoverflow.com/questions/4451641/change-android-layout-programatically var sv = new ScrollView(a); var ll = new LinearLayout(a); //ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var b = new Button(a).AttachTo(ll); b.WithText("before AtClick"); b.AtClick( v => { b.setText("AtClick"); } ); var b2 = new Button(a); b2.setText("The other button!"); ll.addView(b2); a.setContentView(sv); } ); } catch (Exception ex) { Console.WriteLine("error: " + new { ex.Message, ex.StackTrace }); } }
protected override void onCreate(global::android.os.Bundle savedInstanceState) { //// http://www.dreamincode.net/forums/topic/130521-android-part-iii-dynamic-layouts/ base.onCreate(savedInstanceState); ScrollView sv = new ScrollView(this); LinearLayout ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var b = new Button(this); b.setText("Vibrate!"); b.AtClick( delegate { var vibrator = (Vibrator)this.getSystemService(Context.VIBRATOR_SERVICE); vibrator.vibrate(600); } ); ll.addView(b); this.setContentView(sv); //this.ShowLongToast("Monese circle progressbar"); //circularSeekbar = new CircularSeekBar(this); //circularSeekbar.setMaxProgress(100); //circularSeekbar.setProgress(100); //setContentView(circularSeekbar); //circularSeekbar.invalidate(); //circularSeekbar.setSeekBarChangeListener(new TestAndroidCircleProgressbar.Activities.CircularSeekBar.MyOnSeekChangeListener()); }
// http://stackoverflow.com/questions/19954156/android-build-separate-apks-for-different-processor-architectures // "X:\jsc.svn\examples\java\android\Test\TestChromeAsAsset\TestChromeAsAsset.sln" // [aapt] W:\bin\AndroidManifest.xml:14: error: Error: No resource found that matches the given name (at 'label' with value '@string/app_name'). protected override void onCreate(global::android.os.Bundle savedInstanceState) { // http://www.dreamincode.net/forums/topic/130521-android-part-iii-dynamic-layouts/ 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( // X:\jsc.svn\examples\c\android\Test\TestNDKAsAsset\TestNDKAsAsset\Program.cs // http://stackoverflow.com/questions/19954156/android-build-separate-apks-for-different-processor-architectures // <package id="TestNDKAsAssetFromSharedLibrary" version="1.0.0.0" targetFramework="net4" userInstalled="true" /> // X:\jsc.svn\examples\java\android\synergy\OVRVrCubeWorldNativeActivity\OVRVrCubeWorldNativeActivity\ApplicationActivity.cs // can we load that native so into a separate process? // switch to native and back? TestNDKAsAsset.xActivity.stringFromJNI() //"Vibrate!" ); b.AtClick( delegate { var vibrator = (Vibrator)this.getSystemService(Context.VIBRATOR_SERVICE); vibrator.vibrate(600); } ); ll.addView(b); this.setContentView(sv); //this.ShowLongToast("http://my.jsc-solutions.net x"); }
// http://stackoverflow.com/questions/6274141/trigger-background-service-at-a-specific-time-in-android // http://stackoverflow.com/questions/7144908/how-is-an-intent-service-declared-in-the-android-manifest // http://developer.android.com/guide/topics/manifest/service-element.html //AtBootCompleted hack1; protected override void onCreate(global::android.os.Bundle savedInstanceState) { // http://developer.android.com/guide/topics/ui/notifiers/notifications.html base.onCreate(savedInstanceState); ScrollView sv = new ScrollView(this); LinearLayout ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var btn = new Button(this); btn.setText("wifi"); ll.addView(btn); { ConnectivityManager connManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo wifiNetInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); NetworkInfo mobileNetInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (wifiNetInfo != null) if (wifiNetInfo.isConnectedOrConnecting()) { btn.setText("we are connected via WiFi"); } if (mobileNetInfo != null) if (mobileNetInfo.isAvailable()) if (mobileNetInfo.isConnected()) { btn.setText(" we are connected via mobile data (GPRS, 3G, etc.)"); } } this.setContentView(sv); this.StartPendingAlarm(typeof(NotifyService), 1000 * 1, 0); }
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); }
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); }
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); }
// BUILD FAILED //x:\util\android-sdk-windows\tools\ant\build.xml:542: Unable to resolve project target 'Google Inc.:Google APIs:21' // https://sites.google.com/a/jsc-solutions.net/backlog/knowledge-base/2015/201505/20150503/udp // http://www.happygeek.in/programmatically-get-device-imei-in-android protected override void onCreate(global::android.os.Bundle savedInstanceState) { // http://developer.android.com/guide/topics/ui/notifiers/notifications.html base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); Button b = new Button(this).WithText("Whats my IMEI?").AtClick( delegate { TelephonyManager telephonyManager = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); string imei = telephonyManager.getDeviceId(); this.setTitle(new { imei }.ToString()); //this.ShowLongToast("IMEI: " + imei); } ); ll.addView(b); 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("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) { 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) }
public android.view.View createTabContent(string value) { ScrollView sv = new ScrollView(c); LinearLayout ll = new LinearLayout(c); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); Button b = new Button(c); b.setText("I don't do anything, but I was added dynamically. :)"); ll.addView(b); return sv; }
public android.view.View createTabContent(string value) { ScrollView sv = new ScrollView(c); LinearLayout ll = new LinearLayout(c); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); Button b = new Button(c); b.setText("Yay. This almost works!"); ll.addView(b); return sv; }
public override void onCreate() { base.onCreate(); Console.WriteLine("enter LocalApplication onCreate, first time?"); // https://stackoverflow.com/questions/7686482/when-does-applications-oncreate-method-is-called-on-android Toast.makeText(this, "LocalApplication", Toast.LENGTH_LONG).show(); // . To open these resources with a raw InputStream, call Resources.openRawResource() with the resource ID, which is R.raw.filename. // However, if you need access to original file names and file hierarchy, you might consider saving some resources in the assets/ directory (instead of res/raw/). Files in assets/ are not given a resource ID, so you can read them only using AssetManager. var listByRoot = default(Action<Activity, LinearLayout, string>); listByRoot = (activity, ll, root) => { try { // http://developer.android.com/reference/android/content/res/AssetManager.html var assets = activity.getResources().getAssets(); var list = assets.list(root); new Button(activity).WithText("assets: " + new { list.Length, root }).AttachTo(ll); foreach (var item in list) { // E/AndroidRuntime(25423): Caused by: java.io.FileNotFoundException: images //E/AndroidRuntime(25423): at android.content.res.AssetManager.openNonAssetFdNative(Native Method) //var a = fd.getFileDescriptor(); var _item = item; new Button(activity).AttachTo(ll).With( i => { var fd = default(AssetFileDescriptor); try { // http://stackoverflow.com/questions/5647253/is-there-a-way-to-open-file-as-file-object-from-androids-assets-folder fd = assets.openFd(item); //fd = assets.openNonAssetFd(item); i.WithText(root + "/" + item + " " + new { Length = fd.getLength() }); } catch { i.WithText("dir: " + item); i.AtClick( delegate { // hop to another activity Intent intent = new Intent(activity, typeof(SecondaryActivity).ToClass()); intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); // share scope intent.putExtra("_item", _item); //intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); activity.startActivity(intent); //E/AndroidRuntime(10688): Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? //E/AndroidRuntime(10688): at android.app.ContextImpl.startActivity(ContextImpl.java:1611) //E/AndroidRuntime(10688): at android.app.ContextImpl.startActivity(ContextImpl.java:1598) //E/AndroidRuntime(10688): at android.content.ContextWrapper.startActivity(ContextWrapper.java:337) //listByRoot(_item); } ); } } ); } } catch { throw; } }; #region ApplicationActivity ApplicationActivity.vCreate = (activity, savedInstanceState) => { var myPid = android.os.Process.myPid(); activity.setTitle("root " + new { myPid }); var sv = new ScrollView(activity); var ll = new LinearLayout(activity); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); activity.setContentView(sv); // how many readonly assets have we added via nugets? // https://sites.google.com/a/jsc-solutions.net/backlog/knowledge-base/2015/201505/20150526 //[javac] W:\src\TestNuGetAssetsConsumer\Activities\ApplicationActivity___c__DisplayClass1.java:32: error: unreported exception IOException; must be caught or declared to be thrown //[javac] stringArray0 = assets.list(""); listByRoot(activity, ll, ""); }; #endregion #region SecondaryActivity SecondaryActivity.vCreate = (activity, savedInstanceState) => { var sv = new ScrollView(activity); var ll = new LinearLayout(activity); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); activity.setContentView(sv); // resume scope var _item = activity.getIntent().getExtras().getString("_item"); // http://stackoverflow.com/questions/19631894/is-there-a-way-to-get-current-process-name-in-android // http://stackoverflow.com/questions/6567768/how-can-an-android-application-have-more-than-one-process var myPid = android.os.Process.myPid(); //Process.GetCurrentProcess().Id; //activity.getPackageManager activity.setTitle(_item + new { myPid }); //b.WithText("! secondary " + new { _item }); //b.AtClick( // v => // { // activity.finish(); // } //); listByRoot(activity, ll, _item); }; #endregion }
// https://sites.google.com/a/jsc-solutions.net/work/knowledge-base/15-dualvr/20151212/androidudpclipboard // https://sites.google.com/a/jsc-solutions.net/work/knowledge-base/15-dualvr/20160101/ovrwindwheelndk // connect s6 via usb . // turn on wifi! // kill adb //"x:\util\android-sdk-windows\platform-tools\adb.exe" tcpip 5555 // restarting in TCP mode port: 5555 //13: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 // inet 192.168.1.126/24 brd 192.168.1.255 scope global wlan0 // valid_lft forever preferred_lft forever // on red // "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/201511/20151121 // http://stackoverflow.com/questions/17513502/support-for-multi-window-app-development protected override void onCreate(global::android.os.Bundle savedInstanceState) { // http://www.dreamincode.net/forums/topic/130521-android-part-iii-dynamic-layouts/ 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("Vibrate!"); var sw = Stopwatch.StartNew(); Action cleanup = delegate { }; Notification reuse = null; var notificationIntent = new Intent(this, typeof(ApplicationActivity).ToClass()); var contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); Action<string> SetClipboard = value => { Console.WriteLine("SetClipboard " + new { value }); this.runOnUiThread( delegate { cleanup(); b.setText(value); if (reuse != null) { reuse.setLatestEventInfo( this, contentTitle: value, contentText: "", contentIntent: contentIntent); return; } var xNotificationManager = (NotificationManager)this.getSystemService(Activity.NOTIFICATION_SERVICE); // see http://developer.android.com/reference/android/app/Notification.html var xNotification = new Notification( //android.R.drawable.ic_dialog_alert, android.R.drawable.ic_menu_view, //tickerText: "not used?", tickerText: value, when: 0 //java.lang.System.currentTimeMillis() ); //notification.defaults |= Notification.DEFAULT_SOUND; // flags = Notification.FLAG_ONGOING_EVENT var FLAG_ONGOING_EVENT = 0x00000002; //notification.flags |= Notification.FLAG_ONGOING_EVENT; //xNotification.flags |= FLAG_ONGOING_EVENT; xNotification.setLatestEventInfo( this, contentTitle: value, contentText: "", contentIntent: contentIntent); //notification.defaults |= Notification.DEFAULT_VIBRATE; //notification.defaults |= Notification.DEFAULT_LIGHTS; // http://androiddrawableexplorer.appspot.com/ var id = (int)sw.ElapsedMilliseconds; xNotificationManager.notify(id, xNotification); var xVibrator = (Vibrator)this.getSystemService(Context.VIBRATOR_SERVICE); xVibrator.vibrate(600); #region setPrimaryClip android.content.ClipboardManager clipboard = (android.content.ClipboardManager)getSystemService(CLIPBOARD_SERVICE); ClipData clip = ClipData.newPlainText("label", value); clipboard.setPrimaryClip(clip); #endregion reuse = xNotification; cleanup += delegate { // https://developer.android.com/reference/android/app/Notification.html if (xNotification == null) return; xNotificationManager.cancel(id); }; } ); }; b.AtClick( delegate { SetClipboard("hello"); } ); // Z:\jsc.svn\examples\c\android\Test\TestNDKUDP\TestNDKUDP\xNativeActivity.cs #region lets listen to incoming udp // could we define our chrome app inline in here? // or in a chrome app. could we define the android app inline? #region ReceiveAsync Action<IPAddress> f = async nic => { b.setText("awaiting at " + nic); WifiManager wifi = (WifiManager)this.getSystemService(Context.WIFI_SERVICE); var lo = wifi.createMulticastLock("udp:49814"); lo.acquire(); // Z:\jsc.svn\examples\java\android\AndroidUDPClipboard\ApplicationActivity.cs // X:\jsc.svn\examples\java\android\forms\FormsUDPJoinGroup\FormsUDPJoinGroup\ApplicationControl.cs // X:\jsc.svn\examples\java\android\LANBroadcastListener\LANBroadcastListener\ApplicationActivity.cs var uu = new UdpClient(49814); uu.JoinMulticastGroup(IPAddress.Parse("239.1.2.3"), nic); while (true) { // cannot get data from RED? var x = await uu.ReceiveAsync(); // did we jump to ui thread? //Console.WriteLine("ReceiveAsync done " + Encoding.UTF8.GetString(x.Buffer)); var data = Encoding.UTF8.GetString(x.Buffer); // https://sites.google.com/a/jsc-solutions.net/work/knowledge-base/15-dualvr/20150704 // https://sites.google.com/a/jsc-solutions.net/work/knowledge-base/15-dualvr/20150704/mousedown SetClipboard(data); } }; // WithEach defined at? NetworkInterface.GetAllNetworkInterfaces().WithEach( n => { // X:\jsc.svn\examples\java\android\forms\FormsUDPJoinGroup\FormsUDPJoinGroup\ApplicationControl.cs // X:\jsc.svn\core\ScriptCoreLibJava\BCLImplementation\System\Net\NetworkInformation\NetworkInterface.cs var IPProperties = n.GetIPProperties(); var PhysicalAddress = n.GetPhysicalAddress(); foreach (var ip in IPProperties.UnicastAddresses) { // ipv4 if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { if (!IPAddress.IsLoopback(ip.Address)) if (n.SupportsMulticast) f(ip.Address); } } } ); #endregion #endregion // jsc could pass this ptr to ctor for context.. var t = new EditText(this) { }; t.AttachTo(ll); ll.addView(b); this.setContentView(sv); //this.ShowLongToast("http://my.jsc-solutions.net x"); }
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); }
// "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"); } ); }