[Nextcloud/android] passcode 화면에서 뒤로가기 누르면 앱 닫도록 코드 구현 후 PR

💚이전글 읽기💚




버그로 오해받은 이슈가 다시 enhancement label로 수정되었다.#7343 
그리고 멤버 개발자가 설명 고맙다고 말하면서 좋은 개선 사항이라 칭찬해줬다..ㅎㅎ😎

나... 칭찬 받았다

멤버 개발자의 의견을 듣고 나니 PR을 날려도 되겠다고 생각했다.

tobiasKaminsky 멤버 개발자는 구현을 정말 빠르게하고 PR을 날린다. 그래서 지금 당장 코드 구현을 하지 않으면 코드 기여를 할 수 없을거란 조마조마한 마음에ㅋㅋㅋ 얼른 안드로이드 스튜디오를 열어 코드 분석을 하였다. 

직전에 passcodelock.xml을 수정했기 때문에 이 레이아웃을 사용하는 클래스를 찾아봤다.
PassCodeActuvuty.java에서 사용하고 있었다. 그래서 이 클래스를 살펴봤다.

코드를 보니까 passcode를 설정하거나 해제할때도 이 클래스를 사용했다.
처음에는 onBackPressed()를 수정하여 앱을 실행시켜봤다. 근데.. 뒤로가기가 안된다.. 너무 쉽게 생각했나..😂

그래서 클래스 내부함수를 다시 확인했고, 그 중 onKeyDown()에서 키이벤트 관련 코드들이 있었다. 

1
2
3
4
5
6
7
8
9
10
11
@Override
    public boolean onKeyDown(int keyCode, KeyEvent event){
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()== 0){
            if (ACTION_REQUEST_WITH_RESULT.equals(getIntent().getAction()) ||
                ACTION_CHECK_WITH_RESULT.equals(getIntent().getAction())) {
                finish();
            }
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
cs

주석을 읽어보니 여기서 뒤로가기 이벤트를 관리하는 것 같다!

ACTION_REQUEST_WITH_RESULT, ACTION_CHECK_WITH_RESULT는 passcode를 설정하거나 해제 동작 화면을 의미하는 변수인 것 같다. 그래서 다른 변수가 있나 찾아 봤는데, ACTION_CHECK 변수가 있었다. 변수명에서 오는 느낌이 딱 내가 원하는 passcode 화면이었다. 그래서 간단하게 Toast를 띄워 확인해봤는데.. 맞췄다!! 찾았다!!! 

passcode확인 화면에서 뒤로가기를 눌렀을 때! Toast Message가 잘 보인다. ㅎㅎ

제일 안에 있는 if문에 else if문을 추가했다.
그런데 passcode를 설정하거나 해제하기보다는 확인하는 게 더더더 자주 사용되지 않을까? 그래서 if문의 순서를 바꿨다. 아주 조금이라도 효율이 더 좋아질거라 믿는다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event){
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()== 0){
            if(ACTION_CHECK.equals(getIntent().getAction())){
                moveTaskToBack(true);
                finishAndRemoveTask();
            }else if (ACTION_REQUEST_WITH_RESULT.equals(getIntent().getAction()) ||
                ACTION_CHECK_WITH_RESULT.equals(getIntent().getAction())) {
                finish();
            }
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
cs

코드를 실행해보니 원하는 대로 잘 동작하였다.

현재는 PR을 날리고 의견을 기다리고 있는 상태이다.#7372 제발 제발 머지해주세요..🙏🏻

 


Android version: 5

Device model: Samsung Galaxy S9

Nextcloud app version: 3.15.0 Alpha 1



una.kwon Github: https://github.com/Kuuuna98
Nextcloud/android Github: https://github.com/nextcloud/android

댓글

  1. 헉!😲 코드에 기여 하시다니 너무 잘 된 일이네요!
    꼭 merge 될 것 같아요~! 👍

    답글삭제
    답글
    1. 감사합니다~💚💚
      얼른 merge되었다는 알림이 오면 좋겠어요🙏🏻

      삭제
  2. 코드 구현 후 PR ,, ! 이뤄질 것 같아요! 👍👍 꼭 merge 되었으면 좋겠어요 🙏🏻

    답글삭제
  3. 코드 기여 대단해요 ㅠㅠㅠ
    확인해보니까 관리자님이 to review 태그 달아주셨네요!
    merge 잘되셨으면 좋겠습니다^^

    답글삭제
  4. 코드 기여라니 진짜 대단하신거 같아요!!

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물

[Nextcloud/android] 배터리 최적화 제외 여부 판단 오류 (Issue #7304)

[Nextcloud/android] passcode 화면에서 뒤로가기 이벤트 PR -> Merge

[Nextcloud/server, android] 개발 환경 구성