diff options
Diffstat (limited to 'app')
9 files changed, 82 insertions, 43 deletions
diff --git a/app/build.gradle b/app/build.gradle index d6baaaf98..3cefe0300 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,8 +12,8 @@ android { // Version code schema: // "1.2.3-beta4" -> 1020304 // "1.2.3" -> 1020395 - versionCode 3010002 - versionName "3.1.0-beta2" + versionCode 3010295 + versionName "3.1.2" def commit = "" try { diff --git a/app/src/main/assets/developers.csv b/app/src/main/assets/developers.csv index 2f554912c..3c596da0c 100644 --- a/app/src/main/assets/developers.csv +++ b/app/src/main/assets/developers.csv @@ -8,15 +8,15 @@ TacoTheDank;32376686;Contributor tonytamsf;149837;Contributor damoasda;46045854;Contributor andersonvom;69922;Contributor +ebraminio;833473;Contributor shortspider;5712543;Contributor spacecowboy;223655;Contributor -ebraminio;833473;Contributor asdoi;36813904;Contributor patheticpat;16046;Contributor +keunes;11229646;Maintainer brad;1614;Contributor Cj-Malone;10121513;Contributor maxbechtold;9162198;Contributor -keunes;11229646;Maintainer gaul;848247;Contributor qkolj;6667105;Contributor pachecosf;46357909;Contributor @@ -29,21 +29,23 @@ rharriso;570910;Contributor xgouchet;818706;Contributor peakvalleytech;65185819;Contributor sevenmaster;12869538;Contributor +gitstart;1501599;Contributor TheRealFalcon;153674;Contributor Slinger;75751;Contributor vbh;56578479;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 CedricCabessa;365097;Contributor -terminalmage;328598;Contributor mchelen;30691;Contributor dethstar;1239177;Contributor drabux;10663142;Contributor @@ -84,6 +86,7 @@ Thom-Merrilin;76849828;Contributor archibishop;36948493;Contributor alifeflow;24603829;Contributor avirajrsingh;69088913;Contributor +beijingling;13600573;Contributor toggles;14695;Contributor connectety;26038710;Contributor matdb;48329535;Contributor @@ -94,6 +97,8 @@ FarzanKh;14272565;Contributor hannesaa2;18496079;Contributor myslok;2098329;Contributor jhunnius;9149031;Contributor +Jared234;26669009;Contributor +JonathanZopf;47294759;Contributor a1291762;327162;Contributor ShadowIce;59123;Contributor Niffler;8172446;Contributor @@ -104,6 +109,7 @@ skitt;2128935;Contributor liutng;8223139;Contributor wseemann;2296196;Contributor datavizard;44409076;Contributor +femmdi;47671383;Contributor markamaze;17114678;Contributor mohitshah3111999;42018918;Contributor moralesg;14352147;Contributor @@ -119,10 +125,12 @@ abhinavg1997;60095795;Contributor adrns;13379985;Contributor alanorth;191754;Contributor alexte;7724992;Contributor +awbooze;42682253;Contributor andrey-krutov;1488973;Contributor +andweg;30474752;Contributor arantius;84729;Contributor BoJacobs;25435640;Contributor -rounak882777;36985543;Contributor +chetan882777;36985543;Contributor chrissicool;232590;Contributor britiger;2057760;Contributor cszucko;1810383;Contributor @@ -139,7 +147,6 @@ Geist5000;37940313;Contributor IordanisKokk;72551397;Contributor jklippel;8657220;Contributor jannic;232606;Contributor -Jared234;26669009;Contributor Foso;5015532;Contributor JonOfUs;11487762;Contributor CreamyCookie;3063858;Contributor @@ -148,6 +155,7 @@ kvithayathil;1056073;Contributor luiscruz;1080714;Contributor LukasBrilla5;114982148;Contributor MStrecke;5202211;Contributor +mjydv4548;92643506;Contributor mlasson;5814258;Contributor schwedenmut;9077622;Contributor M-arcel;56698158;Contributor @@ -171,9 +179,8 @@ patrickjkennedy;8617261;Contributor pganssle;1377457;Contributor ortylp;470439;Contributor RafaelBod;77226971;Contributor -ramzan;55637406;Contributor ricardoborgesjr;2378440;Contributor -iamrichR;44210678;Contributor +bobrippling;205673;Contributor SamWhited;512573;Contributor SebiderSushi;23618858;Contributor selivan;1208989;Contributor @@ -190,6 +197,7 @@ lyallemma;25173082;Contributor edent;837136;Contributor atrus6;357881;Contributor Toover;8531603;Contributor +victorhaggqvist;1887628;Contributor heyyviv;56256802;Contributor waylife;3348620;Contributor yarons;406826;Contributor diff --git a/app/src/main/assets/translators.csv b/app/src/main/assets/translators.csv index 304d47cd8..01ac593e6 100644 --- a/app/src/main/assets/translators.csv +++ b/app/src/main/assets/translators.csv @@ -1,50 +1,50 @@ -Arabic;abuzar3.khalid, AhmedHll, badarotti, 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 Asturian (ast_ES);enolp, keunes Azerbaijani;5NOER227O, xxmn77 -Basque;bipoza, gaztainalde, IngrownMink4, keunes, Osoitz, pospolos +Basque;a_mento, bipoza, gaztainalde, IngrownMink4, keunes, Osoitz, pospolos Bengali;laggybird -Breton;Belvar, Eorn, Iriep, keunes, technozuzici +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, xc70 -Chinese (zh_CN);135e2, Biacke, brnme, claybiockiller, clong289734997, cyril3, Felix2yu, gaohongyuan, Guaidaodl, Huck0, iconteral, jhxie, jxj2zzz79pfp9bpo, JY3, keunes, kyleehee, molisiye, owen8877, RainSlide, RangerNJU, Sak94664, spice2wolf, tupunco, wongsyrone, yangyang, yiqiok -Chinese (zh_TW);bobchao, BWsix, ijliao, keunes, mapobi, pggdt, ymhuang0808 -Czech (cs_CZ);anotheranonymoususer, befeleme, elich, Hanzmeister, jjh, JStrange, kudlav, McLenin666, md.share, ShimonH, svetlemodry, Thomaash, viotalJiplk +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 +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, Vistaus, y33per -Estonian;beez276, Eraser, keunes, mahfiaz +Dutch;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 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, Macusercom, max.wittig, mfietz, Michael_Strecke, mkida, petterbejo, pudeeh, Quiss42, repat, sadfgdf, Sargon_Isa, teamon, thetrash23, thiesrappen, timo.rohwedder, toaskoas, Tobiasff3200, tomte, Tonne11, tweimer, VfBFan, Willhelm, ypid +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 Hebrew (he_IL);amir.dafnyman, E1i9, mongoose4004, pinkasey, rellieberman, Yaron -Hindi (hi_IN);keunes, purple.coder, rajs1942, siddhusengar, singhrishi245021, thelazyoxymoron +Hindi (hi_IN);Agyat009, keunes, purple.coder, siddhusengar, singhrishi245021, techiethakkar, thelazyoxymoron Hu;hurrikan, keunes, lna91, lomapur, marthynw, mc.transifex, meskobalazs, naren93 Icelandic;keunes, marthjod -Indonesian;dbrw, justch, keunes, levirs565, liimee -Italian (it_IT);aalex70, allin, alvami, atilluF, Bonnee, datesastick, dontknowcris, giuseppep, Guybrush88, ilmanzo, juanjom, keunes, lu.por, m.chinni, marco_pag, mat650, mircocau, neonsoftware, niccord, salorock, theloca95 -Japanese;ayiniho, Digger_4f, keunes, KotaKato, Naofumi, sh3llc4t, tko_cactus, TranslatorG -Kannada (kn_IN);chiraag.nataraj, deepu2, keunes, thejeshgn -Ko;changwoo, eshc123, keunes, libliboom +Indonesian;awmpawl, dbrw, justch, keunes, levirs565, liimee +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 +Ko;changwoo, eshc123, keunes, libliboom, shinwookim Latin;nivaca Lithuanian;keunes, naglis, Sharper Macedonian;krisfremen Malayalam;joice, keunes, KiranS, rashivkp -Modern Greek (1453-);AnimaRain, antonist, keunes, Kostas_F, pavlosv, pcguy23 -Norwegian Bokmål (nb_NO);abstrakct, ahysing, bablecopherye, corkie, forteller, Gauteweb, heraldo, jakobkg, Jamiera, keunes, kongk, sevenmaster, tc5, timbast, TrymSan, ttick -Persian;ahangarha, danialbehzadi, ebadi, ebraminio, F7D, hamidrezabayat76, K2latmanesh, keunes, sinamoghaddas -Polish (pl_PL);ad.szczepanski, befeleme, ewm, Gadzinisko, hiro2020, Iwangelion, kamila.miodek1991, keunes, lomapur, mandlus, maniexx, Mephistofeles, millup, Rakowy_Manaska, shark103, TheName, tyle +Modern Greek (1453-);AnimaRain, antonist, 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 Portuguese;emansije, jmelo461, keunes, lecalam, smarquespt, WalkerPt -Portuguese (pt_BR);alexupits, alysonborges, amalvarenga, andersonvom, aracnus, arua, bandreghetti, brasileiro, caioau, carlo_valente, castrors, jmelo461, keunes, lipefire, mbaltar, olivoto, philosp, ricardo_ramos, rogervezaro, RubeensVinicius, SamWilliam, tepadilha, tschertel, ziul123 -Romanian (ro_RO);AdrianMirica, fuzzmz, keunes, mozartro, ralienpp +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 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, javiercoll, keunes, kiekie, LatinSuD, leogrignafini, meanderingDot, nivaca, rafael.osuna, technozuzici, tres.14159, vfmatzkin, victorzequeida96, wakutiteo, ziul123 +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 Swahili (macrolanguage);1silvester, keunes, kmtra -Swedish (sv_SE);aiix, bittin, bpnilsson, Evaluator5717, keunes, LinAGKar, nilso, TwoD, victorhggqvst +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, keunes, overbite, Piryus, samsamsamsam, sismantolga, Slsdem -Ukrainian (uk_UA);hishak, keunes, older, paul_sm, sergiyr, voinovich_vyacheslav, zhenya97 +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 Uzbek;Usmon Vietnamese;abnvolk, bruhwut, keunes, ppanhh diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/CancelDownloadActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/CancelDownloadActionButton.java index 8b7a88873..c9500340b 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/CancelDownloadActionButton.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/CancelDownloadActionButton.java @@ -32,7 +32,7 @@ public class CancelDownloadActionButton extends ItemActionButton { @Override public void onClick(Context context) { FeedMedia media = item.getMedia(); - DownloadServiceInterface.get().cancel(context, media.getDownload_url()); + DownloadServiceInterface.get().cancel(context, media); if (UserPreferences.isEnableAutodownload()) { item.disableAutoDownload(); DBWriter.setFeedItem(item); diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java index 86a8047a9..4d5b0b6d5 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java @@ -52,12 +52,17 @@ public class DownloadActionButton extends ItemActionButton { } else { MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context) .setTitle(R.string.confirm_mobile_download_dialog_title) - .setMessage(R.string.confirm_mobile_download_dialog_message) .setPositiveButton(R.string.confirm_mobile_download_dialog_download_later, (d, w) -> DownloadServiceInterface.get().downloadNow(context, item, false)) .setNeutralButton(R.string.confirm_mobile_download_dialog_allow_this_time, (d, w) -> DownloadServiceInterface.get().downloadNow(context, item, true)) .setNegativeButton(R.string.cancel_label, null); + if (NetworkUtils.isNetworkRestricted() && NetworkUtils.isVpnOverWifi()) { + builder.setMessage(R.string.confirm_mobile_download_dialog_message_vpn); + } else { + builder.setMessage(R.string.confirm_mobile_download_dialog_message); + } + builder.show(); } } diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/MediaPlayerErrorDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/MediaPlayerErrorDialog.java index 306400b29..8425e0bfa 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/MediaPlayerErrorDialog.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/MediaPlayerErrorDialog.java @@ -21,8 +21,11 @@ public class MediaPlayerErrorDialog { genericMessage.length(), errorMessage.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); errorDialog.setMessage(errorMessage); - errorDialog.setPositiveButton(android.R.string.ok, (dialog, which) -> - ((MainActivity) activity).getBottomSheet().setState(BottomSheetBehavior.STATE_COLLAPSED)); + errorDialog.setPositiveButton(android.R.string.ok, (dialog, which) -> { + if (activity instanceof MainActivity) { + ((MainActivity) activity).getBottomSheet().setState(BottomSheetBehavior.STATE_COLLAPSED); + } + }); errorDialog.create().show(); } } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemPagerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemPagerFragment.java index 016f29e65..3d9e39482 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemPagerFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemPagerFragment.java @@ -161,6 +161,9 @@ public class ItemPagerFragment extends Fragment implements MaterialToolbar.OnMen } private void openPodcast() { + if (item == null) { + return; + } Fragment fragment = FeedItemlistFragment.newInstance(item.getFeedId()); ((MainActivity) getActivity()).loadChildFragment(fragment); } diff --git a/app/src/main/java/de/danoeh/antennapod/view/NoRelayoutTextView.java b/app/src/main/java/de/danoeh/antennapod/view/NoRelayoutTextView.java index 3f921b445..cbb2ef0af 100644 --- a/app/src/main/java/de/danoeh/antennapod/view/NoRelayoutTextView.java +++ b/app/src/main/java/de/danoeh/antennapod/view/NoRelayoutTextView.java @@ -1,6 +1,5 @@ package de.danoeh.antennapod.view; -import android.annotation.SuppressLint; import android.content.Context; import android.util.AttributeSet; import androidx.annotation.NonNull; @@ -8,6 +7,9 @@ import androidx.annotation.Nullable; import androidx.appcompat.widget.AppCompatTextView; public class NoRelayoutTextView extends AppCompatTextView { + private boolean requestLayoutEnabled = false; + private float maxTextLength = 0; + public NoRelayoutTextView(@NonNull Context context) { super(context); } @@ -20,9 +22,21 @@ public class NoRelayoutTextView extends AppCompatTextView { super(context, attrs, defStyleAttr); } - @SuppressLint("MissingSuperCall") @Override public void requestLayout() { - // Deliberate no-op + if (requestLayoutEnabled) { + super.requestLayout(); + } + requestLayoutEnabled = false; + } + + @Override + public void setText(CharSequence text, BufferType type) { + float textLength = getPaint().measureText(text.toString()); + if (textLength > maxTextLength) { + maxTextLength = textLength; + requestLayoutEnabled = true; + } + super.setText(text, type); } } 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 eb8f6d4db..d4b433b5e 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,7 @@ -This is a beta release. +∙ Add sorting options to the Downloads and Episodes screens (@Jared234, @gitstart) +∙ Android Auto fixes & improvements; add back skip button (@awbooze, @ByteHamster) +∙ Update design of the Subscriptions screen (@gitstart) +∙ Add option to set ‘Enqueue location’ to Random (@andweg) +∙ Allow to sort Inbox oldest to newest (@gitstart) +∙ Add option to auto-activate sleep timer in a specific timeslot (@mueller-ma) +∙ Improve file downloading; offer to download as soon as WiFi is available (@ByteHamster) |