kopia lustrzana https://github.com/sh123/codec2_talkie
APRS raw log viewer
rodzic
077a94ecee
commit
2d3095e3ca
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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>
|
|
@ -228,7 +228,7 @@
|
|||
<string name="menu_stop_tracking">Stop tracking</string>
|
||||
<string name="menu_send_position">Send position</string>
|
||||
<string name="voax25_label">☎</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™ 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>
|
|
@ -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>
|
Ładowanie…
Reference in New Issue