Skip to content

Instantly share code, notes, and snippets.

View IhwanID's full-sized avatar

Ihwan IhwanID

View GitHub Profile
@IhwanID
IhwanID / CardStackSpacingItemDecoration.kt
Last active July 3, 2019 04:52
costum itemdecoration
import android.content.res.Resources
import android.graphics.Rect
import android.view.View
import androidx.recyclerview.widget.RecyclerView
class CardStackSpacingItemDecoration : RecyclerView.ItemDecoration() {
private val dp = Resources.getSystem().displayMetrics.density
override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) {
@IhwanID
IhwanID / WebViewActivity.kt
Last active July 3, 2019 04:08
webview class
class WebViewActivity : Activity() {
@SuppressLint("SetJavaScriptEnabled")
public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_webview)
val webView = findViewById<WebView>(R.id.webView)
webView.settings.javaScriptEnabled = true
webView.loadUrl(intent.getStringExtra("url"))
@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
}
}
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
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.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.utils
import android.widget.ImageView
import androidx.databinding.BindingAdapter
import com.squareup.picasso.Picasso
class BindingAdapter {
companion object {
@JvmStatic
<?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>
<?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>
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