Converted all text to material widgest and font

This commit is contained in:
h4h13 2019-09-02 20:21:53 +05:30
parent fa2707fc0f
commit a4d7ad90d4
174 changed files with 2000 additions and 3145 deletions

View file

@ -9,12 +9,12 @@ import android.view.WindowManager
import androidx.core.view.ViewCompat
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.activities.base.AbsMusicServiceActivity
import code.name.monkey.retromusic.fragments.player.lockscreen.LockScreenPlayerControlsFragment
import code.name.monkey.retromusic.glide.GlideApp
import code.name.monkey.retromusic.glide.RetroGlideExtension
import code.name.monkey.retromusic.glide.RetroMusicColoredTarget
import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.activities.base.AbsMusicServiceActivity
import code.name.monkey.retromusic.fragments.player.lockscreen.LockScreenPlayerControlsFragment
import com.r0adkll.slidr.Slidr
import com.r0adkll.slidr.model.SlidrConfig
import com.r0adkll.slidr.model.SlidrListener
@ -57,11 +57,13 @@ class LockScreenActivity : AbsMusicServiceActivity() {
}
override fun onSlideClosed() {
override fun onSlideClosed(): Boolean {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
keyguardManager.requestDismissKeyguard(this@LockScreenActivity, null)
}
finish()
return true
}
})
.position(SlidrPosition.BOTTOM)

View file

