Workout details: add button to rotate charts activity

This commit is contained in:
José Rebelo
2025-08-28 19:10:07 +02:00
committed by José Rebelo
parent 0e78261c5a
commit 28a331f4f4
5 changed files with 51 additions and 3 deletions
+2 -1
View File
@@ -201,7 +201,8 @@
<activity
android:name=".activities.workouts.charts.WorkoutChartsActivity"
android:label="@string/workout_charts"
android:parentActivityName=".activities.SettingsActivity" />
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|layoutDirection|uiMode"
android:parentActivityName=".activities.workouts.WorkoutDetailsActivity" />
<activity
android:name=".activities.SleepAsAndroidPreferencesActivity"
android:label="@string/sleepasandroid_settings"
@@ -1,7 +1,13 @@
package nodomain.freeyourgadget.gadgetbridge.activities.workouts.charts
import android.content.pm.ActivityInfo
import android.content.res.Configuration
import android.os.Bundle
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import android.widget.Toast
import androidx.core.view.MenuProvider
import com.github.mikephil.charting.components.XAxis
import com.github.mikephil.charting.components.YAxis
import com.github.mikephil.charting.data.LineData
@@ -17,9 +23,8 @@ import nodomain.freeyourgadget.gadgetbridge.activities.charts.DurationXLabelForm
import nodomain.freeyourgadget.gadgetbridge.activities.charts.marker.ValueMarker
import nodomain.freeyourgadget.gadgetbridge.databinding.WorkoutChartsBinding
import nodomain.freeyourgadget.gadgetbridge.model.workout.WorkoutChart
import kotlin.math.max
class WorkoutChartsActivity : AbstractGBActivity() {
class WorkoutChartsActivity : AbstractGBActivity(), MenuProvider {
private lateinit var binding: WorkoutChartsBinding
private var chartData: List<WorkoutChart>? = null
val selectedCharts = mutableListOf<Any>()
@@ -28,6 +33,7 @@ class WorkoutChartsActivity : AbstractGBActivity() {
super.onCreate(savedInstanceState)
binding = WorkoutChartsBinding.inflate(layoutInflater)
setContentView(binding.root)
addMenuProvider(this)
chartData = ChartDataRepository.chartData
if (chartData == null) {
@@ -131,6 +137,26 @@ class WorkoutChartsActivity : AbstractGBActivity() {
binding.workoutDataChart.invalidate()
}
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
getMenuInflater().inflate(R.menu.workout_charts_menu, menu);
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
return when (menuItem.itemId) {
R.id.action_rotate_screen -> {
val currentOrientation = getResources().configuration.orientation
if (currentOrientation == Configuration.ORIENTATION_PORTRAIT) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
}
true
}
else -> false
}
}
companion object {
const val INIT_CHART_ID = "INIT_CHART_ID"
}
@@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M496,778 L183,464q-11,-11 -17,-25t-6,-29q0,-15 6,-29t17,-25l173,-173q11,-11 25,-16.5t29,-5.5q15,0 29,5.5t25,16.5l313,313q11,11 17,25t6,29q0,15 -6,29t-17,25L604,778q-11,11 -25,16.5t-29,5.5q-15,0 -29,-5.5T496,778ZM550,720 L720,550 410,240 240,410 550,720ZM480,960q-99,0 -186.5,-37.5t-153,-103Q75,754 37.5,666.5T0,480h80q0,71 24,136t66.5,117Q213,785 272,821.5T401,873L296,768l56,-56L588,948q-26,6 -53.5,9T480,960ZM880,480q0,-71 -24,-136t-66.5,-117Q747,175 688,138.5T559,87l105,105 -56,56 -236,-236q26,-6 53.5,-9t54.5,-3q99,0 186.5,37.5t153,103q65.5,65.5 103,153T960,480h-80ZM480,480ZM373,404q13,0 21.5,-9t8.5,-21q0,-13 -8.5,-21.5T373,344q-12,0 -21,8.5t-9,21.5q0,12 9,21t21,9Z" />
</vector>
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_rotate_screen"
android:icon="@drawable/ic_mobile_rotate"
android:title="@string/rotate_screen"
app:showAsAction="always" />
</menu>
+1
View File
@@ -4310,4 +4310,5 @@
<string name="work_info_running_percentage">%1$s (%2$d%%)</string>
<string name="datetime_in_the_future">%1$s (in %2$s)</string>
<string name="datetime_in_the_past">%1$s (%2$s ago)</string>
<string name="rotate_screen">Rotate screen</string>
</resources>