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

127 lines
4.5 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.R
import code.name.monkey.retromusic.activities.base.AbsBaseActivity
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.glide.SongGlideRequest
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
import com.bumptech.glide.Glide
import kotlinx.android.synthetic.main.activity_share_instagram.*
2020-02-02 12:44:16 +00:00
/**
* Created by hemanths on 2020-02-02.
*/
class ShareInstagramStory : AbsBaseActivity() {
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)
setContentView(R.layout.activity_share_instagram)
2020-02-02 17:21:26 +00:00
setStatusbarColor(Color.TRANSPARENT)
setNavigationbarColor(Color.BLACK)
2020-02-02 12:44:16 +00:00
2020-02-02 17:21:26 +00:00
toolbar.setBackgroundColor(Color.TRANSPARENT)
2020-02-02 12:44:16 +00:00
setSupportActionBar(toolbar)
val song = intent.extras?.getParcelable<Song>(EXTRA_SONG)
song?.let { songFinal ->
SongGlideRequest.Builder.from(Glide.with(this), songFinal)
2020-02-02 17:21:26 +00:00
.checkIgnoreMediaStore(this@ShareInstagramStory)
.generatePalette(this@ShareInstagramStory)
2020-02-02 12:44:16 +00:00
.build()
2020-02-02 17:21:26 +00:00
.into(object : RetroMusicColoredTarget(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
shareTitle.text = songFinal.title
shareText.text = songFinal.artistName
shareButton.setOnClickListener {
val path: String = Media.insertImage(
contentResolver,
mainContent.drawToBitmap(Bitmap.Config.ARGB_8888),
"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
)
}
}
2020-02-02 17:21:26 +00:00
shareButton.setTextColor(
MaterialValueHelper.getPrimaryTextColor(
this,
ColorUtil.isColorLight(ThemeStore.accentColor(this))
)
)
2020-02-02 12:44:16 +00:00
shareButton.backgroundTintList = ColorStateList.valueOf(ThemeStore.accentColor(this))
}
2020-02-02 17:21:26 +00:00
private fun setColors(colorLight: Boolean, color: Int) {
setLightStatusbar(colorLight)
toolbar.setTitleTextColor(
MaterialValueHelper.getPrimaryTextColor(
this@ShareInstagramStory,
colorLight
)
)
toolbar.navigationIcon?.setTintList(
ColorStateList.valueOf(
MaterialValueHelper.getPrimaryTextColor(
this@ShareInstagramStory,
colorLight
)
)
)
2020-02-02 17:21:26 +00:00
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
}