legacy
sh123 2022-07-24 12:18:09 +03:00
rodzic 0d28adf865
commit 1d80b2f371
7 zmienionych plików z 99 dodań i 8 usunięć

Wyświetl plik

@ -1,6 +1,7 @@
package com.radio.codec2talkie.storage.log;
import androidx.room.Entity;
import androidx.room.Index;
import androidx.room.PrimaryKey;
@Entity

Wyświetl plik

@ -16,7 +16,23 @@ public interface LogItemDao {
@Insert(onConflict = OnConflictStrategy.IGNORE)
void insertLogItem(LogItem logItem);
@Query("SELECT srcCallsign FROM LogItem GROUP BY srcCallsign")
@Query("SELECT pos.timestampEpoch AS timestampEpoch, " +
"pos.srcCallsign AS srcCallsign, " +
"pos.dstCallsign AS dstCallsign, " +
"pos.latitude AS latitude, " +
"pos.longitude AS longitude, " +
"pos.maidenHead AS maidenHead, " +
"pos.altitudeMeters AS altitudeMeters, " +
"pos.bearingDegrees AS bearingDegrees, " +
"pos.speedMetersPerSecond AS speedMetersPerSecond, " +
"pos.status AS status, " +
"pos.comment AS comment, " +
"pos.symbolCode AS symbolCode, " +
"pos.privacyLevel AS privacyLevel, " +
"MAX(pos.timestampEpoch)" +
"FROM LogItem log " +
"LEFT OUTER JOIN PositionItem pos ON (log.srcCallsign = pos.srcCallsign)" +
"GROUP BY log.srcCallsign")
LiveData<List<LogItemGroup>> getGroups();
@Query("SELECT * FROM LogItem ORDER by timestampEpoch DESC")

Wyświetl plik

@ -1,13 +1,69 @@
package com.radio.codec2talkie.storage.log.group;
public class LogItemGroup {
private long timestampEpoch;
private String srcCallsign;
public String dstCallsign;
private String maidenHead;
public double latitude;
public double longitude;
public double altitudeMeters;
public double bearingDegrees;
public double speedMetersPerSecond;
public String status;
public String comment;
public String symbolCode;
public int privacyLevel;
public LogItemGroup(String srcCallsign) {
this.srcCallsign = srcCallsign;
}
public long getTimestampEpoch() { return timestampEpoch; }
public String getSrcCallsign() { return srcCallsign; }
public String getDstCallsign() { return dstCallsign; }
public double getLatitude() { return latitude; }
public double getLongitude() { return longitude; }
public String getMaidenHead() { return maidenHead; }
public double getAltitudeMeters() { return altitudeMeters; }
public double getBearingDegrees() { return bearingDegrees; }
public double getSpeedMetersPerSecond() { return speedMetersPerSecond; };
public String getStatus() { return status; }
public String getComment() { return comment; };
public String getSymbolCode() { return symbolCode; }
public int getPrivacyLevel() { return privacyLevel; }
public void setTimestampEpoch(long timestampEpoch) { this.timestampEpoch = timestampEpoch; }
public void setSrcCallsign(String srcCallsign) { this.srcCallsign = srcCallsign; }
public void setMaidenHead(String maidenHead) { this.maidenHead = maidenHead; }
public void setDstCallsign(String dstCallsign) { this.dstCallsign = dstCallsign; }
public void setLatitude(double latitude) { this.latitude = latitude; }
public void setLongitude(double longitude) { this.longitude = longitude; }
public void setAltitudeMeters(double altitudeMeters) { this.altitudeMeters = altitudeMeters; }
public void setBearingDegrees(double bearingDegrees) { this.bearingDegrees = bearingDegrees; }
public void setSpeedMetersPerSecond(double speedMetersPerSecond) { this.speedMetersPerSecond = speedMetersPerSecond; }
public void setStatus(String status) { this.status = status; }
public void setComment(String comment) { this.comment = comment; }
public void setSymbolCode(String symbolCode) { this.symbolCode = symbolCode; }
public void setPrivacyLevel(int privacyLevel) { this.privacyLevel = privacyLevel; }
}

Wyświetl plik

@ -8,6 +8,9 @@ import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.radio.codec2talkie.R;
import com.radio.codec2talkie.tools.UnitTools;
import java.util.Locale;
public class LogItemGroupHolder extends RecyclerView.ViewHolder {
@ -20,8 +23,19 @@ public class LogItemGroupHolder extends RecyclerView.ViewHolder {
_logItemViewMessage = itemView.findViewById(R.id.log_view_group_item_message);
}
public void bind(LogItemGroup groupName) {
_logItemViewTitle.setText(groupName.getSrcCallsign());
public void bind(LogItemGroup group) {
_logItemViewTitle.setText(String.format(Locale.US, "%s",
group.getSrcCallsign()));
_logItemViewMessage.setText(String.format(Locale.US, "%s %s %.4f %.4f %d° %dkm/h %dm %s %s",
group.getSymbolCode(),
group.getMaidenHead(),
group.getLatitude(),
group.getLongitude(),
(int)group.getBearingDegrees(),
UnitTools.metersPerSecondToKilometersPerHour((int)group.getSpeedMetersPerSecond()),
(int)group.getAltitudeMeters(),
group.getStatus(),
group.getComment()));
}
static LogItemGroupHolder create(ViewGroup parent) {

Wyświetl plik

@ -69,7 +69,7 @@ public class PositionItem {
public void setIsTransmit(boolean isTransmit) { this.isTransmit = isTransmit; }
public void setSrcCallsign(String srcCallsign) { this.srcCallsign = srcCallsign; }
public void setSrcCallsign(String srcCallsign) { this.srcCallsign = srcCallsign; }
public void setDstCallsign(String dstCallsign) { this.dstCallsign = dstCallsign; }

Wyświetl plik

@ -77,4 +77,8 @@ public class UnitTools {
}
public static long millisToSeconds(long milliseconds) { return milliseconds / 1000L; }
public static int metersPerSecondToKilometersPerHour(int speedMetersPerSecond) {
return (int) (speedMetersPerSecond * 3.6);
}
}

Wyświetl plik

@ -20,7 +20,7 @@
style="@style/log_item_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lines="1"
android:lines="2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/log_view_group_item_title" />