SeunAdelekan/Kanary

View on GitHub
src/main/com/iyanuadelekan/kanary/app/lifecycle/LifeCycleManager.kt

Summary

Maintainability
A
0 mins
Test Coverage
package com.iyanuadelekan.kanary.app.lifecycle

import com.iyanuadelekan.kanary.app.LifeCycleEvent
import com.iyanuadelekan.kanary.app.framework.lifecycle.LifeCycleManager as FrameworkLifeCycleManager

/**
 * @author Iyanu Adelekan on 25/11/2018.
 */
class LifeCycleManager : FrameworkLifeCycleManager() {

    private lateinit var startEvent: LifeCycleEvent
    private lateinit var stopEvent: LifeCycleEvent

    /**
     * Invokes start event.
     */
    override fun onStart() {
        if (this::startEvent.isInitialized) {
            startEvent()
        }
    }

    /**
     * Invokes stop event.
     */
    override fun onStop() {
        if (this::stopEvent.isInitialized) {
            stopEvent()
        }
    }

    /**
     * Invoked to add an onStart listener.
     *
     * @param listener - start event listener.
     */
    override fun addStartEvent(listener: LifeCycleEvent) {
        startEvent = listener
    }

    /**
     * Invoked to add an onStop listener.
     *
     * @param listener - stop event listener.
     */
    override fun addStopEvent(listener: LifeCycleEvent) {
        stopEvent = listener
    }
}