mirror of
https://github.com/foobnix/LibreraReader.git
synced 2025-10-06 00:02:43 +02:00
update app
This commit is contained in:
@@ -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) {
|
||||
}
|
||||
|
||||
|
@@ -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"
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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")
|
||||
|
||||
|
||||
|
||||
|
@@ -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" />
|
||||
|
||||
|
@@ -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()
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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) })
|
||||
}
|
||||
}
|
||||
}
|
@@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -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
|
||||
}
|
Reference in New Issue
Block a user