Improve responsiveness of timer page - 1.180 🚀

This commit is contained in:
Brandon Presley 2023-11-12 23:36:22 +13:00
parent bf6863000f
commit 84ff8a110b
4 changed files with 22 additions and 16 deletions

View File

@ -17,7 +17,7 @@ export interface TickEvent {
} }
export default function TimerPage() { export default function TimerPage() {
const { minutes, seconds } = useTimer(); const { minutes, seconds, update } = useTimer();
const [settings, setSettings] = useState<Settings>(); const [settings, setSettings] = useState<Settings>();
const { colors } = useTheme(); const { colors } = useTheme();
@ -29,11 +29,13 @@ export default function TimerPage() {
const stop = () => { const stop = () => {
NativeModules.AlarmModule.stop(); NativeModules.AlarmModule.stop();
update();
}; };
const add = async () => { const add = async () => {
console.log(`${TimerPage.name}.add:`, settings); console.log(`${TimerPage.name}.add:`, settings);
NativeModules.AlarmModule.add(); NativeModules.AlarmModule.add();
update();
}; };
const progress = useMemo(() => { const progress = useMemo(() => {

View File

@ -85,8 +85,8 @@ android {
applicationId "com.massive" applicationId "com.massive"
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 36205 versionCode 36206
versionName "1.179" versionName "1.180"
} }
signingConfigs { signingConfigs {
release { release {

View File

@ -1,6 +1,6 @@
{ {
"name": "massive", "name": "massive",
"version": "1.179", "version": "1.180",
"private": true, "private": true,
"license": "GPL-3.0-only", "license": "GPL-3.0-only",
"scripts": { "scripts": {

View File

@ -8,19 +8,23 @@ export default function useTimer() {
const [minutes, setMinutes] = useState("00"); const [minutes, setMinutes] = useState("00");
const [seconds, setSeconds] = useState("00"); const [seconds, setSeconds] = useState("00");
const update = () => {
const current: number = NativeModules.AlarmModule.getCurrent();
setMinutes(
Math.floor(current / 1000 / 60)
.toString()
.padStart(2, "0")
);
setSeconds(
Math.floor((current / 1000) % 60)
.toString()
.padStart(2, "0")
);
};
useFocusEffect( useFocusEffect(
useCallback(() => { useCallback(() => {
const current: number = NativeModules.AlarmModule.getCurrent(); update();
setMinutes(
Math.floor(current / 1000 / 60)
.toString()
.padStart(2, "0")
);
setSeconds(
Math.floor((current / 1000) % 60)
.toString()
.padStart(2, "0")
);
const listener = emitter.addListener("tick", (event: TickEvent) => { const listener = emitter.addListener("tick", (event: TickEvent) => {
console.log(`${useTimer.name}.tick:`, { event }); console.log(`${useTimer.name}.tick:`, { event });
setMinutes(event.minutes); setMinutes(event.minutes);
@ -30,5 +34,5 @@ export default function useTimer() {
}, []) }, [])
); );
return { minutes, seconds }; return { minutes, seconds, update };
} }