package com.example.dcav2gui; import android.view.MenuItem; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.NavController; import androidx.navigation.Navigation;// import android.os.Bundle; import android.view.Menu; import android.widget.Toast; import com.example.dcav2gui.ui.home.HomeFragment; import com.example.dcav2gui.ui.settings.SettingsData; import com.example.dcav2gui.ui.settings.SettingsViewModel; import com.google.android.material.navigation.NavigationView; import androidx.navigation.ui.AppBarConfiguration; import androidx.navigation.ui.NavigationUI; import androidx.drawerlayout.widget.DrawerLayout; import androidx.appcompat.app.AppCompatActivity; import com.example.dcav2gui.databinding.ActivityMainBinding; import java.io.File; import java.util.Objects; public class MainActivity extends AppCompatActivity { private AppBarConfiguration mAppBarConfiguration; private ActivityMainBinding binding; public static SettingsData globalSettings; public HomeFragment.HomeCache homeViewCache; public static InstanceInterface.ExchangeStatsData binanceCache; public static InstanceInterface.ExchangeStatsData gateioCache; public static InstanceInterface.ExchangeStatsData kucoinCache; public static InstanceInterface.ExchangeStatsData okxCache; public HomeFragment.HomeCache getHomeViewCache() { return homeViewCache; } public void setHomeViewCache(HomeFragment.HomeCache newCache) { this.homeViewCache = newCache; } public void setInstanceCache(InstanceInterface.ExchangeStatsData binance, InstanceInterface.ExchangeStatsData gateio, InstanceInterface.ExchangeStatsData kucoin, InstanceInterface.ExchangeStatsData okx) { binanceCache = binance; gateioCache = gateio; kucoinCache = kucoin; okxCache = okx; } public static InstanceInterface.ExchangeStatsData getInstanceCache(String exchange) { if (Objects.equals(exchange, "binance")) { return binanceCache; } else if (Objects.equals(exchange, "gateio")) { return gateioCache; } else if (Objects.equals(exchange, "kucoin")) { return kucoinCache; } else { return okxCache; } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.appBarMain.toolbar); DrawerLayout drawer = binding.drawerLayout; NavigationView navigationView = binding.navView; mAppBarConfiguration = new AppBarConfiguration.Builder( R.id.nav_home, R.id.nav_binance, R.id.nav_gateio, R.id.nav_kucoin, R.id.nav_okx ) .setOpenableLayout(drawer) .build(); NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main); NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration); NavigationUI.setupWithNavController(navigationView, navController); // Load settings SettingsViewModel settingsViewModel = new ViewModelProvider(this).get(SettingsViewModel.class); globalSettings = settingsViewModel.loadSettings(this); if (globalSettings==null) { Toast.makeText(this, "Please enter your credentials in the settings menu", Toast.LENGTH_LONG).show(); } } public static SettingsData getGlobalSettings() { return globalSettings; } public void updateGlobalSettings() { SettingsViewModel settingsViewModel = new ViewModelProvider(this).get(SettingsViewModel.class); globalSettings = settingsViewModel.loadSettings(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } private boolean isSettingsFileExists() { File file = new File(getFilesDir(), "settings.json"); return file.exists(); } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { // Navigate to the SettingsFragment NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main); navController.navigate(R.id.nav_settings); return true; } return super.onOptionsItemSelected(item); } @Override public boolean onSupportNavigateUp() { NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main); return NavigationUI.navigateUp(navController, mAppBarConfiguration) || super.onSupportNavigateUp(); } }