From 60bab818f03696d43d57a2353cc051ac7d339b31 Mon Sep 17 00:00:00 2001 From: sh123 Date: Sat, 3 Sep 2022 12:01:45 +0300 Subject: [PATCH] Refactor log item group to station --- .../radio/codec2talkie/maps/MapActivity.java | 18 ++++++++---------- .../storage/log/LogItemActivity.java | 4 ++-- .../codec2talkie/storage/log/LogItemDao.java | 6 +++--- .../storage/log/LogItemRepository.java | 9 ++++----- .../storage/log/LogItemViewModel.java | 8 ++++---- .../group/{LogItemGroup.java => Station.java} | 2 +- ...emGroupAdapter.java => StationAdapter.java} | 18 +++++++++--------- ...ItemGroupHolder.java => StationHolder.java} | 10 +++++----- 8 files changed, 36 insertions(+), 39 deletions(-) rename codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/{LogItemGroup.java => Station.java} (99%) rename codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/{LogItemGroupAdapter.java => StationAdapter.java} (56%) rename codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/{LogItemGroupHolder.java => StationHolder.java} (92%) diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/maps/MapActivity.java b/codec2talkie/src/main/java/com/radio/codec2talkie/maps/MapActivity.java index 2cf4b00..9e5d1d3 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/maps/MapActivity.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/maps/MapActivity.java @@ -16,11 +16,9 @@ import android.util.DisplayMetrics; import android.util.Log; import android.view.Menu; import android.view.MenuItem; -import android.view.MotionEvent; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; -import androidx.constraintlayout.widget.ConstraintSet; import androidx.lifecycle.LiveData; import androidx.lifecycle.ViewModelProvider; import androidx.preference.PreferenceManager; @@ -30,7 +28,7 @@ import com.radio.codec2talkie.protocol.aprs.tools.AprsSymbolTable; import com.radio.codec2talkie.protocol.position.Position; import com.radio.codec2talkie.settings.PreferenceKeys; import com.radio.codec2talkie.storage.log.LogItemViewModel; -import com.radio.codec2talkie.storage.log.group.LogItemGroup; +import com.radio.codec2talkie.storage.log.group.Station; import com.radio.codec2talkie.tools.DateTools; import com.radio.codec2talkie.tools.UnitTools; @@ -69,7 +67,7 @@ public class MapActivity extends AppCompatActivity { private boolean _rotateMap = false; private boolean _showCircles = false; - private LiveData> _stationTrack; + private LiveData> _stationTrack; List _stationTrackPoints = new ArrayList<>(); Polyline _stationTrackLine = new Polyline(); //see note below! @@ -129,7 +127,7 @@ public class MapActivity extends AppCompatActivity { // add data listener _logItemViewModel = new ViewModelProvider(this).get(LogItemViewModel.class); _logItemViewModel.getLastPositions().observe(this, lastPositions -> { - for (LogItemGroup lastPosition : lastPositions) { + for (Station lastPosition : lastPositions) { Log.i(TAG, "new position " + lastPosition.getLatitude() + " " + lastPosition.getLongitude()); // do not add items without coordinate if (lastPosition.getMaidenHead() == null) continue; @@ -162,7 +160,7 @@ public class MapActivity extends AppCompatActivity { } } - private void addRangeCircle(LogItemGroup group) { + private void addRangeCircle(Station group) { if (group.getRangeMiles() == 0) return; String callsign = group.getSrcCallsign(); Polygon polygon = null; @@ -189,15 +187,15 @@ public class MapActivity extends AppCompatActivity { polygon.setPoints(circlePoints); } - private void addTrack(List positions) { - for (LogItemGroup trackPoint : positions) { + private void addTrack(List positions) { + for (Station trackPoint : positions) { Log.i(TAG, "addPoint " + trackPoint.getLatitude() + " " + trackPoint.getLongitude()); _stationTrackPoints.add(new GeoPoint(trackPoint.getLatitude(), trackPoint.getLongitude())); } _stationTrackLine.setPoints(_stationTrackPoints); } - private boolean addStationPositionIcon(LogItemGroup group) { + private boolean addStationPositionIcon(Station group) { String callsign = group.getSrcCallsign(); Marker marker = null; @@ -291,7 +289,7 @@ public class MapActivity extends AppCompatActivity { return true; } - private String getStatus(LogItemGroup group) { + private String getStatus(Station group) { double range = UnitTools.milesToKilometers(group.getRangeMiles()); return String.format(Locale.US, "%s %f %f
%03d° %03dkm/h %04dm %.2fkm
%s %s", group.getMaidenHead(), diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemActivity.java b/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemActivity.java index 03dbfb8..c50c7b0 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemActivity.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemActivity.java @@ -18,7 +18,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.radio.codec2talkie.R; -import com.radio.codec2talkie.storage.log.group.LogItemGroupAdapter; +import com.radio.codec2talkie.storage.log.group.StationAdapter; import com.radio.codec2talkie.storage.position.PositionItemViewModel; import java.util.List; @@ -68,7 +68,7 @@ public class LogItemActivity extends AppCompatActivity { logItemGroupRecyclerView.setHasFixedSize(true); // groups adapter - final LogItemGroupAdapter adapterGroup = new LogItemGroupAdapter(new LogItemGroupAdapter.LogItemGroupDiff()); + final StationAdapter adapterGroup = new StationAdapter(new StationAdapter.LogItemGroupDiff()); adapterGroup.setClickListener(v -> { TextView itemView = v.findViewById(R.id.log_view_group_item_title); _logItemLiveData.removeObservers(this); diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemDao.java b/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemDao.java index 4ea43e9..7b2a9dc 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemDao.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemDao.java @@ -6,7 +6,7 @@ import androidx.room.Insert; import androidx.room.OnConflictStrategy; import androidx.room.Query; -import com.radio.codec2talkie.storage.log.group.LogItemGroup; +import com.radio.codec2talkie.storage.log.group.Station; import java.util.List; @@ -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> getLastPositions(); + LiveData> getLastPositions(); @Query("SELECT pos.timestampEpoch AS timestampEpoch, " + "pos.srcCallsign AS srcCallsign, " + @@ -77,7 +77,7 @@ public interface LogItemDao { "pos.directivityDeg AS directivityDeg " + "FROM PositionItem AS pos WHERE pos.srcCallsign = :srcCallsign " + "ORDER BY pos.timestampEpoch DESC") - LiveData> getStationPositions(String srcCallsign); + LiveData> getStationPositions(String srcCallsign); @Query("SELECT * FROM LogItem ORDER by timestampEpoch ASC") LiveData> getAllLogItems(); diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemRepository.java b/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemRepository.java index 03c7f9c..101759c 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemRepository.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemRepository.java @@ -3,10 +3,9 @@ package com.radio.codec2talkie.storage.log; import android.app.Application; import androidx.lifecycle.LiveData; -import androidx.lifecycle.Transformations; import com.radio.codec2talkie.storage.AppDatabase; -import com.radio.codec2talkie.storage.log.group.LogItemGroup; +import com.radio.codec2talkie.storage.log.group.Station; import com.radio.codec2talkie.tools.DateTools; import java.util.List; @@ -16,7 +15,7 @@ public class LogItemRepository { private final LogItemDao _logItemDao; private final LiveData> _logItemLiveData; private LiveData> _logItemGroupLiveData; - private final LiveData> _lastPositions; + private final LiveData> _lastPositions; public LogItemRepository(Application application) { AppDatabase appDatabase = AppDatabase.getDatabase(application); @@ -29,9 +28,9 @@ public class LogItemRepository { return _logItemLiveData; } - public LiveData> getLastPositions() { return _lastPositions; } + public LiveData> getLastPositions() { return _lastPositions; } - public LiveData> getStationPositions(String srcCallsign) { + public LiveData> getStationPositions(String srcCallsign) { return _logItemDao.getStationPositions(srcCallsign); } diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemViewModel.java b/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemViewModel.java index cd84616..4156825 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemViewModel.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/LogItemViewModel.java @@ -6,7 +6,7 @@ import androidx.annotation.NonNull; import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; -import com.radio.codec2talkie.storage.log.group.LogItemGroup; +import com.radio.codec2talkie.storage.log.group.Station; import java.util.List; @@ -15,7 +15,7 @@ public class LogItemViewModel extends AndroidViewModel { private final LogItemRepository _logItemRepository; private final LiveData> _logItemLiveData; private LiveData> _logItemGroupLiveData; - private final LiveData> _lastPositions; + private final LiveData> _lastPositions; public LogItemViewModel(@NonNull Application application) { super(application); @@ -32,9 +32,9 @@ public class LogItemViewModel extends AndroidViewModel { return _logItemRepository.getLogItems(groupName); } - public LiveData> getLastPositions() { return _lastPositions; } + public LiveData> getLastPositions() { return _lastPositions; } - public LiveData> getLastPositions(String callsign) { return _logItemRepository.getStationPositions(callsign); } + public LiveData> getLastPositions(String callsign) { return _logItemRepository.getStationPositions(callsign); } public void deleteAllLogItems() { _logItemRepository.deleteAllLogItems(); } diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/LogItemGroup.java b/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/Station.java similarity index 99% rename from codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/LogItemGroup.java rename to codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/Station.java index 4619223..1e0d492 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/LogItemGroup.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/Station.java @@ -1,6 +1,6 @@ package com.radio.codec2talkie.storage.log.group; -public class LogItemGroup { +public class Station { private long timestampEpoch; private String srcCallsign; public String dstCallsign; diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/LogItemGroupAdapter.java b/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/StationAdapter.java similarity index 56% rename from codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/LogItemGroupAdapter.java rename to codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/StationAdapter.java index f220684..61cfeea 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/LogItemGroupAdapter.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/StationAdapter.java @@ -7,11 +7,11 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.DiffUtil; import androidx.recyclerview.widget.ListAdapter; -public class LogItemGroupAdapter extends ListAdapter { +public class StationAdapter extends ListAdapter { private View.OnClickListener _clickListener; - public LogItemGroupAdapter(@NonNull DiffUtil.ItemCallback diffCallback) { + public StationAdapter(@NonNull DiffUtil.ItemCallback diffCallback) { super(diffCallback); } @@ -21,26 +21,26 @@ public class LogItemGroupAdapter extends ListAdapter { + public static class LogItemGroupDiff extends DiffUtil.ItemCallback { @Override - public boolean areItemsTheSame(@NonNull LogItemGroup oldItem, @NonNull LogItemGroup newItem) { + public boolean areItemsTheSame(@NonNull Station oldItem, @NonNull Station newItem) { return oldItem.getSrcCallsign().equals(newItem.getSrcCallsign()); } @Override - public boolean areContentsTheSame(@NonNull LogItemGroup oldItem, @NonNull LogItemGroup newItem) { + public boolean areContentsTheSame(@NonNull Station oldItem, @NonNull Station newItem) { return oldItem.getSrcCallsign().equals(newItem.getSrcCallsign()); } } diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/LogItemGroupHolder.java b/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/StationHolder.java similarity index 92% rename from codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/LogItemGroupHolder.java rename to codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/StationHolder.java index c68e89d..8430de1 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/LogItemGroupHolder.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/storage/log/group/StationHolder.java @@ -21,7 +21,7 @@ import com.radio.codec2talkie.tools.UnitTools; import java.util.Locale; -public class LogItemGroupHolder extends RecyclerView.ViewHolder { +public class StationHolder extends RecyclerView.ViewHolder { private static final String TAG = RecyclerView.class.getSimpleName(); @@ -32,7 +32,7 @@ public class LogItemGroupHolder extends RecyclerView.ViewHolder { private final LocationManager _locationManager; private final AprsSymbolTable _symbolTable; - private LogItemGroupHolder(View itemView) { + private StationHolder(View itemView) { super(itemView); _logItemViewTitle = itemView.findViewById(R.id.log_view_group_item_title); _logItemViewDistance = itemView.findViewById(R.id.log_view_group_item_distance); @@ -42,7 +42,7 @@ public class LogItemGroupHolder extends RecyclerView.ViewHolder { _locationManager = (LocationManager) itemView.getContext().getSystemService(Context.LOCATION_SERVICE); } - public void bind(LogItemGroup group) { + public void bind(Station group) { @SuppressLint("MissingPermission") Location loc = _locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); if (loc == null) { _logItemViewDistance.setText(""); @@ -73,9 +73,9 @@ public class LogItemGroupHolder extends RecyclerView.ViewHolder { } } - static LogItemGroupHolder create(ViewGroup parent) { + static StationHolder create(ViewGroup parent) { View view = LayoutInflater.from(parent.getContext()).inflate( R.layout.activity_log_view_group_item, parent, false); - return new LogItemGroupHolder(view); + return new StationHolder(view); } }