summaryrefslogtreecommitdiff
path: root/app/src/main
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2023-12-06 21:02:53 +0100
committerByteHamster <info@bytehamster.com>2023-12-06 21:02:53 +0100
commitae4205c6d337644ebead973e9f091fe2498b8450 (patch)
treea33b2ecab676cbf72db5cfe83d52986d01ea089f /app/src/main
parent2e76dc8d0c950090acd95d1e8c9d6c7be314d9a6 (diff)
parent58081fe5bf7d9ad28f089cf10b2c17bfcfc8bbc7 (diff)
downloadAntennaPod-ae4205c6d337644ebead973e9f091fe2498b8450.zip
Merge branch 'master' into develop
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/assets/developers.csv13
-rw-r--r--app/src/main/assets/translators.csv38
-rw-r--r--app/src/main/java/de/danoeh/antennapod/ui/home/HomeFragment.java11
-rw-r--r--app/src/main/java/de/danoeh/antennapod/ui/home/sections/EchoSection.java77
-rw-r--r--app/src/main/play/release-notes/en-US/default.txt9
-rw-r--r--app/src/main/res/layout/home_section_echo.xml91
6 files changed, 215 insertions, 24 deletions
diff --git a/app/src/main/assets/developers.csv b/app/src/main/assets/developers.csv
index 3c596da0c..9176ece5d 100644
--- a/app/src/main/assets/developers.csv
+++ b/app/src/main/assets/developers.csv
@@ -12,8 +12,8 @@ ebraminio;833473;Contributor
shortspider;5712543;Contributor
spacecowboy;223655;Contributor
asdoi;36813904;Contributor
-patheticpat;16046;Contributor
keunes;11229646;Maintainer
+patheticpat;16046;Contributor
brad;1614;Contributor
Cj-Malone;10121513;Contributor
maxbechtold;9162198;Contributor
@@ -28,23 +28,23 @@ ahangarha;11241315;Contributor
rharriso;570910;Contributor
xgouchet;818706;Contributor
peakvalleytech;65185819;Contributor
-sevenmaster;12869538;Contributor
gitstart;1501599;Contributor
TheRealFalcon;153674;Contributor
Slinger;75751;Contributor
vbh;56578479;Contributor
+terminalmage;328598;Contributor
jas14;569991;Contributor
udif;809640;Contributor
malockin;12814657;Contributor
mueller-ma;22525368;Contributor
jonasburian;15125616;Contributor
dirkmueller;1029152;Contributor
-terminalmage;328598;Contributor
jatinkumarg;20503830;Contributor
peschmae0;4450993;Contributor
orelogo;15976578;Contributor
txtd;7108931;Contributor
ydinath;4193331;Contributor
+two-heart;12869538;Contributor
CedricCabessa;365097;Contributor
mchelen;30691;Contributor
dethstar;1239177;Contributor
@@ -89,6 +89,7 @@ avirajrsingh;69088913;Contributor
beijingling;13600573;Contributor
toggles;14695;Contributor
connectety;26038710;Contributor
+matejdro;507922;Contributor
matdb;48329535;Contributor
damlayildiz;56313500;Contributor
kingargyle;177042;Contributor
@@ -107,7 +108,9 @@ raghulrm;5362986;Contributor
mamehacker;16738348;Contributor
skitt;2128935;Contributor
liutng;8223139;Contributor
+vinodpatildev;61724808;Contributor
wseemann;2296196;Contributor
+caoilte;1500358;Contributor
datavizard;44409076;Contributor
femmdi;47671383;Contributor
markamaze;17114678;Contributor
@@ -129,6 +132,7 @@ awbooze;42682253;Contributor
andrey-krutov;1488973;Contributor
andweg;30474752;Contributor
arantius;84729;Contributor
+bhaskarblur;85757758;Contributor
BoJacobs;25435640;Contributor
chetan882777;36985543;Contributor
chrissicool;232590;Contributor
@@ -144,6 +148,7 @@ edwinhere;19705425;Contributor
eirikv;4076243;Contributor
eerden;277513;Contributor
Geist5000;37940313;Contributor
+harshad1;1940940;Contributor
IordanisKokk;72551397;Contributor
jklippel;8657220;Contributor
jannic;232606;Contributor
@@ -179,6 +184,7 @@ patrickjkennedy;8617261;Contributor
pganssle;1377457;Contributor
ortylp;470439;Contributor
RafaelBod;77226971;Contributor
+rahmatrmdn;43070505;Contributor
ricardoborgesjr;2378440;Contributor
bobrippling;205673;Contributor
SamWhited;512573;Contributor
@@ -205,6 +211,7 @@ agibault;15703733;Contributor
amhokies;3124968;Contributor
andrewc1;19559401;Contributor
axq;5077221;Contributor
+blairun;1585872;Contributor
chrk2205;44704035;Contributor
cliambrown;17516840;Contributor
e-t-l;40775958;Contributor
diff --git a/app/src/main/assets/translators.csv b/app/src/main/assets/translators.csv
index 01ac593e6..cd7815b65 100644
--- a/app/src/main/assets/translators.csv
+++ b/app/src/main/assets/translators.csv
@@ -1,26 +1,26 @@
-Arabic;abuzar3.khalid, AhmedHll, Ammar99, badarotti, fake4K, HeshamTB, keunes, mars_amn, Mehyar, mh.abdelhay, mhamade, moftasa, mohmans, MustafaAlgurabi, nabilMaghura, rex07, shubbar
+Arabic;abuzar3.khalid, AhmedHll, Ammar99, badarotti, fake4K, HeshamTB, keunes, mars_amn, Mehyar, mh.abdelhay, mhamade, moftasa, mohmans, MustafaAlgurabi, nabilMaghura, rex07, shubbar, vernandos
Asturian (ast_ES);enolp, keunes
Azerbaijani;5NOER227O, xxmn77
-Basque;a_mento, bipoza, gaztainalde, IngrownMink4, keunes, Osoitz, pospolos
+Basque;a_mento, Asier_Iturralde_Sarasola, bipoza, gaztainalde, IngrownMink4, keunes, Osoitz, pospolos
Bengali;laggybird
Breton;Belvar, Eorn, EwenKorr, FlorentTroer, Iriep, keunes, technozuzici
Bulgarian;keunes, ma4ko, mihainov, ppk89, solusitor, x7ype
-Catalan;arseru, badlop, bluegeekgh, carles.llacer, dvd1985, exort12, IvanAmarante, javiercoll, keunes, Kintu, lambdani, marcmetallextrem, prova, sandandmercury, xc70
-Chinese (zh_CN);135e2, aihenry2980, Biacke, brnme, claybiockiller, clong289734997, cyril3, Felix2yu, gaohongyuan, Guaidaodl, Huck0, iconteral, jhxie, jxj2zzz79pfp9bpo, JY3, keunes, kyleehee, molisiye, owen8877, RainSlide, RangerNJU, Sak94664, spice2wolf, tupunco, wongsyrone, Xrodo, yangyang, yiqiok
+Catalan;and_dapo, arseru, badlop, bluegeekgh, carles.llacer, dvd1985, elcamilet, exort12, IvanAmarante, javiercoll, keunes, Kintu, lambdani, marcmetallextrem, prova, sandandmercury, xc70
+Chinese (zh_CN);135e2, aihenry2980, Biacke, brnme, claybiockiller, clong289734997, cyril3, Felix2yu, gaohongyuan, Guaidaodl, Huck0, iconteral, jhxie, jxj2zzz79pfp9bpo, JY3, keunes, kyleehee, molisiye, owen8877, RainSlide, RangerNJU, Sak94664, spice2wolf, tupunco, weylinn, wongsyrone, Xrodo, yangyang, yiqiok
Chinese (zh_TW);bobchao, BWsix, ijliao, keunes, LNDDYL, mapobi, pggdt, ymhuang0808
-Czech (cs_CZ);anotheranonymoususer, befeleme, Benda, elich, Hanzmeister, jjh, JStrange, kudlav, McLenin666, md.share, ShimonH, svetlemodry, Thomaash, viotalJiplk
-Danish;deusdenton, ERYpTION, JFreak, jhertel, keunes, mikini, petterbejo, SebastianKiwiDk
-Dutch;e2jk, keunes, mijnheer, oldblue, rwv, twijg, Vistaus, y33per
+Czech (cs_CZ);anotheranonymoususer, befeleme, Benda, elich, Hanzmeister, jjh, JStrange, kudlav, maximus1122, McLenin666, md.share, ShimonH, svetlemodry, Thomaash, viotalJiplk
+Danish;deusdenton, ERYpTION, JFreak, jhertel, keunes, mikini, petterbejo, SebastianKiwiDk, soelvraeven
+Dutch;daerts, e2jk, keunes, mijnheer, oldblue, rwv, twijg, Vistaus, y33per
Estonian;beez276, Eraser, keunes, mahfiaz, Rots
Finnish;Ban3, keunes, ktstmu, Kuutar, noppa, Sahtor, scop, teemue
-French;5moufl, 5NOER227O, ayiniho, ChaoticMind, clombion, Cornegidouille, Daremo, e2jk, keunes, klintom, Kuscoo, lacouture, LouFex, manuelleduc, Matth78, paolovador, petterbejo, PierreLaville, Poussinou, RomainTT, sterylmreep, teamon, Thoscellen
+French;5moufl, 5NOER227O, AX.AGD, ayiniho, ChaoticMind, clombion, Cornegidouille, Daremo, e2jk, keunes, klintom, Kuscoo, lacouture, LouFex, manuelleduc, Matth78, paolovador, petterbejo, PierreLaville, Poussinou, RomainTT, sterylmreep, teamon, Thoscellen
Galician;antiparvos, pikamoku, Raichely, Sirgo
-German;5NOER227O, _Er, axre, ByteHamster, Ceekay, ceving, dadosch, datesastick, Delvo, DerSilly, elkangaroo, enz, Erc187, f_grubm, femmdi, finsterwalder, forght, hbilke, HolgerJeromin, JMAN, JoeMcFly, jokap, JoniArida, JonOfUs, kalei, keunes, Kostas_F, L.D.A., Macusercom, max.wittig, mfietz, Michael_Strecke, mkida, muellerma, petterbejo, pudeeh, Quiss42, repat, sadfgdf, Sargon_Isa, teamon, thetrash23, thiesrappen, timo.rohwedder, toaskoas, Tobiasff3200, tomte, Tonne11, ttick, tweimer, VfBFan, vrifox, Willhelm, ypid
+German;23Ba1l598, 5NOER227O, _Er, axre, ByteHamster, Ceekay, ceving, dadosch, datesastick, Delvo, DerSilly, elkangaroo, enz, Erc187, f_grubm, femmdi, finsterwalder, forght, hbilke, HolgerJeromin, JMAN, JoeMcFly, jokap, JoniArida, JonOfUs, kalei, keunes, klyneloud, Kostas_F, L.D.A., Macusercom, max.wittig, mfietz, Michael_Strecke, mkida, muellerma, petterbejo, pudeeh, Quiss42, repat, sadfgdf, Sargon_Isa, teamon, thetrash23, thiesrappen, timo.rohwedder, toaskoas, Tobiasff3200, tomte, Tonne11, ttick, tweimer, VfBFan, vrifox, Willhelm, ypid
Hebrew (he_IL);amir.dafnyman, E1i9, mongoose4004, pinkasey, rellieberman, Yaron
Hindi (hi_IN);Agyat009, keunes, purple.coder, siddhusengar, singhrishi245021, techiethakkar, thelazyoxymoron
-Hu;hurrikan, keunes, lna91, lomapur, marthynw, mc.transifex, meskobalazs, naren93
+Hu;hurrikan, keunes, lna91, lomapur, marthynw, mc.transifex, meskobalazs, MMate2007, naren93, Remboo
Icelandic;keunes, marthjod
-Indonesian;awmpawl, dbrw, justch, keunes, levirs565, liimee
+Indonesian;awmpawl, dbrw, justch, keunes, levirs565, liimee, Matyeyev
Italian (it_IT);aalex70, allin, alvami, atilluF, Bonnee, datesastick, dontknowcris, giulia.iuppa, giuseppep, Guybrush88, ilmanzo, juanjom, keunes, lu.por, m.chinni, marco_pag, mat650, micael_27, mircocau, neonsoftware, niccord, salorock, theloca95
Japanese;ayiniho, giulia.iuppa, keunes, KotaKato, Naofumi, sh3llc4t, tko_cactus, TranslatorG, Xrodo
Kannada (kn_IN);chethanhs, chiraag.nataraj, deepu2, keunes, thejeshgn
@@ -29,22 +29,22 @@ Latin;nivaca
Lithuanian;keunes, naglis, Sharper
Macedonian;krisfremen
Malayalam;joice, keunes, KiranS, rashivkp
-Modern Greek (1453-);AnimaRain, antonist, Ioannis_D, keunes, Kostas_F, pavlosv, pcguy23
+Modern Greek (1453-);AnimaRain, antonist, Fotispel, Ioannis_D, keunes, Kostas_F, pavlosv, pcguy23
Norwegian Bokmål (nb_NO);abstrakct, ahysing, bablecopherye, corkie, forteller, Gauteweb, halibut, heraldo, jakobkg, Jamiera, keunes, kongk, sevenmaster, tc5, timbast, TrymSan, ttick
Persian;ahangarha, danialbehzadi, ebadi, ebraminio, F7D, hamidrezabayat76, K2latmanesh, keunes, khersi, sinamoghaddas
-Polish (pl_PL);ad.szczepanski, befeleme, ewm, Gadzinisko, hiro2020, Iwangelion, kamila.miodek1991, keunes, lomapur, mandlus, maniexx, Mephistofeles, millup, portonus, Rakowy_Manaska, scooby250319888, shark103, TheName, tyle
+Polish (pl_PL);ad.szczepanski, befeleme, ewm, Gadzinisko, hiro2020, Iwangelion, kamila.miodek1991, keunes, lomapur, mandlus, maniexx, Medzik, Mephistofeles, millup, portonus, Rakowy_Manaska, scooby250319888, shark103, TheName, tyle
Portuguese;emansije, jmelo461, keunes, lecalam, smarquespt, WalkerPt
-Portuguese (pt_BR);alexupits, alysonborges, amalvarenga, andersonvom, aracnus, arua, bandreghetti, brasileiro, caioau, carlo_valente, castrors, denisdl, fnogcps, jmelo461, keunes, lipefire, mbaltar, olivoto, philosp, ricardo_ramos, rogervezaro, RubeensVinicius, SamWilliam, tepadilha, tschertel, ziul123
-Romanian (ro_RO);AdrianMirica, eRadical, fuzzmz, keunes, mozartro, ralienpp
+Portuguese (pt_BR);alexupits, alysonborges, amalvarenga, andersonvom, aracnus, arua, bandreghetti, brasileiro, caioau, carlo_valente, castrors, denisdl, diecavallax, fnogcps, jmelo461, keunes, lipefire, mbaltar, olivoto, philosp, ricardo_ramos, rogervezaro, RubeensVinicius, SamWilliam, tepadilha, tschertel, Xandefex, ziul123
+Romanian (ro_RO);AdrianMirica, andreh, eRadical, fuzzmz, Hiumee, keunes, mozartro, ralienpp
Russian (ru_RU);ashed, btimofeev, Duke_Raven, flexagoon, gammja, homocomputeris, IgorPolyakov, keunes, mercutiy, nachoman, null, overmind88, PtilopsisLeucotis, s.chebotar, tepxd, un_logic, Vladryyu, whereisthetea, yako
Slovak;ati3, jose1711, keunes, marulinko, McLenin666, real_name, tiborepcek
-Slovenian (sl_SI);anzepintar, asovic, keunes, panter23, TheFireFighter, trus2
-Spanish;3argueta3, 5NOER227O, AleksSyntek, andersonvom, andrespelaezp, arseru, Atreyu94, badlop, CaeM0R, carlos.levy, cartojo, deandreamatias, delthia, devarops, dvd1985, elojodepajaro, Fitoschido, frandavid100, hard_ware, Ioannis_D, javiercoll, keunes, kiekie, LatinSuD, leogrignafini, meanderingDot, nivaca, rafael.osuna, technozuzici, tres.14159, vfmatzkin, victorzequeida96, wakutiteo, ziul123
+Slovenian (sl_SI);asovic, keunes, panter23, TheFireFighter, trus2
+Spanish;3argueta3, 5NOER227O, AleksSyntek, andersonvom, andrespelaezp, arseru, Atreyu94, badlop, CaeM0R, carlos.levy, cartojo, deandreamatias, delthia, devarops, dvd1985, elcamilet, elojodepajaro, Fitoschido, frandavid100, hard_ware, Ioannis_D, israelem, javiercoll, keunes, kiekie, LatinSuD, leogrignafini, meanderingDot, nivaca, rafael.osuna, technozuzici, tres.14159, vfmatzkin, victorzequeida96, wakutiteo, ziul123
Swahili (macrolanguage);1silvester, keunes, kmtra
Swedish (sv_SE);aiix, bittin, bpnilsson, Evaluator5717, gustavkj, keunes, LinAGKar, nilso, TwoD, victorhggqvst
Tatar;seber
Telugu;keunes, veeven
-Turkish;AhmedDuran, alianilkocak, alierdogan7, AliGaygisiz, androtuna, archixe, brsata, Erdy, firatsoygul, ibo90p, keunes, overbite, Piryus, samsamsamsam, sismantolga, Slsdem, TZVS
-Ukrainian (uk_UA);amatra, balaraz, hishak, keunes, older, paul_sm, sergiyr, voinovich_vyacheslav, zhenya97
+Turkish;AhmedDuran, alianilkocak, alierdogan7, AliGaygisiz, androtuna, archixe, brsata, Erdy, firatsoygul, ibo90p, kabaqtepeli, keunes, overbite, Piryus, samsamsamsam, sismantolga, Slsdem, TZVS
+Ukrainian (uk_UA);amatra, balaraz, hishak, keunes, koorool, older, paul_sm, sergiyr, voinovich_vyacheslav, zhenya97
Uzbek;Usmon
Vietnamese;abnvolk, bruhwut, keunes, ppanhh
diff --git a/app/src/main/java/de/danoeh/antennapod/ui/home/HomeFragment.java b/app/src/main/java/de/danoeh/antennapod/ui/home/HomeFragment.java
index 21b36bc49..fc925aa03 100644
--- a/app/src/main/java/de/danoeh/antennapod/ui/home/HomeFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/ui/home/HomeFragment.java
@@ -21,12 +21,14 @@ import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentContainerView;
+import de.danoeh.antennapod.ui.home.sections.EchoSection;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Calendar;
import java.util.List;
import de.danoeh.antennapod.R;
@@ -60,6 +62,7 @@ public class HomeFragment extends Fragment implements Toolbar.OnMenuItemClickLis
public static final String PREF_NAME = "PrefHomeFragment";
public static final String PREF_HIDDEN_SECTIONS = "PrefHomeSectionsString";
public static final String PREF_DISABLE_NOTIFICATION_PERMISSION_NAG = "DisableNotificationPermissionNag";
+ public static final String PREF_HIDE_ECHO = "HideEcho";
private static final String KEY_UP_ARROW = "up_arrow";
private boolean displayUpArrow;
@@ -94,13 +97,19 @@ public class HomeFragment extends Fragment implements Toolbar.OnMenuItemClickLis
private void populateSectionList() {
viewBinding.homeContainer.removeAllViews();
+ SharedPreferences prefs = getContext().getSharedPreferences(HomeFragment.PREF_NAME, Context.MODE_PRIVATE);
if (Build.VERSION.SDK_INT >= 33 && ContextCompat.checkSelfPermission(getContext(),
Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
- SharedPreferences prefs = getContext().getSharedPreferences(HomeFragment.PREF_NAME, Context.MODE_PRIVATE);
if (!prefs.getBoolean(HomeFragment.PREF_DISABLE_NOTIFICATION_PERMISSION_NAG, false)) {
addSection(new AllowNotificationsSection());
}
}
+ if (Calendar.getInstance().get(Calendar.MONTH) == Calendar.DECEMBER
+ && Calendar.getInstance().get(Calendar.YEAR) == 2023
+ && Calendar.getInstance().get(Calendar.DAY_OF_MONTH) >= 10
+ && prefs.getInt(PREF_HIDE_ECHO, 0) != 2023) {
+ addSection(new EchoSection());
+ }
List<String> hiddenSections = getHiddenSections(getContext());
String[] sectionTags = getResources().getStringArray(R.array.home_section_tags);
diff --git a/app/src/main/java/de/danoeh/antennapod/ui/home/sections/EchoSection.java b/app/src/main/java/de/danoeh/antennapod/ui/home/sections/EchoSection.java
new file mode 100644
index 000000000..7261c6be4
--- /dev/null
+++ b/app/src/main/java/de/danoeh/antennapod/ui/home/sections/EchoSection.java
@@ -0,0 +1,77 @@
+package de.danoeh.antennapod.ui.home.sections;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.activity.MainActivity;
+import de.danoeh.antennapod.core.storage.DBReader;
+import de.danoeh.antennapod.core.storage.StatisticsItem;
+import de.danoeh.antennapod.databinding.HomeSectionEchoBinding;
+import de.danoeh.antennapod.ui.echo.EchoActivity;
+import de.danoeh.antennapod.ui.home.HomeFragment;
+import io.reactivex.Observable;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.schedulers.Schedulers;
+
+import java.util.Calendar;
+
+public class EchoSection extends Fragment {
+ private HomeSectionEchoBinding viewBinding;
+ private Disposable disposable;
+
+ @Nullable
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater,
+ @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ viewBinding = HomeSectionEchoBinding.inflate(inflater);
+ viewBinding.titleLabel.setText(getString(R.string.antennapod_echo_year, 2023));
+ viewBinding.echoButton.setOnClickListener(v -> startActivity(new Intent(getContext(), EchoActivity.class)));
+ viewBinding.closeButton.setOnClickListener(v -> {
+ getContext().getSharedPreferences(HomeFragment.PREF_NAME, Context.MODE_PRIVATE)
+ .edit().putInt(HomeFragment.PREF_HIDE_ECHO, 2023).apply();
+ ((MainActivity) getActivity()).loadFragment(HomeFragment.TAG, null);
+ });
+ updateVisibility();
+ return viewBinding.getRoot();
+ }
+
+ private long jan1() {
+ Calendar date = Calendar.getInstance();
+ date.set(Calendar.HOUR_OF_DAY, 0);
+ date.set(Calendar.MINUTE, 0);
+ date.set(Calendar.SECOND, 0);
+ date.set(Calendar.MILLISECOND, 0);
+ date.set(Calendar.DAY_OF_MONTH, 1);
+ date.set(Calendar.MONTH, 0);
+ date.set(Calendar.YEAR, 2023);
+ return date.getTimeInMillis();
+ }
+
+ private void updateVisibility() {
+ if (disposable != null) {
+ disposable.dispose();
+ }
+ disposable = Observable.fromCallable(
+ () -> {
+ DBReader.StatisticsResult statisticsResult = DBReader.getStatistics(false, jan1(), Long.MAX_VALUE);
+ long totalTime = 0;
+ for (StatisticsItem feedTime : statisticsResult.feedTime) {
+ totalTime += feedTime.timePlayed;
+ }
+ return totalTime;
+ })
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(totalTime -> viewBinding.getRoot()
+ .setVisibility((totalTime >= 3600 * 10) ? View.VISIBLE : View.GONE),
+ Throwable::printStackTrace);
+ }
+}
diff --git a/app/src/main/play/release-notes/en-US/default.txt b/app/src/main/play/release-notes/en-US/default.txt
index 478904d7a..a6d7e4fad 100644
--- a/app/src/main/play/release-notes/en-US/default.txt
+++ b/app/src/main/play/release-notes/en-US/default.txt
@@ -1 +1,8 @@
-This is a beta release. \ No newline at end of file
+🥂 A small treat for our users - check the Home screen on 10 December! (@ByteHamster, @keunes)
+∙ Accessibility & synchronisation improvements (@ByteHamster)
+∙ Add 'boost' options in the 'Volume adaptation' podcast setting (@matejdro)
+∙ Support double/triple-pressing headset buttons (@blairun)
+∙ Improve support for password-protected feeds (@ByteHamster)
+∙ Add multi-select actions on search results (@vinodpatildev)
+∙ Allow deleting local feed episodes (@matejdro)
+∙ Android Auto bugfix (@harshad1) \ No newline at end of file
diff --git a/app/src/main/res/layout/home_section_echo.xml b/app/src/main/res/layout/home_section_echo.xml
new file mode 100644
index 000000000..f5fdaa46f
--- /dev/null
+++ b/app/src/main/res/layout/home_section_echo.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingHorizontal="16dp">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:textColor="?android:attr/textColorPrimary"
+ android:textSize="18sp"
+ android:layout_marginVertical="8dp"
+ android:accessibilityHeading="true"
+ android:layout_weight="1"
+ android:text="@string/echo_home_header" />
+
+ <ImageView
+ android:id="@+id/closeButton"
+ android:layout_width="48dp"
+ android:layout_height="48dp"
+ android:padding="16dp"
+ android:background="?attr/selectableItemBackgroundBorderless"
+ android:contentDescription="@string/close_label"
+ android:layout_gravity="center_vertical"
+ android:src="@drawable/ic_cancel" />
+
+ </LinearLayout>
+
+ <androidx.cardview.widget.CardView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:cardCornerRadius="8dp"
+ app:cardElevation="0dp">
+
+ <LinearLayout
+ android:id="@+id/echoButton"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/bg_blue_gradient"
+ android:orientation="vertical"
+ android:padding="16dp"
+ android:foreground="?attr/selectableItemBackground">
+
+ <TextView
+ android:id="@+id/titleLabel"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="8dp"
+ android:textColor="#fff"
+ android:text="@string/antennapod_echo_year"
+ android:textFontWeight="500"
+ style="@style/TextAppearance.Material3.TitleLarge" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:textColor="#fff"
+ android:layout_weight="1"
+ android:text="@string/echo_home_subtitle"
+ style="@style/TextAppearance.Material3.BodyMedium" />
+
+ <ImageView
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_gravity="bottom"
+ android:textColor="#fff"
+ android:importantForAccessibility="no"
+ android:src="@drawable/ic_arrow_right_white" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ </androidx.cardview.widget.CardView>
+
+</LinearLayout>