1+ package com .libremidi .example ;
2+
3+ import androidx .appcompat .app .AppCompatActivity ;
4+ import android .os .Bundle ;
5+ import android .widget .TextView ;
6+ import android .widget .Button ;
7+ import android .widget .ScrollView ;
8+ import android .view .ViewGroup .LayoutParams ;
9+ import android .widget .LinearLayout ;
10+ import android .graphics .Typeface ;
11+ import android .util .TypedValue ;
12+
13+ public class MainActivity extends AppCompatActivity {
14+
15+ static {
16+ System .loadLibrary ("libremidi-example" );
17+ }
18+
19+ private TextView deviceListTextView ;
20+
21+ @ Override
22+ protected void onCreate (Bundle savedInstanceState ) {
23+ super .onCreate (savedInstanceState );
24+
25+ LinearLayout layout = new LinearLayout (this );
26+ layout .setOrientation (LinearLayout .VERTICAL );
27+ layout .setPadding (16 , 16 , 16 , 16 );
28+
29+ TextView titleView = new TextView (this );
30+ titleView .setText ("LibreMIDI Android Example" );
31+ titleView .setTextSize (TypedValue .COMPLEX_UNIT_SP , 24 );
32+ titleView .setTypeface (null , Typeface .BOLD );
33+ titleView .setPadding (0 , 0 , 0 , 16 );
34+ layout .addView (titleView );
35+
36+ TextView versionView = new TextView (this );
37+ versionView .setText (getLibremidiVersion ());
38+ versionView .setPadding (0 , 0 , 0 , 16 );
39+ layout .addView (versionView );
40+
41+ Button refreshButton = new Button (this );
42+ refreshButton .setText ("Refresh MIDI Devices" );
43+ refreshButton .setOnClickListener (v -> refreshDevices ());
44+ layout .addView (refreshButton );
45+
46+ ScrollView scrollView = new ScrollView (this );
47+ deviceListTextView = new TextView (this );
48+ deviceListTextView .setTypeface (Typeface .MONOSPACE );
49+ deviceListTextView .setPadding (0 , 16 , 0 , 0 );
50+ scrollView .addView (deviceListTextView );
51+
52+ LinearLayout .LayoutParams scrollParams = new LinearLayout .LayoutParams (
53+ LayoutParams .MATCH_PARENT ,
54+ LayoutParams .MATCH_PARENT
55+ );
56+ scrollParams .weight = 1 ;
57+ layout .addView (scrollView , scrollParams );
58+
59+ setContentView (layout );
60+
61+ refreshDevices ();
62+ }
63+
64+ private void refreshDevices () {
65+ String devices = getMidiDevices ();
66+ deviceListTextView .setText (devices );
67+ }
68+
69+ public native String getMidiDevices ();
70+ public native String getLibremidiVersion ();
71+ }
0 commit comments