Skip to content

Instantly share code, notes, and snippets.

View yogacp's full-sized avatar
:octocat:
Exploring

Yoga C. Pranata yogacp

:octocat:
Exploring
View GitHub Profile
@yogacp
yogacp / UserActivity.kt
Created February 21, 2019 07:11
Sample of User Activity
class UserActivity : AppCompatActivity() {
//.....
val presenter = UserPresenter()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Activity doesn't need to know how presenter works
// for fetching data, it just know how to call the functions
@yogacp
yogacp / UserPresenter.kt
Created February 21, 2019 07:00
Sample Presenter with Interfaces
interface UserActionListener {
fun getUserData()
}
class UserPresenter : UserActionListener() {
// .....
override fun getUserData() {
val userLoginData = gson.fromJson(session.getUserLogin(), DataLogin::class.java)
}
@yogacp
yogacp / SampleSearchViewExt.kt
Created February 21, 2019 05:25
Sample search view in Kotlin using Extention Function
interface SearchViewQueryTextCallback {
fun onQueryTextSubmit(query: String?)
}
fun SearchView.setupQueryTextSubmit (callback: SearchViewQueryTextCallback) {
setOnQueryTextListener(object : SearchView.OnQueryTextListener{
override fun onQueryTextSubmit(query: String?): Boolean {
callback.onQueryTextSubmit(query)
return true
}
interface SearchViewQueryTextCallback {
fun onQueryTextSubmit(query: String?)
}
class SearchViewQueryTextListener(val callback: SearchViewQueryTextCallback): SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?): Boolean {
callback.onQueryTextSubmit(query)
return true
}
@yogacp
yogacp / SampleSearchview.kt
Created February 21, 2019 04:49
Sample of setOnQueryTextListener
mSearchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener{
override fun onQueryTextSubmit(query: String?): Boolean {
// Only need this method
return true
}
override fun onQueryTextChange(query: String?): Boolean {
// We don't need to implement this method
return false
@yogacp
yogacp / MyAdapter.kt
Last active February 20, 2019 17:06
SRP sample for RecyclerView.Adapter
class MyAdapter(val friendList: List<FriendListData.Friend>) :
RecyclerView.Adapter<CountryAdapter.MyViewHolder>() {
inner class MyViewHolder(view: View) : RecyclerView.ViewHolder(view) {
var name: TextView = view.findViewById(R.id.text1)
var popText: TextView = view.findViewById(R.id.text2)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val friend = friendList[position]
@yogacp
yogacp / CustomAdapter.kt
Created February 20, 2019 16:08
Sample of Custom RecyclerView.Adapter class
class FriendListAdapter(val friendList: List<FriendListData.Friend>) :
RecyclerView.Adapter<CountryAdapter.MyViewHolder>() {
inner class MyViewHolder(view: View) : RecyclerView.ViewHolder(view) {
var name: TextView = view.findViewById(R.id.text1)
var popText: TextView = view.findViewById(R.id.text2)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val friend = friendList[position]
@yogacp
yogacp / football_club.json
Created February 15, 2019 15:00
MozBelajar Football Club JSON
{
"teams": [
{
"idTeam": "133604",
"idSoccerXML": "9",
"intLoved": "1",
"strTeam": "Arsenal",
"strTeamShort": "Ars",
"strAlternate": "Gunners",
"intFormedYear": "1892",
@yogacp
yogacp / HomePageActivity.kt
Created January 15, 2019 07:16
Activity Class
class HomePageActivity : AppCompatActivity() {
val repository: SportDbRepository by inject()
// .....
}
@yogacp
yogacp / MainApp.kt
Last active January 15, 2019 07:01
Main Application
class MainApp : Application() {
override fun onCreate() {
super.onCreate()
startKoin(this, appComponent)
}
}