PlayerAndroid/app/src/main/java/code/name/monkey/retromusic/activities/ShareInstagramStory.kt

129 lines
4.7 KiB
Kotlin
Raw Normal View History

2020-02-02 12:44:16 +00:00
/*
2020-10-06 08:46:04 +00:00
* Copyright (c) 2020 Hemanth Savarla.
2020-02-02 12:44:16 +00:00
*
* Licensed under the GNU General Public License v3
*
2020-10-06 08:46:04 +00:00
* 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.
2020-02-02 12:44:16 +00:00
*
* 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.
2020-10-06 08:46:04 +00:00
*
2020-02-02 12:44:16 +00:00
*/
package code.name.monkey.retromusic.activities
import android.content.res.ColorStateList
import android.graphics.Bitmap
2020-02-02 17:21:26 +00:00
import android.graphics.Color
import android.graphics.drawable.GradientDrawable
2020-02-02 12:44:16 +00:00
import android.net.Uri
import android.os.Bundle
import android.provider.MediaStore.Images.Media
2020-02-02 17:21:26 +00:00
import android.view.MenuItem
2020-02-02 12:44:16 +00:00
import androidx.core.view.drawToBitmap
import code.name.monkey.appthemehelper.ThemeStore
2020-02-02 17:21:26 +00:00
import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.MaterialValueHelper
2020-02-02 12:44:16 +00:00
import code.name.monkey.retromusic.activities.base.AbsBaseActivity
import code.name.monkey.retromusic.databinding.ActivityShareInstagramBinding
import code.name.monkey.retromusic.glide.GlideApp
import code.name.monkey.retromusic.glide.RetroGlideExtension
2020-02-02 17:21:26 +00:00
import code.name.monkey.retromusic.glide.RetroMusicColoredTarget
2020-02-02 12:44:16 +00:00
import code.name.monkey.retromusic.model.Song
import code.name.monkey.retromusic.util.Share
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
2020-02-02 12:44:16 +00:00
/**
* Created by hemanths on 2020-02-02.
*/
class ShareInstagramStory : AbsBaseActivity() {
private lateinit var binding: ActivityShareInstagramBinding
2020-02-02 12:44:16 +00:00
companion object {
const val EXTRA_SONG = "extra_song"
}
2020-02-02 17:21:26 +00:00
override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId == android.R.id.home) {
onBackPressed()
return true
}
return super.onOptionsItemSelected(item)
}
2020-02-02 12:44:16 +00:00
override fun onCreate(savedInstanceState: Bundle?) {
setDrawUnderStatusBar()
super.onCreate(savedInstanceState)
binding = ActivityShareInstagramBinding.inflate(layoutInflater)
setContentView(binding.root)
2020-02-02 17:21:26 +00:00
setStatusbarColor(Color.TRANSPARENT)
2020-02-02 12:44:16 +00:00
binding.toolbar.setBackgroundColor(Color.TRANSPARENT)
setSupportActionBar(binding.toolbar)
2020-02-02 12:44:16 +00:00
val song = intent.extras?.getParcelable<Song>(EXTRA_SONG)
song?.let { songFinal ->
GlideApp.with(this)
.asBitmapPalette()
.songCoverOptions(songFinal)
.load(RetroGlideExtension.getSongModel(songFinal))
.into(object : RetroMusicColoredTarget(binding.image) {
override fun onColorReady(colors: MediaNotificationProcessor) {
val isColorLight = ColorUtil.isColorLight(colors.backgroundColor)
setColors(isColorLight, colors.backgroundColor)
2020-02-02 17:21:26 +00:00
}
})
2020-02-02 12:44:16 +00:00
binding.shareTitle.text = songFinal.title
binding.shareText.text = songFinal.artistName
binding.shareButton.setOnClickListener {
2020-02-02 12:44:16 +00:00
val path: String = Media.insertImage(
contentResolver,
binding.mainContent.drawToBitmap(Bitmap.Config.ARGB_8888),
2020-02-02 12:44:16 +00:00
"Design", null
)
val uri = Uri.parse(path)
2020-02-02 17:39:16 +00:00
Share.shareStoryToSocial(
2020-02-02 12:44:16 +00:00
this@ShareInstagramStory,
uri
)
}
}
binding.shareButton.setTextColor(
2020-02-02 17:21:26 +00:00
MaterialValueHelper.getPrimaryTextColor(
this,
ColorUtil.isColorLight(ThemeStore.accentColor(this))
)
)
binding.shareButton.backgroundTintList =
ColorStateList.valueOf(ThemeStore.accentColor(this))
2020-02-02 12:44:16 +00:00
}
2020-02-02 17:21:26 +00:00
private fun setColors(colorLight: Boolean, color: Int) {
setLightStatusbar(colorLight)
binding.toolbar.setTitleTextColor(
MaterialValueHelper.getPrimaryTextColor(
this@ShareInstagramStory,
colorLight
)
)
binding.toolbar.navigationIcon?.setTintList(
ColorStateList.valueOf(
MaterialValueHelper.getPrimaryTextColor(
this@ShareInstagramStory,
colorLight
)
)
)
binding.mainContent.background =
GradientDrawable(
GradientDrawable.Orientation.TOP_BOTTOM,
intArrayOf(color, Color.BLACK)
)
2020-02-02 17:21:26 +00:00
}
2020-02-02 12:44:16 +00:00
}