linphone-android/liblinphone_tester/src/org/linphone/tester/LogsActivity.java
2013-12-02 17:09:00 +01:00

91 lines
2.4 KiB
Java

package org.linphone.tester;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class LogsActivity extends Activity {
private String mLogs = "";
private LogsThread mLogsThread;
private class LogsThread extends Thread {
LogsActivity mLogsActivity;
String mArgs[];
TesterLogger tester;
public LogsThread(LogsActivity logsActivity, String[] args) {
mLogsActivity = logsActivity;
mArgs = args;
}
@Override
public void run() {
String path = mLogsActivity.getFilesDir().getAbsolutePath()+"/config_files";
tester = new TesterLogger(mLogsActivity);
List<String> list = new LinkedList<String>(Arrays.asList(new String[]{"tester", "--verbose", "--config", path}));
list.addAll(Arrays.asList(mArgs));
String[] array = list.toArray(new String[list.size()]);
tester.run(array);
mLogsActivity.runOnUiThread(new Runnable() {
public void run() {
mLogsActivity.done();
}
});
}
}
private static String join(String [] array, String separator) {
String ret = "";
for(int i = 0; i < array.length; ++i) {
if(i != 0) {
ret += separator;
}
ret += array[i];
}
return ret;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_logs);
((TextView)findViewById(R.id.textView1)).setText(mLogs);
Bundle extras = getIntent().getExtras();
if (extras != null) {
String[] values = extras.getStringArray("args");
if(values != null) {
if(mLogsThread == null || !mLogsThread.isAlive()) {
this.setTitle("Test Logs (" + join(values, " ") + ")");
mLogs = "";
((TextView)findViewById(R.id.textView1)).setText(mLogs);
mLogsThread = new LogsThread(this, values);
mLogsThread.start();
}
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_logs, menu);
return true;
}
public void addLog(int level, String message) {
mLogs += message;
((TextView)findViewById(R.id.textView1)).append(message);
}
@Override
public void onBackPressed() {
if(mLogsThread == null || !mLogsThread.isAlive()) {
finish();
}
}
public void done() {
}
}