APRS raw log viewer

pull/34/head
sh123 2022-07-06 12:25:18 +03:00
rodzic 077a94ecee
commit 2d3095e3ca
6 zmienionych plików z 34 dodań i 5 usunięć

Wyświetl plik

@ -1,5 +1,6 @@
package com.radio.codec2talkie.app;
import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;
import android.media.AudioAttributes;
@ -21,6 +22,7 @@ import java.util.TimerTask;
import com.radio.codec2talkie.R;
import com.radio.codec2talkie.log.LogItem;
import com.radio.codec2talkie.log.LogItemDatabase;
import com.radio.codec2talkie.log.LogItemRepository;
import com.radio.codec2talkie.protocol.ProtocolCallback;
import com.radio.codec2talkie.protocol.Protocol;
import com.radio.codec2talkie.protocol.ProtocolFactory;
@ -66,6 +68,9 @@ public class AppWorker extends Thread {
// listen timer
private Timer _listenTimer;
// log integration
private final LogItemRepository _logItemRepository;
private final Context _context;
private final SharedPreferences _sharedPreferences;
@ -85,6 +90,8 @@ public class AppWorker extends Thread {
_processPeriodicTimer = new Timer();
_recordAudioBuffer = new short[_protocol.getPcmAudioBufferSize()];
_logItemRepository = new LogItemRepository((Application)context);
constructSystemAudioDevices();
}
@ -280,7 +287,7 @@ public class AppWorker extends Thread {
};
void storeLogData(String logData, boolean isTransmit) {
// TODO, pass through aprs data
// TODO, parse through aprs data
String[] callsignData = logData.split(">");
if (callsignData.length >= 2) {
LogItem logItem = new LogItem();
@ -289,7 +296,8 @@ public class AppWorker extends Thread {
logItem.setLogLine(logData);
logItem.setIsTransmit(isTransmit);
Log.i(TAG, "Insert:" + logItem);
LogItemDatabase.getDatabase(_context).logItemDao().insertLogItem(logItem);
_logItemRepository.insertLogItem(logItem);
//LogItemDatabase.getDatabase(_context).logItemDao().insertLogItem(logItem);
}
}

Wyświetl plik

@ -4,6 +4,7 @@ import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.ListFragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@ -17,9 +18,14 @@ public class LogItemActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_log_view);
setTitle(R.string.aprs_log_view_title);
RecyclerView recyclerView = findViewById(R.id.log_item_recyclerview);
final LogItemAdapter adapter = new LogItemAdapter(new LogItemAdapter.LogItemDiff());
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
_logItemViewModel = new ViewModelProvider(this).get(LogItemViewModel.class);
_logItemViewModel.getAllData().observe(this, adapter::submitList);
}
}

Wyświetl plik

@ -10,6 +10,7 @@
android:id="@+id/log_item_recyclerview"
android:layout_width="0dp"
android:layout_height="0dp"
android:padding="5dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"

Wyświetl plik

@ -3,12 +3,15 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_log_view_item"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/log_view_item"
android:layout_width="match_parent"
style="@style/log_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

Wyświetl plik

@ -228,7 +228,7 @@
<string name="menu_stop_tracking">Stop tracking</string>
<string name="menu_send_position">Send position</string>
<string name="voax25_label">&#9742;</string>
<string name="menu_aprs_log">View log</string>
<string name="menu_aprs_log">View raw log</string>
<string name="aprs_location_emic_digipath_title">Mic-E digipath</string>
<string name="aprs_location_source_smart_title">Smartbeaconing&#8482; position</string>
<string name="aprs_location_source_smart_fast_speed_summary">Minimum speed for fast position updates</string>
@ -248,5 +248,6 @@
<string name="app_service_notif_title">Radio is running, touch to open</string>
<string name="app_service_notif_text_ptt_ready">Receiving and ready for PTT</string>
<string name="app_service_notif_text_tracking">APRS tracking is active</string>
<string name="aprs_log_view_title">APRS raw log</string>
</resources>

Wyświetl plik

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="log_item_title">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_marginBottom">8dp</item>
<item name="android:paddingLeft">8dp</item>
<item name="android:background">@android:color/white</item>
<item name="android:textAppearance">@android:style/TextAppearance.DeviceDefault.Medium</item>
</style>
</resources>