mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Workout details: add button to rotate charts activity
This commit is contained in:
@@ -201,7 +201,8 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name=".activities.workouts.charts.WorkoutChartsActivity"
|
android:name=".activities.workouts.charts.WorkoutChartsActivity"
|
||||||
android:label="@string/workout_charts"
|
android:label="@string/workout_charts"
|
||||||
android:parentActivityName=".activities.SettingsActivity" />
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|layoutDirection|uiMode"
|
||||||
|
android:parentActivityName=".activities.workouts.WorkoutDetailsActivity" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".activities.SleepAsAndroidPreferencesActivity"
|
android:name=".activities.SleepAsAndroidPreferencesActivity"
|
||||||
android:label="@string/sleepasandroid_settings"
|
android:label="@string/sleepasandroid_settings"
|
||||||
|
|||||||
+28
-2
@@ -1,7 +1,13 @@
|
|||||||
package nodomain.freeyourgadget.gadgetbridge.activities.workouts.charts
|
package nodomain.freeyourgadget.gadgetbridge.activities.workouts.charts
|
||||||
|
|
||||||
|
import android.content.pm.ActivityInfo
|
||||||
|
import android.content.res.Configuration
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.view.Menu
|
||||||
|
import android.view.MenuInflater
|
||||||
|
import android.view.MenuItem
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
|
import androidx.core.view.MenuProvider
|
||||||
import com.github.mikephil.charting.components.XAxis
|
import com.github.mikephil.charting.components.XAxis
|
||||||
import com.github.mikephil.charting.components.YAxis
|
import com.github.mikephil.charting.components.YAxis
|
||||||
import com.github.mikephil.charting.data.LineData
|
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.activities.charts.marker.ValueMarker
|
||||||
import nodomain.freeyourgadget.gadgetbridge.databinding.WorkoutChartsBinding
|
import nodomain.freeyourgadget.gadgetbridge.databinding.WorkoutChartsBinding
|
||||||
import nodomain.freeyourgadget.gadgetbridge.model.workout.WorkoutChart
|
import nodomain.freeyourgadget.gadgetbridge.model.workout.WorkoutChart
|
||||||
import kotlin.math.max
|
|
||||||
|
|
||||||
class WorkoutChartsActivity : AbstractGBActivity() {
|
class WorkoutChartsActivity : AbstractGBActivity(), MenuProvider {
|
||||||
private lateinit var binding: WorkoutChartsBinding
|
private lateinit var binding: WorkoutChartsBinding
|
||||||
private var chartData: List<WorkoutChart>? = null
|
private var chartData: List<WorkoutChart>? = null
|
||||||
val selectedCharts = mutableListOf<Any>()
|
val selectedCharts = mutableListOf<Any>()
|
||||||
@@ -28,6 +33,7 @@ class WorkoutChartsActivity : AbstractGBActivity() {
|
|||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
binding = WorkoutChartsBinding.inflate(layoutInflater)
|
binding = WorkoutChartsBinding.inflate(layoutInflater)
|
||||||
setContentView(binding.root)
|
setContentView(binding.root)
|
||||||
|
addMenuProvider(this)
|
||||||
chartData = ChartDataRepository.chartData
|
chartData = ChartDataRepository.chartData
|
||||||
|
|
||||||
if (chartData == null) {
|
if (chartData == null) {
|
||||||
@@ -131,6 +137,26 @@ class WorkoutChartsActivity : AbstractGBActivity() {
|
|||||||
binding.workoutDataChart.invalidate()
|
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 {
|
companion object {
|
||||||
const val INIT_CHART_ID = "INIT_CHART_ID"
|
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>
|
||||||
@@ -4310,4 +4310,5 @@
|
|||||||
<string name="work_info_running_percentage">%1$s (%2$d%%)</string>
|
<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_future">%1$s (in %2$s)</string>
|
||||||
<string name="datetime_in_the_past">%1$s (%2$s ago)</string>
|
<string name="datetime_in_the_past">%1$s (%2$s ago)</string>
|
||||||
|
<string name="rotate_screen">Rotate screen</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user