Hmm somethings are changed

This commit is contained in:
hemanths@live.com 2019-01-02 09:25:55 +05:30
parent 8dfb0dc8dd
commit 423b26be66
76 changed files with 410 additions and 234 deletions

View file

@ -8,7 +8,8 @@ import code.name.monkey.appthemehelper.util.VersionUtils
import code.name.monkey.retromusic.appshortcuts.DynamicShortcutManager
import com.anjlab.android.iab.v3.BillingProcessor
import com.anjlab.android.iab.v3.TransactionDetails
import com.bumptech.glide.Glide
import uk.co.chrisjenx.calligraphy.CalligraphyConfig
class App : MultiDexApplication() {
@ -30,6 +31,11 @@ class App : MultiDexApplication() {
DynamicShortcutManager(this).initDynamicShortcuts()
CalligraphyConfig.initDefault(CalligraphyConfig.Builder()
.setDefaultFont(R.font.circular_std_book)
.build()
)
// automatically restores purchases
billingProcessor = BillingProcessor(this, BuildConfig.GOOGLE_PLAY_LICENSING_KEY,
object : BillingProcessor.IBillingHandler {
@ -45,18 +51,6 @@ class App : MultiDexApplication() {
})
}
private fun setupErrorHandler() {
Thread.setDefaultUncaughtExceptionHandler { _, throwable -> handleUncaughtException(throwable) }
}
private fun handleUncaughtException(throwable: Throwable) {
throwable.printStackTrace()
deleteAppData()
//Intent intent = new Intent(this, ErrorHandlerActivity.class);
//intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//startActivity(intent);
}
override fun onTerminate() {
super.onTerminate()
billingProcessor.release()
@ -74,20 +68,5 @@ class App : MultiDexApplication() {
val isProVersion: Boolean
get() = BuildConfig.DEBUG || instance.billingProcessor.isPurchased(PRO_VERSION_PRODUCT_ID)
fun deleteAppData() {
try {
// clearing app data
val packageName = instance.packageName
val runtime = Runtime.getRuntime()
runtime.exec("pm clear $packageName")
System.exit(0)
} catch (e: Exception) {
e.printStackTrace()
}
}
}
}

View file

@ -76,6 +76,8 @@ object Constants {
@JvmField
val FAQ_LINK = "https://github.com/h4h13/RetroMusicPlayer/blob/master/FAQ.md"
@JvmField
val PINTEREST = "https://in.pinterest.com/retromusicapp/"
@JvmField
val CAST_SERVER_PORT = 8080
const val BASE_SELECTION = MediaStore.Audio.AudioColumns.IS_MUSIC + "=1" + " AND " + MediaStore.Audio.AudioColumns.TITLE + " != ''"

View file

@ -8,7 +8,6 @@ import android.text.TextUtils
import android.view.View
import android.widget.RemoteViews
import androidx.core.content.ContextCompat
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.retromusic.App.Companion.context
import code.name.monkey.retromusic.Constants
import code.name.monkey.retromusic.R

View file

@ -7,11 +7,11 @@ import code.name.monkey.retromusic.R
object HorizontalAdapterHelper {
val LAYOUT_RES = R.layout.item_image
const val LAYOUT_RES = R.layout.item_image
val TYPE_FIRST = 1
val TYPE_MIDDLE = 2
val TYPE_LAST = 3
const val TYPE_FIRST = 1
const val TYPE_MIDDLE = 2
const val TYPE_LAST = 3
fun applyMarginToLayoutParams(context: Context,
layoutParams: ViewGroup.MarginLayoutParams, viewType: Int) {

View file

@ -0,0 +1,21 @@
package code.name.monkey.retromusic.misc;
import android.graphics.Rect;
import android.view.View;
import androidx.recyclerview.widget.RecyclerView;
public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
private int space;
public SpacesItemDecoration(int space) {
this.space = space;
}
@Override
public void getItemOffsets(Rect outRect, View view,
RecyclerView parent, RecyclerView.State state) {
outRect.right = space;
outRect.bottom = space;
}
}

View file

@ -18,6 +18,7 @@ import code.name.monkey.retromusic.Constants.DISCORD_LINK
import code.name.monkey.retromusic.Constants.FAQ_LINK
import code.name.monkey.retromusic.Constants.GITHUB_PROJECT
import code.name.monkey.retromusic.Constants.GOOGLE_PLUS_COMMUNITY
import code.name.monkey.retromusic.Constants.PINTEREST
import code.name.monkey.retromusic.Constants.RATE_ON_GOOGLE_PLAY
import code.name.monkey.retromusic.Constants.TELEGRAM_CHANGE_LOG
import code.name.monkey.retromusic.Constants.TRANSLATE
@ -111,10 +112,12 @@ class AboutActivity : AbsBaseActivity(), View.OnClickListener {
twitterLink.setOnClickListener(this)
changelog.setOnClickListener(this)
openSource.setOnClickListener(this)
pinterestLink.setOnClickListener(this)
}
override fun onClick(view: View) {
when (view.id) {
R.id.pinterestLink->openUrl(PINTEREST)
R.id.faqLink -> openUrl(FAQ_LINK)
R.id.telegramLink -> openUrl(APP_TELEGRAM_LINK)
R.id.discordLink -> openUrl(DISCORD_LINK)

View file

@ -141,7 +141,7 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsContrac
toolbar!!.layoutParams = params
}
appBarLayout!!.apply {
appBarLayout?.apply {
addOnOffsetChangedListener(object : AppBarStateChangeListener() {
override fun onStateChanged(appBarLayout: AppBarLayout, state: AppBarStateChangeListener.State) {
val color: Int = when (state) {

View file

@ -140,24 +140,22 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac
toolbar!!.layoutParams = params
}
if (appBarLayout != null) {
appBarLayout!!.addOnOffsetChangedListener(object : AppBarStateChangeListener() {
override fun onStateChanged(appBarLayout: AppBarLayout, state: AppBarStateChangeListener.State) {
val color: Int = when (state) {
AppBarStateChangeListener.State.COLLAPSED -> {
setLightStatusbar(ColorUtil.isColorLight(ThemeStore.primaryColor(appBarLayout.context)))
ThemeStore.primaryColor(appBarLayout.context)
}
AppBarStateChangeListener.State.EXPANDED, AppBarStateChangeListener.State.IDLE -> {
setLightStatusbar(false)
Color.TRANSPARENT
}
appBarLayout?.addOnOffsetChangedListener(object : AppBarStateChangeListener() {
override fun onStateChanged(appBarLayout: AppBarLayout, state: AppBarStateChangeListener.State) {
val color: Int = when (state) {
AppBarStateChangeListener.State.COLLAPSED -> {
setLightStatusbar(ColorUtil.isColorLight(ThemeStore.primaryColor(appBarLayout.context)))
ThemeStore.primaryColor(appBarLayout.context)
}
ToolbarContentTintHelper.setToolbarContentColorBasedOnToolbarColor(appBarLayout.context, toolbar, color)
AppBarStateChangeListener.State.EXPANDED, AppBarStateChangeListener.State.IDLE -> {
setLightStatusbar(false)
Color.TRANSPARENT
}
}
})
}
ToolbarContentTintHelper.setToolbarContentColorBasedOnToolbarColor(appBarLayout.context, toolbar, color)
}
})
}
private fun setupRecyclerView() {

View file

@ -107,7 +107,7 @@ class MainActivity : AbsSlidingMusicPanelActivity(), SharedPreferences.OnSharedP
if (intent.hasExtra("expand")) {
if (intent.getBooleanExtra("expand", false)) {
//expandPanel();
expandPanel()
intent.putExtra("expand", false)
}
}

View file

@ -1,6 +1,7 @@
package code.name.monkey.retromusic.ui.activities.base
import android.Manifest
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.media.AudioManager
@ -12,8 +13,8 @@ import android.view.KeyEvent
import android.view.View
import androidx.core.app.ActivityCompat
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.retromusic.R
import com.google.android.material.snackbar.Snackbar
import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper
abstract class AbsBaseActivity : AbsThemeActivity() {
@ -31,7 +32,7 @@ abstract class AbsBaseActivity : AbsThemeActivity() {
}
fun getPermissionDeniedMessage(): String {
return if (permissionDeniedMessage == null) getString(R.string.permissions_denied) else permissionDeniedMessage!!
return if (permissionDeniedMessage == null) getString(code.name.monkey.retromusic.R.string.permissions_denied) else permissionDeniedMessage!!
}
@ -80,7 +81,7 @@ abstract class AbsBaseActivity : AbsThemeActivity() {
protected fun showOverflowMenu() {
}
protected open fun requestPermissions() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(permissions, PERMISSION_REQUEST)
@ -108,14 +109,14 @@ abstract class AbsBaseActivity : AbsThemeActivity() {
//User has deny from permission dialog
Snackbar.make(snackBarContainer, permissionDeniedMessage!!,
Snackbar.LENGTH_INDEFINITE)
.setAction(R.string.action_grant) { requestPermissions() }
.setAction(code.name.monkey.retromusic.R.string.action_grant) { requestPermissions() }
.setActionTextColor(ThemeStore.accentColor(this))
.show()
} else {
// User has deny permission and checked never show permission dialog so you can redirect to Application settings page
Snackbar.make(snackBarContainer, permissionDeniedMessage!!,
Snackbar.LENGTH_INDEFINITE)
.setAction(R.string.action_settings) {
.setAction(code.name.monkey.retromusic.R.string.action_settings) {
val intent = Intent()
intent.action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS
val uri = Uri.fromParts("package", this@AbsBaseActivity.packageName, null)

View file

@ -237,7 +237,7 @@ abstract class AbsSlidingMusicPanelActivity protected constructor() : AbsMusicSe
slidingLayout.panelState = PanelState.COLLAPSED
}
private fun expandPanel() {
fun expandPanel() {
slidingLayout.panelState = PanelState.EXPANDED
}

View file

@ -57,16 +57,6 @@ class AlbumCoverPagerAdapter(fm: FragmentManager, private val dataSet: ArrayList
currentColorReceiver = colorReceiver
currentColorReceiverPosition = position
}
/*val fragment = getFragment(position) as AlbumCoverFragment
if (fragment != null) {
currentColorReceiver = null
currentColorReceiverPosition = -1
fragment.receiveColor(colorReceiver, position)
} else {
currentColorReceiver = colorReceiver
currentColorReceiverPosition = position
}*/
}
class AlbumCoverFragment : Fragment() {

View file

@ -65,6 +65,14 @@ class HorizontalAlbumAdapter(activity: AppCompatActivity, dataSet: ArrayList<Alb
return HorizontalAdapterHelper.getItemViewtype(position, itemCount)
}
override fun getItemCount(): Int {
return when {
dataSet.size < 5 -> dataSet.size
dataSet.size >= 5 -> 5
else -> super.getItemCount()
}
}
companion object {
val TAG: String = AlbumAdapter::class.java.simpleName
}

View file

@ -45,6 +45,7 @@ class PlayerAlbumCoverFragment : AbsMusicServiceFragment(), ViewPager.OnPageChan
//noinspection ConstantConditions
if (PreferenceUtil.getInstance().carouselEffect() &&
!((PreferenceUtil.getInstance().nowPlayingScreen == NowPlayingScreen.FULL)
|| (PreferenceUtil.getInstance().nowPlayingScreen == NowPlayingScreen.ADAPTIVE)
|| (PreferenceUtil.getInstance().nowPlayingScreen == NowPlayingScreen.FIT))) {
viewPager.clipToPadding = false
viewPager.setPadding(96, 0, 96, 0)

View file

@ -7,10 +7,10 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.animation.AccelerateInterpolator
import android.view.animation.DecelerateInterpolator
import android.view.animation.LinearInterpolator
import android.widget.SeekBar
import androidx.core.content.ContextCompat
import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.MaterialValueHelper
import code.name.monkey.appthemehelper.util.TintHelper
@ -23,11 +23,9 @@ import code.name.monkey.retromusic.service.MusicService
import code.name.monkey.retromusic.ui.fragments.VolumeFragment
import code.name.monkey.retromusic.ui.fragments.base.AbsPlayerControlsFragment
import code.name.monkey.retromusic.util.MusicUtil
import code.name.monkey.retromusic.util.PreferenceUtil
import kotlinx.android.synthetic.main.fragment_card_blur_player_playback_controls.*
import kotlinx.android.synthetic.main.media_button.*
import kotlinx.android.synthetic.main.player_time.*
import kotlinx.android.synthetic.main.volume_controls.*
class CardBlurPlaybackControlsFragment : AbsPlayerControlsFragment() {
@ -71,7 +69,6 @@ class CardBlurPlaybackControlsFragment : AbsPlayerControlsFragment() {
TintHelper.setTintAuto(this, Color.BLACK, false)
setOnClickListener(PlayPauseButtonOnClickHandler())
}
}
private fun updatePlayPauseDrawableState() {
@ -83,7 +80,7 @@ class CardBlurPlaybackControlsFragment : AbsPlayerControlsFragment() {
private fun setupVolumeControls() {
val volumeFragment = childFragmentManager.findFragmentById(R.id.volumeFragment) as VolumeFragment
volumeFragment.tintWhiteColor()
volumeFragment.setTintable(ContextCompat.getColor(context!!, R.color.md_white_1000))
}
private fun updateProgressTextColor() {