This commit is contained in:
mirk0dex 2024-04-02 13:10:10 +02:00
parent 367d64e1d3
commit d76e835aac
6 changed files with 25 additions and 34 deletions

View file

@ -4,16 +4,15 @@
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="jbr-17" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveExternalAnnotations" value="false" />
</GradleProjectSettings>
</option>
</component>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
<mapping directory="" vcs="Git" />
</component>
</project>

View file

@ -10,8 +10,8 @@ android {
applicationId = "eu.mirkodi.swatchbeatclock"
minSdk = 24
targetSdk = 34
versionCode = 11
versionName = "v1.2.2"
versionCode = 12
versionName = "v1.2.3"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

View file

@ -74,15 +74,8 @@ public class ConverterFragment extends Fragment {
timePicker.setOnTimeChangedListener((timePicker, i, i1) -> {
if (convertSideChooser.getCheckedRadioButtonId() == R.id.normal_chosen) {
int convertedHour = convertToGMTPlus1(timePicker.getHour());
converted.setText(
df.format(
InternetTime.timeToBeat(
convertedHour,
timePicker.getMinute(),
0 /* seconds */, 0 /* millis */
)
)
);
//Log.d("DEBUG", "Converted hour: " + convertedHour);
converted.setText(df.format(InternetTime.timeToBeat(convertedHour, timePicker.getMinute(), 0 /* seconds */, 0 /* millis */)));
}
});
@ -106,22 +99,21 @@ public class ConverterFragment extends Fragment {
try {
normalTime = InternetTime.beatToTime(text);
} catch (ParseException e) {
Log.e(LOGTITLE, "Got ParseException on "+text);
Log.e(LOGTITLE, "Got ParseException on " + text);
throw new RuntimeException(e);
}
if (normalTime != null) {
// display the result
timePicker.setHour(
sanitiseHour(
convertToSystemTZ(normalTime[0])
)
timePicker.setHour(sanitiseHour(convertToSystemTZ(normalTime[0]))
/* convert normalTime[0] (hour) to InternetTime.TIMEZONE */);
Log.d(LOGTITLE, ""+timePicker.getHour());
//Log.d("DEBUG", "Converted written beats hour: "+convertToSystemTZ(normalTime[0]));
//Log.d("DEBUG", "Converted, sanitised written beats hour: "+sanitiseHour(convertToSystemTZ(normalTime[0])));
//Log.d("DEBUG", "Timepicker hour: "+timePicker.getHour());
if (normalTime.length > 1)
timePicker.setMinute(normalTime[1]);
if (normalTime.length > 1) timePicker.setMinute(normalTime[1]);
} else {
Log.w(LOGTITLE, "normalTime is null");
}
@ -136,10 +128,12 @@ public class ConverterFragment extends Fragment {
}
private int convertToGMTPlus1(int hour) {
//Log.d("DEBUG", "convertToGMTPlus1 - hour: " + hour);
return hour - getDifference(false);
}
private int convertToSystemTZ(int hour) {
//Log.d("DEBUG", "convertToSystemTZ - hour: " + hour);
return hour + getDifference(false);
}
@ -152,8 +146,7 @@ public class ConverterFragment extends Fragment {
private int getDifference(boolean update) {
// if differenceBetweenSystemTZAndInternetTimeTZ is uninitialised, or an update was requested
if (differenceBetweenSystemTZAndInternetTimeTZ ==
UNINITIALISED_DIFFERENCE_BETWEEN_SYSTEMTZ_AND_INTERNETTIMETZ || update) {
if (differenceBetweenSystemTZAndInternetTimeTZ == UNINITIALISED_DIFFERENCE_BETWEEN_SYSTEMTZ_AND_INTERNETTIMETZ || update) {
// initialise it:
saveDifference(true);
}
@ -168,6 +161,7 @@ public class ConverterFragment extends Fragment {
int hourInternetTimeTZ = TimeUtils.getCurrentHour(InternetTime.TIMEZONE);
// 3. calculate the difference
differenceBetweenSystemTZAndInternetTimeTZ = hourSystemTZ - hourInternetTimeTZ;
//Log.d("DEBUG", "Difference: " + differenceBetweenSystemTZAndInternetTimeTZ);
}
// we should make sure that we're using the correct, updated system TimeZone

View file

@ -17,8 +17,8 @@ public class InternetTime {
public static final TimeZone TIMEZONE = TimeZone.getTimeZone(TIMEZONEID);
private static final float MILLIS_IN_A_SECOND = 1000f,
SECONDS_IN_A_MINUTE = 60f,
MINUTES_IN_AN_HOUR = 60f;
SECONDS_IN_A_MINUTE = 60f,
MINUTES_IN_AN_HOUR = 60f;
private final double initial; // set when obj is created
@ -89,7 +89,7 @@ public class InternetTime {
// @return: [0]: hour; [1]: minute; [2]: seconds; [3]: millis
public static int[] beatToTime(double beats) {
return doubleHoursToTime(beatToDoubleHours(beats));
return doubleHoursToTime(beatToDoubleHours(sanitiseBeats(beats)));
}
public static double getCurrentTimeBeats() {

View file

@ -6,10 +6,7 @@ import java.util.Map;
import java.util.TimeZone;
public class TimeUtils {
public static final int HOUR_GET_CODE = 0,
MINUTE_GET_CODE = 1,
SECOND_GET_CODE = 2,
MILLISECOND_GET_CODE = 3;
public static final int HOUR_GET_CODE = 0, MINUTE_GET_CODE = 1, SECOND_GET_CODE = 2, MILLISECOND_GET_CODE = 3;
private static final Map<TimeZone, Calendar> TZToC = new HashMap<>();
@ -79,8 +76,9 @@ public class TimeUtils {
}
}
// returns min < n < max ((n % max) + min)
// min < n < max
// shift a value and keep it inside a range
public static double sanitise(double n, double min, double max) {
return (n % max) + min;
return (n - min + max) % max + min;
}
}