From 73f488e3d253cb54a034e3fe5a001bc15dbdfc92 Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Tue, 31 Jan 2023 21:16:36 +0530 Subject: [PATCH 1/5] Convert CronetHelper to an object. --- .../java/com/github/libretube/LibreTubeApp.kt | 7 +++-- .../com/github/libretube/api/CronetHelper.kt | 30 ++++++------------- .../libretube/services/DownloadService.kt | 2 +- .../libretube/ui/fragments/PlayerFragment.kt | 12 +++----- 4 files changed, 19 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/com/github/libretube/LibreTubeApp.kt b/app/src/main/java/com/github/libretube/LibreTubeApp.kt index 282d1f6c1..b3b20a46a 100644 --- a/app/src/main/java/com/github/libretube/LibreTubeApp.kt +++ b/app/src/main/java/com/github/libretube/LibreTubeApp.kt @@ -6,7 +6,6 @@ import android.os.StrictMode.VmPolicy import androidx.core.app.NotificationChannelCompat import androidx.core.app.NotificationManagerCompat import androidx.work.ExistingPeriodicWorkPolicy -import com.github.libretube.api.CronetHelper import com.github.libretube.api.RetrofitInstance import com.github.libretube.constants.BACKGROUND_CHANNEL_ID import com.github.libretube.constants.DOWNLOAD_CHANNEL_ID @@ -22,6 +21,7 @@ import com.github.libretube.util.ExceptionHandler class LibreTubeApp : Application() { override fun onCreate() { super.onCreate() + instance = this /** * Initialize the needed notification channels for DownloadService and BackgroundMode @@ -48,7 +48,6 @@ class LibreTubeApp : Application() { * Set the api and the auth api url */ RetrofitInstance.initialize() - CronetHelper.initCronet(this) ImageHelper.initializeImageLoader(this) /** @@ -112,4 +111,8 @@ class LibreTubeApp : Application() { ) ) } + + companion object { + lateinit var instance: LibreTubeApp + } } diff --git a/app/src/main/java/com/github/libretube/api/CronetHelper.kt b/app/src/main/java/com/github/libretube/api/CronetHelper.kt index bbeb58c66..0c217bd86 100644 --- a/app/src/main/java/com/github/libretube/api/CronetHelper.kt +++ b/app/src/main/java/com/github/libretube/api/CronetHelper.kt @@ -1,28 +1,16 @@ package com.github.libretube.api -import android.content.Context +import com.github.libretube.LibreTubeApp import com.google.net.cronet.okhttptransport.CronetCallFactory import org.chromium.net.CronetEngine -class CronetHelper { - companion object { - private lateinit var engine: CronetEngine - lateinit var callFactory: CronetCallFactory +object CronetHelper { + val cronetEngine: CronetEngine = CronetEngine.Builder(LibreTubeApp.instance) + .enableHttp2(true) + .enableQuic(true) + .enableBrotli(true) + .enableHttpCache(CronetEngine.Builder.HTTP_CACHE_IN_MEMORY, 1024L * 1024L) // 1MiB + .build() - fun initCronet(context: Context) { - engine = CronetEngine.Builder(context) - .enableHttp2(true) - .enableQuic(true) - .enableBrotli(true) - .enableHttpCache(CronetEngine.Builder.HTTP_CACHE_IN_MEMORY, 1024L * 1024L) // 1MiB - .build() - - callFactory = CronetCallFactory.newBuilder(engine) - .build() - } - - fun getCronetEngine(): CronetEngine { - return engine - } - } + val callFactory: CronetCallFactory = CronetCallFactory.newBuilder(cronetEngine).build() } diff --git a/app/src/main/java/com/github/libretube/services/DownloadService.kt b/app/src/main/java/com/github/libretube/services/DownloadService.kt index 8f04bf6a6..187cd0228 100644 --- a/app/src/main/java/com/github/libretube/services/DownloadService.kt +++ b/app/src/main/java/com/github/libretube/services/DownloadService.kt @@ -179,7 +179,7 @@ class DownloadService : Service() { try { // Set start range where last downloading was held. - val con = CronetHelper.getCronetEngine().openConnection(url) as HttpURLConnection + val con = CronetHelper.cronetEngine.openConnection(url) as HttpURLConnection con.requestMethod = "GET" con.setRequestProperty("Range", "bytes=$totalRead-") con.connectTimeout = DownloadHelper.DEFAULT_TIMEOUT diff --git a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt index e79c92976..445bbb0c3 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt @@ -123,7 +123,6 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.datetime.LocalDate import kotlinx.serialization.encodeToString -import org.chromium.net.CronetEngine import retrofit2.HttpException class PlayerFragment : BaseFragment(), OnlinePlayerOptions { @@ -1300,14 +1299,11 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions { } private fun createExoPlayer() { - val cronetEngine: CronetEngine = CronetHelper.getCronetEngine() - val cronetDataSourceFactory: CronetDataSource.Factory = - CronetDataSource.Factory(cronetEngine, Executors.newCachedThreadPool()) - - val dataSourceFactory = DefaultDataSource.Factory( - requireContext(), - cronetDataSourceFactory + val cronetDataSourceFactory = CronetDataSource.Factory( + CronetHelper.cronetEngine, + Executors.newCachedThreadPool() ) + val dataSourceFactory = DefaultDataSource.Factory(requireContext(), cronetDataSourceFactory) // control for the track sources like subtitles and audio source trackSelector = DefaultTrackSelector(requireContext()) From 8cd10945267793caec00a2d6be3f5c56506d52d2 Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Mon, 6 Feb 2023 08:10:05 +0530 Subject: [PATCH 2/5] Use ServiceCompat. --- .../java/com/github/libretube/services/DownloadService.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/github/libretube/services/DownloadService.kt b/app/src/main/java/com/github/libretube/services/DownloadService.kt index 8f04bf6a6..f530da78a 100644 --- a/app/src/main/java/com/github/libretube/services/DownloadService.kt +++ b/app/src/main/java/com/github/libretube/services/DownloadService.kt @@ -5,9 +5,9 @@ import android.app.PendingIntent import android.app.Service import android.content.Intent import android.os.Binder -import android.os.Build import android.os.IBinder import androidx.core.app.NotificationCompat +import androidx.core.app.ServiceCompat import com.github.libretube.R import com.github.libretube.api.CronetHelper import com.github.libretube.api.RetrofitInstance @@ -315,9 +315,7 @@ class DownloadService : Service() { // Stop the service if no downloads are active. if (downloadQueue.none { it.value }) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - stopForeground(STOP_FOREGROUND_DETACH) - } + ServiceCompat.stopForeground(this, ServiceCompat.STOP_FOREGROUND_DETACH) sendBroadcast(Intent(ACTION_SERVICE_STOPPED)) stopSelf() } From 5ebd827d4fb54b09aa4fbf4e55b962d4841f4834 Mon Sep 17 00:00:00 2001 From: Bdd55oo Date: Sat, 4 Feb 2023 20:11:40 +0000 Subject: [PATCH 3/5] Translated using Weblate (Yue) Currently translated at 19.2% (86 of 446 strings) Translation: LibreTube/LibreTube Translate-URL: https://hosted.weblate.org/projects/libretube/libretube/yue/ --- app/src/main/res/values-yue/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-yue/strings.xml b/app/src/main/res/values-yue/strings.xml index 9c65b68bb..976dd8914 100644 --- a/app/src/main/res/values-yue/strings.xml +++ b/app/src/main/res/values-yue/strings.xml @@ -84,4 +84,6 @@ Sponsor 較嘢 + 主頁 + 拉把 \ No newline at end of file From a15a3b767f5e5a3cbe2f1a460246ce060d0c039c Mon Sep 17 00:00:00 2001 From: In Mind Date: Sun, 5 Feb 2023 20:41:38 +0000 Subject: [PATCH 4/5] Translated using Weblate (Greek) Currently translated at 98.6% (440 of 446 strings) Translation: LibreTube/LibreTube Translate-URL: https://hosted.weblate.org/projects/libretube/libretube/el/ --- app/src/main/res/values-el/strings.xml | 151 +++++++++++++++++++++++-- 1 file changed, 144 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index d195dd7c3..4ab3a6ee5 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -16,7 +16,7 @@ Μια άλλη λήψη είναι ήδη σε εξέλιξη, περιμένετε μέχρι να ολοκληρωθεί. Η λήψη απέτυχε. Άνοιγμα στο VLC - Δεν μπορεί να ανοίξει στο VLC. Μπορεί να μην έχει εγκατασταθεί. + Δεν ήταν δυνατό το άνοιγμα σε VLC. Ενδέχεται να μην εγκαταστάθηκε. Εισαγωγή εγγραφών Από το YouTube ή το NewPipe Θέμα @@ -108,7 +108,7 @@ Αυλό πράσινο Ευχάριστο μοβ Κόκκινο για ξεκούραση - Μυστικό Υλικό 3 + \"Μυστικό Υλικό 3\" Ειδοποιήσεις Εικονίδιο Piped @@ -127,7 +127,7 @@ Πού αποθηκεύονται τα ληφθέντα μέσα. Δωρεά Αναζητήστε νέα έκδοση - Πατήστε για να μάθετε αν η εφαρμογή είναι ενημερωμένη. + Έλεγχος για ενημερώσεις Εκτελείτε την τελευταία έκδοση. Συμβάλοντας Προσαρμόστε την εφαρμογή σύμφωνα με τις προτιμήσεις σας. @@ -189,7 +189,7 @@ Διεύθυνση URL στη σελίδα του διακομιστή Ποιότητα Συμπεριφορά - Ποιότητα και συμπεριφορά του αναπαραγωγέα + Προεπιλογές ποιότητας και και συμπεριφοράς αναπαραγωγέα Προσαύξηση αναπήδησης Επαναφορά προεπιλογών Επαναφορά όλων των ρυθμίσεων και αποσύνδεση; @@ -207,7 +207,7 @@ Διακομιστής αυθεντικοποίησης Χρησιμοποιήστε ένα διαφορετικό διακομιστή για αυθεντικοποιημένες κλήσεις. Επιλέξτε ενα διακομιστή αυθεντικοποίησης - Αυτόματο + HLS GitHub Ήχος και βίντεο Προσανατολισμός πλήρους οθόνης @@ -271,7 +271,7 @@ Μετάφραση Δεν υπάρχουν αποτελέσματα. Λήψη επιτυχής - Μοιραστείτε με την ώρα έναρξης + Μοιραστείτε με συγκεκριμένο χρόνο έναρξης Κεφάλαια Ταχύτητα αναπαραγωγής Εξαγωγή εγγραφών @@ -294,7 +294,7 @@ Άνοιγμα Προσαρμογή Ενεργοποιήστε το Wi-Fi ή τα δεδομένα κινητής τηλεφωνίας για να συνδεθείτε στο διαδίκτυο. - Επανεκκίνηση της εφαρμογής; + Επανεκκινήστε την εφαρμογή για να χρησιμοποιήσετε τις νέες αλλαγές. Αυτόματη πλήρης οθόνη Αναπαραγωγή πλήρους οθόνης όταν η συσκευή γυρίζει. Δεν βρέθηκε εξωτερικό πρόγραμμα αναπαραγωγής. Βεβαιωθείτε ότι έχετε εγκαταστήσει ένα. @@ -305,4 +305,141 @@ Γενικά Μορφή ήχου για τον αναπαραγωγέα Ποιότητα ήχου + Επιβεβαιώστε την απεγγραφή + Τοπικές λίστες αναπαραγωγής + Επιλέξτε πρώτα μια άλλη καρτέλα έναρξης! + Αναπαραγωγή όλων + Φωτεινότητα + Ένταση ήχου + Αυτόματο + Στοιχεία ελέγχου ολίσθησης + Χρησιμοποιήστε το σήμα ολίσθησης για να προσαρμόσετε τη φωτεινότητα και την ένταση. + Wi-Fi + Λεπτά πριν την υπενθύμιση + Πληροφορίες συσκευής + Ποιότητα και μορφή + Εναλλακτική διάταξη τάσεων + Δεδομένα κινητού + Ένδειξη για νέα βίντεο + Δείξε ένα σήμα με τον αριθμό των νέων βίντεο, εάν υπάρχουν κάποια. + Παίξε το επόμενο + Μπάρα πλοήγησης + Επιλέξτε τουλάχιστον ένα στοιχείο + Μέγεθος διαστήματος προοδευτικού φορτίου + Προκαθορισμένο + Όνομα αρχείου + Άκυρο όνομα αρχείου! + Τόνος + Πρόσφατα ενημερώθηκε (αντίστροφα) + Προστέθηκε στη λίστα αναπαραγωγής + Αναπαράγεται στην ουρά + Προεπιλεγμένο φως + Είστε βέβαιοι ότι θέλετε να καταργήσετε την εγγραφή %1$s; + Εμφάνιση διαλόγου επιβεβαίωσης πριν από την κατάργηση της εγγραφής. + Χρόνος + Χρόνος έναρξης + Χρόνος λήξης + Χρόνος ειδοποίησης + Χρονικό διάστημα κατά το οποίο επιτρέπεται η εμφάνιση ειδοποιήσεων. + Εναλλακτική διάταξη τάσεων + Διάταξη + Εναλλακτική διάταξη αναπαραγωγής + Εμφανίστε τα σχετικά βίντεο ως μια σειρά πάνω από τα σχόλια αντί για παρακάτω. + Χρησιμοποιήστε HLS αντί για DASH (πιο αργό, δεν συνιστάται) + Αυτόματο + Τι είναι σε τάση τώρα + Το στοιχείο μενού δεν είναι ενεργοποιημένο! + Προεπιλογές + Αναδυόμενο παράθυρο + Μινιμαλιστική Μονόχρωμη + Είστε έτοιμοι + Αντίγραφο ασφαλείας εφαρμογής + Ειδοποίηση απορρήτου + Ευέλικτο βιολετί + URL λίστας αναπαραγωγής + Παύση κατά τη διακοπή + Ανακάτεμα + Αφαίρεση σελιδοδείκτη + Εμπρός + Εναλλακτικά στοιχεία ελέγχου PiP + Εμφάνιση μόνο ήχου και παράβλεψη στοιχείων ελέγχου στο PiP αντί για εμπρός και πίσω + Λειτουργία μόνο ήχου + Χρονοδιακόπτης ύπνου + Παράλειψη σιωπής + Βοήθεια + FAQ + Εμφανίζει μια ειδοποίηση κατά τη λήψη πολυμέσων. + Λειτουργία φόντου + Εμφανίζει μια ειδοποίηση όταν είναι διαθέσιμες νέες ροές. + Αυτό το βίντεο δεν έχει διαθέσιμα σχόλια. + Τα σχόλια είναι απενεργοποιημένα από τον χρήστη. + Μέγεθος υπότιτλων + Παύση + Πίσω + Πατήστε δύο φορές για αναζήτηση + Έχετε δει όλα τα νέα βίντεο + Απόκρυψη βίντεο που παρακολουθήσατε από τη ροή + Μην εμφανίζεις βίντεο που παρακολουθούνται περισσότερο από το 90% στην καρτέλα συνδρομές. + προβολές + Τοπικές συνδρομές + Υπηρεσία λήψης + Σειρά + Οι τάσεις φαίνεται να μην είναι διαθέσιμες για την τρέχουσα περιοχή. Επιλέξτε άλλη στις ρυθμίσεις. + Προβολή συνδρομών παλαιού τύπου + Τίποτα επιλεγμένο! + Χωρίς υποτίτλους + Το κατέβασμα τέθηκε σε παύση + Μια χαμηλότερη τιμή μπορεί να επιταχύνει την αρχική φόρτωση βίντεο. + Περιορίστε το HLS στα 1080p + Παράλειψη τμήματος + Παράβλεψη χειροκίνητα + Μην παραλείψεις τμήματα αυτόματα, πάντα ζήτα προτροπή. + Όνομα λίστας αναπαραγωγής (αντίστροφο) + Ενημερώθηκε πρόσφατα + Κωδικός χρόνου (δευτερόλεπτα) + Η λίστα αναπαραγωγής κλωνοποιήθηκε + Περιορισμός χρόνου εκτέλεσης + Τάσεις + Προτεινόμενα + Πατήστε δύο φορές αριστερά ή δεξιά για να μετακινήσετε προς τα πίσω ή προς τα εμπρός τη θέση του αναπαραγωγέα. + Εισαγωγή και εξαγωγή συνδρομών, playlist,… + Αναπαραγωγή των πιο πρόσφατων βίντεο + Συνέχιση + Προσθήκη στους σελιδοδείκτες + Εμφανίζει μια ειδοποίηση με κουμπιά για τον έλεγχο του προγράμματος αναπαραγωγής ήχου. + Διαγραφή από λήψεις + Σειρά λιστών αναπαραγωγής + Συνέχιση με μια διεύθυνση e-mail που δεν συνιστάται; + Εξήχθη. + Σημάδι + Σημειώστε τα τμήματα στη γραμμή χρόνου. + Προτιμήσεις + Προσαρμοσμένες περιπτώσεις + Φόρτωση ροής στο παρασκήνιο + Φορτώστε τη ροή της συνδρομής στο παρασκήνιο και αποτρέψτε την αυτόματη ανανέωσή της. + Ουρά + Ζωντανές Ροές + Εναλλακτική διάταξη βίντεο + Χρησιμοποίησε HLS + Απαντήσεις + Μετατρέψτε το LibreTube σε πρόγραμμα αναπαραγωγής μουσικής. + Το μέγιστο όριο ταυτόχρονων λήψεων έχει συμπληρωθεί. + Άγνωστος + Συνέχιση + Εισαγωγή λιστών αναπαραγωγής + Εξαγωγή λιστών αναπαραγωγής + Ηχητικό κομμάτι + Προεπιλογή + Μη υποστηριζόμενη μορφή αρχείου! + Αναπαραγωγή ήχου + Άνοιγμα ουράς από την ειδοποίηση + Δείτε περισσότερα + Μετονομασία λίστας αναπαραγωγής + Εισαγάγετε σχετικά βίντεο + Σελιδοδείκτες + Σελιδοδείκτης + Εκκαθάριση σελιδοδεικτών + Δεν υπάρχουν ακόμα σελιδοδείκτες! + Το κατέβασμα ολοκληρώθηκε + Μέγιστος αριθμός ταυτοχρόνων λήψεων \ No newline at end of file From 919a938b104c5b803510a0c550d685293efa3e4b Mon Sep 17 00:00:00 2001 From: faisalkhan Date: Mon, 6 Feb 2023 03:51:17 +0000 Subject: [PATCH 5/5] Translated using Weblate (Urdu) Currently translated at 40.3% (180 of 446 strings) Translation: LibreTube/LibreTube Translate-URL: https://hosted.weblate.org/projects/libretube/libretube/ur/ --- app/src/main/res/values-ur/strings.xml | 40 ++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index fff4197b3..ec9298d25 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -140,4 +140,44 @@ توقف کریں رجحان ساز صفحہ چھپائیں خودکار توقف + رویہ + ڈاؤن لوڈز + ویڈیو کی شکل + فائلوں کی تبدیلی اگر آڈیو اور ویڈیو دونوں ڈاؤن لوڈ ہوں۔ + پر ڈاؤن لوڈ کریں + جہاں ڈاؤن لوڈ کردہ میڈیا کو محفوظ کیا جاتا ہے۔ + تعاون کرنا + عطیہ کریں + نیا ورژن تلاش کریں + اپ ڈیٹ کے لیے چیک کریں + تازہ ترین ورژن چل رہا ہے۔ + پلے بیک کی رفتار + اعلی درجے کی + پلیئر + ڈاؤن لوڈز، اور ری سیٹ کریں + لائیو + اس تبصرے کا کوئی جواب نہیں ہے۔ + مصنفین + نام + اندرونی سٹوریج + ڈونلوڈ فولڈر + SD کارڈ + میوزک فولڈر + مووی فولڈر + اس کے ساتھ URL کا اشتراک کریں + ڈیفالٹ + گم شدہ میراث + Glib میلان + فیشن ایبل آگ + جدید ٹارچ + بے وقوف شکل + اڑتا ہوا شعلہ + شامل کریں… + آپ تازہ ترین ورژن چلا رہے ہیں۔ + ایپ کو اپنی پسند کے مطابق ایڈجسٹ کریں۔ + ڈاؤن لوڈ کردہ فولڈر کا نام جہاں میڈیا محفوظ ہے۔ + بار دیکھا گیا + %1$s بار دیکھا گیا + پائپ، لاگ ان، اور سبسکرپشنز + بڑھا ہوا پرندہ \ No newline at end of file