79 lines
2.8 KiB
Java
79 lines
2.8 KiB
Java
package de.mrbesen.runbin;
|
|
|
|
import android.content.BroadcastReceiver;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.IntentFilter;
|
|
import android.support.v4.content.LocalBroadcastManager;
|
|
import android.support.v7.app.AppCompatActivity;
|
|
import android.os.Bundle;
|
|
import android.text.Html;
|
|
import android.util.Log;
|
|
import android.view.View;
|
|
import android.widget.EditText;
|
|
import android.widget.RelativeLayout;
|
|
import android.widget.ScrollView;
|
|
import android.widget.TextView;
|
|
|
|
public class MainActivity extends AppCompatActivity {
|
|
|
|
private TextView logView;
|
|
private ScrollView logLayout;
|
|
|
|
// Used to load the 'native-lib' library on application startup.
|
|
/*static {
|
|
System.loadLibrary("native-lib");
|
|
}*/
|
|
|
|
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_main);
|
|
|
|
logView = (TextView) findViewById(R.id.logView);
|
|
logLayout = (ScrollView) findViewById(R.id.logScrollView);
|
|
}
|
|
|
|
public void run(View v) {
|
|
logView.setText("");
|
|
Intent serviceIntent = new Intent(this, RunService.class);
|
|
serviceIntent.putExtra("binary", ((EditText) findViewById(R.id.binname)).getText().toString());
|
|
serviceIntent.putExtra("param", ((EditText) findViewById(R.id.param)).getText().toString());
|
|
serviceIntent.putExtra("path", ((EditText) findViewById(R.id.binpath)).getText().toString());
|
|
BroadcastReceiver callback = new BroadcastReceiver() {
|
|
@Override
|
|
public void onReceive(Context context, Intent intent) {
|
|
LocalBroadcastManager.getInstance(context).unregisterReceiver(this);
|
|
//process terminated
|
|
}
|
|
};
|
|
LocalBroadcastManager.getInstance(this).registerReceiver(callback, new IntentFilter("callback"));
|
|
LocalBroadcastManager.getInstance(this).registerReceiver(addLog, new IntentFilter("addLog"));
|
|
startService(serviceIntent);
|
|
}
|
|
|
|
private BroadcastReceiver addLog = new BroadcastReceiver() {
|
|
@Override
|
|
public void onReceive(Context context, Intent intent) {
|
|
String message = intent.getStringExtra("message");
|
|
final ScrollView scrollView = (ScrollView) logView.getParent();
|
|
final int scrollY = scrollView.getScrollY();
|
|
logView.append(Html.fromHtml(message));
|
|
scrollView.post(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
scrollView.fullScroll(ScrollView.FOCUS_DOWN);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
/**
|
|
* A native method that is implemented by the 'native-lib' native library,
|
|
* which is packaged with this application.
|
|
*/
|
|
/*public native String stringFromJNI();*/
|
|
}
|