hot fix
This commit is contained in:
parent
6d9860016e
commit
563ae8a699
16 changed files with 63 additions and 50 deletions
|
@ -24,7 +24,7 @@ android {
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
|
|
||||||
applicationId "code.name.monkey.retromusic"
|
applicationId "code.name.monkey.retromusic"
|
||||||
versionCode 435
|
versionCode 436
|
||||||
versionName '3.5.300'
|
versionName '3.5.300'
|
||||||
|
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
|
|
|
@ -101,15 +101,10 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
|
||||||
public static final String EXPAND_PANEL = "expand_panel";
|
public static final String EXPAND_PANEL = "expand_panel";
|
||||||
private static final int APP_UPDATE_REQUEST_CODE = 9002;
|
private static final int APP_UPDATE_REQUEST_CODE = 9002;
|
||||||
private final IntentFilter mIntentFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
|
private final IntentFilter mIntentFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
|
||||||
private MainActivityFragmentCallbacks currentFragment;
|
|
||||||
private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
|
private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(final Context context, final Intent intent) {
|
public void onReceive(final Context context, final Intent intent) {
|
||||||
String action = intent.getAction();
|
String action = intent.getAction();
|
||||||
Log.i(TAG, "onReceive: " + action);
|
|
||||||
if (action != null && action.equals(MusicService.MEDIA_STORE_CHANGED)) {
|
|
||||||
setCurrentFragment(SongsFragment.newInstance(), SongsFragment.TAG, true);
|
|
||||||
}
|
|
||||||
if (action != null && action.equals(Intent.ACTION_SCREEN_OFF)) {
|
if (action != null && action.equals(Intent.ACTION_SCREEN_OFF)) {
|
||||||
if (PreferenceUtil.getInstance(context).getLockScreen() && MusicPlayerRemote.isPlaying()) {
|
if (PreferenceUtil.getInstance(context).getLockScreen() && MusicPlayerRemote.isPlaying()) {
|
||||||
final Intent activity = new Intent(context, LockScreenActivity.class);
|
final Intent activity = new Intent(context, LockScreenActivity.class);
|
||||||
|
@ -120,6 +115,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
private MainActivityFragmentCallbacks currentFragment;
|
||||||
private boolean blockRequestPermissions = false;
|
private boolean blockRequestPermissions = false;
|
||||||
private MaterialCab cab;
|
private MaterialCab cab;
|
||||||
private AppBarLayout mAppBarLayout;
|
private AppBarLayout mAppBarLayout;
|
||||||
|
@ -415,14 +411,12 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
|
||||||
mAppBarLayout.removeOnOffsetChangedListener(onOffsetChangedListener);
|
mAppBarLayout.removeOnOffsetChangedListener(onOffsetChangedListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCurrentFragment(@NonNull Fragment fragment, @NonNull String tag, boolean force) {
|
public void setCurrentFragment(@NonNull Fragment fragment, @NonNull String tag) {
|
||||||
String currentTag = null;
|
String currentTag = null;
|
||||||
if (getSupportFragmentManager().findFragmentByTag(tag) != null) {
|
if (getSupportFragmentManager().findFragmentByTag(tag) != null) {
|
||||||
currentTag = getSupportFragmentManager().findFragmentByTag(tag).getTag();
|
currentTag = getSupportFragmentManager().findFragmentByTag(tag).getTag();
|
||||||
}
|
}
|
||||||
if (force) {
|
|
||||||
currentTag = null;
|
|
||||||
}
|
|
||||||
if (!tag.equals(currentTag)) {
|
if (!tag.equals(currentTag)) {
|
||||||
getSupportFragmentManager()
|
getSupportFragmentManager()
|
||||||
.beginTransaction()
|
.beginTransaction()
|
||||||
|
@ -525,6 +519,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
|
||||||
layoutRes = R.layout.item_image_gradient;
|
layoutRes = R.layout.item_image_gradient;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Log.i(TAG, "handleLayoutResType: " + layoutRes);
|
||||||
if (layoutRes != -1) {
|
if (layoutRes != -1) {
|
||||||
item.setChecked(true);
|
item.setChecked(true);
|
||||||
fragment.setAndSaveLayoutRes(layoutRes);
|
fragment.setAndSaveLayoutRes(layoutRes);
|
||||||
|
@ -686,29 +681,29 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
|
||||||
private void selectedFragment(final int itemId) {
|
private void selectedFragment(final int itemId) {
|
||||||
switch (itemId) {
|
switch (itemId) {
|
||||||
case R.id.action_album:
|
case R.id.action_album:
|
||||||
setCurrentFragment(AlbumsFragment.newInstance(), AlbumsFragment.TAG, false);
|
setCurrentFragment(AlbumsFragment.newInstance(), AlbumsFragment.TAG);
|
||||||
break;
|
break;
|
||||||
case R.id.action_artist:
|
case R.id.action_artist:
|
||||||
setCurrentFragment(ArtistsFragment.newInstance(), ArtistsFragment.TAG, false);
|
setCurrentFragment(ArtistsFragment.newInstance(), ArtistsFragment.TAG);
|
||||||
break;
|
break;
|
||||||
case R.id.action_playlist:
|
case R.id.action_playlist:
|
||||||
setCurrentFragment(PlaylistsFragment.newInstance(), PlaylistsFragment.TAG, false);
|
setCurrentFragment(PlaylistsFragment.newInstance(), PlaylistsFragment.TAG);
|
||||||
break;
|
break;
|
||||||
case R.id.action_genre:
|
case R.id.action_genre:
|
||||||
setCurrentFragment(GenresFragment.newInstance(), GenresFragment.TAG, false);
|
setCurrentFragment(GenresFragment.newInstance(), GenresFragment.TAG);
|
||||||
break;
|
break;
|
||||||
case R.id.action_playing_queue:
|
case R.id.action_playing_queue:
|
||||||
setCurrentFragment(PlayingQueueFragment.newInstance(), PlayingQueueFragment.TAG, false);
|
setCurrentFragment(PlayingQueueFragment.newInstance(), PlayingQueueFragment.TAG);
|
||||||
break;
|
break;
|
||||||
case R.id.action_song:
|
case R.id.action_song:
|
||||||
setCurrentFragment(SongsFragment.newInstance(), SongsFragment.TAG, false);
|
setCurrentFragment(SongsFragment.newInstance(), SongsFragment.TAG);
|
||||||
break;
|
break;
|
||||||
case R.id.action_folder:
|
case R.id.action_folder:
|
||||||
setCurrentFragment(FoldersFragment.newInstance(this), FoldersFragment.TAG, false);
|
setCurrentFragment(FoldersFragment.newInstance(this), FoldersFragment.TAG);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
case R.id.action_home:
|
case R.id.action_home:
|
||||||
setCurrentFragment(BannerHomeFragment.newInstance(), BannerHomeFragment.TAG,false);
|
setCurrentFragment(BannerHomeFragment.newInstance(), BannerHomeFragment.TAG);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,6 +47,11 @@ open class AlbumAdapter(
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
||||||
|
itemLayoutRes = if (itemLayoutRes >= -1) {
|
||||||
|
itemLayoutRes
|
||||||
|
} else {
|
||||||
|
R.layout.item_grid
|
||||||
|
}
|
||||||
val view = LayoutInflater.from(activity).inflate(itemLayoutRes, parent, false)
|
val view = LayoutInflater.from(activity).inflate(itemLayoutRes, parent, false)
|
||||||
return createViewHolder(view, viewType)
|
return createViewHolder(view, viewType)
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,6 +47,11 @@ class ArtistAdapter(
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
||||||
|
itemLayoutRes = if (itemLayoutRes >= -1) {
|
||||||
|
itemLayoutRes
|
||||||
|
} else {
|
||||||
|
R.layout.item_grid_circle
|
||||||
|
}
|
||||||
val view = LayoutInflater.from(activity).inflate(itemLayoutRes, parent, false)
|
val view = LayoutInflater.from(activity).inflate(itemLayoutRes, parent, false)
|
||||||
return createViewHolder(view)
|
return createViewHolder(view)
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,8 +82,6 @@ class AlbumsFragment :
|
||||||
albumViewModel.getAlbums()
|
albumViewModel.getAlbums()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setLayoutRes(layoutRes: Int) {
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun loadLayoutRes(): Int {
|
override fun loadLayoutRes(): Int {
|
||||||
return PreferenceUtil.getInstance(requireContext()).albumGridStyle
|
return PreferenceUtil.getInstance(requireContext()).albumGridStyle
|
||||||
|
|
|
@ -88,9 +88,6 @@ class ArtistsFragment :
|
||||||
PreferenceUtil.getInstance(requireContext()).artistSortOrder = sortOrder
|
PreferenceUtil.getInstance(requireContext()).artistSortOrder = sortOrder
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setLayoutRes(layoutRes: Int) {
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun loadLayoutRes(): Int {
|
override fun loadLayoutRes(): Int {
|
||||||
return PreferenceUtil.getInstance(requireContext()).artistGridStyle
|
return PreferenceUtil.getInstance(requireContext()).artistGridStyle
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,6 @@ abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A : RecyclerVie
|
||||||
|
|
||||||
|
|
||||||
fun setAndSaveLayoutRes(layoutRes: Int) {
|
fun setAndSaveLayoutRes(layoutRes: Int) {
|
||||||
setLayoutRes(layoutRes)
|
|
||||||
saveLayoutRes(layoutRes)
|
saveLayoutRes(layoutRes)
|
||||||
invalidateAdapter()
|
invalidateAdapter()
|
||||||
}
|
}
|
||||||
|
@ -108,8 +107,6 @@ abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A : RecyclerVie
|
||||||
|
|
||||||
protected abstract fun setSortOrder(sortOrder: String)
|
protected abstract fun setSortOrder(sortOrder: String)
|
||||||
|
|
||||||
protected abstract fun setLayoutRes(layoutRes: Int)
|
|
||||||
|
|
||||||
protected abstract fun loadSortOrder(): String
|
protected abstract fun loadSortOrder(): String
|
||||||
|
|
||||||
protected abstract fun saveSortOrder(sortOrder: String)
|
protected abstract fun saveSortOrder(sortOrder: String)
|
||||||
|
|
|
@ -50,7 +50,6 @@ import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
import code.name.monkey.appthemehelper.ThemeStore;
|
import code.name.monkey.appthemehelper.ThemeStore;
|
||||||
import code.name.monkey.appthemehelper.util.ATHUtil;
|
import code.name.monkey.appthemehelper.util.ATHUtil;
|
||||||
|
@ -596,7 +595,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements
|
||||||
private WeakReference<FoldersFragment> fragmentWeakReference;
|
private WeakReference<FoldersFragment> fragmentWeakReference;
|
||||||
|
|
||||||
AsyncFileLoader(FoldersFragment foldersFragment) {
|
AsyncFileLoader(FoldersFragment foldersFragment) {
|
||||||
super(Objects.requireNonNull(foldersFragment.getActivity()));
|
super(foldersFragment.requireActivity());
|
||||||
fragmentWeakReference = new WeakReference<>(foldersFragment);
|
fragmentWeakReference = new WeakReference<>(foldersFragment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -275,7 +275,7 @@ class ClassicPlayerFragment : AbsPlayerFragment(), View.OnLayoutChangeListener,
|
||||||
|
|
||||||
playerContainer.setBackgroundColor(color.backgroundColor)
|
playerContainer.setBackgroundColor(color.backgroundColor)
|
||||||
songInfo.setTextColor(color.primaryTextColor)
|
songInfo.setTextColor(color.primaryTextColor)
|
||||||
player_queue_sub_header.setTextColor(color.backgroundColor)
|
player_queue_sub_header.setTextColor(color.primaryTextColor)
|
||||||
|
|
||||||
songCurrentProgress.setTextColor(lastPlaybackControlsColor)
|
songCurrentProgress.setTextColor(lastPlaybackControlsColor)
|
||||||
songTotalTime.setTextColor(lastPlaybackControlsColor)
|
songTotalTime.setTextColor(lastPlaybackControlsColor)
|
||||||
|
|
|
@ -3,7 +3,6 @@ package code.name.monkey.retromusic.fragments.songs
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.annotation.LayoutRes
|
import androidx.annotation.LayoutRes
|
||||||
import androidx.lifecycle.ViewModelProvider
|
|
||||||
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
import code.name.monkey.retromusic.App
|
import code.name.monkey.retromusic.App
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
@ -11,13 +10,19 @@ import code.name.monkey.retromusic.adapter.song.ShuffleButtonSongAdapter
|
||||||
import code.name.monkey.retromusic.adapter.song.SongAdapter
|
import code.name.monkey.retromusic.adapter.song.SongAdapter
|
||||||
import code.name.monkey.retromusic.fragments.base.AbsLibraryPagerRecyclerViewCustomGridSizeFragment
|
import code.name.monkey.retromusic.fragments.base.AbsLibraryPagerRecyclerViewCustomGridSizeFragment
|
||||||
import code.name.monkey.retromusic.interfaces.MainActivityFragmentCallbacks
|
import code.name.monkey.retromusic.interfaces.MainActivityFragmentCallbacks
|
||||||
|
import code.name.monkey.retromusic.model.Song
|
||||||
|
import code.name.monkey.retromusic.mvp.presenter.SongPresenter
|
||||||
|
import code.name.monkey.retromusic.mvp.presenter.SongView
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
|
import java.util.*
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
class SongsFragment :
|
class SongsFragment :
|
||||||
AbsLibraryPagerRecyclerViewCustomGridSizeFragment<SongAdapter, GridLayoutManager>(),
|
AbsLibraryPagerRecyclerViewCustomGridSizeFragment<SongAdapter, GridLayoutManager>(),
|
||||||
MainActivityFragmentCallbacks {
|
SongView, MainActivityFragmentCallbacks {
|
||||||
|
|
||||||
private lateinit var songViewModel: SongsViewModel
|
@Inject
|
||||||
|
lateinit var songPresenter: SongPresenter
|
||||||
|
|
||||||
override val emptyMessage: Int
|
override val emptyMessage: Int
|
||||||
get() = R.string.no_songs
|
get() = R.string.no_songs
|
||||||
|
@ -25,22 +30,15 @@ class SongsFragment :
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
App.musicComponent.inject(this)
|
App.musicComponent.inject(this)
|
||||||
retainInstance = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
songViewModel = ViewModelProvider(this).get(SongsViewModel::class.java)
|
songPresenter.attachView(this)
|
||||||
songViewModel.songs.observe(viewLifecycleOwner,
|
|
||||||
androidx.lifecycle.Observer { songs ->
|
|
||||||
if (songs.isNotEmpty())
|
|
||||||
adapter?.swapDataSet(songs)
|
|
||||||
else
|
|
||||||
adapter?.swapDataSet(listOf())
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createLayoutManager(): GridLayoutManager {
|
override fun createLayoutManager(): GridLayoutManager {
|
||||||
|
println("createLayoutManager: ${getGridSize()}")
|
||||||
return GridLayoutManager(requireActivity(), getGridSize()).apply {
|
return GridLayoutManager(requireActivity(), getGridSize()).apply {
|
||||||
spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
|
spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
|
||||||
override fun getSpanSize(position: Int): Int {
|
override fun getSpanSize(position: Int): Int {
|
||||||
|
@ -64,8 +62,12 @@ class SongsFragment :
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun songs(songs: List<Song>) {
|
||||||
|
adapter?.swapDataSet(songs)
|
||||||
|
}
|
||||||
|
|
||||||
override fun onMediaStoreChanged() {
|
override fun onMediaStoreChanged() {
|
||||||
//songPresenter.loadSongs()
|
songPresenter.loadSongs()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun loadGridSize(): Int {
|
override fun loadGridSize(): Int {
|
||||||
|
@ -88,6 +90,20 @@ class SongsFragment :
|
||||||
adapter?.notifyDataSetChanged()
|
adapter?.notifyDataSetChanged()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
if (adapter?.dataSet.isNullOrEmpty())
|
||||||
|
songPresenter.loadSongs()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDestroyView() {
|
||||||
|
super.onDestroyView()
|
||||||
|
songPresenter.detachView()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun showEmptyView() {
|
||||||
|
adapter?.swapDataSet(ArrayList())
|
||||||
|
}
|
||||||
|
|
||||||
override fun loadSortOrder(): String {
|
override fun loadSortOrder(): String {
|
||||||
return PreferenceUtil.getInstance(requireContext()).songSortOrder
|
return PreferenceUtil.getInstance(requireContext()).songSortOrder
|
||||||
|
@ -98,7 +114,7 @@ class SongsFragment :
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setSortOrder(sortOrder: String) {
|
override fun setSortOrder(sortOrder: String) {
|
||||||
songViewModel.loadSongs()
|
songPresenter.loadSongs()
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -109,16 +125,12 @@ class SongsFragment :
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun newInstance(): SongsFragment {
|
fun newInstance(): SongsFragment {
|
||||||
val args = Bundle()
|
val args = Bundle()
|
||||||
val fragment =
|
val fragment = SongsFragment()
|
||||||
SongsFragment()
|
|
||||||
fragment.arguments = args
|
fragment.arguments = args
|
||||||
return fragment
|
return fragment
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setLayoutRes(@LayoutRes layoutRes: Int) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@LayoutRes
|
@LayoutRes
|
||||||
override fun loadLayoutRes(): Int {
|
override fun loadLayoutRes(): Int {
|
||||||
return PreferenceUtil.getInstance(requireContext()).songGridStyle
|
return PreferenceUtil.getInstance(requireContext()).songGridStyle
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
android:scaleType="centerCrop"
|
android:scaleType="centerCrop"
|
||||||
app:civ_border="false"
|
app:civ_border="false"
|
||||||
app:civ_shadow="false"
|
app:civ_shadow="false"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintDimensionRatio="1:1"
|
app:layout_constraintDimensionRatio="1:1"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
|
|
@ -8,9 +8,10 @@
|
||||||
<com.google.android.material.card.MaterialCardView
|
<com.google.android.material.card.MaterialCardView
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:layout_margin="12dp"
|
|
||||||
app:cardCornerRadius="8dp"
|
app:cardCornerRadius="8dp"
|
||||||
app:cardElevation="8dp"
|
app:cardElevation="8dp"
|
||||||
|
app:cardUseCompatPadding="true"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintDimensionRatio="1:1"
|
app:layout_constraintDimensionRatio="1:1"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:scaleType="centerCrop"
|
android:scaleType="centerCrop"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintDimensionRatio="1:1"
|
app:layout_constraintDimensionRatio="1:1"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:layout_margin="16dp"
|
android:layout_margin="16dp"
|
||||||
app:cardCornerRadius="8dp"
|
app:cardCornerRadius="8dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintDimensionRatio="1:1"
|
app:layout_constraintDimensionRatio="1:1"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:maxLines="2"
|
android:maxLines="2"
|
||||||
|
android:paddingHorizontal="8dp"
|
||||||
android:paddingTop="8dp"
|
android:paddingTop="8dp"
|
||||||
android:paddingBottom="4dp"
|
android:paddingBottom="4dp"
|
||||||
android:textAppearance="@style/TextViewSubtitle1"
|
android:textAppearance="@style/TextViewSubtitle1"
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
<dimen name="list_item_image_icon_padding">8dp</dimen>
|
<dimen name="list_item_image_icon_padding">8dp</dimen>
|
||||||
|
|
||||||
<dimen name="mini_player_height">56dp</dimen>
|
<dimen name="mini_player_height">48dp</dimen>
|
||||||
|
|
||||||
<dimen name="app_widget_classic_height">96dp</dimen>
|
<dimen name="app_widget_classic_height">96dp</dimen>
|
||||||
<dimen name="app_widget_classic_image_size">96dp</dimen>
|
<dimen name="app_widget_classic_image_size">96dp</dimen>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue