Skip to content

Instantly share code, notes, and snippets.

View jonrysimbolon's full-sized avatar
😍
Ngoding terossssss

Jonry Simbolon jonrysimbolon

😍
Ngoding terossssss
View GitHub Profile
package com.jonrysimbolon.base.adapter
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.core.view.isVisible
import androidx.paging.LoadState
import androidx.paging.LoadStateAdapter
import androidx.recyclerview.widget.RecyclerView
import com.jonrysimbolon.base.databinding.ItemLoadingBinding
package com.jonrysimbolon.base.adapter
import android.view.View
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.jonrysimbolon.base.model.BaseModel
abstract class BaseRecyclerViewAdapter<VH : ViewHolder, T, I: BaseModel<T>> : RecyclerView.Adapter<VH>() {
package com.jonrysimbolon.base.adapter
import androidx.paging.PagingSource
import androidx.paging.PagingState
/*
class BasePagingSource(
private val remote: ApiService,
private val idCategory: String,
) : PagingSource<Int, MovieModel>() {
package com.jonrysimbolon.base.adapter
import androidx.paging.PagingDataAdapter
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.jonrysimbolon.base.model.BaseModel
abstract class BasePagingDataAdapter<I, T : BaseModel<I>, VH : RecyclerView.ViewHolder>
: PagingDataAdapter<T, VH>(object : DiffUtil.ItemCallback<T>() {
override fun areItemsTheSame(oldItem: T, newItem: T): Boolean {
@jonrysimbolon
jonrysimbolon / fragment_detail.xml
Last active August 25, 2023 08:53
1. script yang pas ketika ingin menu berada dibawah sesuai imageview, maka ketika discroll, toolbar tersebut bakalan ngikut keatas dan gk collapse karna mode pin| 2. harap gunakan theme yg non material 3 sprti Theme.MaterialComponents.DayNight.NoActionBar bukan Theme.Material3.DayNight.NoActionBar biar animasi title mengecilnya itu mulus, kalo p…
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/coordinatorLayout">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
@jonrysimbolon
jonrysimbolon / Perbedaan antara mkdir dan mkdirs
Created March 1, 2022 10:42
Perbedaan antara mkdir dan mkdirs
According to me,
mkdir membuat file tanpa parent nya, sehingga dapat terjadi error akan tetapi beberapa foldernya berhasil terbuat, sedangkan
mkdirs membuat file langsung satu set dengan parent nya.
jika ada yang ingin menambahkan / memperbaiki, dipersilahkan.
agar siapa yang melihat file ini dapat mengerti antara mkdir dan mkdirs.
dan juga untuk teman kita yang malas belajar bahasa inggris, supaya paham mengenai mkdir dan mkdirs.
@jonrysimbolon
jonrysimbolon / BaseClass.kt
Last active April 19, 2024 12:57
Deprecated "windowManager.defaultDisplay.getMetrics(displayMetrics)"
private fun screenValue() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val defaultDisplay =
DisplayManagerCompat.getInstance(this).getDisplay(Display.DEFAULT_DISPLAY)
val displayContext = createDisplayContext(defaultDisplay!!)
val width = displayContext.resources.displayMetrics.widthPixels
val height = displayContext.resources.displayMetrics.heightPixels
@jonrysimbolon
jonrysimbolon / BaseClass.kt
Created February 17, 2022 08:56
Change day to indonesian day
fun changeDate(date: String): String {
//val myFormat = "EEEE, dd-MM-yyyy"
val dateKom = date.split(", ")
val dayStr = dateKom[0]
val dateStr = dateKom[1]
var showDayDate = ""
when (dayStr) {
"Monday" -> {
showDayDate = "Senin, $dateStr"
@jonrysimbolon
jonrysimbolon / BaseClass.kt
Created February 17, 2022 08:13
format rupiah
private fun formatRupiah(number: Double): String {
val localeID = Locale("in", "ID")
val formatRupiah = NumberFormat.getCurrencyInstance(localeID)
return formatRupiah.format(number)
}