@ -48,11 +48,7 @@ class MainActivity : AbsSlidingMusicPanelActivity(), SharedPreferences.OnSharedP
}
override fun createContentView(): View {
@SuppressLint("InflateParams")
val contentView = layoutInflater.inflate(R.layout.activity_main_drawer_layout, null)
val drawerContent = contentView.findViewById<ViewGroup>(R.id.drawer_content_container)
drawerContent.addView(wrapSlidingMusicPanel(R.layout.activity_main_content))
return contentView
return wrapSlidingMusicPanel(R.layout.activity_main_content)
}
override fun onCreate(

View file

@ -3,6 +3,7 @@ package code.name.monkey.retromusic.activities;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.os.Bundle;
import android.webkit.WebView;
@ -18,13 +19,14 @@ import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import code.name.monkey.appthemehelper.ThemeStore;
import code.name.monkey.appthemehelper.util.ATHUtil;
import code.name.monkey.appthemehelper.util.ColorUtil;
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper;
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.activities.base.AbsBaseActivity;
import code.name.monkey.retromusic.util.PreferenceUtil;
import static code.name.monkey.appthemehelper.util.ATHUtil.INSTANCE;
public class WhatsNewActivity extends AbsBaseActivity {
WebView webView;
Toolbar toolbar;
@ -41,8 +43,8 @@ public class WhatsNewActivity extends AbsBaseActivity {
}
}
private static String colorToHex(int color) {
return Integer.toHexString(color).substring(2);
private static String colorToCSS(int color) {
return String.format("rgb(%d, %d, %d)", Color.red(color), Color.green(color), Color.blue(color)); // on API 29, WebView doesn't load with hex colors
}
@Override
@ -75,14 +77,16 @@ public class WhatsNewActivity extends AbsBaseActivity {
in.close();
// Inject color values for WebView body background and links
final String backgroundColor = colorToHex(ThemeStore.Companion.primaryColor(this));
final String contentColor = ATHUtil.INSTANCE.isWindowBackgroundDark(this) ? "#ffffff" : "#000000";
webView.loadData(buf.toString()
.replace("{style-placeholder}",
String.format("body { background-color: %s; color: %s; }", backgroundColor, contentColor))
.replace("{link-color}", colorToHex(ThemeStore.Companion.accentColor(this)))
.replace("{link-color-active}", colorToHex(ColorUtil.INSTANCE.lightenColor(ThemeStore.Companion.accentColor(this))))
, "text/html", "UTF-8");
final boolean isDark = INSTANCE.isWindowBackgroundDark(this);
final String backgroundColor = colorToCSS(INSTANCE.resolveColor(this, R.attr.md_background_color, Color.parseColor(isDark ? "#424242" : "#ffffff")));
final String contentColor = colorToCSS(Color.parseColor(isDark ? "#ffffff" : "#000000"));
final String changeLog = buf.toString()
.replace("{style-placeholder}",
String.format("body { background-color: %s; color: %s; }", backgroundColor, contentColor))
.replace("{link-color}", colorToCSS(ThemeStore.Companion.accentColor(this)))
.replace("{link-color-active}", colorToCSS(ColorUtil.INSTANCE.lightenColor(ThemeStore.Companion.accentColor(this))));
webView.loadData(changeLog, "text/html", "UTF-8");
} catch (Throwable e) {
webView.loadData("<h1>Unable to load</h1><p>" + e.getLocalizedMessage() + "</p>", "text/html", "UTF-8");
}

View file

@ -82,12 +82,6 @@ class SearchAdapter(private val activity: AppCompatActivity, private var dataSet
init {
itemView.setOnLongClickListener(null)
if (itemViewType != HEADER) {
if (separator != null) {
separator!!.visibility = View.GONE
}
}
if (menu != null) {
if (itemViewType == SONG) {
menu!!.visibility = View.VISIBLE

View file

@ -84,16 +84,6 @@ open class AlbumAdapter(protected val activity: AppCompatActivity,
val isChecked = isChecked(album)
holder.itemView.isActivated = isChecked
if (holder.adapterPosition == itemCount - 1) {
if (holder.shortSeparator != null) {
holder.shortSeparator!!.visibility = View.GONE
}
} else {
if (holder.shortSeparator != null) {
holder.shortSeparator!!.visibility = View.GONE
}
}
if (holder.title != null) {
holder.title!!.text = getAlbumTitle(album)
}

View file

@ -68,9 +68,7 @@ class ArtistAdapter(val activity: AppCompatActivity,
if (holder.text != null) {
holder.text!!.visibility = View.GONE
}
if (holder.shortSeparator != null) {
holder.shortSeparator!!.visibility = View.GONE
}
loadArtistImage(artist, holder)
}

View file

@ -27,8 +27,6 @@ open class MediaEntryViewHolder(view: View) : RecyclerView.ViewHolder(view), Vie
var imageContainer: ViewGroup? = null
var imageContainerCard: CardView? = null
var menu: View? = null
var separator: View? = null
var shortSeparator: View? = null
var dragView: View? = null
var paletteColorContainer: View? = null
var time: TextView? = null
@ -53,8 +51,6 @@ open class MediaEntryViewHolder(view: View) : RecyclerView.ViewHolder(view), Vie
menu = view.findViewById(R.id.menu)
dragView = view.findViewById(R.id.drag_view)
separator = view.findViewById(R.id.separator)
shortSeparator = view.findViewById(R.id.short_separator)
paletteColorContainer = view.findViewById(R.id.palette_color_container)
time = view.findViewById(R.id.time);

View file

@ -84,15 +84,6 @@ class PlaylistAdapter(protected val activity: AppCompatActivity, dataSet: ArrayL
if (holder.image != null) {
holder.image!!.setImageDrawable(getIconRes(playlist))
}
if (holder.adapterPosition == itemCount - 1) {
if (holder.shortSeparator != null) {
holder.shortSeparator!!.visibility = View.GONE
}
} else {
if (holder.shortSeparator != null && dataSet[position] !is AbsSmartPlaylist) {
holder.shortSeparator!!.visibility = View.GONE
}
}
}
private fun getIconRes(playlist: Playlist): Drawable {

View file

@ -78,16 +78,6 @@ open class SongAdapter @JvmOverloads constructor(protected val activity: AppComp
val isChecked = isChecked(song)
holder.itemView.isActivated = isChecked
if (holder.adapterPosition == itemCount - 1) {
if (holder.shortSeparator != null) {
holder.shortSeparator!!.visibility = View.GONE
}
} else {
if (holder.shortSeparator != null) {
holder.shortSeparator!!.visibility = View.GONE
}
}
if (holder.title != null) {
holder.title!!.text = getSongTitle(song)
}

View file

@ -110,7 +110,7 @@ abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A : RecyclerVie
* @return whether the palette option should be available for the current item layout or not
*/
fun canUsePalette(): Boolean {
return itemLayoutRes == R.layout.item_color
return itemLayoutRes == R.layout.item_card_color
}
protected fun notifyLayoutResChanged(@LayoutRes res: Int) {

View file

@ -302,8 +302,6 @@ class PortraitImpl(private val fragment: ClassicPlayerFragment) : BaseImpl(fragm
currentSongViewHolder = MediaEntryViewHolder(fragment.view?.findViewById(R.id.currentSong)!!)
currentSongViewHolder?.apply {
separator?.visibility = View.VISIBLE
shortSeparator?.visibility = View.GONE
image?.apply {
scaleType = ImageView.ScaleType.CENTER
setColorFilter(ATHUtil.resolveColor(fragment.activity!!, R.attr.iconColor, ThemeStore.textColorSecondary(fragment.activity!!)), PorterDuff.Mode.SRC_IN)

View file

@ -100,13 +100,13 @@ class MaterialControlsFragment : AbsPlayerControlsFragment() {
}
override fun setDark(color: Int) {
val colorBg = ATHUtil.resolveColor(context, android.R.attr.colorBackground)
val colorBg = ATHUtil.resolveColor(requireContext(), android.R.attr.colorBackground)
if (ColorUtil.isColorLight(colorBg)) {
lastPlaybackControlsColor = MaterialValueHelper.getSecondaryTextColor(context, true)
lastDisabledPlaybackControlsColor = MaterialValueHelper.getSecondaryDisabledTextColor(context, true)
lastPlaybackControlsColor = MaterialValueHelper.getSecondaryTextColor(requireContext(), true)
lastDisabledPlaybackControlsColor = MaterialValueHelper.getSecondaryDisabledTextColor(requireContext(), true)
} else {
lastPlaybackControlsColor = MaterialValueHelper.getPrimaryTextColor(context, false)
lastDisabledPlaybackControlsColor = MaterialValueHelper.getPrimaryDisabledTextColor(context!!, false)
lastPlaybackControlsColor = MaterialValueHelper.getPrimaryTextColor(requireContext(), false)
lastDisabledPlaybackControlsColor = MaterialValueHelper.getPrimaryDisabledTextColor(requireContext(), false)
}
updateRepeatState()
@ -116,7 +116,7 @@ class MaterialControlsFragment : AbsPlayerControlsFragment() {
lastPlaybackControlsColor = color
color
} else {
ThemeStore.textColorSecondary(context!!)
ThemeStore.textColorSecondary(requireContext())
}
text.setTextColor(colorFinal)

View file

@ -1,6 +1,5 @@
package code.name.monkey.retromusic.fragments.player.material
import android.os.Build
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@ -9,14 +8,12 @@ import androidx.appcompat.widget.Toolbar
import code.name.monkey.appthemehelper.util.ATHUtil
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.extensions.hide
import code.name.monkey.retromusic.fragments.base.AbsPlayerFragment
import code.name.monkey.retromusic.fragments.player.PlayerAlbumCoverFragment
import code.name.monkey.retromusic.fragments.player.normal.PlayerFragment
import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.model.Song
import kotlinx.android.synthetic.main.fragment_material.*
import kotlinx.android.synthetic.main.shadow_statusbar_toolbar.*
/**
* @author Hemanth S (h4h13).
@ -47,15 +44,15 @@ class MaterialFragment : AbsPlayerFragment() {
}
override fun toolbarIconColor(): Int {
return ATHUtil.resolveColor(context!!, R.attr.iconColor)
return ATHUtil.resolveColor(requireContext(), R.attr.iconColor)
}
override fun onColorChanged(color: Int) {
playbackControlsFragment.setDark(color)
lastColor = color
callbacks!!.onPaletteColorChanged()
callbacks?.onPaletteColorChanged()
ToolbarContentTintHelper.colorizeToolbar(playerToolbar, ATHUtil.resolveColor(context!!, R.attr.iconColor), activity)
ToolbarContentTintHelper.colorizeToolbar(playerToolbar, ATHUtil.resolveColor(requireContext(), R.attr.iconColor), requireActivity())
}
override fun toggleFavorite(song: Song) {
@ -90,9 +87,9 @@ class MaterialFragment : AbsPlayerFragment() {
private fun setUpPlayerToolbar() {
playerToolbar.apply {
inflateMenu(R.menu.menu_player)
setNavigationOnClickListener { activity!!.onBackPressed() }
setNavigationOnClickListener { requireActivity().onBackPressed() }
setOnMenuItemClickListener(this@MaterialFragment)
ToolbarContentTintHelper.colorizeToolbar(this, ATHUtil.resolveColor(context, R.attr.iconColor), activity)
ToolbarContentTintHelper.colorizeToolbar(this, ATHUtil.resolveColor(context, R.attr.iconColor), requireActivity())
}
}

View file

@ -66,7 +66,7 @@ class MainSettingsFragment : Fragment(), View.OnClickListener {
aboutSettings.setOnClickListener(this)
buyProContainer.apply {
if (!App.isProVersion) show() else hide()
if (App.isProVersion) show() else hide()
setOnClickListener {
NavigationUtil.goToProVersion(context)
}

View file

@ -40,12 +40,17 @@ import com.afollestad.materialdialogs.color.colorChooser
*/
class ThemeSettingsFragment : AbsSettingsFragment() {
private var materialDialog: MaterialDialog? = null
override fun onDestroyView() {
super.onDestroyView()
materialDialog?.dismiss()
}
override fun invalidateSettings() {
val categoryColor: ATEPreferenceCategory? = findPreference("category_color")
val primaryColorPref = ATEColorPreference(preferenceScreen.context)
val primaryColor = ThemeStore.primaryColor(requireContext())
primaryColorPref.apply {
@ -57,7 +62,7 @@ class ThemeSettingsFragment : AbsSettingsFragment() {
setIcon(R.drawable.ic_colorize_white_24dp)
setColor(primaryColor, ColorUtil.darkenColor(primaryColor))
setOnPreferenceClickListener {
MaterialDialog(requireContext(), BottomSheet()).show {
materialDialog = MaterialDialog(requireContext(), BottomSheet()).show {
title(R.string.primary_color)
positiveButton(R.string.set)
colorChooser(initialSelection = BLUE,
@ -120,7 +125,7 @@ class ThemeSettingsFragment : AbsSettingsFragment() {
accentColorPref.setColor(accentColor, ColorUtil.darkenColor(accentColor))
accentColorPref.setOnPreferenceClickListener {
MaterialDialog(requireContext(), BottomSheet()).show {
materialDialog = MaterialDialog(requireContext(), BottomSheet()).show {
title(R.string.accent_color)
positiveButton(R.string.set)
colorChooser(colors = ACCENT_COLORS, allowCustomArgb = true, subColors = ACCENT_COLORS_SUB) { _, color ->

View file

@ -1,86 +0,0 @@
/*
* Copyright (c) 2019 Hemanth Savarala.
*
* 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.views;
import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Rect;
import android.os.Build;
import android.util.AttributeSet;
import android.view.WindowInsets;
import android.widget.FrameLayout;
public class FitSystemWindowsLayout extends FrameLayout {
private boolean mFit = false;
public FitSystemWindowsLayout(final Context context) {
super(context);
}
public FitSystemWindowsLayout(final Context context, final AttributeSet attrs) {
super(context, attrs);
}
public FitSystemWindowsLayout(final Context context, final AttributeSet attrs, final int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public boolean isFit() {
return mFit;
}
public void setFit(final boolean fit) {
if (mFit == fit) {
return;
}
mFit = fit;
requestApplyInsets();
}
@SuppressWarnings("deprecation")
@Override
protected boolean fitSystemWindows(final Rect insets) {
if (mFit) {
setPadding(
insets.left,
insets.top,
insets.right,
insets.bottom
);
return true;
} else {
setPadding(0, 0, 0, 0);
return false;
}
}
@TargetApi(Build.VERSION_CODES.KITKAT_WATCH)
@Override
public WindowInsets onApplyWindowInsets(final WindowInsets insets) {
if (mFit) {
setPadding(
insets.getSystemWindowInsetLeft(),
insets.getSystemWindowInsetTop(),
insets.getSystemWindowInsetRight(),
insets.getSystemWindowInsetBottom()
);
return insets.consumeSystemWindowInsets();
} else {
setPadding(0, 0, 0, 0);
return insets;
}
}
}

View file

@ -32,5 +32,6 @@ class RetroChip @JvmOverloads constructor(
chipIcon?.setTintList(ColorStateList.valueOf(iconColor))
setTextColor(iconColor)
chipStrokeColor = ColorStateList.valueOf(dividerColor)
}
}