diff --git a/FatihsMG4-unstable-2.2.21.apk.sha256 b/FatihsMG4-unstable-2.2.21.apk.sha256 new file mode 100644 index 0000000..1ba518a --- /dev/null +++ b/FatihsMG4-unstable-2.2.21.apk.sha256 @@ -0,0 +1 @@ +fc57705c80131278ae85cf2c25fb7f2330629c62aea759f9e1324ac93ca1cb8f FatihsMG4-unstable-2.2.21.apk diff --git a/app/build.gradle b/app/build.gradle index e920db8..7c529a6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -34,8 +34,8 @@ android { applicationId "com.evsuite.abrp" minSdk 27 targetSdk 36 - versionCode 37 - versionName "2.2.20" + versionCode 38 + versionName "2.2.21" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/com/evsuite/abrp/MainActivity.java b/app/src/main/java/com/evsuite/abrp/MainActivity.java index b4d5d54..d57e341 100644 --- a/app/src/main/java/com/evsuite/abrp/MainActivity.java +++ b/app/src/main/java/com/evsuite/abrp/MainActivity.java @@ -108,7 +108,7 @@ public class MainActivity extends AppCompatActivity { vehCharging, vehHvac, vehSoe, vehTireFl, vehTireFr, vehTireRl, vehTireRr; private ConsumptionTracker consumptionTracker; - private Spinner consumptionPeriod; + private ConsumptionTracker.Period consumptionPeriod = ConsumptionTracker.Period.LIFETIME; private TextView consumptionDistance, consumptionEnergy, consumptionAverage, consumptionSpeed, consumptionTime, consumptionSoc; private Button consumptionReset; @@ -824,12 +824,6 @@ public class MainActivity extends AppCompatActivity { private void bindConsumptionPane() { consumptionTracker = ConsumptionTracker.get(this); - consumptionPeriod = consumptionPane.findViewById(R.id.consumption_period); - String[] periods = {"Başlangıçtan itibaren", "Motor çalıştıktan itibaren", - "Tüm zamanlar", "Trip A", "Trip B"}; - ArrayAdapter adapter = new ArrayAdapter<>(this, - android.R.layout.simple_spinner_dropdown_item, periods); - consumptionPeriod.setAdapter(adapter); consumptionDistance = consumptionPane.findViewById(R.id.consumption_distance); consumptionEnergy = consumptionPane.findViewById(R.id.consumption_energy); consumptionAverage = consumptionPane.findViewById(R.id.consumption_average); @@ -837,28 +831,49 @@ public class MainActivity extends AppCompatActivity { consumptionTime = consumptionPane.findViewById(R.id.consumption_time); consumptionSoc = consumptionPane.findViewById(R.id.consumption_soc); consumptionReset = consumptionPane.findViewById(R.id.consumption_reset); - consumptionPeriod.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override public void onItemSelected(AdapterView p, View v, int position, long id) { - consumptionReset.setVisibility(position >= 3 ? View.VISIBLE : View.GONE); - refreshConsumption(); - } - @Override public void onNothingSelected(AdapterView p) {} - }); + bindPeriodButton(R.id.consumption_lifetime, ConsumptionTracker.Period.LIFETIME); + bindPeriodButton(R.id.consumption_start, ConsumptionTracker.Period.START); + bindPeriodButton(R.id.consumption_motor, ConsumptionTracker.Period.MOTOR); + bindPeriodButton(R.id.consumption_trip_a, ConsumptionTracker.Period.TRIP_A); + bindPeriodButton(R.id.consumption_trip_b, ConsumptionTracker.Period.TRIP_B); + selectPeriodButton(R.id.consumption_lifetime); consumptionReset.setOnClickListener(v -> { - int selected = consumptionPeriod.getSelectedItemPosition(); - if (selected < 3) return; - String name = selected == 3 ? "Trip A" : "Trip B"; + if (consumptionPeriod != ConsumptionTracker.Period.TRIP_A && consumptionPeriod != ConsumptionTracker.Period.TRIP_B) return; + String name = consumptionPeriod == ConsumptionTracker.Period.TRIP_A ? "Trip A" : "Trip B"; new MaterialAlertDialogBuilder(this).setTitle(name + " sıfırlansın mı?") .setMessage("Bu sayacın kayıtlı tüketim geçmişi kalıcı olarak silinir.") .setNegativeButton("Vazgeç", null) .setPositiveButton("Sıfırla", (d, w) -> { - consumptionTracker.reset(selected == 3 - ? ConsumptionTracker.Period.TRIP_A : ConsumptionTracker.Period.TRIP_B); + consumptionTracker.reset(consumptionPeriod); refreshConsumption(); }).show(); }); } + private void bindPeriodButton(int id, ConsumptionTracker.Period period) { + View button = consumptionPane.findViewById(id); + button.setOnClickListener(v -> { + selectPeriodButton(id); + consumptionPeriod = period; + consumptionReset.setVisibility(period == ConsumptionTracker.Period.TRIP_A || + period == ConsumptionTracker.Period.TRIP_B ? View.VISIBLE : View.GONE); + refreshConsumption(); + }); + } + + private void selectPeriodButton(int selectedId) { + int[] ids = {R.id.consumption_lifetime, R.id.consumption_start, + R.id.consumption_motor, R.id.consumption_trip_a, R.id.consumption_trip_b}; + for (int id : ids) { + MaterialButton button = consumptionPane.findViewById(id); + boolean selected = id == selectedId; + button.setSelected(selected); + button.setTextColor(selected ? 0xFFD8C39A : COLOR_PENDING); + button.setStrokeColor(android.content.res.ColorStateList.valueOf( + selected ? 0xFFD8C39A : 0xFF3A4143)); + } + } + private void bindChargingPane() { chargeStatus = chargingPane.findViewById(R.id.charge_status); chargeSoc = chargingPane.findViewById(R.id.charge_soc); @@ -894,10 +909,8 @@ public class MainActivity extends AppCompatActivity { } private void refreshConsumption() { - if (consumptionTracker == null || consumptionPeriod == null) return; - ConsumptionTracker.Period period = ConsumptionTracker.Period.values()[ - Math.max(0, consumptionPeriod.getSelectedItemPosition())]; - ConsumptionTracker.Totals t = consumptionTracker.totals(period); + if (consumptionTracker == null) return; + ConsumptionTracker.Totals t = consumptionTracker.totals(consumptionPeriod); consumptionDistance.setText(String.format(java.util.Locale.getDefault(), "%.1f km", t.km)); consumptionEnergy.setText(String.format(java.util.Locale.getDefault(), "%.2f kWh", t.kwh)); consumptionAverage.setText(t.km < 0.1 ? "—" : String.format(java.util.Locale.getDefault(), diff --git a/app/src/main/res/layout/pane_consumption.xml b/app/src/main/res/layout/pane_consumption.xml index 0a711cd..ef43c70 100644 --- a/app/src/main/res/layout/pane_consumption.xml +++ b/app/src/main/res/layout/pane_consumption.xml @@ -3,7 +3,15 @@ - + + + + + + + + +