Skip to content

Instantly share code, notes, and snippets.

View mym0404's full-sized avatar
๐Ÿ”Š
Loud your code

MJ Studio mym0404

๐Ÿ”Š
Loud your code
View GitHub Profile
class Car(private var engine : CarEngine)
class CarEngine
class MyModalBottomSheet : BottomSheetDialogFragment() {
/**
* ํ˜„์žฌ BottomSheet(Fragment)์˜ Theme๋ฅผ ์–ป์–ด์˜ค๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•ด์„œ ์šฐ๋ฆฌ๊ฐ€ ์ปค์Šคํ…€ํ•˜๊ฒŒ ์ •์˜ํ•œ
*
* RoundBottomSheetDialog ๋ผ๋Š” Theme.Design.Light.BottomSheetDialog ์Šคํƒ€์ผ์„ ์ƒ์†ํ•œ ์Šคํƒ€์ผ์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.
*/
override fun getTheme(): Int = R.style.RoundBottomSheetDialog
/**
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
savedInstanceState ?: supportFragmentManager.beginTransaction()
.add(R.id.frameLayoutContainer,MainFragment.newInstance("frameFragment"),null).commit()
}
class MainFragment : DaggerFragment() {
/**
* Custom Dependency in Fragment
*/
@Inject
lateinit var myDependency : IDependency
/**
* Custom Dynamic Argument
@RunWith(AndroidJUnit4::class)
class MainFragmentTest {
@Before
fun setup() {
}
@Test
fun testWithDaggerFragmentFieldInjection() {
@Component(
modules = [
AndroidSupportInjectionModule::class,
FragmentContributorModule::class,
DependencyModule::class
]
)
@AppScope
interface TestAppComponent {
@Component(
modules = [
AndroidSupportInjectionModule::class,
FragmentContributorModule::class,
DependencyModule::class
]
)
@AppScope
interface TestAppComponent {
class MainFragment @Inject constructor(private val myDependency: Dependency) : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View = inflater.inflate(R.layout.fragment_main, container, false)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
dep_tv.text = myDependency.sayMyName()
class MyFragmentFactory @Inject constructor(private val myDependency: Dependency) : FragmentFactory() {
override fun instantiate(classLoader: ClassLoader, className: String): Fragment {
return when(loadFragmentClass(classLoader,className)) {
MainFragment::class.java -> MainFragment(myDependency)
else -> super.instantiate(classLoader, className)
}
}
}
@Beta
public abstract class DaggerAppCompatActivity extends AppCompatActivity
implements HasAndroidInjector {
@Inject DispatchingAndroidInjector<Object> androidInjector;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
AndroidInjection.inject(this);
super.onCreate(savedInstanceState);