/* * Copyright (c) 2020 Hemanth Savarla. * * Licensed under the GNU General Public License v3 * * This is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * */ package code.name.monkey.retromusic.fragments.base import android.os.Bundle import android.view.View import androidx.annotation.LayoutRes import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R import code.name.monkey.retromusic.activities.MainActivity import code.name.monkey.retromusic.extensions.setLightStatusBarAuto import code.name.monkey.retromusic.extensions.setTaskDescriptionColorAuto import code.name.monkey.retromusic.fragments.LibraryViewModel import org.koin.androidx.viewmodel.ext.android.sharedViewModel abstract class AbsMainActivityFragment(@LayoutRes layout: Int) : AbsMusicServiceFragment(layout) { val libraryViewModel: LibraryViewModel by sharedViewModel() val mainActivity: MainActivity get() = activity as MainActivity override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) setHasOptionsMenu(true) mainActivity.setTaskDescriptionColorAuto() } private fun setStatusBarColor(view: View, color: Int) { val statusBar = view.findViewById(R.id.status_bar) if (statusBar != null) { if (VersionUtils.hasMarshmallow()) { statusBar.setBackgroundColor(color) mainActivity.setLightStatusBarAuto(color) } else { statusBar.setBackgroundColor(color) } } } fun setStatusBarColorAuto(view: View) { val colorPrimary = ATHUtil.resolveColor(requireContext(), R.attr.colorSurface) // we don't want to use statusbar color because we are doing the color darkening on our own to support KitKat if (VersionUtils.hasMarshmallow()) { setStatusBarColor(view, colorPrimary) } else { setStatusBarColor(view, ColorUtil.darkenColor(colorPrimary)) } } }