From 85436029ff3f8752b9569a7bcb16daeaaf7c55a7 Mon Sep 17 00:00:00 2001 From: TeGaX_Dakkar <63868370+TeGaX@users.noreply.github.com> Date: Mon, 12 Oct 2020 18:58:11 +0700 Subject: [PATCH 01/19] Deleted a second action_album_artists_only string --- app/src/main/res/values-ru-rRU/strings.xml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 2bfa82871..7f659c0f6 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -519,8 +519,7 @@ Эффект снегопада - Только альбомы исполнителей - Использовать обложку альбома текущей песни в качестве обоев на экране блокировки. + Использовать обложку альбома текущей песни в качестве обоев на экране блокировки. Снизить громкость воспроизведения когда приходит звуковое уведомление Содержимое черного списка скрыто из вашей библиотеки. Начать воспроизведение сразу же после подключения Bluetooth-устройства @@ -550,7 +549,7 @@ Если доступно достаточно места, показывать регулировку громкости на экране воспроизведения Показывать обложку альбома в разделе исполнители - Показать обложку альбома + Показать обложку альбома Тема обложки альбома Стиль смены обложки альбома Сетка альбомов @@ -573,7 +572,7 @@ Показать вкладку жанра Сетка исполнителя на Главной странице Сетка альбома на Главной странице - Кнопка Домой + Кнопка Домой Игнорировать обложки из хранилища Дата последнего добавления плейлиста Полноэкранное управление @@ -865,7 +864,7 @@ Сейчас не проигрывается Последние 7 дней - + Песня Песни @@ -892,7 +891,7 @@ Колличество песен По возрастанию Количество композиций по убыванию - Приложению требуется разрешение на доступ к внутренней памяти вашего устройства для воспроизведения музыки. + Приложению требуется разрешение на доступ к внутренней памяти вашего устройства для воспроизведения музыки. Доступ к внутренней памяти Рингтон Приложению требуется разрешение на доступ к настройкам вашего устройства, чтобы установить музыку в качестве рингтона. From f2b47c5c7090d9645e8d4a4d10371bbf02689433 Mon Sep 17 00:00:00 2001 From: "Daksh P. Jain" Date: Tue, 13 Oct 2020 20:12:30 +0530 Subject: [PATCH 02/19] Update bug_report.md --- .github/ISSUE_TEMPLATE/bug_report.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 58639a31a..0b5a8fd8d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -10,6 +10,9 @@ assignees: '' **Have you read the [FAQ](https://www.github.com/h4h13/RetroMusicPlayer/tree/dev/FAQ.md)?** [Yes/No] +**Has the bug already been reported? Please search in GitHub issue tab before creating an issue.** +[Yes/No] + **Describe the bug** A clear and concise description of what the bug is. From 5ee33123dbfe8c0da79fee58bf1c0bced2c138a4 Mon Sep 17 00:00:00 2001 From: "Daksh P. Jain" Date: Thu, 15 Oct 2020 10:46:03 +0530 Subject: [PATCH 03/19] Update strings.xml --- app/src/main/res/values-fr-rFR/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index 2f3914ac7..0a8e45ff7 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -18,8 +18,8 @@ Aller au genre Aller au dossier de départ Accorder - Taille de la grille - Taille de la grille (paysage) + Taille de l'affichage + Taille de l'affichage (paysage) Nouvelle liste de lecture… Suivant Lecture @@ -495,7 +495,7 @@ Virtualisateur Volume Recherche internet - Accueillir, + Bonjour, Que souhaitez-vous partager ? Quoi de neuf Fenêtre From 4b57e72dba1228e77edb623e1f7fc3fc24159a03 Mon Sep 17 00:00:00 2001 From: "Daksh P. Jain" Date: Thu, 15 Oct 2020 10:48:40 +0530 Subject: [PATCH 04/19] Update strings.xml --- app/src/main/res/values-fr-rFR/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index 0a8e45ff7..c1d97674c 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -183,7 +183,7 @@ 6 7 8 - Les Grilles & Le Style + Styles d'affichage Charnière Historique Accueil @@ -445,7 +445,7 @@ Artiste Compositeur Date - Date modified + Date de modification Année Descendant Désolé, votre appareil ne supporte pas l\'entrée vocale From 7bc48ea6e884a90de687ded1562170d95c66f514 Mon Sep 17 00:00:00 2001 From: ThuHtooSan <43321350+ThuHtooSan@users.noreply.github.com> Date: Fri, 30 Oct 2020 23:12:47 +0630 Subject: [PATCH 05/19] added Burmese translation in strings.xml --- app/src/main/res/values-my/strings.xml | 659 +++++++++++++++++++++++++ 1 file changed, 659 insertions(+) create mode 100644 app/src/main/res/values-my/strings.xml diff --git a/app/src/main/res/values-my/strings.xml b/app/src/main/res/values-my/strings.xml new file mode 100644 index 000000000..776cc1fe4 --- /dev/null +++ b/app/src/main/res/values-my/strings.xml @@ -0,0 +1,659 @@ + + + About %s + အဖွဲ့နှင့် လူမှုကွန်ယက်လင့်ခ်များ + + Accent Color + The theme accent color (ခရမ်းရောင်သည်မူလအရောင်) + + About + အကြိုက်ဆုံးသို့ထည့်မည် + နားထောင်နေသည့်စာရင်းထဲသို့ထည့်မည် + Playlist သို့ထည့်မည် + နားထောင်နေသည့်စာရင်းအားရှင်းမည် + Cycle repeat mode + ဖျက်မည် + Device မှဖျက်မည် + အသေးစိတ် + Album သို့သွားမည် + အဆိုတော်သို့သွားမည် + အမျိုးအစားသို့သွားမည် + Directory အစသို့သွားမည် + ခွင့်ပြုမည် + အကွက်အရွယ်အစား + အကွက်အရွယ်အစား (land) + Playlist အသစ် + နောက်တစ်ပုဒ် + Play မည် + အားလုံး play မည် + Play next + Play/ခေတ္တရပ် + ယခင်အပုဒ် + အကြိုက်ဆုံးမှထုတ်မည် + နားထောင်နေသည့်စာရင်းမှထုတ်မည် + Playlist မှထုတ်မည် + နာမည်ပြင်မည် + နားထောင်နေသည့်စာရင်းအားသိမ်းမည် + စကန်ဖတ်မည် + ရှာမည် + စမည် + Ringtone အဖြစ်ထားမည် + Directory အစအဖြစ်ထားမည် + "Settings" + မျှဝေမည် + အားလုံး Shuffle play မည် + Playlist အား Shuffle play မည် + Sleep Timer + အထားအသိုပြင်မည် + Tag တည်းဖြတ်ခြင်း + Toggle favorite + Toggle shuffle mode + + Adaptive + + ထည့်မည် + "အောက်ပါ Playlist သို့ထည့်မည်" + + "နားထောင်နေသည့်စာရင်းထဲသို့ ၁ ပုဒ်ပေါင်းထည့်ခဲ့သည်" + နားထောင်နေသည့်စာရင်းထဲသို့ %1$d ပုဒ်ပေါင်းထည့်ခဲ့သည် + + Album + + + သီချင်း + သီချင်းများ + + + Album အားသီဆိုသူ + + Albums + + Album + Albums + + + Always + + ဟေ့ အရမ်းမိုက်တဲ့ဒီ Music Player ကိုတစ်ချက်ကြည့်ကြည့်! https://play.google.com/store/apps/details?id=%s + Shuffle + ထိပ်ဆုံးသီချင်းများ + ပုံအပြည့် + ကတ် + ရိုးရိုး + အသေး + စာပါဝင်မှုနည်း + + အဆိုတော် + + အဆိုတော်များ + + အသံအာရုံစိုက်ခြင်းအား ပယ်ဖျက်ခဲ့သည် + အသံ Settings များပြောင်းလဲရန်နှင့် Equalizer ချိန်ညှိရန် + + အလိုအလျောက် + + အတ္ထုပတ္တိ + + အနက်ရောင်သာ + + လစ်လျူရှုမည့်စာရင်း + + Blur + ကတ်အဝါး + + သတင်းပို့၍မရနိုင်ပါ + မမှန်ကန်သော Access token ဖြစ်သည်။ ကျေးဇူးပြု၍ App ရေးသားသူအားဆက်သွယ်ပါ။ + ရွေးချယ်ထားသော Repository အတွက် Issue ဖွင့်ခွင့်မပေးထားပါ။ ကျေးဇူးပြု၍ App ရေးသားသူအားဆက်သွယ်ပါ။ + မသိထားသော Error တက်သွားခဲ့သည်။ ကျေးဇူးပြု၍ App ရေးသားသူအားဆက်သွယ်ပါ။ + Username (သို့မဟုတ်) Password မှားနေသည် + အကြောင်းအရာ + ကိုယ်တိုင်အသေးစိတ်သတင်းပို့မည် + ကျေးဇူးပြု၍ အကြောင်းအရာအသေးစိတ်ကိုဖြည့်သွင်းပါ + ကျေးဇူးပြု၍ မှန်ကန်သော Github password ကိုဖြည့်သွင်းပါ + ကျေးဇူးပြု၍အကြောင်းအရာခေါင်းစဉ်အားဖြည့်သွင်းပါ + ကျေးဇူးပြု၍ မှန်ကန်သော Github username ကိုဖြည့်သွင်းပါ + မသိထားတဲ့ Error တစ်ခုတက်ခဲ့တယ်ဆိုပါစို့။ ဆက်ပြီး Crash ဖြစ်နေတယ်ဆိုရင် \"Clear App Data\" လုပ်ပါ (ဒါမှမဟုတ်) အီးမေးလ်ပို့ပါ။ + GitHub အကောင့်ဖြင့်ပို့မည် + + ယခုဝယ်မည် + + ပယ်ဖျက်မည် + + ကတ် + အရောင်ပါသောကတ် + လေးထောင့်ကတ် + ကတ် + + Now Playing Screen ပေါ်တွင် Carousel effect + + Cascading + + ပြောင်းလဲမှုမှတ်တမ်း + Telegram channel ရှိ ပြောင်းလဲမှုမှတ်တမ်း + + အဝိုင်း + + အဝိုင်း + + ရိုးရိုး + + ရှင်းမည် + Blacklist အားရှင်းမည် + နားထောင်နေသည့်စာရင်းအားရှင်းမည် + + အရောင် + + အရောင်များ + + တေးရေးဆရာ + + Device အချက်အလက်အား Clipboard သို့ ကော်ပီကူးခဲ့ပြီး + + Playlist ဖန်တီး၍မရပါ + "ကိုက်ညီသော Album Cover ကို Download မလုပ်နိုင်ပါ" + ဝယ်ယူမှုကိုပြန်မရယူနိုင်ပါ + ဖိုင် %d ခုကိုစကန်မဖတ်နိုင်ပါ + + ဖန်တီးမည် + + ဖန်တီးထားသော Playlist %1$s ခု + + အဖွဲ့ဝင်များနှင့် ကူညီသူများ + + %2$s သီဆိုထားသော %1$s ကိုယခုနားထောင်နေသည် + + အနက်ရောင်ဆန်ဆန် + + Playlist ဖျက်ခြင်း + %1$s Playlist ကိုဖျက်မှာလား]]> + Playlist များဖျက်ခြင်း + သီချင်းဖျက်ခြင်း + %1$s? သီချင်းကိုဖျက်မှာလား]]> + သီချင်းများဖျက်ခြင်း + %1$d ခုကိုဖျက်မှာလား]]> + %1$d ပုဒ်ကိုဖျက်မှာလား]]> + + သီချင်း %1$d ပုဒ်ကိုဖျက်ပစ်ခဲ့သည် + + Depth + + အကြောင်းအရာအသေးစိတ် + + Device အချက်အလက် + + အသံ Settings ပြုပြင်ရန် Retro Music ကိုခွင့်ပြုချက်ပေးပါ + Ringtone ထားခြင်း + + Blacklist ကိုရှင်းလင်းလိုပါသလား + %1$s ကိုဖယ်ရှားလိုပါသလား]]> + + လှူဒါန်းမည် + ကျွန်တော့်ရဲ့လက်ရာအတွက် မုန့်ဖိုးရဖို့ထိုက်တန်တယ်လို့ထင်ရင် ဒီမှာပေးသွားလိုက်ပါ။ + + ဝယ်ပေးမယ်: + + ပြီးပြီ + + Drive mode + + ဘာမှမရှိပါ + + Equalizer + + မေးလေ့ရှိသောမေးခွန်းများ + + အကြိုက်ဆုံး + + Finish last song + + အနေတော် + + အပြားပုံစံ + + Folders + + System အတိုင်း + + သင့်အတွက် + + အခမဲ့ + + အပြည့် + ကတ်အပြည့်ပုံစံ + + App Theme နှင့် အရောင်များကိုပြောင်းလဲရန် + Look and Feel + + အမျိုးအစား + + အမျိုးအစားများ + + Project ကို GitHub မှာ Fork လုပ်ပါ + + Gradient + + + + + + + + + + အကွက်စတိုင် + + အကူအညီထပ်လိုပါသေးလား + + Hinge + + မှတ်တမ်း + + မူလ + + ရေပြင်ညီအတိုင်းဟိုဘက်ဒီဘက်လှန်ခြင်း + + ဓာတ်ပုံ + Gradient ပုံ + အဆိုတော်ပုံအား ဒေါင်းလုဒ်ဆွဲခြင်း Settings များ + + Import + Import playlist + Android မီဒီယာစတိုးမှ Playlist များကိုသီချင်းများနှင့်အတူ import လုပ်သွားမည်ဖြစ်ပြီး ရှိပြီးသား Playlist ဖြစ်ပါကသီချင်းများကိုထည့်ပေါင်းသွားပါမည်။ + + Playlist %2$s သို့သီချင်း %1$d ပုဒ်ထည့်ပြီးပါပြီ + + Instagram + သင့်ရဲ့ Retro Music setup ကို Instagram တွင်ပြသလိုက်ပါ + + ကီးဘုတ် + + Bitrate + အမျိုးအစား + ဖိုင်နာမည် + ဖိုင်နေရာ + အရွယ်အစား + %s ၏နောက်ထပ် Album များ + Sampling rate + ကြာချိန် + + Label ထိုးထားမည် + + နောက်ဆုံးသွင်းထားသော + နောက်ဆုံးအပုဒ် + + Tab အမျိုးအစားများ + + လိုင်စင်များ + + အဖြူရောင်သက်သက် + + နားဆင်သူများ + + ဖိုင်ပြန်စီနေသည်... + + ခဏစောင့်ပါ... + + Login + + သီချင်းစာသား + + အိန္ဒိယနိုင်ငံတွင် ❤️ များဖြင့် ဖန်တီးသည် + + Material + + Error + Storage ခွင့်ပြုချက် error + + နာမည် + အများဆုံးနားထောင်ခဲ့သော + + ဘယ်တော့မှ + + Playlist အသစ် + %s ဟာ Directory အစဖြစ်သွားပါပြီ + + နောက်တစ်ပုဒ် + + Album တစ်ခုမှမရှိပါ + အဆိုတော်တစ်ယောက်မှမရှိပါ + "သီချင်းတစ်ပုဒ်အရင် play ကြည့်ပြီးမှ ပြန်ကြိုးစားပါ" + Equalizer တစ်ခုမှရှာမတွေ့ပါ + အမျိုးအစားခွဲစရာတစ်ခုမှမရှိပါ + သီချင်းစာသားရှာမတွေ့ပါ + သီချင်းတစ်ပုဒ်မှ play မထားပါ + Playlist တစ်ခုမှမရှိပါ + ဝယ်ယူထားမှုမရှိပါ + ရှာမတွေ့ပါ + သီချင်းတစ်ပုဒ်မှမရှိပါ + + ပုံမှန် + ပုံမှန်သီချင်းစာသား + + %s သည် Android မီဒီယာစတိုးတွင် မရှိပါ]]> + မကြာသေးခင်က play မထားပါ + + စကန်ဖတ်စရာမရှိပါ + ကြည့်စရာတစ်ခုမှမရှိပါ + + Notification + Notification ပုံစံကို စိတ်ကြိုက်ပြင်ဆင်မည် + + Now playing + Now playing queue + Now playing screen ကိုစိတ်ကြိုက်ပြင်ခြင်း + Now playing theme (၉) ခုအထက် ရရှိခြင်း + + Wi-Fi ဖြင့်သာ + + အဆင့်မြင့် Settings များ + + အခြား + + Password + + လွန်ခဲ့သော (၃)လ + + Peak ပုံစံ + + External Storage ကြည့်ရှုခွင့်အားငြင်းပယ်ခဲ့သည်။ + သီချင်းဖွင့်ရန်အတွက် ယခု App အား Storage ကြည့်ရှုခွင့်ပေးရန်လိုသည်။ + Storage ကြည့်ရှုခွင့် + + ခွင့်ပြုချက်ငြင်းပယ်ခံရသည် + + မိမိစိတ်ကြိုက် + Now Playing နှင့် UI controls များကိုစိတ်ကြိုက်ပြင်ဆင်မည် + + Local Storage မှ ရွေးမည် + + Pinterest + Retro Music ဒီဇိုင်းအကြံဉာဏ်ကောင်းများအတွက် Pinterest page ကို follow ပါ + + ရှင်းရှင်းလင်းလင်းပုံစံ + + Playing notification သည် play/pause ခလုတ် စသည့်တို့ကိုဖော်ပြပေးသည် + Playing notification + + Playlist တွင်ဘာမှမရှိပါ + Playlist နာမည် + + Playlists + + Blur Themes များအတွက်သက်ရောက်သော အဝါးပမာဏဖြစ်ပြီး ပမာဏနည်းလေ ပိုမြန်လေဖြစ်သည် + အဝါးပမာဏ + ကြာချိန်ဖြင့်သီချင်းစစ်ထုတ်မည် + သီချင်းကြာချိန်စစ်ထုတ်ခြင်း + ပိုမိုဆန်းသစ်သော + Album စတိုင် + အသံပိုင်းဆိုင်ရာ + Blacklist + ထိန်းချုပ်မှုဆိုင်ရာ + Theme + Images + Library + Lockscreen + Playlists + Volume သုညရောက်သွားပါက သီချင်းရပ်ပြီး Volume ပြန်ကျယ်လာသည့်အခါ ပြန် play မည်ဖြစ်သည်။ App ထဲဝင်မထားသော်လည်းအလုပ်လုပ်သည်။ + သုည၌ရပ်ခြင်း + ဤ feature ဖွင့်ထားပါက ဘက်ထရီသက်တမ်းထိခိုက်နိုင်ပါသည် + Screen တစ်ချိန်လုံးဖွင့်ထားမည် + ဘာသာစကားရွေးချယ်မည် + ယခု play နေသောသီချင်း Album cover ပုံအား Lockscreen wallpaper အဖြစ်ထားမည် + Album သီဆိုသူများကိုလည်း အဆိုတော် Category တွင်ထားမည် + System Sound (သို့) Notification တစ်ခုရောက်လာသည့်အခါ သီချင်းအသံကိုတိုးမည် + Blacklist folder သိို့သွင်းထားသည်များကို Library တွင်မြင်ရမည်မဟုတ်ပါ + Bluetooth device နှင့်ချိတ်ဆက်လိုက်သည်နှင့် သီချင်းစဖွင့်မည် + Lockscreen တွင် Album cover ပုံကိုဝါးထားမည်။ Third-party app နှင့် Widget များတွင် ပြဿနာတက်နိုင်သည်။ + Now Playing screen မှ Album cover အတွက် Carousel effect ဖြစ်သည်။ ဤ effect ကြောင့် ကတ်နှင့် ကတ်အဝါး Theme များအလုပ်လုပ်မည်မဟုတ်ပါ။ + Android ၏ Notification ဒီဇိုင်းအဟောင်းကိုသုံးမည် + နောက်ခံအရောင်နှင့်ထိန်းချုပ်ခလုတ်အရောင်များသည် Now Playing screen မှ Album cover အရောင်အတိုင်း ပြောင်းလဲပါမည် + Accent color မှ App shortcuts များကိုအရောင်ပြောင်းလဲသည်။ Accent color ပြောင်းသည့်အခါတိုင်း App ကိုသက်ရောက်မှုရှိစေရန် ဤခလုတ်ကိုအဖွင့်၊အပိတ်လုပ်ပေးပါ။ + "Notification အရောင်ကို Album cover မှထင်ရှားသည့်အရောင်အတိုင်း ပြောင်းမည်" + Material ဒီဇိုင်းညွှန်ကြားချက်များအရ Dark Mode ဖွင့်ထားချိန်တွင်အရောင်များမှိန်နေသင့်သည် + Notification ကိုနှိပ်သည့်အခါ Home screen သို့ရောက်မည့်အစား Now Playing screen သို့တိုက်ရိုက်ရောက်သွားမည် + Mini player တွင် ထိန်းချုပ်ခလုတ်အပိုများထပ်ပေါင်းမည် + သီချင်းဖိုင်၏အသေးစိတ်အချက်အလက်များ ပြသမည်၊ ဥပမာ - ဖိုင်အမျိုးအစား၊ bitrate နှင့် ကြိမ်နှုန်း + "အချို့ device များတွင် playback ပြဿနာများဖြစ်ပေါ်နိုင်သည်" + Home banner အား ပြသခြင်း၊ ဖျောက်ထားခြင်း + Album cover အရည်အသွေးပိုမိုကောင်းမွန်လာနိုင်သော်လည်း Loading time ပိုကြာနိုင်သည်။ အရည်အသွေးနိမ့်သောပုံများနှင့်အဆင်မပြေမှသာလျှင် ဤခလုတ်ကိုဖွင့်ပါ။ + Library category များ ဖော်ခြင်း၊ ဖျောက်ခြင်းနှင့် အထားအသိုများ ချိန်ညှိမည် + Retro Music ၏ ပြင်ဆင်ထားသော Lockscreen controls များကိုသုံးမည် + Open Source software အတွက် လိုင်စင်အချက်အလက်များ + Immersive mode + နားကြပ်နှင့်ချိတ်ဆက်ပြီးသည့်နှင့် စတင် play မည် + သီချင်းဖွင့်မည့်စာရင်း\'အသစ်\'ကို play သည့်အခါ Shuffle Mode ပိတ်သွားပါမည် + နေရာလုံလုံလောက်လောက်ရှိပါက Now Playing screen တွင် အသံအတိုးအကျယ်ခလုတ်များပြသမည် + Album cover ပြသခြင်း + Album သီဆိုသူဖြင့် ရှာဖွေခြင်း + Album cover theme + Album cover skip + Colored App shortcuts + Reduce volume on focus loss + အဆိုတော်ဓာတ်ပုံများကို အလိုအလျောက်ဒေါင်းလုဒ်ဆွဲခြင်း + Blacklist + Bluetooth playback + Album cover အဝါး + Notification ဒီဇိုင်းအဟောင်း + Adaptive color + အရောင်ပါသော notification + Desaturated color + Now Playing screen ပြသခြင်း + အပိုထိန်းချုပ်မှုများ + သီချင်းဖိုင်အချက်အလက် + လစ်ဟာမှုမရှိ play ခြင်း + App theme + Album အကွက်ပုံစံ + အဆိုတော်အကွက်ပုံစံ + Banner + Media Store covers များကိုလျစ်လျူရှုခြင်း + နောက်ဆုံးသွင်းထားသော playlist ရှိသီချင်းများ + Lockscreen အပြည့် controls + Now playing theme + Open source licences + Tab ခေါင်းစဉ်ပြသခြင်း + Carousel effect + App ကို screen အပြည့်ထားမည် + အလိုအလျောက် play ခြင်း + Shuffle mode + အသံထိန်းချုပ်မှု + + Pro + Black theme ၊ Now playing themes နှင့် Carousel effect စသည်များ... + + Profile + + ဝယ်ယူမည် + + နားထောင်နေသည့်စာရင်း + + ဤ app ကို star ပေးမည် + App ကိုကြိုက်ပါသလား။ ယခုထက်ပိုကောင်းမွန်အောင်ဘယ်လိုလုပ်ရမလဲဆိုတာ ကျွန်တော်တို့ကို Google Play Store မှာပြောပြပေးပါ။ + + မကြာသေးခင်ကနားထောင်ထားသော Album များ + မကြာသေးခင်ကနားထောင်ထားသော အဆိုတော်များ + + ပယ်ဖျက်မည် + Cover ကိုဖျက်မည် + Blacklist မှဖျက်မည် + Playlist မှဖျက်မည် + %1$s ကို Playlist ကဖျက်မှာလား]]> + Playlist မှသီချင်းများဖျက်ခြင်း + %1$d ပုဒ်ကို playlist ကဖျက်မှာလား]]> + + Playlist နာမည်ပြင်မည် + + ပြဿနာတစ်ခုသတင်းပို့မည် + Bug report တင်မည် + + Reset + Reset artist image + + ပြန်လည်ရယူမည် + + ယခင်ဝယ်ယူမှုကို ပြန်လည်ရယူပြီးပါပြီ။ Feature အားလုံးအလုပ်လုပ်ရန် app မှထွက်ပြီးပြန်ဝင်ပါ။ + ယခင်ဝယ်ယူမှုအား ပြန်လည်ရယူပြီးပါပြီ + + ယခင်ဝယ်ယူမှုအား ပြန်လည်ရယူနေသည်... + + Retro Music Player + Retro Music Pro + + သီချင်းများကို Ringtone ထားရန် app အား System Settings များကိုပြင်ဆင်ခွင့်ပေးရန်လိုသည်။ + Ringtone + + ဖိုင်ဖျက်ခြင်းမအောင်မြင်ပါ: %s + + SAF URI ကိုမရယူနိုင်ပါ + Navigation drawer ကိုဖွင့်ပါ + Overflow Menu မှ \'Show SD card\' ကိုနှိပ်ပါ + + %s သည် SD card ကြည့်ရှုခွင့်လိုအပ်သည် + SD card ၏ ထိပ်ဆုံး Directory ကိုရွေးပေးရန်လိုအပ်သည် + Navigation drawer တွင် SD card ကိုရွေးချယ်ပါ + Folder အခွဲများကို မဖွင့်ပါနှင့် + Screen ၏အောက်ဆုံးတွင်ရှိသော \'select\' ခလုတ်ကိုနှိပ်ပါ + ဖိုင်ပြုပြင်ခြင်းမအောင်မြင်ပါ: %s + + မှတ်ထားမည် + + + ဖိုင်အဖြစ်သိမ်းမည် + ဖိုင်များအဖြစ်သိမ်းမည် + + %s တွင် playlist ကိုသိမ်းခဲ့သည် + + ပြောင်းလဲမှုများကိုမှတ်သားနေသည် + + မီဒီယာစကန်ဖတ်မည် + + ဖိုင် %2$d ခုအနက် %1$d ခုကို စကန်ဖတ်ပြီးပါပြီ + + Scrobbles + + အားလုံးရွေးမည် + + ရွေးချယ်ထားသော + + ထားမည် + အဆိုတော်ပုံအဖြစ်ထားမည် + + App ကိုမျှဝေမည် + သင့်မိသားစုနှင့် သူငယ်ချင်းများကိုပြန်လည်မျှဝေလိုက်ပါ + Stories သို့မျှဝေမည် + + Shuffle + + ရိုးရိုးရှင်းရှင်း + + Sleep timer ကိုဖျက်ပြီးပါပြီ + ယခုမှစတင်၍ Sleep timer ကို %d မိနစ်အချိန်မှတ်ပြီးပါပြီ + + Social + Story မျှဝေမည် + + သီချင်း + သီချင်းကြာချိန် + + သီချင်းများ + + အထားအသိုပြင်မည် + ငယ်ရာမှကြီးရာ + Album + အဆိုတော် + တေးရေးဆရာ + ထည့်သွင်းသည့်ရက် + ပြင်ဆင်သည့်ရက် + အပုဒ်အရေအတွက် + အပုဒ်အရေအတွက်ပြောင်းပြန် + ထွက်ရှိသည့်နှစ် + ကြီးရာမှငယ်ရာ + + ဆောရီး! သင့် device သည် အသံဖြင့်ပြောဆိုခြင်းအား အထောက်အပံ့မပေးထားပါ + သင့် Library တွင်ရှာဖွေခြင်း + + Stack + + သီချင်းစတင် play ပါပြီ + + အကြံပြုထားသောသီချင်းများ + + Support development + + Swipe to unlock + + ချိန်ကိုက်ထားသောသီချင်းစာသား + + + Telegram + Bugs များကို ဆွေးနွေးရန်၊ အကြံပြုချက်များပေးရန်၊ ကြွားရန်နှင့် စသည်များ... + + ကျေးဇူးတင်ပါတယ် + + အသံဖိုင် + + ယခုလ + ယခုအပတ် + ယခုနှစ် + + Tiny + Tiny card + + နာမည် + + ယနေ့ + + ထိပ်ဆုံး Album များ + ထိပ်ဆုံးအဆိုတော်များ + + "Track (2 for track 2 or 3004 for CD3 track 4)" + အပုဒ်နံပါတ် + + ဘာသာပြန်ခြင်း + App ကိုသင့်ဘာသာစကားသို့ ကူပြန်ပေးပါ + + Retro Music Premium ကိုစမ်းကြည့်ပါ + + Twitter + သင့် Retro Music ဒီဇိုင်းများကိုမျှဝေပါ + + Label မထိုးပါ + + ဤသီချင်းကို မ play နိုင်ပါ + + လာမည့်အပုဒ် + + Update image + + အပ်ဒိတ်လုပ်နေသည်… + + သုံးစွဲသူ + + သုံးစွဲသူအမည် + + Version + + ဒေါင်လိုက်ဟိုဘက်ဒီဘက်လှန်ခြင်း + + အသံအတိုးအကျယ် + + Web search + + မင်္ဂလာပါ + + ဘာများမျှဝေချင်ပါသလဲ + + ဘာအသစ်တွေရှိလဲ + + Window + အနားအကွေးပုံစံ + + %1$s ကို Ringtone အဖြစ်ထားပြီးပါပြီ + %1$d ခုကိုရွေးထားသည် + + ထွက်ရှိသည့်နှစ် + + အနည်းဆုံး category တစ်ခုရွေးချယ်ရန်လိုအပ်သည် + Issue tracker website သို့ခေါ်ဆောင်သွားပါမည် + + သင့်အကောင့်အချက်အလက်ကို အတည်ပြုရန်အတွက်သာအသုံးပြုပါသည်။ + \ No newline at end of file From 27b9ccc81e0c6ab956d5cb39837e6b23cb5a9d41 Mon Sep 17 00:00:00 2001 From: "Daksh P. Jain" Date: Thu, 5 Nov 2020 12:51:53 +0530 Subject: [PATCH 06/19] Fix an error in Russian translation --- app/src/main/res/values-ru-rRU/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index ab893bf60..d868302d9 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -315,7 +315,7 @@ Следующая песня Альбомы отсутствуют - Исполнители отсутствую + Исполнители отсутствуют "Сначала проиграйте песню, затем попробуйте заново." Эквалайзер не найден Жанры отсутствуют From 15ede0b71cce6193220b5c2b6f8b26355a09cccf Mon Sep 17 00:00:00 2001 From: rsaliyevzhomart Date: Thu, 12 Nov 2020 00:47:12 +0500 Subject: [PATCH 07/19] Fixed compilation issue: Problem with missed > symbol in el-rGR/strings.xml --- app/src/main/res/values-el-rGR/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index b573bdbc8..c2671b300 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -629,5 +629,5 @@ Πρέπει να επιλέξετε τουλάχιστον μία κατηγορία. Θα προωθηθείτε στον ιστότοπο παρακολούθησης ζητημάτων. - + Τα δεδομένα του λογαριασμού σας χρησιμοποιούνται μόνο για έλεγχο ταυτότητας. From bf2f4ac757f03a25f3ef7979648fc002907827fd Mon Sep 17 00:00:00 2001 From: Hemanth S Date: Mon, 16 Nov 2020 23:07:16 +0530 Subject: [PATCH 08/19] Add play all and shuffle all buttons for lists --- .../base/AbsSlidingMusicPanelActivity.kt | 7 ++- .../tageditor/WriteTagsAsyncTask.java | 3 +- .../adapter/song/ShuffleButtonSongAdapter.kt | 10 +++- .../monkey/retromusic/db/RetroDatabase.kt | 2 +- .../fragments/CoroutineViewModel.kt | 37 ------------ .../fragments/DetailListFragment.kt | 24 +++----- .../playlists/PlaylistDetailsFragment.kt | 8 +-- .../fragments/search/SearchFragment.kt | 15 +++++ .../preferences/LibraryPreference.kt | 2 +- .../name/monkey/retromusic/util/MusicUtil.kt | 13 ++-- .../res/layout/item_list_quick_actions.xml | 59 ++++++++----------- ...nce_dialog_library_categories_listitem.xml | 7 +-- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 14 files changed, 77 insertions(+), 116 deletions(-) delete mode 100644 app/src/main/java/code/name/monkey/retromusic/fragments/CoroutineViewModel.kt diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt index 2d28cd368..ca21f78b0 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt @@ -86,6 +86,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { setMiniPlayerAlphaProgress(slideOffset) dimBackground.show() dimBackground.alpha = slideOffset + println(slideOffset) } override fun onStateChanged(bottomSheet: View, newState: Int) { @@ -97,6 +98,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { onPanelCollapsed() dimBackground.hide() } + else -> { println("Do something") } @@ -114,11 +116,11 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { setupBottomSheet() updateColor() - val themeColor = ATHUtil.resolveColor(this, android.R.attr.windowBackground, Color.GRAY) + val themeColor = resolveColor(android.R.attr.windowBackground, Color.GRAY) dimBackground.setBackgroundColor(ColorUtil.withAlpha(themeColor, 0.5f)) dimBackground.setOnClickListener { println("dimBackground") - + collapsePanel() } } @@ -154,6 +156,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { fun collapsePanel() { bottomSheetBehavior.state = STATE_COLLAPSED + setMiniPlayerAlphaProgress(0f) } fun expandPanel() { diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/WriteTagsAsyncTask.java b/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/WriteTagsAsyncTask.java index 45cb21a69..6e71e4d6c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/WriteTagsAsyncTask.java +++ b/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/WriteTagsAsyncTask.java @@ -98,7 +98,8 @@ public class WriteTagsAsyncTask extends DialogAsyncTask, itemLayoutRes: Int, ICabHolder: ICabHolder? @@ -35,16 +38,19 @@ class ShuffleButtonSongAdapter( override fun onBindViewHolder(holder: SongAdapter.ViewHolder, position: Int) { if (holder.itemViewType == OFFSET_ITEM) { + val color = ThemeStore.accentColor(activity) val viewHolder = holder as ViewHolder viewHolder.playAction?.let { it.setOnClickListener { MusicPlayerRemote.openQueue(dataSet, 0, true) } + it.applyOutlineColor(color) } viewHolder.shuffleAction?.let { it.setOnClickListener { MusicPlayerRemote.openAndShuffleQueue(dataSet, true) } + it.applyColor(color) } } else { super.onBindViewHolder(holder, position - 1) diff --git a/app/src/main/java/code/name/monkey/retromusic/db/RetroDatabase.kt b/app/src/main/java/code/name/monkey/retromusic/db/RetroDatabase.kt index 42eefa7b4..804342126 100644 --- a/app/src/main/java/code/name/monkey/retromusic/db/RetroDatabase.kt +++ b/app/src/main/java/code/name/monkey/retromusic/db/RetroDatabase.kt @@ -19,7 +19,7 @@ import androidx.room.RoomDatabase @Database( entities = [PlaylistEntity::class, SongEntity::class, HistoryEntity::class, PlayCountEntity::class, BlackListStoreEntity::class, LyricsEntity::class], - version = 22, + version = 23, exportSchema = false ) abstract class RetroDatabase : RoomDatabase() { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/CoroutineViewModel.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/CoroutineViewModel.kt deleted file mode 100644 index a1227d9c9..000000000 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/CoroutineViewModel.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2020 Hemanth Savarla. - * - * 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.fragments - -import androidx.lifecycle.ViewModel -import kotlin.coroutines.CoroutineContext -import kotlinx.coroutines.* - -open class CoroutineViewModel( - private val mainDispatcher: CoroutineDispatcher -) : ViewModel() { - private val job = Job() - protected val scope = CoroutineScope(job + mainDispatcher) - - protected fun launch( - context: CoroutineContext = mainDispatcher, - start: CoroutineStart = CoroutineStart.DEFAULT, - block: suspend CoroutineScope.() -> Unit - ) = scope.launch(context, start, block) - - override fun onCleared() { - super.onCleared() - job.cancel() - } -} diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt index 59267957a..5566e1023 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt @@ -26,6 +26,7 @@ import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver import code.name.monkey.retromusic.* import code.name.monkey.retromusic.adapter.album.AlbumAdapter import code.name.monkey.retromusic.adapter.artist.ArtistAdapter +import code.name.monkey.retromusic.adapter.song.ShuffleButtonSongAdapter import code.name.monkey.retromusic.adapter.song.SongAdapter import code.name.monkey.retromusic.db.toSong import code.name.monkey.retromusic.extensions.dipToPix @@ -34,7 +35,6 @@ import code.name.monkey.retromusic.interfaces.IAlbumClickListener import code.name.monkey.retromusic.interfaces.IArtistClickListener import code.name.monkey.retromusic.model.Album import code.name.monkey.retromusic.model.Artist -import code.name.monkey.retromusic.state.NowPlayingPanelState import code.name.monkey.retromusic.util.RetroUtil import kotlinx.android.synthetic.main.fragment_playlist_detail.* @@ -48,18 +48,10 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de mainActivity.setSupportActionBar(toolbar) progressIndicator.hide() when (args.type) { - TOP_ARTISTS -> { - loadArtists(R.string.top_artists, TOP_ARTISTS) - } - RECENT_ARTISTS -> { - loadArtists(R.string.recent_artists, RECENT_ARTISTS) - } - TOP_ALBUMS -> { - loadAlbums(R.string.top_albums, TOP_ALBUMS) - } - RECENT_ALBUMS -> { - loadAlbums(R.string.recent_albums, RECENT_ALBUMS) - } + TOP_ARTISTS -> loadArtists(R.string.top_artists, TOP_ARTISTS) + RECENT_ARTISTS -> loadArtists(R.string.recent_artists, RECENT_ARTISTS) + TOP_ALBUMS -> loadAlbums(R.string.top_albums, TOP_ALBUMS) + RECENT_ALBUMS -> loadAlbums(R.string.recent_albums, RECENT_ALBUMS) FAVOURITES -> loadFavorite() HISTORY_PLAYLIST -> loadHistory() LAST_ADDED_PLAYLIST -> lastAddedSongs() @@ -77,7 +69,7 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de private fun lastAddedSongs() { toolbar.setTitle(R.string.last_added) - val songAdapter = SongAdapter( + val songAdapter = ShuffleButtonSongAdapter( requireActivity(), mutableListOf(), R.layout.item_list, null @@ -93,7 +85,7 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de private fun topPlayed() { toolbar.setTitle(R.string.my_top_tracks) - val songAdapter = SongAdapter( + val songAdapter = ShuffleButtonSongAdapter( requireActivity(), mutableListOf(), R.layout.item_list, null @@ -110,7 +102,7 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de private fun loadHistory() { toolbar.setTitle(R.string.history) - val songAdapter = SongAdapter( + val songAdapter = ShuffleButtonSongAdapter( requireActivity(), mutableListOf(), R.layout.item_list, null diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt index d74a1aaf8..9e0b4ffe2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt @@ -12,14 +12,13 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.retromusic.R -import code.name.monkey.retromusic.adapter.song.PlaylistSongAdapter +import code.name.monkey.retromusic.adapter.song.ShuffleButtonSongAdapter import code.name.monkey.retromusic.db.PlaylistWithSongs import code.name.monkey.retromusic.db.toSongs import code.name.monkey.retromusic.extensions.dipToPix import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment import code.name.monkey.retromusic.helper.menu.PlaylistMenuHelper import code.name.monkey.retromusic.model.Song -import code.name.monkey.retromusic.state.NowPlayingPanelState import com.google.android.material.transition.MaterialContainerTransform import kotlinx.android.synthetic.main.fragment_playlist_detail.* import org.koin.androidx.viewmodel.ext.android.viewModel @@ -32,7 +31,7 @@ class PlaylistDetailsFragment : AbsMainActivityFragment(R.layout.fragment_playli } private lateinit var playlist: PlaylistWithSongs - private lateinit var playlistSongAdapter: PlaylistSongAdapter + private lateinit var playlistSongAdapter: ShuffleButtonSongAdapter private fun setUpTransitions() { val transform = MaterialContainerTransform() @@ -61,8 +60,7 @@ class PlaylistDetailsFragment : AbsMainActivityFragment(R.layout.fragment_playli } private fun setUpRecyclerView() { - playlistSongAdapter = PlaylistSongAdapter( - playlist.playlistEntity, + playlistSongAdapter = ShuffleButtonSongAdapter( requireActivity(), ArrayList(), R.layout.item_list, diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt index 6ab5113ab..4c552385b 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt @@ -15,12 +15,14 @@ package code.name.monkey.retromusic.fragments.search import android.content.ActivityNotFoundException +import android.content.Context import android.content.Intent import android.os.Bundle import android.speech.RecognizerIntent import android.text.Editable import android.text.TextWatcher import android.view.View +import android.view.inputmethod.InputMethodManager import androidx.core.view.isGone import androidx.core.view.isVisible import androidx.recyclerview.widget.LinearLayoutManager @@ -143,6 +145,19 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), TextWa showToast(getString(R.string.speech_not_supported)) } } + + override fun onDestroyView() { + hideKeyboard(view) + super.onDestroyView() + } + + private fun hideKeyboard(view: View?) { + if (view != null) { + val imm: InputMethodManager = + requireContext().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager + imm.hideSoftInputFromWindow(view.windowToken, 0) + } + } } fun TextInputEditText.clearText() { diff --git a/app/src/main/java/code/name/monkey/retromusic/preferences/LibraryPreference.kt b/app/src/main/java/code/name/monkey/retromusic/preferences/LibraryPreference.kt index 7ff912e3c..ccf12b4b4 100644 --- a/app/src/main/java/code/name/monkey/retromusic/preferences/LibraryPreference.kt +++ b/app/src/main/java/code/name/monkey/retromusic/preferences/LibraryPreference.kt @@ -72,7 +72,7 @@ class LibraryPreferenceDialog : DialogFragment() { categoryAdapter.categoryInfos = PreferenceUtil.defaultCategories } .setNegativeButton(android.R.string.cancel, null) - .setPositiveButton(android.R.string.ok) { _, _ -> updateCategories(categoryAdapter.categoryInfos) } + .setPositiveButton( R.string.done) { _, _ -> updateCategories(categoryAdapter.categoryInfos) } .setView(view) .create() .colorButtons() diff --git a/app/src/main/java/code/name/monkey/retromusic/util/MusicUtil.kt b/app/src/main/java/code/name/monkey/retromusic/util/MusicUtil.kt index 3c4614008..4d4746af0 100644 --- a/app/src/main/java/code/name/monkey/retromusic/util/MusicUtil.kt +++ b/app/src/main/java/code/name/monkey/retromusic/util/MusicUtil.kt @@ -94,7 +94,7 @@ object MusicUtil : KoinComponent { fun deleteAlbumArt(context: Context, albumId: Long) { val contentResolver = context.contentResolver val localUri = Uri.parse("content://media/external/audio/albumart") - contentResolver.delete(ContentUris.withAppendedId(localUri, albumId.toLong()), null, null) + contentResolver.delete(ContentUris.withAppendedId(localUri, albumId), null, null) contentResolver.notifyChange(localUri, null) } @@ -165,7 +165,7 @@ object MusicUtil : KoinComponent { try { val newLyrics = FileUtil.read(f) - if (newLyrics != null && !newLyrics.trim { it <= ' ' }.isEmpty()) { + if (newLyrics != null && newLyrics.trim { it <= ' ' }.isNotEmpty()) { if (AbsSynchronizedLyrics.isSynchronized(newLyrics)) { return newLyrics } @@ -283,9 +283,8 @@ object MusicUtil : KoinComponent { path: String? ) { val contentResolver = context.contentResolver - val artworkUri = - Uri.parse("content://media/external/audio/albumart") - contentResolver.delete(ContentUris.withAppendedId(artworkUri, albumId.toLong()), null, null) + val artworkUri = Uri.parse("content://media/external/audio/albumart") + contentResolver.delete(ContentUris.withAppendedId(artworkUri, albumId), null, null) val values = ContentValues() values.put("album_id", albumId) values.put("_data", path) @@ -444,9 +443,7 @@ object MusicUtil : KoinComponent { } fun deleteTracks(context: Context, songs: List) { - val projection = arrayOf( - BaseColumns._ID, MediaStore.MediaColumns.DATA - ) + val projection = arrayOf(BaseColumns._ID, MediaStore.MediaColumns.DATA) val selection = StringBuilder() selection.append(BaseColumns._ID + " IN (") for (i in songs.indices) { diff --git a/app/src/main/res/layout/item_list_quick_actions.xml b/app/src/main/res/layout/item_list_quick_actions.xml index 1899825b5..1194bb555 100644 --- a/app/src/main/res/layout/item_list_quick_actions.xml +++ b/app/src/main/res/layout/item_list_quick_actions.xml @@ -12,59 +12,48 @@ ~ See the GNU General Public License for more details. --> - + app:cornerRadius="8dp" + app:layout_constraintEnd_toStartOf="@+id/shuffleAction" + app:layout_constraintHorizontal_bias="0.5" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:cornerRadius="8dp" + app:layout_constraintBottom_toBottomOf="@+id/playAction" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.5" + app:layout_constraintStart_toEndOf="@+id/playAction" + app:layout_constraintTop_toTopOf="@+id/playAction" /> - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/preference_dialog_library_categories_listitem.xml b/app/src/main/res/layout/preference_dialog_library_categories_listitem.xml index 22b376fc4..8ab634aa3 100644 --- a/app/src/main/res/layout/preference_dialog_library_categories_listitem.xml +++ b/app/src/main/res/layout/preference_dialog_library_categories_listitem.xml @@ -20,6 +20,7 @@ android:background="?attr/rectSelector" android:descendantFocusability="blocksDescendants" android:focusable="true" + android:minHeight="@dimen/md_listitem_height" android:orientation="horizontal" android:paddingStart="16dp" android:paddingEnd="0dp" @@ -41,11 +42,7 @@ android:layout_weight="1" android:ellipsize="end" android:gravity="center_vertical" - android:minHeight="@dimen/md_listitem_height" - android:paddingStart="@dimen/md_listitem_control_margin" - android:paddingLeft="@dimen/md_listitem_control_margin" - android:paddingTop="@dimen/md_listitem_vertical_margin_choice" - android:paddingBottom="@dimen/md_listitem_vertical_margin_choice" + android:paddingHorizontal="16dp" android:singleLine="true" android:textAppearance="@style/TextViewNormal" android:textColor="?android:attr/textColorPrimary" diff --git a/build.gradle b/build.gradle index c6c313625..4971f4b5d 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.2' + classpath 'com.android.tools.build:gradle:4.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" def nav_version = "2.3.0" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index faacd9634..4237faf6b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sat Jun 06 02:12:18 IST 2020 +#Fri Nov 13 20:52:31 IST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip From 21904e2a2664cb804777c72770f5085700b68ac2 Mon Sep 17 00:00:00 2001 From: SirPotato10000 Date: Tue, 24 Nov 2020 20:47:49 +0300 Subject: [PATCH 09/19] Fixed search bug Old search code in GenreRepository.kt was very slow on large libraries. Used selection parameters for contentResolver.query instead of fetching all genres and filtering afterwards. Changed code in SearchRepository.kt to call new function. --- .../retromusic/repository/GenreRepository.kt | 20 +++++++++++++++++++ .../retromusic/repository/SearchRepository.kt | 6 ++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/repository/GenreRepository.kt b/app/src/main/java/code/name/monkey/retromusic/repository/GenreRepository.kt index ca7c822a7..933e6d2db 100644 --- a/app/src/main/java/code/name/monkey/retromusic/repository/GenreRepository.kt +++ b/app/src/main/java/code/name/monkey/retromusic/repository/GenreRepository.kt @@ -32,6 +32,8 @@ import code.name.monkey.retromusic.util.PreferenceUtil interface GenreRepository { fun genres(): List + fun genres(query: String): List + fun songs(genreId: Long): List } @@ -44,6 +46,9 @@ class RealGenreRepository( return getGenresFromCursor(makeGenreCursor()) } + override fun genres(query: String): List { + return getGenresFromCursor(makeGenreCursor(arrayOf("%$query%"))) + } override fun songs(genreId: Long): List { // The genres table only stores songs that have a genre specified, // so we need to get songs without a genre a different way. @@ -161,4 +166,19 @@ class RealGenreRepository( return null } } + private fun makeGenreCursor(selectionValues: Array?): Cursor? { + val selection = MediaStore.Audio.GenresColumns.NAME + " LIKE ?" + val projection = arrayOf(Genres._ID, Genres.NAME) + return try { + contentResolver.query( + Genres.EXTERNAL_CONTENT_URI, + projection, + selection, + selectionValues, + PreferenceUtil.genreSortOrder + ) + } catch (e: SecurityException) { + return null + } + } } diff --git a/app/src/main/java/code/name/monkey/retromusic/repository/SearchRepository.kt b/app/src/main/java/code/name/monkey/retromusic/repository/SearchRepository.kt index d8bb7b06d..c026fb9f4 100644 --- a/app/src/main/java/code/name/monkey/retromusic/repository/SearchRepository.kt +++ b/app/src/main/java/code/name/monkey/retromusic/repository/SearchRepository.kt @@ -45,10 +45,8 @@ class RealSearchRepository( results.add(context.resources.getString(R.string.albums)) results.addAll(albums) } - val genres: List = genreRepository.genres().filter { genre -> - genre.name.toLowerCase(Locale.getDefault()) - .contains(searchString.toLowerCase(Locale.getDefault())) - } + + val genres = genreRepository.genres(searchString) if (genres.isNotEmpty()) { results.add(context.resources.getString(R.string.genres)) results.addAll(genres) From bfe03a2b0667824591c7ef864c15061c83537afa Mon Sep 17 00:00:00 2001 From: Hemanth S Date: Sat, 28 Nov 2020 14:33:54 +0530 Subject: [PATCH 10/19] Adding shuffle button --- .../fragments/albums/AlbumDetailsFragment.kt | 13 ------------- .../retromusic/fragments/songs/SongsFragment.kt | 8 ++++---- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumDetailsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumDetailsFragment.kt index 3f351fe8b..cb06d353b 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumDetailsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumDetailsFragment.kt @@ -31,7 +31,6 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import code.name.monkey.appthemehelper.common.ATHToolbarActivity.getToolbarBackgroundColor -import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper import code.name.monkey.retromusic.EXTRA_ALBUM_ID import code.name.monkey.retromusic.EXTRA_ARTIST_ID @@ -64,7 +63,6 @@ import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.RetroUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor import com.bumptech.glide.Glide -import com.google.android.material.transition.MaterialContainerTransform import kotlinx.android.synthetic.main.fragment_album_content.* import kotlinx.android.synthetic.main.fragment_album_details.* import kotlinx.coroutines.Dispatchers @@ -89,17 +87,6 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det private val savedSortOrder: String get() = PreferenceUtil.albumDetailSongSortOrder - private fun setUpTransitions() { - val transform = MaterialContainerTransform() - transform.setAllContainerColors(ATHUtil.resolveColor(requireContext(), R.attr.colorSurface)) - sharedElementEnterTransition = transform - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setUpTransitions() - } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) setHasOptionsMenu(true) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/songs/SongsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/songs/SongsFragment.kt index 8ba0b0e84..c9f791412 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/songs/SongsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/songs/SongsFragment.kt @@ -20,6 +20,7 @@ import androidx.annotation.LayoutRes import androidx.lifecycle.Observer import androidx.recyclerview.widget.GridLayoutManager import code.name.monkey.retromusic.R +import code.name.monkey.retromusic.adapter.song.ShuffleButtonSongAdapter import code.name.monkey.retromusic.adapter.song.SongAdapter import code.name.monkey.retromusic.extensions.surfaceColor import code.name.monkey.retromusic.fragments.ReloadType @@ -35,7 +36,7 @@ class SongsFragment : AbsRecyclerViewCustomGridSizeFragment gridSizeMenu.findItem(R.id.action_grid_size_1).isChecked = - true + 1 -> gridSizeMenu.findItem(R.id.action_grid_size_1).isChecked = true 2 -> gridSizeMenu.findItem(R.id.action_grid_size_2).isChecked = true 3 -> gridSizeMenu.findItem(R.id.action_grid_size_3).isChecked = true 4 -> gridSizeMenu.findItem(R.id.action_grid_size_4).isChecked = true From 9fce62b9c5a840bb44d574506281f945a235523e Mon Sep 17 00:00:00 2001 From: Hemanth S Date: Thu, 3 Dec 2020 20:31:27 +0530 Subject: [PATCH 11/19] Fix animations --- app/build.gradle | 8 ++++---- .../base/AbsSlidingMusicPanelActivity.kt | 1 - .../monkey/retromusic/extensions/ColorExt.kt | 16 ++++++++-------- .../retromusic/extensions/ViewExtensions.kt | 11 ++++++++++- .../fragments/DetailListFragment.kt | 1 + .../fragments/albums/AlbumDetailsFragment.kt | 19 +++++++++++++++---- .../fragments/albums/AlbumsFragment.kt | 10 ++++++++-- .../artists/ArtistDetailsFragment.kt | 19 ++++++++----------- .../fragments/artists/ArtistsFragment.kt | 8 ++++++++ .../fragments/base/AbsRecyclerViewFragment.kt | 3 +++ .../fragments/genres/GenreDetailsFragment.kt | 17 ++++++++++------- .../fragments/genres/GenresFragment.kt | 7 +++++++ .../playlists/PlaylistDetailsFragment.kt | 17 ++++++++++------- .../fragments/playlists/PlaylistsFragment.kt | 7 +++++++ .../name/monkey/retromusic/util/ViewUtil.kt | 8 ++++---- .../main/res/layout/fragment_mini_player.xml | 10 +++------- .../res/layout/fragment_playlist_detail.xml | 4 ++-- app/src/main/res/layout/loading.xml | 9 ++++++--- app/src/main/res/values-ru-rRU/strings.xml | 3 +-- appthemehelper/build.gradle | 6 +++--- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 21 files changed, 120 insertions(+), 68 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ba496ad4e..ab90e0920 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -100,14 +100,14 @@ dependencies { implementation "androidx.cardview:cardview:1.0.0" implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.annotation:annotation:1.1.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.1' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'androidx.preference:preference-ktx:1.1.1' - implementation 'androidx.core:core-ktx:1.3.1' + implementation 'androidx.core:core-ktx:1.3.2' implementation 'androidx.fragment:fragment-ktx:1.2.5' implementation 'androidx.palette:palette-ktx:1.0.0' - def nav_version = "2.3.0" + def nav_version = "2.3.2" implementation "androidx.navigation:navigation-runtime-ktx:$nav_version" implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" @@ -123,7 +123,7 @@ dependencies { implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" implementation 'com.google.android.play:core-ktx:1.8.1' - implementation 'com.google.android.material:material:1.3.0-alpha01' + implementation 'com.google.android.material:material:1.3.0-alpha04' def retrofit_version = '2.9.0' implementation "com.squareup.retrofit2:retrofit:$retrofit_version" diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt index ca21f78b0..77928bec7 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt @@ -86,7 +86,6 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { setMiniPlayerAlphaProgress(slideOffset) dimBackground.show() dimBackground.alpha = slideOffset - println(slideOffset) } override fun onStateChanged(bottomSheet: View, newState: Int) { diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt index d3bfb6dfa..280afafe2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt @@ -40,7 +40,7 @@ import code.name.monkey.retromusic.R import com.google.android.material.button.MaterialButton import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton import com.google.android.material.floatingactionbutton.FloatingActionButton -import com.google.android.material.progressindicator.ProgressIndicator +import com.google.android.material.progressindicator.CircularProgressIndicator import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout @@ -154,7 +154,7 @@ fun MaterialButton.applyColor(color: Int) { iconTint = textColorColorStateList } -fun MaterialButton.accentColor(){ +fun MaterialButton.accentColor() { this.applyColor(ThemeStore.accentColor(context)) } @@ -172,14 +172,14 @@ fun TextInputLayout.accentColor() { isHintAnimationEnabled = true } -fun ProgressIndicator.accentColor() { - val accentColor = ThemeStore.accentColor(context) - indicatorColors = intArrayOf(accentColor) - trackColor = ColorUtil.withAlpha(accentColor, 0.2f) +fun CircularProgressIndicator.accentColor() { + val color = ThemeStore.accentColor(context) + setIndicatorColor(color) + trackColor = ColorUtil.withAlpha(color, 0.2f) } -fun ProgressIndicator.applyColor(color: Int) { - indicatorColors = intArrayOf(color) +fun CircularProgressIndicator.applyColor(color: Int) { + setIndicatorColor(color) trackColor = ColorUtil.withAlpha(color, 0.2f) } diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/ViewExtensions.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/ViewExtensions.kt index a343b2c32..1e4d7745d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/ViewExtensions.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/ViewExtensions.kt @@ -28,6 +28,8 @@ import androidx.core.animation.doOnStart import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.TintHelper import com.google.android.material.bottomsheet.BottomSheetBehavior +import com.google.android.material.imageview.ShapeableImageView +import com.google.android.material.shape.ShapeAppearanceModel @Suppress("UNCHECKED_CAST") fun ViewGroup.inflate(@LayoutRes layout: Int): T { @@ -113,4 +115,11 @@ fun View.focusAndShowKeyboard() { } }) } -} \ No newline at end of file +} + +fun ShapeableImageView.setCircleShape(boolean: Boolean) { + addOnLayoutChangeListener { _, _, _, _, _, _, _, _, _ -> + val radius = width / 2f + shapeAppearanceModel = ShapeAppearanceModel().withCornerSize(radius) + } +} \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt index 5566e1023..6b4299438 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt @@ -30,6 +30,7 @@ import code.name.monkey.retromusic.adapter.song.ShuffleButtonSongAdapter import code.name.monkey.retromusic.adapter.song.SongAdapter import code.name.monkey.retromusic.db.toSong import code.name.monkey.retromusic.extensions.dipToPix +import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment import code.name.monkey.retromusic.interfaces.IAlbumClickListener import code.name.monkey.retromusic.interfaces.IArtistClickListener diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumDetailsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumDetailsFragment.kt index cb06d353b..ef7f256cd 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumDetailsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumDetailsFragment.kt @@ -16,6 +16,7 @@ package code.name.monkey.retromusic.fragments.albums import android.app.ActivityOptions import android.content.Intent +import android.graphics.Color import android.os.Bundle import android.view.* import androidx.appcompat.app.AppCompatActivity @@ -41,10 +42,7 @@ import code.name.monkey.retromusic.adapter.album.HorizontalAlbumAdapter import code.name.monkey.retromusic.adapter.song.SimpleSongAdapter import code.name.monkey.retromusic.dialogs.AddToPlaylistDialog import code.name.monkey.retromusic.dialogs.DeleteSongsDialog -import code.name.monkey.retromusic.extensions.applyColor -import code.name.monkey.retromusic.extensions.applyOutlineColor -import code.name.monkey.retromusic.extensions.findActivityNavController -import code.name.monkey.retromusic.extensions.show +import code.name.monkey.retromusic.extensions.* import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment import code.name.monkey.retromusic.glide.AlbumGlideRequest import code.name.monkey.retromusic.glide.ArtistGlideRequest @@ -63,6 +61,8 @@ import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.RetroUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor import com.bumptech.glide.Glide +import com.google.android.material.transition.MaterialArcMotion +import com.google.android.material.transition.MaterialContainerTransform import kotlinx.android.synthetic.main.fragment_album_content.* import kotlinx.android.synthetic.main.fragment_album_details.* import kotlinx.coroutines.Dispatchers @@ -87,6 +87,17 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det private val savedSortOrder: String get() = PreferenceUtil.albumDetailSongSortOrder + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + sharedElementEnterTransition = MaterialContainerTransform().apply { + drawingViewId = R.id.fragment_container + duration = 300L + scrimColor = Color.TRANSPARENT + setAllContainerColors(requireContext().resolveColor(R.attr.colorSurface)) + setPathMotion(MaterialArcMotion()) + } + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) setHasOptionsMenu(true) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt index 7158d7974..40f316ca3 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt @@ -17,7 +17,6 @@ package code.name.monkey.retromusic.fragments.albums import android.os.Bundle import android.view.* import androidx.core.os.bundleOf -import androidx.lifecycle.Observer import androidx.navigation.fragment.FragmentNavigatorExtras import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.GridLayoutManager @@ -35,13 +34,14 @@ import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.RetroColorUtil import code.name.monkey.retromusic.util.RetroUtil import com.afollestad.materialcab.MaterialCab +import com.google.android.material.transition.MaterialElevationScale class AlbumsFragment : AbsRecyclerViewCustomGridSizeFragment(), IAlbumClickListener, ICabHolder { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - libraryViewModel.getAlbums().observe(viewLifecycleOwner, Observer { + libraryViewModel.getAlbums().observe(viewLifecycleOwner, { if (it.isNotEmpty()) adapter?.swapDataSet(it) else @@ -115,6 +115,12 @@ class AlbumsFragment : AbsRecyclerViewCustomGridSizeFragment(), IArtistClickListener, ICabHolder { @@ -114,6 +115,12 @@ class ArtistsFragment : AbsRecyclerViewCustomGridSizeFragment, LM : Recycle override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + postponeEnterTransition() + view.doOnPreDraw { startPostponedEnterTransition() } mainActivity.setBottomBarVisibility(View.VISIBLE) mainActivity.setSupportActionBar(toolbar) mainActivity.supportActionBar?.title = null diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenreDetailsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenreDetailsFragment.kt index 736fecbcb..32679f65e 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenreDetailsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenreDetailsFragment.kt @@ -14,6 +14,7 @@ */ package code.name.monkey.retromusic.fragments.genres +import android.graphics.Color import android.os.Bundle import android.view.Menu import android.view.MenuInflater @@ -24,14 +25,15 @@ import androidx.navigation.fragment.navArgs import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.retromusic.R import code.name.monkey.retromusic.adapter.song.SongAdapter import code.name.monkey.retromusic.extensions.dipToPix +import code.name.monkey.retromusic.extensions.resolveColor import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment import code.name.monkey.retromusic.helper.menu.GenreMenuHelper import code.name.monkey.retromusic.model.Genre import code.name.monkey.retromusic.model.Song +import com.google.android.material.transition.MaterialArcMotion import com.google.android.material.transition.MaterialContainerTransform import kotlinx.android.synthetic.main.fragment_playlist_detail.* import org.koin.androidx.viewmodel.ext.android.viewModel @@ -45,15 +47,16 @@ class GenreDetailsFragment : AbsMainActivityFragment(R.layout.fragment_playlist_ } private lateinit var genre: Genre private lateinit var songAdapter: SongAdapter - private fun setUpTransitions() { - val transform = MaterialContainerTransform() - transform.setAllContainerColors(ATHUtil.resolveColor(requireContext(), R.attr.colorSurface)) - sharedElementEnterTransition = transform - } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setUpTransitions() + sharedElementEnterTransition = MaterialContainerTransform().apply { + drawingViewId = R.id.fragment_container + duration = 300L + scrimColor = Color.TRANSPARENT + setAllContainerColors(requireContext().resolveColor(R.attr.colorSurface)) + setPathMotion(MaterialArcMotion()) + } } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenresFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenresFragment.kt index b2e9cb0c7..813859aa6 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenresFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenresFragment.kt @@ -27,6 +27,7 @@ import code.name.monkey.retromusic.adapter.GenreAdapter import code.name.monkey.retromusic.fragments.base.AbsRecyclerViewFragment import code.name.monkey.retromusic.interfaces.IGenreClickListener import code.name.monkey.retromusic.model.Genre +import com.google.android.material.transition.MaterialElevationScale class GenresFragment : AbsRecyclerViewFragment(), IGenreClickListener { @@ -63,6 +64,12 @@ class GenresFragment : AbsRecyclerViewFragment - - diff --git a/app/src/main/res/layout/loading.xml b/app/src/main/res/layout/loading.xml index 6ae871577..b1757aa47 100644 --- a/app/src/main/res/layout/loading.xml +++ b/app/src/main/res/layout/loading.xml @@ -13,16 +13,19 @@ --> + android:padding="14dp" + app:layout_gravity="center"> \ No newline at end of file diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index bdfc8e5fa..fc9d1f04a 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -10,7 +10,7 @@ Добавить в избранное Добавить в очередь воспроизведения Добавить в плейлист - Очистить очередь воспроизведения + Очистить очередь воспроизведения Режим циклического повтора Удалить Удалить с устройства @@ -655,5 +655,4 @@ Вы будете перенаправлены на сайт системы отслеживания ошибок. Данные вашей учетной записи используются только для аутентификации. - diff --git a/appthemehelper/build.gradle b/appthemehelper/build.gradle index d8380d679..32d5fd286 100644 --- a/appthemehelper/build.gradle +++ b/appthemehelper/build.gradle @@ -26,9 +26,9 @@ android { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'com.google.android.material:material:1.3.0-alpha01' - implementation 'androidx.preference:preference:1.1.1' + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'com.google.android.material:material:1.3.0-alpha04' + implementation 'androidx.preference:preference-ktx:1.1.1' implementation 'androidx.cardview:cardview:1.0.0' // Used for the list preference classes def material_dialog_version = "0.9.6.0" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 4237faf6b..4394daddf 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Nov 13 20:52:31 IST 2020 +#Thu Dec 03 19:20:35 IST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip From b944ef5de66545eb5df68cbb16d219dc49865837 Mon Sep 17 00:00:00 2001 From: Hemanth S Date: Fri, 4 Dec 2020 02:27:44 +0530 Subject: [PATCH 12/19] Fixing animations --- .../base/AbsSlidingMusicPanelActivity.kt | 15 ++--- .../retromusic/adapter/album/AlbumAdapter.kt | 28 ++++---- .../adapter/artist/ArtistAdapter.kt | 4 +- .../fragments/DetailListFragment.kt | 2 +- .../fragments/albums/AlbumDetailsFragment.kt | 66 +++++++++++-------- .../fragments/albums/AlbumsFragment.kt | 21 ++---- .../artists/ArtistDetailsFragment.kt | 19 ++++-- .../fragments/artists/ArtistsFragment.kt | 23 ++----- .../fragments/base/AbsRecyclerViewFragment.kt | 2 +- .../fragments/folder/FoldersFragment.java | 2 +- .../fragments/genres/GenreDetailsFragment.kt | 2 +- .../retromusic/fragments/home/HomeFragment.kt | 2 +- .../fragments/library/LibraryFragment.kt | 2 +- .../playlists/PlaylistDetailsFragment.kt | 2 +- .../fragments/search/SearchFragment.kt | 26 ++++++-- .../views/RetroShapeableImageView.kt | 9 ++- app/src/main/res/layout/item_grid_circle.xml | 2 +- app/src/main/res/layout/item_image.xml | 3 +- app/src/main/res/values-fr-rFR/strings.xml | 10 ++- app/src/main/res/values/dimens.xml | 4 +- .../main/res/values/shapeable_imageview.xml | 1 + 21 files changed, 123 insertions(+), 122 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt index 77928bec7..4c19aa40e 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt @@ -56,7 +56,6 @@ import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.model.CategoryInfo import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.views.BottomNavigationBarTinted -import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior.* import kotlinx.android.synthetic.main.sliding_music_panel_layout.* import org.koin.androidx.viewmodel.ext.android.viewModel @@ -133,7 +132,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { if (nowPlayingScreen != PreferenceUtil.nowPlayingScreen) { postRecreate() } - if (bottomSheetBehavior.state == BottomSheetBehavior.STATE_EXPANDED) { + if (bottomSheetBehavior.state == STATE_EXPANDED) { setMiniPlayerAlphaProgress(1f) } } @@ -326,14 +325,14 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { }) } - fun setBottomBarVisibility(visible: Int) { - bottomNavigationView.visibility = visible + fun setBottomBarVisibility(visible: Boolean) { + bottomNavigationView.isVisible = visible hideBottomBar(MusicPlayerRemote.playingQueue.isEmpty()) } private fun hideBottomBar(hide: Boolean) { val heightOfBar = dip(R.dimen.mini_player_height) - val heightOfBarWithTabs = dip(R.dimen.mini_player_height_expanded) + val heightOfBarWithTabs = heightOfBar * 2 val isVisible = bottomNavigationView.isVisible if (hide) { bottomSheetBehavior.isHideable = true @@ -347,10 +346,10 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { ViewCompat.setElevation(slidingPanel, 10f) ViewCompat.setElevation(bottomNavigationView, 10f) if (isVisible) { - bottomSheetBehavior.peekHeight = heightOfBarWithTabs - bottomNavigationView.translateYAnimate(0f) + println("List") + bottomSheetBehavior.peekHeight = heightOfBarWithTabs - 22 } else { - bottomNavigationView.translateYAnimate(150f) + println("Details") bottomSheetBehavior.peekHeight = heightOfBar } } diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumAdapter.kt index b95e5f035..869ce8bb9 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumAdapter.kt @@ -15,7 +15,6 @@ package code.name.monkey.retromusic.adapter.album import android.content.res.ColorStateList -import android.content.res.Resources import android.view.LayoutInflater import android.view.MenuItem import android.view.View @@ -27,7 +26,6 @@ import code.name.monkey.retromusic.adapter.base.AbsMultiSelectAdapter import code.name.monkey.retromusic.adapter.base.MediaEntryViewHolder import code.name.monkey.retromusic.glide.AlbumGlideRequest import code.name.monkey.retromusic.glide.RetroMusicColoredTarget -import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.helper.SortOrder import code.name.monkey.retromusic.helper.menu.SongsMenuHelper import code.name.monkey.retromusic.interfaces.IAlbumClickListener @@ -41,14 +39,14 @@ import com.bumptech.glide.Glide import me.zhanghai.android.fastscroll.PopupTextProvider open class AlbumAdapter( - protected val activity: FragmentActivity, + val activity: FragmentActivity, var dataSet: List, - protected var itemLayoutRes: Int, - ICabHolder: ICabHolder?, - private val albumClickListener: IAlbumClickListener? + var itemLayoutRes: Int, + iCabHolder: ICabHolder?, + val listener: IAlbumClickListener? ) : AbsMultiSelectAdapter( activity, - ICabHolder, + iCabHolder, R.menu.menu_media_selection ), PopupTextProvider { @@ -62,12 +60,7 @@ open class AlbumAdapter( } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { - val view = - try { - LayoutInflater.from(activity).inflate(itemLayoutRes, parent, false) - } catch (e: Resources.NotFoundException) { - LayoutInflater.from(activity).inflate(R.layout.item_grid, parent, false) - } + val view = LayoutInflater.from(activity).inflate(itemLayoutRes, parent, false) return createViewHolder(view, viewType) } @@ -99,7 +92,7 @@ open class AlbumAdapter( holder.paletteColorContainer?.setBackgroundColor(color.backgroundColor) } holder.mask?.backgroundTintList = ColorStateList.valueOf(color.primaryTextColor) - } + holder.imageContainerCard?.setCardBackgroundColor(color.backgroundColor) } protected open fun loadAlbumCover(album: Album, holder: ViewHolder) { if (holder.image == null) { @@ -177,8 +170,11 @@ open class AlbumAdapter( if (isInQuickSelectMode) { toggleChecked(layoutPosition) } else { - ViewCompat.setTransitionName(itemView, "album") - albumClickListener?.onAlbumClick(dataSet[layoutPosition].id, itemView) + image?.let { + ViewCompat.setTransitionName(it, "album") + listener?.onAlbumClick(dataSet[layoutPosition].id, it) + } + } } diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/artist/ArtistAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/artist/ArtistAdapter.kt index 7719166b6..a88d68851 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/artist/ArtistAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/artist/ArtistAdapter.kt @@ -155,8 +155,8 @@ class ArtistAdapter( toggleChecked(layoutPosition) } else { image?.let { - ViewCompat.setTransitionName(itemView, "album") - IArtistClickListener.onArtist(dataSet[layoutPosition].id, itemView) + ViewCompat.setTransitionName(it, "artist") + IArtistClickListener.onArtist(dataSet[layoutPosition].id, it) } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt index 6b4299438..af27fedce 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt @@ -45,7 +45,7 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) - mainActivity.setBottomBarVisibility(View.GONE) + mainActivity.setBottomBarVisibility(false) mainActivity.setSupportActionBar(toolbar) progressIndicator.hide() when (args.type) { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumDetailsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumDetailsFragment.kt index ef7f256cd..96c47095d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumDetailsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumDetailsFragment.kt @@ -49,7 +49,10 @@ import code.name.monkey.retromusic.glide.ArtistGlideRequest import code.name.monkey.retromusic.glide.RetroMusicColoredTarget import code.name.monkey.retromusic.glide.SingleColorTarget import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.SortOrder +import code.name.monkey.retromusic.helper.SortOrder.AlbumSongSortOrder.Companion.SONG_A_Z +import code.name.monkey.retromusic.helper.SortOrder.AlbumSongSortOrder.Companion.SONG_DURATION +import code.name.monkey.retromusic.helper.SortOrder.AlbumSongSortOrder.Companion.SONG_TRACK_LIST +import code.name.monkey.retromusic.helper.SortOrder.AlbumSongSortOrder.Companion.SONG_Z_A import code.name.monkey.retromusic.interfaces.IAlbumClickListener import code.name.monkey.retromusic.model.Album import code.name.monkey.retromusic.model.Artist @@ -63,6 +66,7 @@ import code.name.monkey.retromusic.util.color.MediaNotificationProcessor import com.bumptech.glide.Glide import com.google.android.material.transition.MaterialArcMotion import com.google.android.material.transition.MaterialContainerTransform +import com.google.android.material.transition.MaterialElevationScale import kotlinx.android.synthetic.main.fragment_album_content.* import kotlinx.android.synthetic.main.fragment_album_details.* import kotlinx.coroutines.Dispatchers @@ -101,11 +105,12 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) setHasOptionsMenu(true) - mainActivity.setBottomBarVisibility(View.GONE) + mainActivity.setBottomBarVisibility(false) mainActivity.addMusicServiceEventListener(detailsViewModel) mainActivity.setSupportActionBar(toolbar) + toolbar.title = " " - ViewCompat.setTransitionName(container, "album") + ViewCompat.setTransitionName(albumCoverContainer, "album") postponeEnterTransition() detailsViewModel.getAlbum().observe(viewLifecycleOwner, Observer { startPostponedEnterTransition() @@ -115,6 +120,12 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det setupRecyclerView() artistImage.setOnClickListener { artistView -> ViewCompat.setTransitionName(artistView, "artist") + exitTransition = MaterialElevationScale(false).apply { + duration = 300L + } + reenterTransition = MaterialElevationScale(true).apply { + duration = 300L + } findActivityNavController(R.id.fragment_container) .navigate( R.id.artistDetailsFragment, @@ -123,8 +134,9 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det FragmentNavigatorExtras(artistView to "artist") ) } - playAction.setOnClickListener { MusicPlayerRemote.openQueue(album.songs, 0, true) } - + playAction.setOnClickListener { + MusicPlayerRemote.openQueue(album.songs, 0, true) + } shuffleAction.setOnClickListener { MusicPlayerRemote.openAndShuffleQueue( album.songs, @@ -139,9 +151,6 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det aboutAlbumText.maxLines = 4 } } - image.apply { - transitionName = getString(R.string.transition_album_art) - } } override fun onDestroy() { @@ -253,7 +262,7 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det } private fun loadArtistImage(artist: Artist) { - detailsViewModel.getMoreAlbums(artist).observe(viewLifecycleOwner, Observer { + detailsViewModel.getMoreAlbums(artist).observe(viewLifecycleOwner, { moreAlbums(it) }) ArtistGlideRequest.Builder.from(Glide.with(requireContext()), artist) @@ -286,6 +295,12 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det } override fun onAlbumClick(albumId: Long, view: View) { + exitTransition = MaterialElevationScale(false).apply { + duration = 300L + } + reenterTransition = MaterialElevationScale(false).apply { + duration = 300L + } findNavController().navigate( R.id.albumDetailsFragment, bundleOf(EXTRA_ALBUM_ID to albumId), @@ -354,13 +369,10 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det ) return true } - /*Sort*/ - R.id.action_sort_order_title -> sortOrder = SortOrder.AlbumSongSortOrder.SONG_A_Z - R.id.action_sort_order_title_desc -> sortOrder = SortOrder.AlbumSongSortOrder.SONG_Z_A - R.id.action_sort_order_track_list -> sortOrder = - SortOrder.AlbumSongSortOrder.SONG_TRACK_LIST - R.id.action_sort_order_artist_song_duration -> - sortOrder = SortOrder.AlbumSongSortOrder.SONG_DURATION + R.id.action_sort_order_title -> sortOrder = SONG_A_Z + R.id.action_sort_order_title_desc -> sortOrder = SONG_Z_A + R.id.action_sort_order_track_list -> sortOrder = SONG_TRACK_LIST + R.id.action_sort_order_artist_song_duration -> sortOrder = SONG_DURATION } if (sortOrder != null) { item.isChecked = true @@ -371,36 +383,34 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det private fun setUpSortOrderMenu(sortOrder: SubMenu) { when (savedSortOrder) { - SortOrder.AlbumSongSortOrder.SONG_A_Z -> sortOrder.findItem(R.id.action_sort_order_title) - .isChecked = true - SortOrder.AlbumSongSortOrder.SONG_Z_A -> sortOrder.findItem(R.id.action_sort_order_title_desc) - .isChecked = true - SortOrder.AlbumSongSortOrder.SONG_TRACK_LIST -> sortOrder.findItem(R.id.action_sort_order_track_list) - .isChecked = true - SortOrder.AlbumSongSortOrder.SONG_DURATION -> sortOrder.findItem(R.id.action_sort_order_artist_song_duration) - .isChecked = true + SONG_A_Z -> sortOrder.findItem(R.id.action_sort_order_title).isChecked = true + SONG_Z_A -> sortOrder.findItem(R.id.action_sort_order_title_desc).isChecked = true + SONG_TRACK_LIST -> + sortOrder.findItem(R.id.action_sort_order_track_list).isChecked = true + SONG_DURATION -> + sortOrder.findItem(R.id.action_sort_order_artist_song_duration).isChecked = true } } private fun setSaveSortOrder(sortOrder: String) { PreferenceUtil.albumDetailSongSortOrder = sortOrder val songs = when (sortOrder) { - SortOrder.AlbumSongSortOrder.SONG_TRACK_LIST -> album.songs.sortedWith { o1, o2 -> + SONG_TRACK_LIST -> album.songs.sortedWith { o1, o2 -> o1.trackNumber.compareTo( o2.trackNumber ) } - SortOrder.AlbumSongSortOrder.SONG_A_Z -> album.songs.sortedWith { o1, o2 -> + SONG_A_Z -> album.songs.sortedWith { o1, o2 -> o1.title.compareTo( o2.title ) } - SortOrder.AlbumSongSortOrder.SONG_Z_A -> album.songs.sortedWith { o1, o2 -> + SONG_Z_A -> album.songs.sortedWith { o1, o2 -> o2.title.compareTo( o1.title ) } - SortOrder.AlbumSongSortOrder.SONG_DURATION -> album.songs.sortedWith { o1, o2 -> + SONG_DURATION -> album.songs.sortedWith { o1, o2 -> o1.duration.compareTo( o2.duration ) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt index 40f316ca3..9bc8ed5e2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt @@ -26,7 +26,6 @@ import code.name.monkey.retromusic.adapter.album.AlbumAdapter import code.name.monkey.retromusic.extensions.surfaceColor import code.name.monkey.retromusic.fragments.ReloadType import code.name.monkey.retromusic.fragments.base.AbsRecyclerViewCustomGridSizeFragment -import code.name.monkey.retromusic.helper.SortOrder import code.name.monkey.retromusic.helper.SortOrder.AlbumSortOrder import code.name.monkey.retromusic.interfaces.IAlbumClickListener import code.name.monkey.retromusic.interfaces.ICabHolder @@ -118,7 +117,7 @@ class AlbumsFragment : AbsRecyclerViewCustomGridSizeFragment subMenu.findItem(R.id.action_layout_card).isChecked = true R.layout.item_grid -> subMenu.findItem(R.id.action_layout_normal).isChecked = true - R.layout.item_card_color -> - subMenu.findItem(R.id.action_layout_colored_card).isChecked = true - R.layout.item_grid_circle -> - subMenu.findItem(R.id.action_layout_circular).isChecked = true + R.layout.item_card_color -> subMenu.findItem(R.id.action_layout_colored_card).isChecked = + true + R.layout.item_grid_circle -> subMenu.findItem(R.id.action_layout_circular).isChecked = + true R.layout.image -> subMenu.findItem(R.id.action_layout_image).isChecked = true - R.layout.item_image_gradient -> - subMenu.findItem(R.id.action_layout_gradient_image).isChecked = true + R.layout.item_image_gradient -> subMenu.findItem(R.id.action_layout_gradient_image).isChecked = + true } } @@ -285,19 +285,8 @@ class ArtistsFragment : AbsRecyclerViewCustomGridSizeFragment, LM : Recycle super.onViewCreated(view, savedInstanceState) postponeEnterTransition() view.doOnPreDraw { startPostponedEnterTransition() } - mainActivity.setBottomBarVisibility(View.VISIBLE) + mainActivity.setBottomBarVisibility(true) mainActivity.setSupportActionBar(toolbar) mainActivity.supportActionBar?.title = null initLayoutManager() diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.java b/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.java index 1c6dbf95c..2f50fe112 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.java +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.java @@ -166,7 +166,7 @@ public class FoldersFragment extends AbsMainActivityFragment @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { getMainActivity().addMusicServiceEventListener(getLibraryViewModel()); - getMainActivity().setBottomBarVisibility(View.VISIBLE); + getMainActivity().setBottomBarVisibility(true); getMainActivity().setSupportActionBar(toolbar); getMainActivity().getSupportActionBar().setTitle(null); setStatusBarColorAuto(view); diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenreDetailsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenreDetailsFragment.kt index 32679f65e..e226ceed4 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenreDetailsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenreDetailsFragment.kt @@ -62,7 +62,7 @@ class GenreDetailsFragment : AbsMainActivityFragment(R.layout.fragment_playlist_ override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) setHasOptionsMenu(true) - mainActivity.setBottomBarVisibility(View.GONE) + mainActivity.setBottomBarVisibility(false) mainActivity.addMusicServiceEventListener(detailsViewModel) mainActivity.setSupportActionBar(toolbar) ViewCompat.setTransitionName(container, "genre") diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/home/HomeFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/home/HomeFragment.kt index 49a8a103d..aab4f5d09 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/home/HomeFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/home/HomeFragment.kt @@ -48,7 +48,7 @@ class HomeFragment : override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - mainActivity.setBottomBarVisibility(View.VISIBLE) + mainActivity.setBottomBarVisibility(true) mainActivity.setSupportActionBar(toolbar) mainActivity.supportActionBar?.title = null setStatusBarColorAuto(view) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/library/LibraryFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/library/LibraryFragment.kt index a65d81522..753a321bc 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/library/LibraryFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/library/LibraryFragment.kt @@ -41,7 +41,7 @@ class LibraryFragment : AbsMainActivityFragment(R.layout.fragment_library) { override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) setHasOptionsMenu(true) - mainActivity.setBottomBarVisibility(View.VISIBLE) + mainActivity.setBottomBarVisibility(true) mainActivity.setSupportActionBar(toolbar) mainActivity.supportActionBar?.title = null toolbar.setNavigationOnClickListener { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt index 533431539..38c149b56 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt @@ -50,7 +50,7 @@ class PlaylistDetailsFragment : AbsMainActivityFragment(R.layout.fragment_playli override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) setHasOptionsMenu(true) - mainActivity.setBottomBarVisibility(View.GONE) + mainActivity.setBottomBarVisibility(false) mainActivity.addMusicServiceEventListener(viewModel) mainActivity.setSupportActionBar(toolbar) ViewCompat.setTransitionName(container, "playlist") diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt index 4c552385b..ffb9a91b3 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt @@ -17,6 +17,7 @@ package code.name.monkey.retromusic.fragments.search import android.content.ActivityNotFoundException import android.content.Context import android.content.Intent +import android.graphics.Color import android.os.Bundle import android.speech.RecognizerIntent import android.text.Editable @@ -30,12 +31,11 @@ import androidx.recyclerview.widget.RecyclerView import androidx.transition.TransitionManager import code.name.monkey.retromusic.R import code.name.monkey.retromusic.adapter.SearchAdapter -import code.name.monkey.retromusic.extensions.accentColor -import code.name.monkey.retromusic.extensions.dipToPix -import code.name.monkey.retromusic.extensions.focusAndShowKeyboard -import code.name.monkey.retromusic.extensions.showToast +import code.name.monkey.retromusic.extensions.* import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment import com.google.android.material.textfield.TextInputEditText +import com.google.android.material.transition.MaterialArcMotion +import com.google.android.material.transition.MaterialContainerTransform import kotlinx.android.synthetic.main.fragment_search.* import java.util.* import kotlin.collections.ArrayList @@ -49,18 +49,30 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), TextWa private lateinit var searchAdapter: SearchAdapter private var query: String? = null + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + sharedElementEnterTransition = MaterialContainerTransform().apply { + drawingViewId = R.id.fragment_container + duration = 300L + scrimColor = Color.TRANSPARENT + setAllContainerColors(requireContext().resolveColor(R.attr.colorSurface)) + setPathMotion(MaterialArcMotion()) + } + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - mainActivity.setBottomBarVisibility(View.GONE) + mainActivity.setBottomBarVisibility(false) mainActivity.setSupportActionBar(toolbar) libraryViewModel.clearSearchResult() setupRecyclerView() + + voiceSearch.setOnClickListener { startMicSearch() } + clearText.setOnClickListener { searchView.clearText() } searchView.apply { addTextChangedListener(this@SearchFragment) focusAndShowKeyboard() } - voiceSearch.setOnClickListener { startMicSearch() } - clearText.setOnClickListener { searchView.clearText() } keyboardPopup.apply { accentColor() setOnClickListener { diff --git a/app/src/main/java/code/name/monkey/retromusic/views/RetroShapeableImageView.kt b/app/src/main/java/code/name/monkey/retromusic/views/RetroShapeableImageView.kt index e00946d4b..686814b42 100644 --- a/app/src/main/java/code/name/monkey/retromusic/views/RetroShapeableImageView.kt +++ b/app/src/main/java/code/name/monkey/retromusic/views/RetroShapeableImageView.kt @@ -31,9 +31,12 @@ class RetroShapeableImageView @JvmOverloads constructor( init { val typedArray = context.obtainStyledAttributes(attrs, R.styleable.RetroShapeableImageView, defStyle, -1) - val cornerSize = - typedArray.getDimension(R.styleable.RetroShapeableImageView_retroCornerSize, 0f) - updateCornerSize(cornerSize) + val cornerSize = typedArray.getDimension(R.styleable.RetroShapeableImageView_retroCornerSize, 0f) + val circleShape = typedArray.getBoolean(R.styleable.RetroShapeableImageView_circleShape, false) + addOnLayoutChangeListener { _, _, _, _, _, _, _, _, _ -> + val radius = width / 2f + shapeAppearanceModel = ShapeAppearanceModel().withCornerSize(radius) + } typedArray.recycle() } diff --git a/app/src/main/res/layout/item_grid_circle.xml b/app/src/main/res/layout/item_grid_circle.xml index 7b8944b81..2ccb0c7ba 100644 --- a/app/src/main/res/layout/item_grid_circle.xml +++ b/app/src/main/res/layout/item_grid_circle.xml @@ -9,7 +9,7 @@ android:padding="4dp" tools:ignore="MissingPrefix"> - diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index 7d53593fd..426641031 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -20,8 +20,8 @@ Aller au genre Aller au dossier de départ Accorder - Taille de l'affichage - Taille de l'affichage (paysage) + Taille de l\'affichage + Taille de l\'affichage (paysage) Nouvelle liste de lecture… Suivant Lecture @@ -235,9 +235,8 @@ 6 7 8 - Les Grilles & Le Style - + Charnière Historique @@ -612,10 +611,9 @@ Volume Recherche internet - + Bienvenue, - Que souhaitez-vous partager ? Quoi de neuf diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index bf65574b5..e9aa38af3 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -12,7 +12,7 @@ 8dp - 48dp + 56dp 96dp 96dp @@ -34,7 +34,7 @@ 12dp 32dp - 104dp + 112dp 8dp 48dp 52dp diff --git a/app/src/main/res/values/shapeable_imageview.xml b/app/src/main/res/values/shapeable_imageview.xml index b8051fd3e..2ced73f07 100644 --- a/app/src/main/res/values/shapeable_imageview.xml +++ b/app/src/main/res/values/shapeable_imageview.xml @@ -15,5 +15,6 @@ + \ No newline at end of file From 85d8d5cba9b62972879c6b1132ce8748497b1881 Mon Sep 17 00:00:00 2001 From: Hemanth S Date: Fri, 4 Dec 2020 18:17:14 +0530 Subject: [PATCH 13/19] Fixing animations --- .../name/monkey/retromusic/fragments/albums/AlbumsFragment.kt | 2 +- .../monkey/retromusic/fragments/artists/ArtistsFragment.kt | 4 ++-- build.gradle | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt index 9bc8ed5e2..0cd89379c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt @@ -114,7 +114,7 @@ class AlbumsFragment : AbsRecyclerViewCustomGridSizeFragment Date: Fri, 4 Dec 2020 23:41:49 +0530 Subject: [PATCH 14/19] updated code --- app/build.gradle | 2 +- .../name/monkey/retromusic/fragments/albums/AlbumsFragment.kt | 4 ++-- .../retromusic/fragments/base/AbsRecyclerViewFragment.kt | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ab90e0920..a13a13503 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -25,7 +25,7 @@ android { } signingConfigs { release { - Properties properties = getProperties('E:/Documents/GitHub/retro.properties') + Properties properties = getProperties('/Users/apple/Documents/Github/music.jks') storeFile file(getProperty(properties, 'storeFile')) keyAlias getProperty(properties, 'keyAlias') storePassword getProperty(properties, 'storePassword') diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt index 0cd89379c..4df87cf95 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt @@ -114,10 +114,10 @@ class AlbumsFragment : AbsRecyclerViewCustomGridSizeFragment, LM : Recycle override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + postponeEnterTransition() view.doOnPreDraw { startPostponedEnterTransition() } + mainActivity.setBottomBarVisibility(true) mainActivity.setSupportActionBar(toolbar) mainActivity.supportActionBar?.title = null @@ -87,7 +89,6 @@ abstract class AbsRecyclerViewFragment, LM : Recycle layoutManager = this@AbsRecyclerViewFragment.layoutManager adapter = this@AbsRecyclerViewFragment.adapter val fastScroller = create(this) - } checkForPadding() } From 03df684c7e1600ce015a02343cd6c24ebf1c4f34 Mon Sep 17 00:00:00 2001 From: Hemanth S Date: Sat, 5 Dec 2020 03:10:23 +0530 Subject: [PATCH 15/19] Revert "Merge pull request #1018 from SimonMTaye/dev" This reverts commit 5dd7ec15e8a810c7ae47a2d32bfa58bbde58a885, reversing changes made to 66618824e283d911dfbaa0b2503cb12bee7bc758. --- .../retromusic/repository/GenreRepository.kt | 20 ------------------- .../retromusic/repository/SearchRepository.kt | 6 ++++-- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/repository/GenreRepository.kt b/app/src/main/java/code/name/monkey/retromusic/repository/GenreRepository.kt index 933e6d2db..ca7c822a7 100644 --- a/app/src/main/java/code/name/monkey/retromusic/repository/GenreRepository.kt +++ b/app/src/main/java/code/name/monkey/retromusic/repository/GenreRepository.kt @@ -32,8 +32,6 @@ import code.name.monkey.retromusic.util.PreferenceUtil interface GenreRepository { fun genres(): List - fun genres(query: String): List - fun songs(genreId: Long): List } @@ -46,9 +44,6 @@ class RealGenreRepository( return getGenresFromCursor(makeGenreCursor()) } - override fun genres(query: String): List { - return getGenresFromCursor(makeGenreCursor(arrayOf("%$query%"))) - } override fun songs(genreId: Long): List { // The genres table only stores songs that have a genre specified, // so we need to get songs without a genre a different way. @@ -166,19 +161,4 @@ class RealGenreRepository( return null } } - private fun makeGenreCursor(selectionValues: Array?): Cursor? { - val selection = MediaStore.Audio.GenresColumns.NAME + " LIKE ?" - val projection = arrayOf(Genres._ID, Genres.NAME) - return try { - contentResolver.query( - Genres.EXTERNAL_CONTENT_URI, - projection, - selection, - selectionValues, - PreferenceUtil.genreSortOrder - ) - } catch (e: SecurityException) { - return null - } - } } diff --git a/app/src/main/java/code/name/monkey/retromusic/repository/SearchRepository.kt b/app/src/main/java/code/name/monkey/retromusic/repository/SearchRepository.kt index c026fb9f4..d8bb7b06d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/repository/SearchRepository.kt +++ b/app/src/main/java/code/name/monkey/retromusic/repository/SearchRepository.kt @@ -45,8 +45,10 @@ class RealSearchRepository( results.add(context.resources.getString(R.string.albums)) results.addAll(albums) } - - val genres = genreRepository.genres(searchString) + val genres: List = genreRepository.genres().filter { genre -> + genre.name.toLowerCase(Locale.getDefault()) + .contains(searchString.toLowerCase(Locale.getDefault())) + } if (genres.isNotEmpty()) { results.add(context.resources.getString(R.string.genres)) results.addAll(genres) From cc855d22fc719d3b9ff5c69acc342aa306251e6c Mon Sep 17 00:00:00 2001 From: Hemanth S Date: Sat, 5 Dec 2020 11:10:35 +0530 Subject: [PATCH 16/19] code clean --- .../retromusic/activities/MainActivity.kt | 29 +++---- .../full/FullPlaybackControlsFragment.kt | 79 +++++++++++-------- 2 files changed, 55 insertions(+), 53 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt index e02d925bc..5787295f4 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt @@ -50,6 +50,7 @@ import code.name.monkey.retromusic.TOGGLE_SEPARATE_LINE import code.name.monkey.retromusic.TOGGLE_VOLUME import code.name.monkey.retromusic.USER_NAME import code.name.monkey.retromusic.activities.base.AbsSlidingMusicPanelActivity +import code.name.monkey.retromusic.extensions.extra import code.name.monkey.retromusic.extensions.findNavController import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.helper.SearchQueryHelper.getSongs @@ -67,7 +68,6 @@ class MainActivity : AbsSlidingMusicPanelActivity(), OnSharedPreferenceChangeLis companion object { const val TAG = "MainActivity" const val EXPAND_PANEL = "expand_panel" - const val APP_UPDATE_REQUEST_CODE = 9002 } override fun createContentView(): View { @@ -82,20 +82,13 @@ class MainActivity : AbsSlidingMusicPanelActivity(), OnSharedPreferenceChangeLis setLightNavigationBar(true) setTaskDescriptionColorAuto() hideStatusBar() - AppRater.appLaunched(this) updateTabs() + AppRater.appLaunched(this) - // NavigationUI.setupWithNavController(getBottomNavigationView(), findNavController(R.id.fragment_container)) setupNavigationController() if (!hasPermissions()) { findNavController(R.id.fragment_container).navigate(R.id.permissionFragment) } - - showPromotionalDialog() - } - - private fun showPromotionalDialog() { - } private fun setupNavigationController() { @@ -117,27 +110,27 @@ class MainActivity : AbsSlidingMusicPanelActivity(), OnSharedPreferenceChangeLis override fun onResume() { super.onResume() PreferenceUtil.registerOnSharedPreferenceChangedListener(this) - if (intent.hasExtra(EXPAND_PANEL) && - intent.getBooleanExtra(EXPAND_PANEL, false) && - PreferenceUtil.isExpandPanel - ) { + val expand = extra(EXPAND_PANEL).value ?: false + if (expand && PreferenceUtil.isExpandPanel) { expandPanel() intent.removeExtra(EXPAND_PANEL) } } + override fun onDestroy() { + super.onDestroy() + PreferenceUtil.unregisterOnSharedPreferenceChangedListener(this) + } + override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) { - if (key == GENERAL_THEME || key == BLACK_THEME || key == ADAPTIVE_COLOR_APP || key == USER_NAME || key == TOGGLE_FULL_SCREEN || key == TOGGLE_VOLUME || key == ROUND_CORNERS || key == CAROUSEL_EFFECT || key == NOW_PLAYING_SCREEN_ID || key == TOGGLE_GENRE || key == BANNER_IMAGE_PATH || key == PROFILE_IMAGE_PATH || key == CIRCULAR_ALBUM_ART || key == KEEP_SCREEN_ON || key == TOGGLE_SEPARATE_LINE || key == TOGGLE_HOME_BANNER || key == TOGGLE_ADD_CONTROLS || key == ALBUM_COVER_STYLE || key == HOME_ARTIST_GRID_STYLE || key == ALBUM_COVER_TRANSFORM || key == DESATURATED_COLOR || key == EXTRA_SONG_INFO || key == TAB_TEXT_MODE || key == LANGUAGE_NAME || key == LIBRARY_CATEGORIES - ) { + if (key == GENERAL_THEME || key == BLACK_THEME || key == ADAPTIVE_COLOR_APP || key == USER_NAME || key == TOGGLE_FULL_SCREEN || key == TOGGLE_VOLUME || key == ROUND_CORNERS || key == CAROUSEL_EFFECT || key == NOW_PLAYING_SCREEN_ID || key == TOGGLE_GENRE || key == BANNER_IMAGE_PATH || key == PROFILE_IMAGE_PATH || key == CIRCULAR_ALBUM_ART || key == KEEP_SCREEN_ON || key == TOGGLE_SEPARATE_LINE || key == TOGGLE_HOME_BANNER || key == TOGGLE_ADD_CONTROLS || key == ALBUM_COVER_STYLE || key == HOME_ARTIST_GRID_STYLE || key == ALBUM_COVER_TRANSFORM || key == DESATURATED_COLOR || key == EXTRA_SONG_INFO || key == TAB_TEXT_MODE || key == LANGUAGE_NAME || key == LIBRARY_CATEGORIES) { postRecreate() } } override fun onServiceConnected() { super.onServiceConnected() - if (intent == null) { - return - } + intent ?: return handlePlaybackIntent(intent) } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt index ef4e79eef..ddcd214bf 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt @@ -16,9 +16,11 @@ package code.name.monkey.retromusic.fragments.player.full import android.animation.ObjectAnimator import android.annotation.SuppressLint +import android.content.Intent import android.content.res.ColorStateList import android.graphics.Color import android.graphics.PorterDuff +import android.graphics.drawable.Drawable import android.os.AsyncTask import android.os.Bundle import android.view.MenuItem @@ -27,12 +29,17 @@ import android.view.animation.DecelerateInterpolator import android.view.animation.LinearInterpolator import android.widget.PopupMenu import android.widget.SeekBar +import androidx.lifecycle.lifecycleScope import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.TintHelper import code.name.monkey.retromusic.R +import code.name.monkey.retromusic.db.PlaylistEntity +import code.name.monkey.retromusic.db.SongEntity +import code.name.monkey.retromusic.db.toSongEntity import code.name.monkey.retromusic.extensions.applyColor import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.extensions.show +import code.name.monkey.retromusic.fragments.LibraryViewModel import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper @@ -42,8 +49,13 @@ import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil +import code.name.monkey.retromusic.util.RetroUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor import kotlinx.android.synthetic.main.fragment_full_player_controls.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import org.koin.androidx.viewmodel.ext.android.sharedViewModel /** * Created by hemanths on 20/09/17. @@ -56,6 +68,7 @@ class FullPlaybackControlsFragment : private var lastPlaybackControlsColor: Int = 0 private var lastDisabledPlaybackControlsColor: Int = 0 private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper + private val libraryViewModel: LibraryViewModel by sharedViewModel() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -158,7 +171,6 @@ class FullPlaybackControlsFragment : } private fun setUpPlayPauseFab() { - playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler()) playPauseButton.post { if (playPauseButton != null) { @@ -283,44 +295,41 @@ class FullPlaybackControlsFragment : } } - private fun toggleFavorite(song: Song) { - MusicUtil.toggleFavorite(requireContext(), song) - if (song.id == MusicPlayerRemote.currentSong.id) { - updateIsFavorite() - } - } - - private var updateIsFavoriteTask: AsyncTask<*, *, *>? = null - - @SuppressLint("StaticFieldLeak") fun updateIsFavorite() { - if (updateIsFavoriteTask != null) { - updateIsFavoriteTask?.cancel(false) - } - updateIsFavoriteTask = object : AsyncTask() { - override fun doInBackground(vararg params: Song): Boolean? { - val activity = activity - return if (activity != null) { - MusicUtil.isFavorite(requireActivity(), params[0]) - } else { - cancel(false) - null - } - } - - override fun onPostExecute(isFavorite: Boolean?) { - val activity = activity - if (activity != null) { - val res = if (isFavorite!!) - R.drawable.ic_favorite - else - R.drawable.ic_favorite_border - - val drawable = TintHelper.createTintedDrawable(activity, res, Color.WHITE) + lifecycleScope.launch(Dispatchers.IO) { + val playlist: PlaylistEntity? = libraryViewModel.favoritePlaylist() + if (playlist != null) { + val song: SongEntity = + MusicPlayerRemote.currentSong.toSongEntity(playlist.playListId) + val isFavorite: Boolean = libraryViewModel.isFavoriteSong(song).isNotEmpty() + withContext(Dispatchers.Main) { + val icon = + if (isFavorite) R.drawable.ic_favorite else R.drawable.ic_favorite_border + val drawable = TintHelper.createTintedDrawable(activity, icon, Color.WHITE) songFavourite?.setImageDrawable(drawable) } } - }.execute(MusicPlayerRemote.currentSong) + } + } + + private fun toggleFavorite(song: Song) { + if (song.id == MusicPlayerRemote.currentSong.id) { + updateIsFavorite() + } + lifecycleScope.launch(Dispatchers.IO) { + val playlist: PlaylistEntity? = libraryViewModel.favoritePlaylist() + if (playlist != null) { + val songEntity = song.toSongEntity(playlist.playListId) + val isFavorite = libraryViewModel.isFavoriteSong(songEntity).isNotEmpty() + if (isFavorite) { + libraryViewModel.removeSongFromPlaylist(songEntity) + } else { + libraryViewModel.insertSongs(listOf(song.toSongEntity(playlist.playListId))) + } + } + libraryViewModel.forceReload(ReloadType.Playlists) + requireContext().sendBroadcast(Intent(MusicService.FAVORITE_STATE_CHANGED)) + } } fun onFavoriteToggled() { From c5a4b4b4c65d8e8b2eb98c961cf1acec5f130b3d Mon Sep 17 00:00:00 2001 From: Hemanth S Date: Sat, 5 Dec 2020 11:10:43 +0530 Subject: [PATCH 17/19] Update FullPlaybackControlsFragment.kt --- .../fragments/player/full/FullPlaybackControlsFragment.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt index ddcd214bf..d15a6d98a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt @@ -40,6 +40,7 @@ import code.name.monkey.retromusic.extensions.applyColor import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.extensions.show import code.name.monkey.retromusic.fragments.LibraryViewModel +import code.name.monkey.retromusic.fragments.ReloadType import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper From 6845f75ea023c81c1c587ac8788875f2bcdbe9fe Mon Sep 17 00:00:00 2001 From: Hemanth S Date: Sat, 5 Dec 2020 11:33:31 +0530 Subject: [PATCH 18/19] code clean --- .../adapter/base/MediaEntryViewHolder.java | 129 ++++++++++-------- .../monkey/retromusic/extensions/ColorExt.kt | 24 +--- .../retromusic/repository/RoomRepository.kt | 14 +- 3 files changed, 84 insertions(+), 83 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/base/MediaEntryViewHolder.java b/app/src/main/java/code/name/monkey/retromusic/adapter/base/MediaEntryViewHolder.java index 515a75329..9c40491ea 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/base/MediaEntryViewHolder.java +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/base/MediaEntryViewHolder.java @@ -16,103 +16,122 @@ package code.name.monkey.retromusic.adapter.base; import android.graphics.Color; import android.view.View; -import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.widget.AppCompatImageView; import androidx.recyclerview.widget.RecyclerView; + import code.name.monkey.retromusic.R; + import com.google.android.material.card.MaterialCardView; import com.h6ah4i.android.widget.advrecyclerview.utils.AbstractDraggableSwipeableItemViewHolder; public class MediaEntryViewHolder extends AbstractDraggableSwipeableItemViewHolder - implements View.OnLongClickListener, View.OnClickListener { + implements View.OnLongClickListener, View.OnClickListener { - @Nullable public View dragView; + @Nullable + public View dragView; - @Nullable public View dummyContainer; + @Nullable + public View dummyContainer; - @Nullable public ImageView image; + @Nullable + public ImageView image; - @Nullable public ImageView artistImage; + @Nullable + public ImageView artistImage; - @Nullable public ImageView playerImage; + @Nullable + public ImageView playerImage; - @Nullable public MaterialCardView imageContainerCard; + @Nullable + public MaterialCardView imageContainerCard; - @Nullable public TextView imageText; + @Nullable + public TextView imageText; - @Nullable public MaterialCardView imageTextContainer; + @Nullable + public MaterialCardView imageTextContainer; - @Nullable public View mask; + @Nullable + public View mask; - @Nullable public AppCompatImageView menu; + @Nullable + public AppCompatImageView menu; - @Nullable public View paletteColorContainer; + @Nullable + public View paletteColorContainer; - @Nullable public RecyclerView recyclerView; + @Nullable + public RecyclerView recyclerView; - @Nullable public TextView text; + @Nullable + public TextView text; - @Nullable public TextView text2; + @Nullable + public TextView text2; - @Nullable public TextView time; + @Nullable + public TextView time; - @Nullable public TextView title; + @Nullable + public TextView title; - public MediaEntryViewHolder(@NonNull View itemView) { - super(itemView); - title = itemView.findViewById(R.id.title); - text = itemView.findViewById(R.id.text); - text2 = itemView.findViewById(R.id.text2); + public MediaEntryViewHolder(@NonNull View itemView) { + super(itemView); + title = itemView.findViewById(R.id.title); + text = itemView.findViewById(R.id.text); + text2 = itemView.findViewById(R.id.text2); - image = itemView.findViewById(R.id.image); - artistImage = itemView.findViewById(R.id.artistImage); - playerImage = itemView.findViewById(R.id.player_image); - time = itemView.findViewById(R.id.time); + image = itemView.findViewById(R.id.image); + artistImage = itemView.findViewById(R.id.artistImage); + playerImage = itemView.findViewById(R.id.player_image); + time = itemView.findViewById(R.id.time); - imageText = itemView.findViewById(R.id.imageText); - imageTextContainer = itemView.findViewById(R.id.imageTextContainer); - imageContainerCard = itemView.findViewById(R.id.imageContainerCard); + imageText = itemView.findViewById(R.id.imageText); + imageTextContainer = itemView.findViewById(R.id.imageTextContainer); + imageContainerCard = itemView.findViewById(R.id.imageContainerCard); - menu = itemView.findViewById(R.id.menu); - dragView = itemView.findViewById(R.id.drag_view); - paletteColorContainer = itemView.findViewById(R.id.paletteColorContainer); - recyclerView = itemView.findViewById(R.id.recycler_view); - mask = itemView.findViewById(R.id.mask); - dummyContainer = itemView.findViewById(R.id.dummy_view); + menu = itemView.findViewById(R.id.menu); + dragView = itemView.findViewById(R.id.drag_view); + paletteColorContainer = itemView.findViewById(R.id.paletteColorContainer); + recyclerView = itemView.findViewById(R.id.recycler_view); + mask = itemView.findViewById(R.id.mask); + dummyContainer = itemView.findViewById(R.id.dummy_view); - if (imageContainerCard != null) { - imageContainerCard.setCardBackgroundColor(Color.TRANSPARENT); + if (imageContainerCard != null) { + imageContainerCard.setCardBackgroundColor(Color.TRANSPARENT); + } + itemView.setOnClickListener(this); + itemView.setOnLongClickListener(this); } - itemView.setOnClickListener(this); - itemView.setOnLongClickListener(this); - } - @Nullable - @Override - public View getSwipeableContainerView() { - return null; - } + @Nullable + @Override + public View getSwipeableContainerView() { + return null; + } - @Override - public void onClick(View v) {} + @Override + public void onClick(View v) { + } - @Override - public boolean onLongClick(View v) { - return false; - } + @Override + public boolean onLongClick(View v) { + return false; + } - public void setImageTransitionName(@NonNull String transitionName) { - itemView.setTransitionName(transitionName); + public void setImageTransitionName(@NonNull String transitionName) { + itemView.setTransitionName(transitionName); /* if (imageContainerCard != null) { imageContainerCard.setTransitionName(transitionName); } if (image != null) { image.setTransitionName(transitionName); }*/ - } + } } diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt index 280afafe2..0e064b4a2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt @@ -95,13 +95,7 @@ fun SeekBar.addAccentColor() { thumbTintList = colorState } -fun Button.accentTextColor() { - setTextColor(ThemeStore.accentColor(App.getContext())) -} - -fun MaterialButton.accentTextColor() { - setTextColor(ThemeStore.accentColor(App.getContext())) -} +fun Button.accentTextColor() = setTextColor(ThemeStore.accentColor(App.getContext())) fun MaterialButton.accentBackgroundColor() { backgroundTintList = ColorStateList.valueOf(ThemeStore.accentColor(App.getContext())) @@ -154,9 +148,7 @@ fun MaterialButton.applyColor(color: Int) { iconTint = textColorColorStateList } -fun MaterialButton.accentColor() { - this.applyColor(ThemeStore.accentColor(context)) -} +fun MaterialButton.accentColor() = applyColor(ThemeStore.accentColor(context)) fun MaterialButton.applyOutlineColor(color: Int) { val textColorColorStateList = ColorStateList.valueOf(color) @@ -183,12 +175,7 @@ fun CircularProgressIndicator.applyColor(color: Int) { trackColor = ColorUtil.withAlpha(color, 0.2f) } -fun TextInputEditText.accentColor() { -} - -fun AppCompatImageView.accentColor(): Int { - return ThemeStore.accentColor(context) -} +fun AppCompatImageView.accentColor(): Int = ThemeStore.accentColor(context) @CheckResult fun Drawable.tint(@ColorInt color: Int): Drawable { @@ -198,9 +185,8 @@ fun Drawable.tint(@ColorInt color: Int): Drawable { } @CheckResult -fun Drawable.tint(context: Context, @ColorRes color: Int): Drawable { - return tint(context.getColorCompat(color)) -} +fun Drawable.tint(context: Context, @ColorRes color: Int): Drawable = + tint(context.getColorCompat(color)) @ColorInt fun Context.getColorCompat(@ColorRes colorRes: Int): Int { diff --git a/app/src/main/java/code/name/monkey/retromusic/repository/RoomRepository.kt b/app/src/main/java/code/name/monkey/retromusic/repository/RoomRepository.kt index e57c5c57c..8c6dd8656 100644 --- a/app/src/main/java/code/name/monkey/retromusic/repository/RoomRepository.kt +++ b/app/src/main/java/code/name/monkey/retromusic/repository/RoomRepository.kt @@ -100,7 +100,6 @@ class RealRoomRepository( playlistDao.insertSongsToPlaylist(songs) } - override fun getSongs(playListId: Long): LiveData> = playlistDao.songsFromPlaylist(playListId) @@ -160,10 +159,9 @@ class RealRoomRepository( ) override suspend fun favoritePlaylistSongs(favorite: String): List = - if (playlistDao.isPlaylistExists(favorite).isNotEmpty()) - playlistDao.favoritesSongs( - playlistDao.isPlaylistExists(favorite).first().playListId - ) else emptyList() + if (playlistDao.isPlaylistExists(favorite).isNotEmpty()) playlistDao.favoritesSongs( + playlistDao.isPlaylistExists(favorite).first().playListId + ) else emptyList() override suspend fun insertSongInPlayCount(playCountEntity: PlayCountEntity) = playCountDao.insertSongInPlayCount(playCountEntity) @@ -192,10 +190,8 @@ class RealRoomRepository( override suspend fun blackListPaths(): List = blackListStoreDao.blackListPaths() - override suspend fun deleteSongs(songs: List) { - songs.forEach { - playCountDao.deleteSong(it.id) - } + override suspend fun deleteSongs(songs: List) = songs.forEach { + playCountDao.deleteSong(it.id) } override suspend fun deleteBlacklistPath(blackListStoreEntity: BlackListStoreEntity) = From 1b08b775ac1732a7a31dc8fcae9be963a0fd02cc Mon Sep 17 00:00:00 2001 From: Hemanth S Date: Sat, 5 Dec 2020 19:02:49 +0530 Subject: [PATCH 19/19] code clean --- .../monkey/retromusic/adapter/HomeAdapter.kt | 10 ++++++---- .../monkey/retromusic/adapter/SongFileAdapter.kt | 16 ++++++++-------- .../retromusic/adapter/artist/ArtistAdapter.kt | 2 +- .../adapter/song/PlaylistSongAdapter.kt | 6 +++--- .../retromusic/dialogs/DeleteSongsDialog.kt | 11 ++++++----- .../retromusic/dialogs/SleepTimerDialog.kt | 1 - .../retromusic/dialogs/SongDetailDialog.kt | 11 ++++++----- .../monkey/retromusic/dialogs/SongShareDialog.kt | 11 ++++++----- .../monkey/retromusic/extensions/DrawableExt.kt | 13 +------------ .../retromusic/fragments/VolumeFragment.kt | 4 ---- 10 files changed, 37 insertions(+), 48 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt index 6e5ce64d4..f57c45ab3 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt @@ -239,15 +239,17 @@ class HomeAdapter( val clickableArea: ViewGroup = itemView.findViewById(R.id.clickable_area) } - fun artistsAdapter(artists: List) = + private fun artistsAdapter(artists: List) = ArtistAdapter(activity, artists, PreferenceUtil.homeArtistGridStyle, null, this) - fun albumAdapter(albums: List) = + private fun albumAdapter(albums: List) = AlbumAdapter(activity, albums, PreferenceUtil.homeAlbumGridStyle, null, this) - fun gridLayoutManager() = GridLayoutManager(activity, 1, GridLayoutManager.HORIZONTAL, false) + private fun gridLayoutManager() = + GridLayoutManager(activity, 1, GridLayoutManager.HORIZONTAL, false) - fun linearLayoutManager() = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false) + private fun linearLayoutManager() = + LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false) override fun onArtist(artistId: Long, view: View) { activity.findNavController(R.id.fragment_container).navigate( diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/SongFileAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/SongFileAdapter.kt index eabde5bfb..5b55e02d8 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/SongFileAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/SongFileAdapter.kt @@ -42,10 +42,10 @@ class SongFileAdapter( private val activity: AppCompatActivity, private var dataSet: List, private val itemLayoutRes: Int, - private val ICallbacks: ICallbacks?, - ICabHolder: ICabHolder? + private val iCallbacks: ICallbacks?, + iCabHolder: ICabHolder? ) : AbsMultiSelectAdapter( - activity, ICabHolder, R.menu.menu_media_selection + activity, iCabHolder, R.menu.menu_media_selection ), PopupTextProvider { init { @@ -135,8 +135,8 @@ class SongFileAdapter( } override fun onMultipleItemAction(menuItem: MenuItem, selection: List) { - if (ICallbacks == null) return - ICallbacks.onMultipleItemAction(menuItem, selection as ArrayList) + if (iCallbacks == null) return + iCallbacks.onMultipleItemAction(menuItem, selection as ArrayList) } override fun getPopupText(position: Int): String { @@ -150,11 +150,11 @@ class SongFileAdapter( inner class ViewHolder(itemView: View) : MediaEntryViewHolder(itemView) { init { - if (menu != null && ICallbacks != null) { + if (menu != null && iCallbacks != null) { menu?.setOnClickListener { v -> val position = layoutPosition if (isPositionInRange(position)) { - ICallbacks.onFileMenuClicked(dataSet[position], v) + iCallbacks.onFileMenuClicked(dataSet[position], v) } } } @@ -169,7 +169,7 @@ class SongFileAdapter( if (isInQuickSelectMode) { toggleChecked(position) } else { - ICallbacks?.onFileSelected(dataSet[position]) + iCallbacks?.onFileSelected(dataSet[position]) } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/artist/ArtistAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/artist/ArtistAdapter.kt index a88d68851..395d922d2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/artist/ArtistAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/artist/ArtistAdapter.kt @@ -85,7 +85,7 @@ class ArtistAdapter( loadArtistImage(artist, holder) } - fun setColors(processor: MediaNotificationProcessor, holder: ViewHolder) { + private fun setColors(processor: MediaNotificationProcessor, holder: ViewHolder) { holder.mask?.backgroundTintList = ColorStateList.valueOf(processor.primaryTextColor) if (holder.paletteColorContainer != null) { holder.paletteColorContainer?.setBackgroundColor(processor.backgroundColor) diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/song/PlaylistSongAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/song/PlaylistSongAdapter.kt index 612abcd52..8f077d8ad 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/song/PlaylistSongAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/song/PlaylistSongAdapter.kt @@ -24,13 +24,13 @@ import code.name.monkey.retromusic.dialogs.RemoveSongFromPlaylistDialog import code.name.monkey.retromusic.interfaces.ICabHolder import code.name.monkey.retromusic.model.Song -open class PlaylistSongAdapter( +class PlaylistSongAdapter( private val playlist: PlaylistEntity, activity: FragmentActivity, dataSet: MutableList, itemLayoutRes: Int, - ICabHolder: ICabHolder? -) : SongAdapter(activity, dataSet, itemLayoutRes, ICabHolder) { + iCabHolder: ICabHolder? +) : SongAdapter(activity, dataSet, itemLayoutRes, iCabHolder) { init { this.setMultiSelectMenuRes(R.menu.menu_cannot_delete_single_songs_playlist_songs_selection) diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/DeleteSongsDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/DeleteSongsDialog.kt index 2d7a9fc19..ca562dcaa 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/DeleteSongsDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/DeleteSongsDialog.kt @@ -16,6 +16,7 @@ package code.name.monkey.retromusic.dialogs import android.app.Dialog import android.os.Bundle +import androidx.core.os.bundleOf import androidx.core.text.HtmlCompat import androidx.fragment.app.DialogFragment import code.name.monkey.retromusic.EXTRA_SONG @@ -40,11 +41,11 @@ class DeleteSongsDialog : DialogFragment() { } fun create(songs: List): DeleteSongsDialog { - val dialog = DeleteSongsDialog() - val args = Bundle() - args.putParcelableArrayList(EXTRA_SONG, ArrayList(songs)) - dialog.arguments = args - return dialog + return DeleteSongsDialog().apply { + arguments = bundleOf( + EXTRA_SONG to ArrayList(songs) + ) + } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt index 3c3fd6e2c..7e671ebdc 100755 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt @@ -164,7 +164,6 @@ class SleepTimerDialog : DialogFragment() { ) { override fun onTick(millisUntilFinished: Long) { - println("onTick: $millisUntilFinished") seekBar.progress = millisUntilFinished.toInt() } diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/SongDetailDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/SongDetailDialog.kt index 72e548a84..0e7c0abab 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/SongDetailDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/SongDetailDialog.kt @@ -23,6 +23,7 @@ import android.util.Log import android.view.LayoutInflater import android.widget.TextView import androidx.annotation.NonNull +import androidx.core.os.bundleOf import androidx.core.text.HtmlCompat import androidx.fragment.app.DialogFragment import code.name.monkey.retromusic.EXTRA_SONG @@ -155,11 +156,11 @@ class SongDetailDialog : DialogFragment() { val TAG: String = SongDetailDialog::class.java.simpleName fun create(song: Song): SongDetailDialog { - val dialog = SongDetailDialog() - val args = Bundle() - args.putParcelable(EXTRA_SONG, song) - dialog.arguments = args - return dialog + return SongDetailDialog().apply { + arguments = bundleOf( + EXTRA_SONG to song + ) + } } private fun makeTextWithTitle(context: Context, titleResId: Int, text: String?): Spanned { diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/SongShareDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/SongShareDialog.kt index 1a5fbca60..5c7af6733 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/SongShareDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/SongShareDialog.kt @@ -17,6 +17,7 @@ package code.name.monkey.retromusic.dialogs import android.app.Dialog import android.content.Intent import android.os.Bundle +import androidx.core.os.bundleOf import androidx.fragment.app.DialogFragment import code.name.monkey.retromusic.EXTRA_SONG import code.name.monkey.retromusic.R @@ -93,11 +94,11 @@ class SongShareDialog : DialogFragment() { companion object { fun create(song: Song): SongShareDialog { - val dialog = SongShareDialog() - val args = Bundle() - args.putParcelable(EXTRA_SONG, song) - dialog.arguments = args - return dialog + return SongShareDialog().apply { + arguments = bundleOf( + EXTRA_SONG to song + ) + } } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/DrawableExt.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/DrawableExt.kt index 3281c57b1..03e0ad579 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/DrawableExt.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/DrawableExt.kt @@ -48,15 +48,4 @@ fun Drawable.getBitmapDrawable(): Bitmap { val canvas = Canvas(bmp) draw(canvas) return bmp -} - -fun getAdaptiveIconDrawable(context: Context): Drawable { - return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - AdaptiveIconDrawable( - ContextCompat.getDrawable(context, R.drawable.ic_launcher_background), - ContextCompat.getDrawable(context, R.drawable.ic_launcher_background) - ) - } else { - ContextCompat.getDrawable(context, R.drawable.color_circle_gradient)!! - } -} +} \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/VolumeFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/VolumeFragment.kt index ed2f88ccd..f08c85529 100755 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/VolumeFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/VolumeFragment.kt @@ -122,10 +122,6 @@ class VolumeFragment : Fragment(), SeekBar.OnSeekBarChangeListener, OnAudioVolum volumeSeekBar.applyColor(color) } - fun removeThumb() { - volumeSeekBar.thumb = null - } - private fun setPauseWhenZeroVolume(pauseWhenZeroVolume: Boolean) { if (PreferenceUtil.isPauseOnZeroVolume) if (MusicPlayerRemote.isPlaying && pauseWhenZeroVolume)