Skip to content

Commit

Permalink
base fragment implemented
Browse files Browse the repository at this point in the history
  • Loading branch information
savepopulation committed Jun 11, 2019
1 parent 1184c86 commit f656011
Show file tree
Hide file tree
Showing 4 changed files with 107 additions and 0 deletions.
@@ -0,0 +1,69 @@
package com.raqun.core.presentation.base

import android.os.Bundle
import android.view.*
import android.widget.Toast
import androidx.annotation.LayoutRes
import androidx.annotation.MenuRes
import androidx.annotation.StringRes
import androidx.fragment.app.Fragment
import com.raqun.core.presentation.Constants

abstract class BaseFragment : Fragment(), BaseView {

@LayoutRes
protected abstract fun getLayoutRes(): Int

@MenuRes
open val menuRes = Constants.NO_RES

@StringRes
open val titleRes = Constants.NO_RES

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(menuRes != Constants.NO_RES)
}

override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
super.onCreateOptionsMenu(menu, inflater)
if (menuRes != Constants.NO_RES) {
inflater?.inflate(menuRes, menu)
}
}

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(getLayoutRes(), null, false)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initView()
}

override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
if (titleRes != Constants.NO_RES) {
setActivityTitle(getString(titleRes))
}
}

override fun onError(e: Error) {
Toast.makeText(context, "Unknown error has been occurred!", Toast.LENGTH_LONG).show()
}

protected fun setActivityTitle(title: String) {
if (activity is BaseActivity) {
(activity as BaseActivity).setScreenTitle(title)
}
}

fun getApplication() = activity?.application

fun getApplicationContext() = getApplication()?.applicationContext

open fun initView() {
// can be overridden
}

}
@@ -0,0 +1,26 @@
package com.raqun.core.presentation.base

import android.os.Bundle
import androidx.fragment.app.Fragment
import dagger.android.AndroidInjection
import dagger.android.AndroidInjector
import dagger.android.DispatchingAndroidInjector
import dagger.android.support.HasSupportFragmentInjector
import javax.inject.Inject

abstract class BaseInjectionActivity : BaseActivity(), HasSupportFragmentInjector {

@Inject
lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Fragment>

override fun supportFragmentInjector(): AndroidInjector<Fragment> = dispatchingAndroidInjector

override fun onCreate(savedInstanceState: Bundle?) {
AndroidInjection.inject(this)
super.onCreate(savedInstanceState)
}

open fun onInject() {
// empty for override
}
}
@@ -0,0 +1,5 @@
package com.raqun.core.presentation.base

interface BaseView {
fun onError(e: Error)
}
7 changes: 7 additions & 0 deletions gradle.properties
Expand Up @@ -13,3 +13,10 @@ org.gradle.jvmargs=-Xmx1536m
# org.gradle.parallel=true
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official
android.useAndroidX=true
android.enableJetifier=true

#Incremental annotation processing
kapt.incremental.apt=true
kapt.use.worker.api=true
kapt.include.compile.classpath=false

0 comments on commit f656011

Please sign in to comment.