kopia lustrzana https://github.com/sh123/codec2_talkie
Improve upsert
rodzic
e0fd23d401
commit
20aab8d253
|
@ -127,8 +127,8 @@ public class Ax25 implements Protocol {
|
|||
if (ax25Data.isAudio) {
|
||||
_parentProtocolCallback.onReceiveCompressedAudio(ax25Data.src, ax25Data.dst, ax25Data.codec2Mode, ax25Data.rawData);
|
||||
} else {
|
||||
_parentProtocolCallback.onReceiveLog(ax25Data.toString());
|
||||
_parentProtocolCallback.onReceiveData(ax25Data.src, ax25Data.dst, ax25Data.digipath, ax25Data.rawData);
|
||||
_parentProtocolCallback.onReceiveLog(ax25Data.toString());
|
||||
if (_isDigiRepeaterEnabled) digiRepeat(ax25Data);
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -14,10 +14,10 @@ import java.util.List;
|
|||
@Dao
|
||||
public interface PositionItemDao {
|
||||
|
||||
@Insert(onConflict = OnConflictStrategy.IGNORE)
|
||||
@Insert
|
||||
void insertPositionItem(PositionItem logItem);
|
||||
|
||||
@Update(onConflict = OnConflictStrategy.IGNORE)
|
||||
@Update
|
||||
void updatePositionItem(PositionItem logItem);
|
||||
|
||||
@Query("SELECT * FROM PositionItem WHERE srcCallsign = :srcCallsign ORDER BY timestampEpoch DESC LIMIT 1")
|
||||
|
|
|
@ -12,10 +12,10 @@ import java.util.List;
|
|||
@Dao
|
||||
public interface StationItemDao {
|
||||
|
||||
@Insert(onConflict = OnConflictStrategy.IGNORE)
|
||||
@Insert
|
||||
void insertStationItem(StationItem stationItem);
|
||||
|
||||
@Update(onConflict = OnConflictStrategy.IGNORE)
|
||||
@Update
|
||||
void updateStationItem(StationItem stationItem);
|
||||
|
||||
@Query("SELECT * FROM StationItem WHERE srcCallsign = :srcCallsign")
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.radio.codec2talkie.storage.station;
|
||||
|
||||
import android.app.Application;
|
||||
import android.database.sqlite.SQLiteConstraintException;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.lifecycle.LiveData;
|
||||
|
@ -27,12 +28,17 @@ public class StationItemRepository {
|
|||
AppDatabase.getDatabaseExecutor().execute(() -> {
|
||||
StationItem oldStationItem = _stationItemDao.getStationItem(stationItem.getSrcCallsign());
|
||||
if (oldStationItem == null) {
|
||||
_stationItemDao.insertStationItem(stationItem);
|
||||
Log.i(TAG, "INSERT " + stationItem.getSrcCallsign());
|
||||
} else {
|
||||
try {
|
||||
_stationItemDao.insertStationItem(stationItem);
|
||||
Log.i(TAG, "INSERT " + stationItem.getSrcCallsign() + " '" + stationItem.getMaidenHead() + "'");
|
||||
} catch (SQLiteConstraintException ex) {
|
||||
oldStationItem = _stationItemDao.getStationItem(stationItem.getSrcCallsign());
|
||||
}
|
||||
}
|
||||
if (oldStationItem != null) {
|
||||
oldStationItem.updateFrom(stationItem);
|
||||
_stationItemDao.updateStationItem(oldStationItem);
|
||||
Log.i(TAG, "UPDATE " + oldStationItem.getSrcCallsign());
|
||||
Log.i(TAG, "UPDATE " + oldStationItem.getSrcCallsign() + " '" + oldStationItem.getMaidenHead() + "'");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue