Home page cache

This commit is contained in:
Nicolás Sánchez 2024-12-15 10:31:45 -03:00
parent b3d9ed2a0f
commit a82ebd54a7
2 changed files with 106 additions and 101 deletions

View File

@ -32,6 +32,15 @@ public class MainActivity extends AppCompatActivity {
public static SettingsData globalSettings;
public HomeFragment.HomeCache homeViewCache;
public HomeFragment.HomeCache getHomeViewCache() {
return homeViewCache;
}
public void setHomeViewCache(HomeFragment.HomeCache newCache) {
this.homeViewCache = newCache;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

View File

@ -99,12 +99,19 @@ public class HomeFragment extends Fragment {
private TextView log4Content;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
//binding = FragmentHomeBinding.inflate(inflater, container, false);
//View root = binding.getRoot();
// For the cache
MainActivity mainActivity = (MainActivity) requireActivity();
HomeFragment.HomeCache homeViewCache = mainActivity.getHomeViewCache();
homeViewModel = new ViewModelProvider(this).get(HomeViewModel.class);
View root = inflater.inflate(R.layout.fragment_home, container, false);
@ -164,12 +171,7 @@ public class HomeFragment extends Fragment {
// Last deals
lastTrades = root.findViewById(R.id.lastTrades);
// Log entries
// TextView log1Title = root.findViewById(R.id.log1CardTitle);
// TextView log2Title = root.findViewById(R.id.log2CardTitle);
// TextView log3Title = root.findViewById(R.id.log3CardTitle);
// TextView log4Title = root.findViewById(R.id.log4CardTitle);
// Logs
log1Content = root.findViewById(R.id.log1CardContent);
log2Content = root.findViewById(R.id.log2CardContent);
log3Content = root.findViewById(R.id.log3CardContent);
@ -177,12 +179,24 @@ public class HomeFragment extends Fragment {
/*
*
* LOAD CACHED VALUES
*
*/
if (homeViewCache!=null) {
populateHome(homeViewCache.getFirstTickerChangeData(),
homeViewCache.getSecondTickerChangeData(),
homeViewCache.getThirdTickerChangeData(),
homeViewCache.getProfitsData(),
homeViewCache.getBinanceData(),
homeViewCache.getGateioData(),
homeViewCache.getKucoinData(),
homeViewCache.getOkexData(),
homeViewCache.getDealData(),
homeViewCache.getBinanceLogs(),
homeViewCache.getGateioLogs(),
homeViewCache.getKucoinLogs(),
homeViewCache.getOkexLogs());
} else {
//Prices
pricePair1.setText(R.string.default_price_ticker_1);
pricePair2.setText(R.string.default_price_ticker_2);
@ -226,11 +240,6 @@ public class HomeFragment extends Fragment {
exchange3Status.setImageResource(R.drawable.ic_green_circle_48);
exchange4Status.setImageResource(R.drawable.ic_green_circle_48);
// exchange1Name.setText(R.string.exchange_1_name);
// exchange2Name.setText(R.string.exchange_2_name);
// exchange3Name.setText(R.string.exchange_3_name);
// exchange4Name.setText(R.string.exchange_4_name);
exchange1Funds.setText(R.string.exchange_funds_example);
exchange2Funds.setText(R.string.exchange_funds_example);
exchange3Funds.setText(R.string.exchange_funds_example);
@ -254,18 +263,12 @@ public class HomeFragment extends Fragment {
// Last trades
lastTrades.setText(R.string.last_trades_example);
// Log entries
// log1Title.setText(R.string.exchange_1_log_title);
// log2Title.setText(R.string.exchange_2_log_title);
// log3Title.setText(R.string.exchange_3_log_title);
// log4Title.setText(R.string.exchange_4_log_title);
// Log entries
log1Content.setText(R.string.log_example);
log2Content.setText(R.string.log_example);
log3Content.setText(R.string.log_example);
log4Content.setText(R.string.log_example);
}
// Setup task
handler = new Handler();
@ -306,6 +309,10 @@ public class HomeFragment extends Fragment {
}
private void fetchAndDisplayData() {
// For the cache
MainActivity mainActivity = (MainActivity) requireActivity();
//HomeFragment.HomeCache homeViewCache = mainActivity.getHomeViewCache();
executorService.execute(() -> {
try {
CompletableFuture<TickerTracker.PriceChangeData> future1 = CompletableFuture.supplyAsync(() -> {
@ -475,6 +482,9 @@ public class HomeFragment extends Fragment {
}
populateHome(priceData, priceData2, priceData3, profitsData, binanceStats, gateioStats, kucoinStats, okexStats, deals, logs1, logs2, logs3, logs4);
mainActivity.setHomeViewCache(
new HomeCache (priceData, priceData2, priceData3, profitsData, binanceStats, gateioStats, kucoinStats, okexStats, deals, logs1, logs2, logs3, logs4)
);
});
@ -694,19 +704,19 @@ public class HomeFragment extends Fragment {
public static class HomeCache {
private TickerTracker.PriceChangeData firstTickerChangeData;
private TickerTracker.PriceChangeData secondTickerChangeData;
private TickerTracker.PriceChangeData thirdTickerChangeData;
private InstanceInterface.ProfitStatsData profitsData;
private InstanceInterface.ExchangeStatsData binanceData;
private InstanceInterface.ExchangeStatsData gateioData;
private InstanceInterface.ExchangeStatsData kucoinData;
private InstanceInterface.ExchangeStatsData okexData;
private List<InstanceInterface.DealData> dealData;
private String binanceLogs;
private String gateioLogs;
private String kucoinLogs;
private String okexLogs;
private final TickerTracker.PriceChangeData firstTickerChangeData;
private final TickerTracker.PriceChangeData secondTickerChangeData;
private final TickerTracker.PriceChangeData thirdTickerChangeData;
private final InstanceInterface.ProfitStatsData profitsData;
private final InstanceInterface.ExchangeStatsData binanceData;
private final InstanceInterface.ExchangeStatsData gateioData;
private final InstanceInterface.ExchangeStatsData kucoinData;
private final InstanceInterface.ExchangeStatsData okexData;
private final List<InstanceInterface.DealData> dealData;
private final String binanceLogs;
private final String gateioLogs;
private final String kucoinLogs;
private final String okexLogs;
public HomeCache(TickerTracker.PriceChangeData firstTickerChangeData, TickerTracker.PriceChangeData secondTickerChangeData, TickerTracker.PriceChangeData thirdTickerChangeData, InstanceInterface.ProfitStatsData profitsData, InstanceInterface.ExchangeStatsData binanceData, InstanceInterface.ExchangeStatsData gateioData, InstanceInterface.ExchangeStatsData kucoinData, InstanceInterface.ExchangeStatsData okexData, List<InstanceInterface.DealData> dealData, String binanceLogs, String gateioLogs, String kucoinLogs, String okexLogs) {
this.firstTickerChangeData = firstTickerChangeData;
@ -724,20 +734,6 @@ public class HomeFragment extends Fragment {
this.okexLogs = okexLogs;
}
public void setFirstTickerChangeData(TickerTracker.PriceChangeData firstTickerChangeData) { this.firstTickerChangeData = firstTickerChangeData; }
public void setSecondTickerChangeData(TickerTracker.PriceChangeData secondTickerChangeData) { this.secondTickerChangeData = secondTickerChangeData; }
public void setThirdTickerChangeData(TickerTracker.PriceChangeData thirdTickerChangeData) { this.thirdTickerChangeData = thirdTickerChangeData; }
public void setProfitsData(InstanceInterface.ProfitStatsData profitsData) { this.profitsData = profitsData; }
public void setBinanceData(InstanceInterface.ExchangeStatsData binanceData) { this.binanceData = binanceData; }
public void setGateioData(InstanceInterface.ExchangeStatsData gateioData) { this.gateioData = gateioData; }
public void setKucoinData(InstanceInterface.ExchangeStatsData kucoinData) { this.kucoinData = kucoinData; }
public void setOkexData(InstanceInterface.ExchangeStatsData okexData) { this.okexData = okexData; }
public void setDealData(List<InstanceInterface.DealData> dealData) { this.dealData = dealData; }
public void setBinanceLogs(String binanceLogs) { this.binanceLogs = binanceLogs; }
public void setGateioLogs(String gateioLogs) { this.gateioLogs = gateioLogs; }
public void setKucoinLogs(String kucoinLogs) { this.kucoinLogs = kucoinLogs; }
public void setOkexLogs(String okexLogs) { this.okexLogs = okexLogs; }
public TickerTracker.PriceChangeData getFirstTickerChangeData() { return firstTickerChangeData; }
public TickerTracker.PriceChangeData getSecondTickerChangeData() { return secondTickerChangeData; }
public TickerTracker.PriceChangeData getThirdTickerChangeData() { return thirdTickerChangeData; }