Skip to content

Instantly share code, notes, and snippets.

View fornewid's full-sized avatar
🤖
on android

Sungyong An fornewid

🤖
on android
View GitHub Profile
@fornewid
fornewid / BaseViewModel.kt
Created March 1, 2019 04:42
BaseViewModel.kt for RxJava
abstract class BaseViewModel : ViewModel() {
private val disposables = CompositeDisposable()
override fun onCleared() {
disposables.dispose()
super.onCleared()
}
@fornewid
fornewid / {graph_name}.xml
Last active March 10, 2019 06:10
res/navigation/{graph_name}.xml
<navigation app:startDestination="@+id/first">
<!-- Global Action -->
<action
android:id="@+id/action_to_second"
app:destination="@id/second" />
<!-- Destination -->
@fornewid
fornewid / SecondFragmentDirections.kt
Created March 10, 2019 06:42
Navigation 훑어보기_1
// Generated by Navigation Architecture Components.
class SecondFragmentDirections private constructor() {
private data class ActionToThird(val label: String?) : NavDirections {
override fun getActionId(): Int = R.id.action_to_third
@Suppress("CAST_NEVER_SUCCEEDS")
override fun getArguments(): Bundle {
val result = Bundle()
if (Parcelable::class.java.isAssignableFrom(String::class.java)) {
result.putParcelable("label", this.label as Parcelable?)
@fornewid
fornewid / ThirdActivityArgs.kt
Last active March 10, 2019 06:46
Navigation 훑어보기_2
// Generated by Navigation Architecture Components.
data class ThirdActivityArgs(val label: String?) : NavArgs {
@Suppress("CAST_NEVER_SUCCEEDS")
fun toBundle(): Bundle {
val result = Bundle()
if (Parcelable::class.java.isAssignableFrom(String::class.java)) {
result.putParcelable("label", this.label as Parcelable?)
} else if (Serializable::class.java.isAssignableFrom(String::class.java)) {
result.putSerializable("label", this.label as Serializable?)
} else {
@fornewid
fornewid / activity_single.xml
Created March 10, 2019 07:44
Navigation 훑어보기_4
<fragment
android:id="@+id/navHostFragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/{graph_name}" />
@fornewid
fornewid / BaseFragment.kt
Last active March 17, 2019 15:27
Lazy ViewModel with Dagger2
// SpeakerFragment.kt
class SpeakerFragment : BaseFragment() {
private val speakerViewModel by viewModel<SpeakerViewModel>()
}
// BaseFragment.kt
abstract class BaseFragment : DaggerFragment() {
@Inject
package soup.gdg.navigation.sample.navigation
import android.content.Context
import android.os.Bundle
import android.util.AttributeSet
import android.util.Log
import androidx.annotation.CallSuper
import androidx.annotation.IdRes
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.Fragment