이번편은 ChatFragment를 생성하는 것이다.
이 프래그먼트는 기반 앱의 핵심인 채팅이 이루어지는 공간이며, 자동변환을 한뒤 수정하는 방법을 사용하려 하였으나 코드가 꼬여 있어, 의미를 파하며 처음부터 끝까지 새로 코딩을 해보도록하겠다.
fragment_chat.xml 는 기반 앱을 복사하고 recyclerview만 android.support.v7.widget.RecyclerView 에서 androidx.recyclerview.widget.RecyclerView로 교체하였다.
먼저 클래스 맴버 변수들의 val/var을 고려하여 재생성한다.
위와 같은 자바 선언을 일단은 아래와 같이 만들어주고, 필요할때 lateinit var 혹은 lazy를 사용하도록 하겠다.
첫 부분은 아래 getInstance인데 이는 uid roomid를 받은뒤 ChatFragment를 생성시켜 리턴하는 것이다.
위는 싱글턴 패턴이므로 동반객체 안에 아래와 같이 생성해준다.
그다음부분은 onCreateView 이다.
이는 다음과 같이 바꾸어 주었다
그 도중 아래와 같은 버튼 리스너부분은 람다형식으로 묶어주어 수명주기 안에 구현하였다.
구현한 부분은 아래와 같다.
위와 같다.
이제 위에 빨간 메소드들을 가져와서 코틀린변환을 하면 아래와 같다.
먼저 sendMessage는 아래와 같다.
여기서 주의해야할 것은 람다형식 메소드에 대한 리턴형은 return@메소드명 이 되어야한다는것이다.
RecyclerViewAdapter는 조금있다 구현한다.
위와 같이 내부 메소드를 코틀린으로 변환하였다. 이제 ChatFragment에 남은 것은리사이클러뷰 어뎁터이다.