master
sh123 2022-09-02 21:03:16 +03:00
rodzic 30cda1b159
commit 90ddf20a7e
5 zmienionych plików z 15 dodań i 22 usunięć

Wyświetl plik

@ -9,14 +9,12 @@ import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
@ -37,14 +35,10 @@ import org.osmdroid.config.Configuration;
import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;
import org.osmdroid.views.overlay.ItemizedIconOverlay;
import org.osmdroid.views.overlay.ItemizedOverlayWithFocus;
import org.osmdroid.views.overlay.Marker;
import org.osmdroid.views.overlay.OverlayItem;
import org.osmdroid.views.overlay.Polygon;
import org.osmdroid.views.overlay.compass.CompassOverlay;
import org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider;
import org.osmdroid.views.overlay.infowindow.InfoWindow;
import org.osmdroid.views.overlay.mylocation.GpsMyLocationProvider;
import org.osmdroid.views.overlay.mylocation.MyLocationNewOverlay;
@ -124,14 +118,14 @@ public class MapActivity extends AppCompatActivity {
// add data listener
_logItemViewModel = new ViewModelProvider(this).get(LogItemViewModel.class);
_logItemViewModel.getGroups().observe(this, logItemGroups -> {
for (LogItemGroup group : logItemGroups) {
_logItemViewModel.getLastPositions().observe(this, lastPositions -> {
for (LogItemGroup lastPosition : lastPositions) {
// do not add items without coordinate
if (group.getMaidenHead() == null) continue;
if (addIcon(group)) {
addRangeCircle(group);
if (lastPosition.getMaidenHead() == null) continue;
if (addStationPositionIcon(lastPosition)) {
addRangeCircle(lastPosition);
} else {
Log.e(TAG, "Failed to add APRS icon for " + group.getSrcCallsign() + ", " + group.getSymbolCode());
Log.e(TAG, "Failed to add APRS icon for " + lastPosition.getSrcCallsign() + ", " + lastPosition.getSymbolCode());
}
}
});
@ -176,7 +170,7 @@ public class MapActivity extends AppCompatActivity {
polygon.setPoints(circlePoints);
}
private boolean addIcon(LogItemGroup group) {
private boolean addStationPositionIcon(LogItemGroup group) {
String callsign = group.getSrcCallsign();
Marker marker = null;

Wyświetl plik

@ -3,7 +3,6 @@ package com.radio.codec2talkie.storage.log;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
@ -83,7 +82,7 @@ public class LogItemActivity extends AppCompatActivity {
logItemGroupRecyclerView.setLayoutManager(linearLayoutManagerGroup);
logItemGroupRecyclerView.addItemDecoration(new DividerItemDecoration(logItemGroupRecyclerView.getContext(), DividerItemDecoration.VERTICAL));
_logItemViewModel.getGroups().observe(this, adapterGroup::submitList);
_logItemViewModel.getLastPositions().observe(this, adapterGroup::submitList);
// launch with filter if group name is provided
if (_groupName == null) {

Wyświetl plik

@ -58,7 +58,7 @@ public interface LogItemDao {
"LEFT OUTER JOIN LogItem log ON (log.srcCallsign = pos.srcCallsign) " +
"GROUP BY pos.srcCallsign " +
"ORDER BY srcCallsign ASC")
LiveData<List<LogItemGroup>> getGroups();
LiveData<List<LogItemGroup>> getLastPositions();
@Query("SELECT * FROM LogItem ORDER by timestampEpoch ASC")
LiveData<List<LogItem>> getAllLogItems();

Wyświetl plik

@ -15,20 +15,20 @@ public class LogItemRepository {
private final LogItemDao _logItemDao;
private final LiveData<List<LogItem>> _logItemLiveData;
private LiveData<List<LogItem>> _logItemGroupLiveData;
private final LiveData<List<LogItemGroup>> _logItemGroups;
private final LiveData<List<LogItemGroup>> _lastPositions;
public LogItemRepository(Application application) {
AppDatabase appDatabase = AppDatabase.getDatabase(application);
_logItemDao = appDatabase.logItemDao();
_logItemLiveData = _logItemDao.getAllLogItems();
_logItemGroups = _logItemDao.getGroups();
_lastPositions = _logItemDao.getLastPositions();
}
public LiveData<List<LogItem>> getAllLogItems() {
return _logItemLiveData;
}
public LiveData<List<LogItemGroup>> getGroups() { return _logItemGroups; }
public LiveData<List<LogItemGroup>> getLastPositions() { return _lastPositions; }
public LiveData<List<LogItem>> getLogItems(String groupName) {
return _logItemDao.getLogItems(groupName);

Wyświetl plik

@ -15,13 +15,13 @@ public class LogItemViewModel extends AndroidViewModel {
private final LogItemRepository _logItemRepository;
private final LiveData<List<LogItem>> _logItemLiveData;
private LiveData<List<LogItem>> _logItemGroupLiveData;
private final LiveData<List<LogItemGroup>> _logItemGroups;
private final LiveData<List<LogItemGroup>> _lastPositions;
public LogItemViewModel(@NonNull Application application) {
super(application);
_logItemRepository = new LogItemRepository(application);
_logItemLiveData = _logItemRepository.getAllLogItems();
_logItemGroups = _logItemRepository.getGroups();
_lastPositions = _logItemRepository.getLastPositions();
}
public LiveData<List<LogItem>> getAllData() {
@ -32,7 +32,7 @@ public class LogItemViewModel extends AndroidViewModel {
return _logItemRepository.getLogItems(groupName);
}
public LiveData<List<LogItemGroup>> getGroups() { return _logItemGroups; }
public LiveData<List<LogItemGroup>> getLastPositions() { return _lastPositions; }
public void deleteAllLogItems() { _logItemRepository.deleteAllLogItems(); }