More detailed time display in IdlePreference

This commit is contained in:
Christopher Eby 2011-08-24 16:37:55 -05:00
parent 025c6e20f8
commit 9224095dba
2 changed files with 26 additions and 16 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2010 Christopher Eby <kreed@kreed.org>
Copyright (C) 2010, 2011 Christopher Eby <kreed@kreed.org>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -85,13 +85,17 @@ THE SOFTWARE.
<string name="title_by_artist">%1$s by %2$s</string>
<!-- Preferences -->
<plurals name="seconds">
<item quantity="one">01 second</item>
<item quantity="other">%02d seconds</item>
</plurals>
<plurals name="minutes">
<item quantity="one">1 minute</item>
<item quantity="other">%d minutes</item>
<item quantity="one">01 minute</item>
<item quantity="other">%02d minutes</item>
</plurals>
<plurals name="hours">
<item quantity="one">1 hour</item>
<item quantity="other">%d hours</item>
<item quantity="one">01 hour</item>
<item quantity="other">%02d hours</item>
</plurals>
<string name="pref_output">Audio Output</string>

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2010 Christopher Eby <kreed@kreed.org>
* Copyright (C) 2010, 2011 Christopher Eby <kreed@kreed.org>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@ -95,15 +95,21 @@ public class IdlePreference extends DialogPreference implements SeekBar.OnSeekBa
{
Resources res = getContext().getResources();
int value = mValue;
String text;
if (value >= 3570) {
int hours = (int)Math.round(value / 3600f);
text = res.getQuantityString(R.plurals.hours, hours, hours);
StringBuilder text = new StringBuilder();
if (value >= 3600) {
int hours = value / 3600;
text.append(res.getQuantityString(R.plurals.hours, hours, hours));
text.append(", ");
int minutes = value / 60 - hours * 60;
text.append(res.getQuantityString(R.plurals.minutes, minutes, minutes));
} else {
int minutes = (int)Math.round(value / 60f);
text = res.getQuantityString(R.plurals.minutes, minutes, minutes);
int minutes = value / 60;
text.append(res.getQuantityString(R.plurals.minutes, minutes, minutes));
text.append(", ");
int seconds = value - minutes * 60;
text.append(res.getQuantityString(R.plurals.seconds, seconds, seconds));
}
mValueText.setText(text);
mValueText.setText(text.toString());
}
@Override
@ -115,7 +121,7 @@ public class IdlePreference extends DialogPreference implements SeekBar.OnSeekBa
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
{
// Approximate an exponential curve with x^4. Produces a value from 60-10860.
// Approximate an exponential curve with x^4. Produces a value from MIN-MAX.
if (fromUser) {
float value = seekBar.getProgress() / 1000.0f;
value *= value;
@ -126,10 +132,10 @@ public class IdlePreference extends DialogPreference implements SeekBar.OnSeekBa
}
public void onStartTrackingTouch(SeekBar seekBar)
{
{
}
public void onStopTrackingTouch(SeekBar seekBar)
{
}
}
}