Skip to content

Instantly share code, notes, and snippets.

View IhwanID's full-sized avatar

Ihwan IhwanID

View GitHub Profile
package id.ihwan.aac.network
import io.reactivex.Observer
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.disposables.Disposable
abstract class ApiObserver<T> constructor(private val compositeDisposable: CompositeDisposable): Observer<T> {
override fun onComplete() {
}
package id.ihwan.aac.network
import id.ihwan.aac.model.MovieResponse
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.schedulers.Schedulers
class MainRepository {
private val apiService = ApiFactory.create()
private val compositeDisposable = CompositeDisposable()
package id.ihwan.aac.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import androidx.recyclerview.widget.RecyclerView
import id.ihwan.aac.R
import id.ihwan.aac.databinding.ItemMovieBinding
import id.ihwan.aac.model.Movie
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="itemMovie"
type="id.ihwan.aac.viewmodel.ItemMovieViewModel"/>
</data>
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="main"
type="id.ihwan.aac.viewmodel.MainViewModel"/>
</data>
package id.ihwan.aac.utils
import android.widget.ImageView
import androidx.databinding.BindingAdapter
import com.squareup.picasso.Picasso
class BindingAdapter {
companion object {
@JvmStatic
package id.ihwan.aac.viewmodel
import android.app.Application
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.MutableLiveData
import id.ihwan.aac.model.MovieResponse
import id.ihwan.aac.network.MainRepository
class MainViewModel(application: Application): AndroidViewModel(application) {
package id.ihwan.aac.viewmodel
import androidx.databinding.ObservableField
import androidx.lifecycle.ViewModel
import id.ihwan.aac.model.Movie
class ItemMovieViewModel(model: Movie): ViewModel() {
var title: ObservableField<String> = ObservableField()
var overview: ObservableField<String> = ObservableField()
var poster: ObservableField<String> = ObservableField()
package id.ihwan.aac.view
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProviders
import androidx.recyclerview.widget.LinearLayoutManager
import id.ihwan.aac.R
import id.ihwan.aac.adapter.MainAdapter
@IhwanID
IhwanID / build.gradle
Created June 16, 2019 11:28
Java Lambda 8 Expressions
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}