Skip to content

Commit dd6cd80

Browse files
Refactors Result class and updates cache timeout
Renames `LastRaceResultsSuccess` to `RaceResultsSuccess` for clarity and removes unused `Result` subclasses. Increases the cache timeout for driver standings and weekly races to 60 seconds to reduce network requests and improve performance.
1 parent 4937a5c commit dd6cd80

7 files changed

Lines changed: 10 additions & 38 deletions

File tree

app/src/main/java/com/the_coffe_coders/fastestlap/domain/Result.java

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -114,30 +114,6 @@ public WeeklyRace getData() {
114114
}
115115
}
116116

117-
public static final class RacesResultSuccess extends Result {
118-
private final List<RaceResult> raceResultList;
119-
120-
public RacesResultSuccess(List<RaceResult> raceResultList) {
121-
this.raceResultList = raceResultList;
122-
}
123-
124-
public List<RaceResult> getData() {
125-
return raceResultList;
126-
}
127-
}
128-
129-
public static final class RaceSuccess extends Result {
130-
private final List<Race> raceList;
131-
132-
public RaceSuccess(List<Race> raceList) {
133-
this.raceList = raceList;
134-
}
135-
136-
public List<Race> getData() {
137-
return raceList;
138-
}
139-
}
140-
141117
public static final class WeeklyRaceSuccess extends Result {
142118
private final List<WeeklyRace> weeklyRaceList;
143119

@@ -172,10 +148,10 @@ public Error(String message) {
172148

173149
}
174150

175-
public static class LastRaceResultsSuccess extends Result {
151+
public static class RaceResultsSuccess extends Result {
176152
private final Race race;
177153

178-
public LastRaceResultsSuccess(Race race) {
154+
public RaceResultsSuccess(Race race) {
179155
this.race = race;
180156
}
181157

app/src/main/java/com/the_coffe_coders/fastestlap/repository/result/ResultRepository.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,9 @@
1010
import com.the_coffe_coders.fastestlap.source.result.JolpicaRaceResultDataSource;
1111
import com.the_coffe_coders.fastestlap.source.result.LocalRaceResultDataSource;
1212

13-
import java.util.ArrayList;
1413
import java.util.HashMap;
15-
import java.util.List;
1614
import java.util.Map;
1715
import java.util.Objects;
18-
import java.util.concurrent.atomic.AtomicInteger;
1916

2017
public class ResultRepository {
2118
private static final String TAG = "ResultRepository";
@@ -59,9 +56,9 @@ public void loadResultsFromLocal(String round) {
5956
@Override
6057
public void onSuccess(Race race) {
6158
if (race != null) {
62-
resultsCache.put(round, new MutableLiveData<>(new Result.LastRaceResultsSuccess(race)));
59+
resultsCache.put(round, new MutableLiveData<>(new Result.RaceResultsSuccess(race)));
6360
lastUpdateTimestamps.put(round, System.currentTimeMillis());
64-
Objects.requireNonNull(resultsCache.get(round)).postValue(new Result.LastRaceResultsSuccess(race));
61+
Objects.requireNonNull(resultsCache.get(round)).postValue(new Result.RaceResultsSuccess(race));
6562
Log.d(TAG, "Results loaded from local cache for round: " + race);
6663
} else {
6764
Log.e(TAG, "Results not found in local cache for round: " + round);
@@ -86,7 +83,7 @@ public void onSuccess(Race race) {
8683
if (race != null) {
8784
localRaceResultDataSource.insertRaceResults(race);
8885
lastUpdateTimestamps.put(round, System.currentTimeMillis());
89-
Objects.requireNonNull(resultsCache.get(round)).postValue(new Result.LastRaceResultsSuccess(race));
86+
Objects.requireNonNull(resultsCache.get(round)).postValue(new Result.RaceResultsSuccess(race));
9087
} else {
9188
Log.e(TAG, "Results not found in cache for round: " + round);
9289
loadResultsFromLocal(round);

app/src/main/java/com/the_coffe_coders/fastestlap/repository/standing/driver/DriverStandingRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public synchronized MutableLiveData<Result> getDriverStandings() {
4949
lastUpdateTimestamps.get(cacheKey) == null) {
5050
driverStandingCache.put(cacheKey, new MutableLiveData<>());
5151
loadDriverStanding();
52-
} else if (System.currentTimeMillis() - lastUpdateTimestamps.get(cacheKey) > 6000) {
52+
} else if (System.currentTimeMillis() - lastUpdateTimestamps.get(cacheKey) > 60000) {
5353
loadDriverStanding();
5454
} else {
5555
Log.d(TAG, "Driver standing found in cache");

app/src/main/java/com/the_coffe_coders/fastestlap/repository/weeklyrace/WeeklyRaceRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
public class WeeklyRaceRepository {
2020
private static final String TAG = "WeeklyRaceRepository";
2121
private static WeeklyRaceRepository instance;
22-
private static final long FRESH_TIMEOUT = 10000;
22+
private static final long FRESH_TIMEOUT = 60000;
2323

2424
// Cache - MutableLiveData private per modifiche interne
2525
private final Map<String, MutableLiveData<Result>> raceCache;

app/src/main/java/com/the_coffe_coders/fastestlap/ui/event/EventActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ private void processRaceResults(WeeklyRace weeklyRace) {
296296
}
297297

298298
try{
299-
Race race = ((Result.LastRaceResultsSuccess) result).getData();
299+
Race race = ((Result.RaceResultsSuccess) result).getData();
300300
List<RaceResult> podium = race.getRaceResults();
301301

302302
if (podium == null || podium.isEmpty()) {

app/src/main/java/com/the_coffe_coders/fastestlap/ui/event/PastEventsActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ private void loadRacesSequentially(List<WeeklyRace> pastRaces, int index) {
191191
}
192192

193193
if (result.isSuccess()) {
194-
Race race = ((Result.LastRaceResultsSuccess) result).getData();
194+
Race race = ((Result.RaceResultsSuccess) result).getData();
195195
Log.i("PastEvent", "Successfully loaded race: " + race.toString());
196196

197197
// Verifica che la gara non sia già presente nella lista

app/src/main/java/com/the_coffe_coders/fastestlap/ui/home/fragment/HomeFragment.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
import com.the_coffe_coders.fastestlap.ui.home.viewmodel.HomeViewModelFactory;
5454
import com.the_coffe_coders.fastestlap.ui.standing.ConstructorsStandingActivity;
5555
import com.the_coffe_coders.fastestlap.ui.standing.DriversStandingActivity;
56-
import com.the_coffe_coders.fastestlap.ui.welcome.WelcomeActivity;
5756
import com.the_coffe_coders.fastestlap.ui.welcome.viewmodel.UserViewModel;
5857
import com.the_coffe_coders.fastestlap.ui.welcome.viewmodel.UserViewModelFactory;
5958
import com.the_coffe_coders.fastestlap.util.Constants;
@@ -271,7 +270,7 @@ private void updateLastRaceUIFinalStep(WeeklyRace race, View view) {
271270
return;
272271
}
273272
if (result.isSuccess()) {
274-
List<RaceResult> raceResults = ((Result.LastRaceResultsSuccess) result).getData().getResults();
273+
List<RaceResult> raceResults = ((Result.RaceResultsSuccess) result).getData().getResults();
275274
setDriverNames(view, raceResults);
276275
} else {
277276
throw new Exception("Failed to fetch race results: " + result.getError());

0 commit comments

Comments
 (0)