Esse timer só é desligado na função stopTimer(), que por sua vez é chamada apenas no pause() da app.
Uma forma melhor de lidar com isto seria: ao invés de ter um método stopTimer(), simplesmente verificar se já existe um ao chamar o setInterval():
if ( tt.thread )
clearInterval(tt.thread);
tt.thread = setInterval(function() {...})
Outra forma seria o seguinte. Suponho que a necessidade do timer é para lidar com diferenças entre o relógio "do device" e o relógio "oficial do tt". Podemos verificar a diferença entre eles na linha 150:
var offset = response.deviceInfo.dtTimeEvent.getTime() - new Date().getTime()
Depois, armazenamos este offset em uma variável privada. Dessa forma, a função que "desenha" o timer seria apenas:
app.showTimer( new Date().getTime() - offset )
e não haveria mais a necessidade de "somar 1 a cada loop do timer", que é o que está causando a variação de velocidade do timer.
OBS: Recomendo também usar o moment.js para tarefas de formatação e parse de tempo. A função showTimer() poderia ser substituída inteiramente por:
Em algumas situações, o relógio avança mais rápido do que deveria. Lendo o código, na linha 152 do tt.js é disparado um timer:
tt.thread = setInterval(function() { app.showTimer(tt.time); tt.time.timestamp = +tt.time.timestamp + 1; }, 1000);
Esse timer só é desligado na função stopTimer(), que por sua vez é chamada apenas no pause() da app.
Uma forma melhor de lidar com isto seria: ao invés de ter um método stopTimer(), simplesmente verificar se já existe um ao chamar o setInterval():
if ( tt.thread ) clearInterval(tt.thread);
tt.thread = setInterval(function() {...})
Outra forma seria o seguinte. Suponho que a necessidade do timer é para lidar com diferenças entre o relógio "do device" e o relógio "oficial do tt". Podemos verificar a diferença entre eles na linha 150:
var offset = response.deviceInfo.dtTimeEvent.getTime() - new Date().getTime()
Depois, armazenamos este offset em uma variável privada. Dessa forma, a função que "desenha" o timer seria apenas:
app.showTimer( new Date().getTime() - offset )
e não haveria mais a necessidade de "somar 1 a cada loop do timer", que é o que está causando a variação de velocidade do timer.
OBS: Recomendo também usar o moment.js para tarefas de formatação e parse de tempo. A função showTimer() poderia ser substituída inteiramente por:
app.el("time").innerHTML = moment(time).format("HH:mm:ss");