1
0
mirror of https://github.com/foobnix/LibreraReader.git synced 2025-10-06 00:02:43 +02:00

update app

This commit is contained in:
Ivan Ivanenko
2025-09-19 12:43:23 +03:00
parent 7d72367b0d
commit b97ce5b8ba
49 changed files with 342 additions and 23 deletions

View File

@@ -26,7 +26,7 @@ public class GoogleTranslation {
public static String translate(String inputOriginal, String from, String toLang) throws JSONException, IOException {
String input = URLEncoder.encode(inputOriginal, "UTF-8");
String url = "https://www.googleapis.com/language/translate/v2?key=" + KEY.replace("-","") + "&q=" + input + "&source=" + from + "&target=" + toLang;
String url = "https://www.googleapis.com/language/translate/v2?key=" + KEY.replace("-", "") + "&q=" + input + "&source=" + from + "&target=" + toLang;
// System.out.println(url);
JSONObject json = readJsonFromUrl(url);
@@ -40,7 +40,7 @@ public class GoogleTranslation {
// System.out.println(translate);
try {
Thread.sleep(250);
Thread.sleep(1000);
} catch (InterruptedException e) {
}

View File

@@ -65,7 +65,7 @@ public class SyncTranslations {
}
private static Config IVAN_2 = new Config("ivan", "", "/home/data/git/LibreraReader/app/src/main/res/");//Linux
private static Config IVAN = new Config("ivan", "", "/Users/dev/git/LibreraReader/app/src/main/res/");//MAC
private static Config IVAN = new Config("ivan", "", "/Users/ivanivanenko/git/LibreraReader/app/src/main/res/");//MAC
// run as "SyncTranslations user_name"

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">قائمة العرض</string>
<string name="cd_download_more_fonts">تنزيل المزيد من الخطوط</string>
<string name="restore_search_query_when_the_application_starts">استعادة استعلام البحث عند بدء التشغيل</string>
<string name="lock_books_by_default">قفل الكتب بشكل افتراضي</string>
<string name="hide_read_books">إخفاء قراءة الكتب</string>
<string name="show_series_number_in_title">إظهار رقم السلسلة في العنوان</string>
<string name="graphics_scale">مقياس الرسومات</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Меню прагляду</string>
<string name="cd_download_more_fonts">Спампаваць больш шрыфтоў</string>
<string name="restore_search_query_when_the_application_starts">Аднавіць пошукавы запыт пры запуску</string>
<string name="lock_books_by_default">Блакіроўка кніг па змаўчанні</string>
<string name="hide_read_books">Схаваць прачытаныя кнігі</string>
<string name="show_series_number_in_title">Паказаць нумар серыі ў назве</string>
<string name="graphics_scale">Графічны маштаб</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Меню за преглед</string>
<string name="cd_download_more_fonts">Изтегляне на още шрифтове</string>
<string name="restore_search_query_when_the_application_starts">Възстановяване на заявката за търсене при стартиране</string>
<string name="lock_books_by_default">Заключване на книги по подразбиране</string>
<string name="hide_read_books">Скрий прочетени книги</string>
<string name="show_series_number_in_title">Покажете серийния номер в заглавието</string>
<string name="graphics_scale">Графичен мащаб</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Menú de visualització</string>
<string name="cd_download_more_fonts">Baixa més fonts</string>
<string name="restore_search_query_when_the_application_starts">Restaura la consulta de cerca a l\'inici</string>
<string name="lock_books_by_default">Bloqueja els llibres per defecte</string>
<string name="hide_read_books">Oculta els llibres llegits</string>
<string name="show_series_number_in_title">Mostra el número de la sèrie al títol</string>
<string name="graphics_scale">Escala de les imatges</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Zobrazit menu</string>
<string name="cd_download_more_fonts">Stáhnout více písem</string>
<string name="restore_search_query_when_the_application_starts">Obnovit vyhledávací dotaz při spuštění</string>
<string name="lock_books_by_default">Zamykání knih ve výchozím nastavení</string>
<string name="hide_read_books">Skrýt přečtené knihy</string>
<string name="show_series_number_in_title">Zobrazit číslo série v názvu</string>
<string name="graphics_scale">Grafické měřítko</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Menü ansehen</string>
<string name="cd_download_more_fonts">Weitere Schriftarten herunterladen</string>
<string name="restore_search_query_when_the_application_starts">Suchabfrage beim Start wiederherstellen</string>
<string name="lock_books_by_default">Bücher standardmäßig sperren</string>
<string name="hide_read_books">Gelesene Bücher verstecken</string>
<string name="show_series_number_in_title">Seriennummer im Titel anzeigen</string>
<string name="graphics_scale">Grafik skalieren</string>
@@ -665,4 +666,4 @@
<string name="allow_other_music_to_play">Andere Musik abspielen lassen</string>
<string name="enable_image_scale">Bildskalierung aktivieren</string>
<string name="open_books_on_page_1">Bücher auf Seite 1 öffnen</string>
</resources>
</resources>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Προβολή μενού</string>
<string name="cd_download_more_fonts">Κατεβάστε περισσότερες γραμματοσειρές</string>
<string name="restore_search_query_when_the_application_starts">Επαναφορά ερωτήματος αναζήτησης κατά την εκκίνηση</string>
<string name="lock_books_by_default">Κλειδώστε τα βιβλία από προεπιλογή</string>
<string name="hide_read_books">Κρύψτε τα διαβασμένα βιβλία</string>
<string name="show_series_number_in_title">Εμφάνιση του αριθμού σειράς στον τίτλο</string>
<string name="graphics_scale">Κλίμακα γραφικών</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Ver menú</string>
<string name="cd_download_more_fonts">Descargar más fuentes</string>
<string name="restore_search_query_when_the_application_starts">Restaurar la consulta de búsqueda al inicio</string>
<string name="lock_books_by_default">Bloquear libros por defecto</string>
<string name="hide_read_books">Ocultar leer libros</string>
<string name="show_series_number_in_title">Mostrar el número de serie en el título</string>
<string name="graphics_scale">Escala gráfica</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Ikusi menua</string>
<string name="cd_download_more_fonts">Deskargatu letra-tipo gehiago</string>
<string name="restore_search_query_when_the_application_starts">Berrezarri bilaketa-kontsulta abiarazteko</string>
<string name="lock_books_by_default">Blokeatu liburuak lehenespenez</string>
<string name="hide_read_books">Ezkutatu irakurritako liburuak</string>
<string name="show_series_number_in_title">Serie zenbakia izenburuan erakutsi</string>
<string name="graphics_scale">Eskala grafikoa</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">مشاهده منو</string>
<string name="cd_download_more_fonts">فونت های بیشتر را دانلود کنید</string>
<string name="restore_search_query_when_the_application_starts">بازیابی عبارت جستجو در هنگام راه اندازی</string>
<string name="lock_books_by_default">قفل کردن کتاب‌ها به صورت پیش‌فرض</string>
<string name="hide_read_books">کتاب های خوانده شده را پنهان کنید</string>
<string name="show_series_number_in_title">نمایش شماره سریال در عنوان</string>
<string name="graphics_scale">مقیاس گرافیکی</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Näytä valikko</string>
<string name="cd_download_more_fonts">Lataa lisää kirjasimia</string>
<string name="restore_search_query_when_the_application_starts">Palauta hakukysely käynnistyksen yhteydessä</string>
<string name="lock_books_by_default">Lukitse kirjat oletuksena</string>
<string name="hide_read_books">Piilottaa luetut kirjat</string>
<string name="show_series_number_in_title">Näytä sarjanumero otsikossa</string>
<string name="graphics_scale">Graafinen mittakaava</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Afficher le menu</string>
<string name="cd_download_more_fonts">Télécharger plus de polices</string>
<string name="restore_search_query_when_the_application_starts">Restaurer la requête de recherche au démarrage</string>
<string name="lock_books_by_default">Verrouiller les livres par défaut</string>
<string name="hide_read_books">Masquer les livres lus</string>
<string name="show_series_number_in_title">Afficher le numéro de série dans le titre</string>
<string name="graphics_scale">Échelle graphique</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Roghchlár amharc</string>
<string name="cd_download_more_fonts">Íosluchtaigh clónna níos mó</string>
<string name="restore_search_query_when_the_application_starts">Ceist chuardaigh a chur ar ais ag am tosaithe</string>
<string name="lock_books_by_default">Leabhair a ghlasáil de réir réamhshocraithe</string>
<string name="hide_read_books">Hide léamh leabhair</string>
<string name="show_series_number_in_title">Taispeáin uimhir na sraithe i dteideal</string>
<string name="graphics_scale">Scála grafach</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">הצג תפריט</string>
<string name="cd_download_more_fonts">להוריד גופנים נוספים</string>
<string name="restore_search_query_when_the_application_starts">שחזר שאילתת חיפוש בעת ההפעלה</string>
<string name="lock_books_by_default">נעילת ספרים כברירת מחדל</string>
<string name="hide_read_books">להסתיר ספרים לקרוא</string>
<string name="show_series_number_in_title">הצג את מספר הסדרה בכותרת</string>
<string name="graphics_scale">סולם גרפי</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">मेनू देखें</string>
<string name="cd_download_more_fonts">अधिक फोंट डाउनलोड करें</string>
<string name="restore_search_query_when_the_application_starts">स्टार्टअप पर खोज क्वेरी को पुनर्स्थापित करें</string>
<string name="lock_books_by_default">डिफ़ॉल्ट रूप से पुस्तकें लॉक करें</string>
<string name="hide_read_books">पढ़ी गई किताबें छुपाएं</string>
<string name="show_series_number_in_title">शीर्षक में श्रृंखला संख्या दिखाएँ</string>
<string name="graphics_scale">ग्राफिक्स स्केल</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Nézet menü</string>
<string name="cd_download_more_fonts">Több betűtípus letöltése</string>
<string name="restore_search_query_when_the_application_starts">A keresési lekérdezés visszaállítása indításkor</string>
<string name="lock_books_by_default">Alapértelmezés szerint zárolja a könyveket</string>
<string name="hide_read_books">Elrejteni olvasott könyveket</string>
<string name="show_series_number_in_title">Sorozatszámot mutasd a címben</string>
<string name="graphics_scale">Grafikus skála</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Lihat menu</string>
<string name="cd_download_more_fonts">Unduh lebih banyak font</string>
<string name="restore_search_query_when_the_application_starts">Pulihkan permintaan pencarian saat startup</string>
<string name="lock_books_by_default">Mengunci buku secara default</string>
<string name="hide_read_books">Sembunyikan buku yang sudah dibaca</string>
<string name="show_series_number_in_title">Tampilkan nomor seri di judul</string>
<string name="graphics_scale">Skala grafis</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Menu di visualizzazione</string>
<string name="cd_download_more_fonts">Scarica più caratteri</string>
<string name="restore_search_query_when_the_application_starts">Ripristinare la query di ricerca all\'avvio</string>
<string name="lock_books_by_default">Blocca i libri per impostazione predefinita</string>
<string name="hide_read_books">Nascondere leggere libri</string>
<string name="show_series_number_in_title">Mostra il numero di serie nel titolo</string>
<string name="graphics_scale">Scala grafica</string>
@@ -665,4 +666,4 @@
<string name="allow_other_music_to_play">Consentire la riproduzione di altra musica</string>
<string name="enable_image_scale">Abilitare la scala dell\'immagine</string>
<string name="open_books_on_page_1">Aprire i libri a pagina 1</string>
</resources>
</resources>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">メニューを表示</string>
<string name="cd_download_more_fonts">より多くのフォントをダウンロードする</string>
<string name="restore_search_query_when_the_application_starts">起動時に検索クエリを復元する</string>
<string name="lock_books_by_default">デフォルトで本をロックする</string>
<string name="hide_read_books">読んだ本を隠す</string>
<string name="show_series_number_in_title">タイトルにシリーズ番号を表示</string>
<string name="graphics_scale">画像の伸縮</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Мәзірді қарау</string>
<string name="cd_download_more_fonts">Қосымша қаріптерді жүктеп алыңыз</string>
<string name="restore_search_query_when_the_application_starts">Іске қосу кезінде іздеу сұрауын қалпына келтіріңіз</string>
<string name="lock_books_by_default">Әдепкі бойынша кітаптарды құлыптау</string>
<string name="hide_read_books">Оқыған кітаптарды жасыру</string>
<string name="show_series_number_in_title">Тақырыпта серия нөмірін көрсетіңіз</string>
<string name="graphics_scale">Графикалық масштаб</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">메뉴보기</string>
<string name="cd_download_more_fonts">글꼴 다운로드</string>
<string name="restore_search_query_when_the_application_starts">시작 시 검색어 복원</string>
<string name="lock_books_by_default">기본적으로 책 잠금</string>
<string name="hide_read_books">읽은 책 숨기기</string>
<string name="show_series_number_in_title">제목에 시리즈 번호 표시</string>
<string name="graphics_scale">그래픽 스케일</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">View menu</string>
<string name="cd_download_more_fonts">Download more fonts</string>
<string name="restore_search_query_when_the_application_starts">Quaero quaestionem restituere ad startup</string>
<string name="lock_books_by_default">Libros per defectum claudere</string>
<string name="hide_read_books">Celare legere libros</string>
<string name="show_series_number_in_title">Ostende seriem numerus in titulo</string>
<string name="graphics_scale">Graphics scale</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Peržiūros meniu</string>
<string name="cd_download_more_fonts">Atsisiųskite daugiau šriftų</string>
<string name="restore_search_query_when_the_application_starts">Atkurti paieškos užklausą paleidžiant</string>
<string name="lock_books_by_default">Užrakinti knygas pagal numatytuosius nustatymus</string>
<string name="hide_read_books">Slėpti perskaitytas knygas</string>
<string name="show_series_number_in_title">Pavadinime rodyti serijos numerį</string>
<string name="graphics_scale">Grafikos skalė</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">കാഴ്ച മെനു</string>
<string name="cd_download_more_fonts">കൂടുതൽ ഫോണ്ടുകൾ ഡൗൺലോഡ് ചെയ്യുക</string>
<string name="restore_search_query_when_the_application_starts">ആരംഭത്തിൽ തിരയൽ ചോദ്യം പുനഃസ്ഥാപിക്കുക</string>
<string name="lock_books_by_default">സ്ഥിരസ്ഥിതിയായി പുസ്തകങ്ങൾ ലോക്ക് ചെയ്യുക</string>
<string name="hide_read_books">വായിച്ച പുസ്തകങ്ങൾ മറയ്ക്കുക</string>
<string name="show_series_number_in_title">ശീർഷകത്തിൽ സീരീസ് നമ്പർ കാണിക്കുക</string>
<string name="graphics_scale">ഗ്രാഫിക്സ് സ്കെയിൽ</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Bekijk menu</string>
<string name="cd_download_more_fonts">Meer lettertypen downloaden</string>
<string name="restore_search_query_when_the_application_starts">Zoekopdracht herstellen bij opstarten</string>
<string name="lock_books_by_default">Boeken standaard vergrendelen</string>
<string name="hide_read_books">Verberg gelezen boeken</string>
<string name="show_series_number_in_title">Toon serienummer in titel</string>
<string name="graphics_scale">Grafische schaal</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Se menyen</string>
<string name="cd_download_more_fonts">Last ned flere fonter</string>
<string name="restore_search_query_when_the_application_starts">Gjenopprett søket ved oppstart</string>
<string name="lock_books_by_default">Lås bøker som standard</string>
<string name="hide_read_books">Gjemme lese bøker</string>
<string name="show_series_number_in_title">Vis serienummer i tittelen</string>
<string name="graphics_scale">Grafikk skala</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Zobacz menu</string>
<string name="cd_download_more_fonts">Pobierz więcej czcionek</string>
<string name="restore_search_query_when_the_application_starts">Przywróć zapytanie wyszukiwania przy starcie</string>
<string name="lock_books_by_default">Zablokuj książki domyślnie</string>
<string name="hide_read_books">Ukryj przeczytaj książki</string>
<string name="show_series_number_in_title">Pokaż numer serii w tytule</string>
<string name="graphics_scale">Skala grafiki</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Ver menu</string>
<string name="cd_download_more_fonts">Baixe mais fontes</string>
<string name="restore_search_query_when_the_application_starts">Restaurar busca ao iniciar o app</string>
<string name="lock_books_by_default">Bloquear livros por padrão</string>
<string name="hide_read_books">Ocultar livros lidos</string>
<string name="show_series_number_in_title">Mostrar o número da série no título</string>
<string name="graphics_scale">Escala gráfica</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Vizualiza meniul</string>
<string name="cd_download_more_fonts">Descărcați mai multe fonturi</string>
<string name="restore_search_query_when_the_application_starts">Restabiliți interogarea de căutare la pornire</string>
<string name="lock_books_by_default">Blochează cărțile în mod implicit</string>
<string name="hide_read_books">Ascunde cărțile citite</string>
<string name="show_series_number_in_title">Arata numarul seriei in titlu</string>
<string name="graphics_scale">Scara grafica</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Меню просмотра</string>
<string name="cd_download_more_fonts">Скачать больше шрифтов</string>
<string name="restore_search_query_when_the_application_starts">Восстанавливать поисковый запрос при запуске</string>
<string name="lock_books_by_default">Блокировать книги по умолчанию</string>
<string name="hide_read_books">Скрывать прочитанные книги</string>
<string name="show_series_number_in_title">Показывать номер серии в названии</string>
<string name="graphics_scale">Масштаб изображений</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">View menu</string>
<string name="cd_download_more_fonts">Download more fonts</string>
<string name="restore_search_query_when_the_application_starts">Restore search query at startup</string>
<string name="lock_books_by_default">Lock books by default</string>
<string name="hide_read_books">Hide read books</string>
<string name="show_series_number_in_title">Show series number in title</string>
<string name="graphics_scale">Graphics scale</string>

View File

@@ -45,7 +45,7 @@
<string name="crop_images_in_the_book_cover">Orezať obrázok obálky knihy</string>
<string name="borders_and_shadow_around_the_book_cover">Zobraziť okraje a tiene</string>
<string name="tabs_position">Karty</string>
<string name="show_preferences_tab_in_the_left_menu">Animovať vysunutie ponuky vľavo </string>
<string name="show_preferences_tab_in_the_left_menu">Animovať vysunutie ponuky vľavo</string>
<string name="visible">Zobrazené</string>
<string name="application_user_guide_">Používateľská príručka</string>
<string name="import_or_export_application_settings_to_json_file">Zálohovanie</string>
@@ -154,7 +154,7 @@
<string name="color">Farba</string>
<string name="horizontal">Horizontálne</string>
<string name="vertical">Vertikálne</string>
<string name="minutes">min.</string>
<string name="minutes">Min.</string>
<string name="close_book">Zavrieť knihu</string>
<string name="background">Pozadie</string>
<string name="dialog_color_picker">Výber farby</string>
@@ -641,6 +641,7 @@
<string name="cd_view_menu">Zobraziť ponuku</string>
<string name="cd_download_more_fonts">Stiahnuť ďalšie písma</string>
<string name="restore_search_query_when_the_application_starts">Obnoviť vyhľadávací dopyt pri spustení</string>
<string name="lock_books_by_default">Predvolene uzamknúť knihy</string>
<string name="hide_read_books">Skryť prečítané knihy</string>
<string name="show_series_number_in_title">V názve zobraziť číslo série</string>
<string name="graphics_scale">Mierka obrázkov</string>
@@ -665,4 +666,4 @@
<string name="allow_other_music_to_play">Povoliť prehrávanie inej hudby</string>
<string name="enable_image_scale">Povoliť mierku obrázkov</string>
<string name="open_books_on_page_1">Otvoriť knihy na strane 1</string>
</resources>
</resources>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Visa menyn</string>
<string name="cd_download_more_fonts">Ladda ner fler typsnitt</string>
<string name="restore_search_query_when_the_application_starts">Återställ sökfrågan vid start</string>
<string name="lock_books_by_default">Lås böcker som standard</string>
<string name="hide_read_books">Göm läsa böcker</string>
<string name="show_series_number_in_title">Visa serienummer i titeln</string>
<string name="graphics_scale">Grafisk skala</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Tazama menyu</string>
<string name="cd_download_more_fonts">Pakua fonti zaidi</string>
<string name="restore_search_query_when_the_application_starts">Rejesha hoja ya utafutaji wakati wa kuanza</string>
<string name="lock_books_by_default">Funga vitabu kwa chaguo-msingi</string>
<string name="hide_read_books">Ficha kusoma vitabu</string>
<string name="show_series_number_in_title">Onyesha nambari ya mfululizo katika kichwa</string>
<string name="graphics_scale">Graphics wadogo</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">பார்வை மெனு</string>
<string name="cd_download_more_fonts">மேலும் எழுத்துருக்களைப் பதிவிறக்கவும்</string>
<string name="restore_search_query_when_the_application_starts">தொடக்கத்தில் தேடல் வினவலை மீட்டமை</string>
<string name="lock_books_by_default">முன்னிருப்பாக புத்தகங்களைப் பூட்டு.</string>
<string name="hide_read_books">படித்த புத்தகங்களை மறைக்கவும்</string>
<string name="show_series_number_in_title">தலைப்பில் தொடர் எண்ணைக் காட்டு</string>
<string name="graphics_scale">கிராபிக்ஸ் அளவுகோல்</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">ดูเมนู</string>
<string name="cd_download_more_fonts">ดาวน์โหลดแบบอักษรเพิ่มเติม</string>
<string name="restore_search_query_when_the_application_starts">กู้คืนคำค้นหาเมื่อเริ่มต้น</string>
<string name="lock_books_by_default">ล็อคหนังสือตามค่าเริ่มต้น</string>
<string name="hide_read_books">ซ่อนอ่านหนังสือ</string>
<string name="show_series_number_in_title">แสดงหมายเลขซีรีส์ในชื่อเรื่อง</string>
<string name="graphics_scale">สเกลกราฟิก</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Menüyü görüntüle</string>
<string name="cd_download_more_fonts">Daha fazla yazı tipi indir</string>
<string name="restore_search_query_when_the_application_starts">Başlangıçta arama sorgusunu geri yükle</string>
<string name="lock_books_by_default">Kitapları varsayılan olarak kilitle</string>
<string name="hide_read_books">Okunan kitapları gizle</string>
<string name="show_series_number_in_title">Başlıkta seri numarasını göster</string>
<string name="graphics_scale">Grafik ölçeği</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Меню перегляду</string>
<string name="cd_download_more_fonts">Завантажити більше шрифтів</string>
<string name="restore_search_query_when_the_application_starts">Відновити пошуковий запит під час запуску</string>
<string name="lock_books_by_default">Блокувати книги за замовчуванням</string>
<string name="hide_read_books">Сховати прочитані книги</string>
<string name="show_series_number_in_title">Показувати номер серії в назві</string>
<string name="graphics_scale">Масштаб графіки</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">Xem menu</string>
<string name="cd_download_more_fonts">Tải thêm phông chữ</string>
<string name="restore_search_query_when_the_application_starts">Khôi phục truy vấn tìm kiếm khi khởi động</string>
<string name="lock_books_by_default">Khóa sách theo mặc định</string>
<string name="hide_read_books">Giấu những cuốn sách đã đọc</string>
<string name="show_series_number_in_title">Hiển thị số sê-ri trong tiêu đề</string>
<string name="graphics_scale">Quy mô đồ họa</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">查看菜单</string>
<string name="cd_download_more_fonts">下载更多字体</string>
<string name="restore_search_query_when_the_application_starts">记住上次的搜索</string>
<string name="lock_books_by_default">默认锁定书籍</string>
<string name="hide_read_books">隐藏读完的书</string>
<string name="show_series_number_in_title">在标题中显示丛书号</string>
<string name="graphics_scale">图片缩放比例</string>

View File

@@ -641,6 +641,7 @@
<string name="cd_view_menu">查看菜單</string>
<string name="cd_download_more_fonts">下載更多字體</string>
<string name="restore_search_query_when_the_application_starts">在啟動時恢復搜索查詢</string>
<string name="lock_books_by_default">預設鎖定書籍</string>
<string name="hide_read_books">隱藏讀過的書</string>
<string name="show_series_number_in_title">在標題中顯示系列號</string>
<string name="graphics_scale">圖形比例</string>

View File

@@ -122,6 +122,7 @@ dependencies {
// Kotlin Coroutines
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2")
implementation("androidx.documentfile:documentfile:1.1.0")

View File

@@ -6,6 +6,13 @@
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

View File

@@ -16,6 +16,7 @@ import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import mobi.librera.appcompose.bookgrid.BookGridViewModel
import mobi.librera.appcompose.media.DirectoryPickerScreen
import mobi.librera.appcompose.ui.theme.LibreraTheme
import org.koin.androidx.compose.koinViewModel
@@ -41,7 +42,8 @@ class MainActivity : ComponentActivity() {
.fillMaxSize()
.padding(innerPadding)
) {
NavigationRoot()
//NavigationRoot()
DirectoryPickerScreen()
}
}

View File

@@ -1,22 +1,30 @@
package mobi.librera.appcompose.bookgrid
import android.Manifest
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Environment
import android.provider.DocumentsContract
import android.widget.Toast
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.material3.Button
import androidx.compose.material3.Card
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.res.stringResource
import mobi.librera.appcompose.R
import mobi.librera.appcompose.components.BookGrid
import androidx.compose.ui.platform.LocalContext
import androidx.core.app.ActivityCompat.startActivityForResult
import androidx.core.content.ContextCompat
import mobi.librera.appcompose.components.BookSearchBar
import mobi.librera.lib.gdrive.GoogleDriveBrowserScreen
import mobi.librera.lib.gdrive.GoogleSignInScreen
import mobi.librera.appcompose.media.fetchAllDownloadFiles
@Composable
fun BookGridScreen(
@@ -41,8 +49,8 @@ fun BookGridScreen(
if (!isManageStorageGranted) {
ManageStoragePermissionScreen(launcher)
} else {
GoogleSignInScreen(stringResource(R.string.default_web_client_id))
GoogleDriveBrowserScreen()
//GoogleSignInScreen(stringResource(R.string.default_web_client_id))
//GoogleDriveBrowserScreen()
// SelectedBooksBar(
// dataModel, false,
@@ -50,13 +58,66 @@ fun BookGridScreen(
// onHomeClick = onHomeClick
// )
val books by dataModel.getAllBooks.collectAsState()
val context = LocalContext.current
var list by remember { mutableStateOf(fetchAllDownloadFiles(context)) }
BookGrid(
dataModel,
books, dataModel.listGridStates,
onStarClicked = { dataModel.updateStar(it, !it.isSelected) },
onBookClicked = { onOpenBook(it.path) })
val requestPermissionLauncher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.RequestPermission()
) { isGranted: Boolean ->
if (isGranted) {
list = fetchAllDownloadFiles(context)
} else {
}
}
fun openDirectory(pickerInitialUri: Uri) {
// Choose a directory using the system's file picker.
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).apply {
// Optionally, specify a URI for the directory that should be opened in
// the system file picker when it loads.
putExtra(DocumentsContract.EXTRA_INITIAL_URI, pickerInitialUri)
}
}
Button(onClick = {
//requestPermissionLauncher.launch(Manifest.permission.READ_EXTERNAL_STORAGE)
if (ContextCompat.checkSelfPermission(
context,
Manifest.permission.READ_EXTERNAL_STORAGE
) == PackageManager.PERMISSION_GRANTED
) {
// Permission already granted
Toast.makeText(context, "Permission Already Granted", Toast.LENGTH_SHORT).show()
} else {
// Request permission
requestPermissionLauncher.launch(Manifest.permission.READ_EXTERNAL_STORAGE)
}
}) {
Text("add permission")
}
LazyColumn {
items(list.size) { id ->
val item = list[id]
Card { Text(item.name) }
}
}
// val books by dataModel.getAllBooks.collectAsState()
//
// BookGrid(
// dataModel,
// books, dataModel.listGridStates,
// onStarClicked = { dataModel.updateStar(it, !it.isSelected) },
// onBookClicked = { onOpenBook(it.path) })
}
}
}

View File

@@ -0,0 +1,124 @@
package mobi.librera.appcompose.media
import android.content.Intent
import android.net.Uri
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material3.Button
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp
import androidx.documentfile.provider.DocumentFile
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun DirectoryPickerScreen() {
// This state will hold the URI of the selected directory
var directoryUri by remember { mutableStateOf<Uri?>(null) }
// This state will hold the list of file names in the selected directory
var fileList by remember { mutableStateOf<List<String>>(emptyList()) }
val context = LocalContext.current
// Set up the activity result launcher for opening a document tree
val openDocumentTreeLauncher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.OpenDocumentTree(),
onResult = { uri ->
// The result is the URI of the picked directory
directoryUri = uri
uri?.let {
// **Crucial Step**: Take persistent permission to access the directory
val contentResolver = context.contentResolver
val takeFlags: Int = Intent.FLAG_GRANT_READ_URI_PERMISSION or
Intent.FLAG_GRANT_WRITE_URI_PERMISSION
contentResolver.takePersistableUriPermission(it, takeFlags)
}
}
)
// When the directoryUri state changes, this effect will re-run
LaunchedEffect(directoryUri) {
fileList = emptyList() // Clear previous list
directoryUri?.let { uri ->
// Use DocumentFile to easily list files
val directory = DocumentFile.fromTreeUri(context, uri)
directory?.listFiles()?.let { files ->
// Update the file list state, triggering a recomposition
fileList = files.mapNotNull { it.name }
}
}
}
Scaffold(
topBar = { TopAppBar(title = { Text("📁 Directory Picker") }) }
) { paddingValues ->
Column(
modifier = Modifier
.fillMaxSize()
.padding(paddingValues)
.padding(16.dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
Button(onClick = {
// Launch the directory picker
openDocumentTreeLauncher.launch(null)
}) {
Text("Select Directory")
}
Spacer(modifier = Modifier.height(24.dp))
// Display the selected directory's path
if (directoryUri != null) {
Text(
text = "Selected Path:",
style = MaterialTheme.typography.titleMedium
)
Text(
text = directoryUri?.path ?: "N/A",
style = MaterialTheme.typography.bodySmall
)
} else {
Text("No directory selected.")
}
Spacer(modifier = Modifier.padding(vertical = 16.dp))
// Display the list of files in the selected directory
if (fileList.isNotEmpty()) {
Text(
"Files in Directory:",
style = MaterialTheme.typography.titleMedium,
modifier = Modifier.align(Alignment.Start)
)
LazyColumn(modifier = Modifier.fillMaxWidth()) {
items(fileList) { fileName ->
Text(fileName, modifier = Modifier.padding(vertical = 4.dp))
}
}
}
}
}
}

View File

@@ -0,0 +1,83 @@
package mobi.librera.appcompose.media
import android.content.ContentUris
import android.content.Context
import android.net.Uri
import android.provider.MediaStore
import android.util.Log
import java.util.Date
data class DownloadFile(
val uri: Uri,
val name: String,
val size: Long,
val dateModified: Date
)
fun fetchAllDownloadFiles(context: Context): List<DownloadFile> {
Log.d("QueryDownloads", "Starting to query download files...")
val downloadFiles = mutableListOf<DownloadFile>()
// The columns to retrieve
val projection = arrayOf(
MediaStore.Downloads._ID,
MediaStore.Downloads.DISPLAY_NAME,
MediaStore.Downloads.SIZE,
MediaStore.Downloads.DATE_MODIFIED
)
// The query criteria (no specific selection, so we get all files)
val selection = null
val selectionArgs = null
val sortOrder = "${MediaStore.Downloads.DATE_MODIFIED} DESC" // Newest files first
// Execute the query
context.contentResolver.query(
MediaStore.Downloads.EXTERNAL_CONTENT_URI,
projection,
selection,
selectionArgs,
sortOrder
)?.use { cursor -> // '.use' ensures the cursor is closed automatically
// Get column indices
val idColumn = cursor.getColumnIndexOrThrow(MediaStore.Downloads._ID)
val nameColumn = cursor.getColumnIndexOrThrow(MediaStore.Downloads.DISPLAY_NAME)
val sizeColumn = cursor.getColumnIndexOrThrow(MediaStore.Downloads.SIZE)
val dateModifiedColumn = cursor.getColumnIndexOrThrow(MediaStore.Downloads.DATE_MODIFIED)
Log.d("QueryDownloads", "Found ${cursor.count} files.")
while (cursor.moveToNext()) {
// Retrieve the data from the cursor
val id = cursor.getLong(idColumn)
val name = cursor.getString(nameColumn)
val size = cursor.getLong(sizeColumn)
// Date is stored in seconds, so multiply by 1000 to get milliseconds
val dateModified = Date(cursor.getLong(dateModifiedColumn) * 1000)
// The Content URI for a specific file
val contentUri: Uri = ContentUris.withAppendedId(
MediaStore.Downloads.EXTERNAL_CONTENT_URI,
id
)
// Add the file details to our list
downloadFiles.add(DownloadFile(contentUri, name, size, dateModified))
}
}
// Now you have the list of files. You can display it in a RecyclerView, etc.
if (downloadFiles.isEmpty()) {
Log.d("QueryDownloads", "No files found in the Downloads directory.")
} else {
downloadFiles.forEach { file ->
Log.d(
"QueryDownloads",
"File: ${file.name}, Size: ${file.size} bytes, URI: ${file.uri}"
)
}
}
return downloadFiles
}