본문 바로가기
안드로이드 개발/📱 캘람

230122 캘람 개발 일지

by 아이엔 / ienground 2023. 1. 22.

왼쪽은 좀 극단적으로 시간을 추가해봤는데 튀어나옴은 물론이요, 실행하면 시간이 넘어가는 건지 (저거 타입은 기억이 안 나는데 아마 Long일 것이다. Long max보다는 큰데 왜지? 아마 CountDownTimer에서 지원하는 값보다 큰 듯) 아예 앱이 튕겨버린다. 그 이상 추가되지 않도록 예외 설정을 해두어야 하겠다.

 

탁상시계에서 이제 타이머, 스톱워치를 간단하게 실행하거나 현황을 볼 수 있다. 탁상시계 켜놓고 공부하거나 하는 사람들이 간단하게 쓰기 좋게. 그리고 방해금지 모드를 추가해야 할 듯 .. (알림 안 보이게 하는 용도)

 

멀티 타이머를 구현해야 한다.

원래는 멀티 타이머를 출시 이후에 구현하려고 했는데, 예약 기능의 존재로 멀티 타이머가 돌아갈 가능성이 생겼다. 스톱워치의 경우에는 멀티로 돌아가지 않도록 아예 기능적으로 차단하는 갯수가 적어서 간단했지만 타이머는 타이머를 실행할 수 있는 영역이 너무 많아서 그게 어렵다.

 

그래서 그냥 지금 구현을 해야 할 것으로 보인다.

 

TimerService (2)

첫 Timer 실행 시 (array size나 service running check 등으로 확인) startForegroundService.

이후 Timer 추가 시 Timer는 array 내에 독립적으로 돌아간다.

Timer가 종료될 시 즉시 array에서 종료시키기.

마지막 Timer 종료 시 (array size == 1인 상태에서 Timer 종료.)  stopService.

 

울리는 건 합쳐서. 끄는 것도 통합으로. 시간은 가장 처음으로 종료된 타이머 기준 -00:01

테스트 앱을 만들어서 이후에 적용할 예정.

 

(21:56)

방해금지 모드 추가! 휴대폰을 방해금지 모드로 하는 건 조금 Too much일 것 같아서 하지는 않았다. 이건 필요하면 뭐 쉽게 할 수 있는 부분이니까 상관 없는데. 여튼 방해금지 모드 스위치를 Deskclock에 추가했고 이 스위치는 SharedPreferences에 값이 들어가서 유지된다. 방해금지 모드 스위치가 켜지면 알림을 안 보이게 해놨다.

 

탁상시계의 타이머랑 스톱워치도 이 정도로 마무리한다.

처음 상태에서 한번 누르면 타이머/스톱워치 시작이 가능하고, 시작된 상태에서는 일시정지 및 재개가 가능하다. Chip을 꾹 누르면 초기화(삭제)가 가능하다. 이 아이들은 캘람의 타이머/스톱워치랑 연동되어 있고 독립되지 아니해서 탁상시계 진입 전 돌아가던 타이머/스톱워치가 보이는 것은 물론이고, 탁상시계에서 시작된 아이들도 나가면 보인다.

 

이제 해결해야 할 아이들

1. 타이머 멀티 running

2. 스톱워치 및 타이머, 외부에서 눌러서 들어갔을 때 Progress 혹은 데이터값이 제대로 불러와지지 않음

3. 스톱워치 따닥하면 튕김. 사유 찾아야..