kopia lustrzana https://github.com/sh123/codec2_talkie
Update holder
rodzic
0d28adf865
commit
1d80b2f371
|
@ -1,6 +1,7 @@
|
|||
package com.radio.codec2talkie.storage.log;
|
||||
|
||||
import androidx.room.Entity;
|
||||
import androidx.room.Index;
|
||||
import androidx.room.PrimaryKey;
|
||||
|
||||
@Entity
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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; }
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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; }
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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" />
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue