Files
AndroidIDE/app/src/main/java/com/itsaky/androidide/receivers/LogReceiver.java
T
2021-10-27 18:55:43 +05:30

54 lines
1.4 KiB
Java

package com.itsaky.androidide.receivers;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.itsaky.androidide.models.LogLine;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class LogReceiver extends BroadcastReceiver {
private LogListener listener;
public static final String APPEND_LOG = "com.itsaky.androidide.logs.APPEND_LOG";
public static final String EXTRA_LINE = "log_line";
public LogReceiver setLogListener(LogListener listener) {
this.listener = listener;
return this;
}
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(APPEND_LOG) && intent.hasExtra(EXTRA_LINE)) {
String line = intent.getStringExtra(EXTRA_LINE);
if(line == null) return;
try {
sendLogLine(line);
} catch (Throwable th) {}
}
}
private void sendLogLine(String line) {
final String[] split = line.split("\\s", 7);
final LogLine log = new LogLine(
split[0], // date
split[1], // time
split[2], // process id
split[3], // thread id
split[4], // priority
split[5], // tag
split[6] // message
);
if(listener != null) {
listener.appendLogLine(log);
}
}
public static interface LogListener {
public void appendLogLine(LogLine line);
}
}