Talentica/AndroidWithKotlin

View on GitHub
customcamera/src/main/java/com/talentica/androidkotlin/customcamera/ui/SlowkaActivity.kt

Summary

Maintainability
A
0 mins
Test Coverage
package com.talentica.androidkotlin.customcamera.ui

import android.app.Activity
import android.os.Build
import android.os.Bundle
import androidx.core.content.ContextCompat
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import android.view.MenuItem
import android.view.WindowManager
import com.talentica.androidkotlin.customcamera.R
import com.talentica.androidkotlin.customcamera.presenter.ActivityPresenter
import kotterknife.bindView

abstract class SlowkaActivity <T>: AppCompatActivity() {

    protected val toolbar: Toolbar by bindView(R.id.toolbar)
    protected abstract val activityPresenter: ActivityPresenter<T>

    internal fun setContentViewWithToolbar(layoutResID: Int, isToolbarEnabled:Boolean) {
        super.setContentView(layoutResID)
        if (isToolbarEnabled) {
            setupToolbar()
        }

        setupStatusBarForLolipopDevices()
    }

    open internal fun setupToolbar() {
        setSupportActionBar(toolbar)
//        supportActionBar?.title = null
    }

    private fun setupStatusBarForLolipopDevices() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            window.statusBarColor = ContextCompat.getColor(this, R.color.colorPrimaryDark);
        }
    }

    internal fun attachPresenter(activityView: T,
                                 activity: Activity,
                                 savedInstanceState: Bundle?) {
        activityPresenter.attach(activityView, activity, savedInstanceState)
    }

    override fun onResume() {
        super.onResume()
        activityPresenter.resume()
    }

    override fun onPause() {
        super.onPause()
        activityPresenter.pause()
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        if (item.itemId == android.R.id.home) {
            onBackPressed()
            return true
        }
        return super.onOptionsItemSelected(item)
    }
}