Skip to content

Commit

Permalink
Merge pull request #2 from rilling/main
Browse files Browse the repository at this point in the history
Pull from main
  • Loading branch information
Soham-2411 authored Apr 8, 2024
2 parents ed22a3f + 9c5a80d commit 0464146
Show file tree
Hide file tree
Showing 25 changed files with 1,579 additions and 202 deletions.
43 changes: 43 additions & 0 deletions .idea/navEditor.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ android {
buildFeatures {
viewBinding true
buildConfig true
dataBinding true
}

androidResources {
Expand Down Expand Up @@ -111,6 +112,10 @@ android {
}
}

viewBinding{
enabled = true
}

applicationVariants.configureEach { variant ->
variant.resValue "string", "applicationId", variant.applicationId

Expand All @@ -125,6 +130,9 @@ android {
}

dependencies {
implementation 'androidx.activity:activity:1.8.0'
implementation 'androidx.navigation:navigation-fragment:2.7.7'
implementation 'androidx.navigation:navigation-ui:2.7.7'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'

implementation 'androidx.appcompat:appcompat:1.6.1'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -884,7 +884,7 @@ private void drawPointer(final Canvas canvas) {
break;
}
}
if (firstChartSeries != null && chartPoints.isEmpty()) {
if (firstChartSeries != null && !chartPoints.isEmpty()) {
int dx = getX(maxX) - pointer.getIntrinsicWidth() / 2;
double value = firstChartSeries.extractDataFromChartPoint(last);
int dy = getY(firstChartSeries, value) - pointer.getIntrinsicHeight();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public class CustomContentProvider extends ContentProvider {
* It computes the average for heart rate, cadence and power (duration-based average) and the maximum for heart rate, cadence and power.
* Finally, it ignores manual pause (SEGMENT_START_MANUAL).
*/
private static final String SENSOR_STATS_QUERY =
private final static String SENSOR_STATS_QUERY =
"WITH time_select as " +
"(SELECT t1." + TrackPointsColumns.TIME + " * (t1." + TrackPointsColumns.TYPE + " NOT IN (" + TrackPoint.Type.SEGMENT_START_MANUAL.type_db + ")) time_value " +
"FROM " + TrackPointsColumns.TABLE_NAME + " t1 " +
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
package de.dennisguse.opentracks.data.models;

import android.os.Parcel;
import android.os.Parcelable;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

public final class WeatherInformation implements Parcelable {

private Track.Id id;
private double temperature;

// public WeatherInfo(double temperature) {
// this.temperature = temperature;
// }

// protected WeatherInfo(Parcel in) {
// temperature = in.readDouble();
// }

// public static final Creator<WeatherInfo> CREATOR = new Creator<WeatherInfo>() {
// @Override
// public WeatherInfo createFromParcel(Parcel in) {
// return new WeatherInfo(in);
// }
//
// @Override
// public WeatherInfo[] newArray(int size) {
// return new WeatherInfo[size];
// }
// };

protected WeatherInformation(Parcel in) {
id = in.readParcelable(Track.Id.class.getClassLoader());
temperature = in.readDouble();
}

public static final Creator<WeatherInformation> CREATOR = new Creator<WeatherInformation>() {
@Override
public WeatherInformation createFromParcel(Parcel in) {
return new WeatherInformation(in);
}

@Override
public WeatherInformation[] newArray(int size) {
return new WeatherInformation[size];
}
};

@Nullable
public Track.Id getId() {
return id;
}

public void setId(Track.Id id) {
this.id = id;
}

public double getTemperature() {
return temperature;
}

public void setTemperature(double temperature) {
this.temperature = temperature;
}

@NonNull
@Override
public String toString() {
return "WeatherInfo{" +
"temperature=" + temperature +
'}';
}

@Override
public int describeContents() {
return 0;
}

@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeDouble(temperature);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
package de.dennisguse.opentracks.settings;

import java.time.Duration;
import java.util.HashMap;
import java.util.Map;

import de.dennisguse.opentracks.data.models.ActivityType;
import de.dennisguse.opentracks.data.models.HeartRate;
import de.dennisguse.opentracks.data.models.Track;
import de.dennisguse.opentracks.data.models.TrackPoint;
import de.dennisguse.opentracks.stats.TrackStatistics;

public class CalorieUserDetail {
private int height;
private int weight;
private int age;
private String sport;
private int heartRate;

Track track;
public String getActivityType(){
return track.getActivityType().getId();
}

TrackStatistics trackStatistics;

public Duration getMovingTime(){
return trackStatistics.getMovingTime();
}

public float getBPM(){
return trackStatistics.getAverageHeartRate().getBPM();
}

// Constructor to initialize with dummy data
public CalorieUserDetail() {
this.height = 170;
this.weight = 70;
this.age = 30;
this.sport = "Running";
this.heartRate = 75;
}

// Getters and setters for height
public int getHeight() {
return height;
}

public void setHeight(int height) {
this.height = height;
}

// Getters and setters for weight
public int getWeight() {
return weight;
}

public void setWeight(int weight) {
this.weight = weight;
}

// Getters and setters for age
public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

// Getters and setters for sport
public String getSport() {
return sport;
}

public void setSport(String sport) {
this.sport = sport;
}

// Getters and setters for heart rate
public int getHeartRate() {
return heartRate;
}

public void setHeartRate(int heartRate) {
this.heartRate = heartRate;
}

// Method to get data from GUI
public void getDataFromGUI(Map<String, Object> guiData) {
setHeight((int) guiData.getOrDefault("height", height));
setWeight((int) guiData.getOrDefault("weight", weight));
setAge((int) guiData.getOrDefault("age", age));
setSport((String) guiData.getOrDefault("sport", sport));
setHeartRate((int) guiData.getOrDefault("heartRate", heartRate));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package de.dennisguse.opentracks.stats;

import java.time.Duration;
import java.time.Instant;
import java.util.List;

import de.dennisguse.opentracks.data.models.Speed;
import de.dennisguse.opentracks.data.models.TrackPoint;
import de.dennisguse.opentracks.stats.TrackStatistics;
import de.dennisguse.opentracks.stats.TrackStatisticsUpdater;

public class EnhancedTrackStatistics extends TrackStatistics {
private double averageSlope; // In percentage
private double topSpeed; // In meters/second
private Speed averageSpeed; // In meters/second
private long timeOnChairlift; // In milliseconds
private long waitingTimeForChairlift; // In milliseconds

// Constructor
public EnhancedTrackStatistics() {
super();
this.averageSlope = 0.0;
this.topSpeed = 0.0;
this.averageSpeed = Speed.of(0);
this.timeOnChairlift = 0L;
this.waitingTimeForChairlift = 0L;
}

// Getters and setters
public double getAverageSlope() {
return averageSlope;
}

public void setAverageSlope(double averageSlope) {
this.averageSlope = averageSlope;
}

public double getTopSpeed() {
return topSpeed;
}

public void setTopSpeed(double topSpeed) {
this.topSpeed = topSpeed;
}

public Speed getAverageSpeed() {
return averageSpeed;
}

public void setAverageSpeed(Speed averageSpeed) {
this.averageSpeed = averageSpeed;
}

public long getTimeOnChairlift() {
return timeOnChairlift;
}

public void setTimeOnChairlift(long timeOnChairlift) {
this.timeOnChairlift = timeOnChairlift;
}

public long getWaitingTimeForChairlift() {
return waitingTimeForChairlift;
}

public void setWaitingTimeForChairlift(long waitingTimeForChairlift) {
this.waitingTimeForChairlift = waitingTimeForChairlift;
}
}
Loading

0 comments on commit 0464146

Please sign in to comment.