Skip to content

Commit 278547d

Browse files
author
Kaushik Gopal
committed
feat: refactor playground fragment to kotlin
1 parent 743f24c commit 278547d

2 files changed

Lines changed: 77 additions & 138 deletions

File tree

app/src/main/java/com/morihacky/android/rxjava/fragments/PlaygroundFragment.java

Lines changed: 0 additions & 138 deletions
This file was deleted.
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package com.morihacky.android.rxjava.fragments
2+
3+
import android.content.Context
4+
import android.os.Bundle
5+
import android.os.Handler
6+
import android.os.Looper
7+
import android.view.LayoutInflater
8+
import android.view.View
9+
import android.view.ViewGroup
10+
import android.widget.ArrayAdapter
11+
import android.widget.ListView
12+
import butterknife.ButterKnife
13+
import com.morihacky.android.rxjava.R
14+
15+
class PlaygroundFragment : BaseFragment() {
16+
17+
private var _logsList: ListView? = null
18+
private var _adapter: LogAdapter? = null
19+
20+
private var _attempt = 0
21+
private var _logs: MutableList<String> = ArrayList()
22+
23+
override fun onDestroy() {
24+
super.onDestroy()
25+
ButterKnife.unbind(this)
26+
}
27+
28+
override fun onCreateView(inflater: LayoutInflater?,
29+
container: ViewGroup?,
30+
savedInstanceState: Bundle?): View? {
31+
return inflater!!.inflate(R.layout.fragment_concurrency_schedulers, container, false)
32+
}
33+
34+
override fun onActivityCreated(savedInstanceState: Bundle?) {
35+
super.onActivityCreated(savedInstanceState)
36+
37+
_logsList = activity.findViewById(R.id.list_threading_log) as ListView
38+
39+
activity.findViewById(R.id.btn_start_operation).setOnClickListener { _ ->
40+
_log("Button clicked")
41+
}
42+
43+
_setupLogger()
44+
}
45+
46+
// -----------------------------------------------------------------------------------
47+
// Method that help wiring up the example (irrelevant to RxJava)
48+
49+
private fun _log(logMsg: String) {
50+
51+
if (_isCurrentlyOnMainThread()) {
52+
_logs.add(0, logMsg + " (main thread) ")
53+
_adapter!!.clear()
54+
_adapter!!.addAll(_logs)
55+
} else {
56+
_logs.add(0, logMsg + " (NOT main thread) ")
57+
58+
// You can only do below stuff on main thread.
59+
Handler(Looper.getMainLooper()).post {
60+
_adapter!!.clear()
61+
_adapter!!.addAll(_logs)
62+
}
63+
}
64+
}
65+
66+
private fun _setupLogger() {
67+
_logs = ArrayList<String>()
68+
_adapter = LogAdapter(activity, ArrayList<String>())
69+
_logsList!!.adapter = _adapter
70+
}
71+
72+
private fun _isCurrentlyOnMainThread(): Boolean {
73+
return Looper.myLooper() == Looper.getMainLooper()
74+
}
75+
76+
private inner class LogAdapter(context: Context, logs: List<String>) : ArrayAdapter<String>(context, R.layout.item_log, R.id.item_log, logs)
77+
}

0 commit comments

Comments
 (0)