mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-09 15:27:55 -04:00
Merge remote-tracking branch 'origin/master'
* origin/master: Reformat project Remove html-inverting js Organize files in packages The actionbar title is now clickable Added persistent fullscreen Added persistent fullscreen Add 'sc' and 'lki' UI languages Update of the UI translations Update meta data of custom Android apps Add VAR HTTP-HEADER if necessary Make the app movable to the sd card Update UI translations Windows FSJ-Lite ZIM file splitter is not available anymore, replace it in the help with 'JS-SplitD' Beautify bookmark XML file Fix selection color problem with library buttons Revised the instructions for OS X Bump up Android version
This commit is contained in:
commit
6e60db2b6f
@ -1,8 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.kiwix.kiwixmobile"
|
||||
<<<<<<< HEAD
|
||||
android:versionCode="26"
|
||||
android:versionName="1.96">
|
||||
=======
|
||||
android:versionCode="27"
|
||||
android:versionName="1.97">
|
||||
>>>>>>> origin/master
|
||||
|
||||
<supports-screens
|
||||
android:anyDensity="true"
|
||||
|
@ -1,20 +0,0 @@
|
||||
(function() {
|
||||
var e = 'img {-webkit-filter: invert(100%);' + '-moz-filter: invert(100%);' + '-o-filter: invert(100%);' + '-ms-filter: invert(100%); }',
|
||||
t = document.getElementsByTagName('head')[0],
|
||||
n = document.createElement('style');
|
||||
if (!window.counter) {
|
||||
window.counter = 1
|
||||
} else {
|
||||
window.counter++;
|
||||
if (window.counter % 2 == 0) {
|
||||
var e = 'html {-webkit-filter: invert(0%); -moz-filter: invert(0%); -o-filter: invert(0%); -ms-filter: invert(0%); }'
|
||||
}
|
||||
}
|
||||
n.type = 'text/css';
|
||||
if (n.styleSheet) {
|
||||
n.styleSheet.cssText = e
|
||||
} else {
|
||||
n.appendChild(document.createTextNode(e))
|
||||
}
|
||||
t.appendChild(n)
|
||||
})();
|
@ -1,9 +1,10 @@
|
||||
{
|
||||
"app_name": "WikiMed",
|
||||
"app_name": "Medical Wikipedia",
|
||||
"package": "org.kiwix.kiwixcustomwikimed",
|
||||
"version_name": "2015-07",
|
||||
"version_code": "3",
|
||||
"version_name": "2015-12",
|
||||
"version_code": "4",
|
||||
"zim_file": "customapp/wikimed/content.zim",
|
||||
"embed_zim": false,
|
||||
"ic_launcher": "customapp/wikimed/icon.png",
|
||||
"enforced_lang": "en"
|
||||
}
|
||||
|
@ -29,8 +29,8 @@
|
||||
"defaultLanguage": "en-US"
|
||||
}
|
||||
},
|
||||
"version_code": "5",
|
||||
"version_code": "6",
|
||||
"embed_zim": false,
|
||||
"enforced_lang": "en",
|
||||
"version_name": "2015-07"
|
||||
"version_name": "2015-10"
|
||||
}
|
||||
|
@ -321,7 +321,7 @@ def step_update_xml_nodes(jsdata, **options):
|
||||
'preferences.xml')
|
||||
soup = soup = BeautifulSoup(open(preferences_xml, 'r'),
|
||||
'xml', from_encoding='utf-8')
|
||||
item = soup.find('org.kiwix.kiwixmobile.settings.SliderPreference')
|
||||
item = soup.find('org.kiwix.kiwixmobile.views.SliderPreference')
|
||||
item.name = '{}.settings.SliderPreference'.format(jsdata.get('package'))
|
||||
flushxml(soup, 'PreferenceScreen', preferences_xml, head=False)
|
||||
|
||||
@ -329,7 +329,7 @@ def step_update_xml_nodes(jsdata, **options):
|
||||
toolbar_xml = os.path.join(ANDROID_PATH, 'res', 'layout', 'toolbar.xml')
|
||||
soup = soup = BeautifulSoup(open(toolbar_xml, 'r'),
|
||||
'xml', from_encoding='utf-8')
|
||||
item = soup.find('org.kiwix.kiwixmobile.AnimatedProgressBar')
|
||||
item = soup.find('org.kiwix.kiwixmobile.views.AnimatedProgressBar')
|
||||
item.name = '{}.AnimatedProgressBar'.format(jsdata.get('package'))
|
||||
flushxml(soup, 'RelativeLayout', toolbar_xml, head=False)
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
|
||||
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
|
||||
|
||||
<org.kiwix.kiwixmobile.AnimatedProgressBar
|
||||
<org.kiwix.kiwixmobile.views.AnimatedProgressBar
|
||||
android:id="@+id/progress_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="3dp"
|
||||
|
@ -66,7 +66,7 @@
|
||||
utilisant l'un de ces logiciels:</p>
|
||||
<ul>
|
||||
<li> Pour Microsoft Windows: <a rel="nofollow" class="external text"
|
||||
href="http://www.jaist.ac.jp/~hoangle/filesj/">FSJ-Lite</a>
|
||||
href="http://www.hjsplit.org/">HJ-Split</a>
|
||||
</li>
|
||||
<li> Pour Apple Mac OSX: <a rel="nofollow" class="external text"
|
||||
href="http://loekjehe.home.xs4all.nl/Split&Concat/">Split&Concat</a>
|
||||
|
@ -51,7 +51,7 @@
|
||||
<p>In this case, please split it using one of the following software:</p>
|
||||
<ul>
|
||||
<li> On Microsoft Windows: <a rel="nofollow" class="external text"
|
||||
href="http://www.jaist.ac.jp/~hoangle/filesj/">FSJ-Lite</a>
|
||||
href="http://www.hjsplit.org/">HJ-Split</a>
|
||||
</li>
|
||||
<li> On Apple Mac OSX: <a rel="nofollow" class="external text"
|
||||
href="http://loekjehe.home.xs4all.nl/Split&Concat/">Split&Concat</a>
|
||||
|
@ -12,8 +12,8 @@
|
||||
<string name="menu_randomarticle">Erthygl ar hap</string>
|
||||
<string name="menu_fullscreen">Sgrin lawn</string>
|
||||
<string name="menu_exitfullscreen">Gadael modd sgrin-llawn</string>
|
||||
<string name="menu_read_aloud">Read aloud</string>
|
||||
<string name="menu_read_aloud_stop">Stop reading aloud</string>
|
||||
<string name="menu_read_aloud">Darllenwch yn uchel</string>
|
||||
<string name="menu_read_aloud_stop">Stopiwch ddarllen yn uchel</string>
|
||||
<string name="menu_rescan_fs">Rescan SD card</string>
|
||||
<string name="save_media">Cadw\'r cyfrwng fel...</string>
|
||||
<string name="save_media_error">Gwall wrth geisio achub y cyfryngau!</string>
|
||||
|
@ -12,28 +12,28 @@
|
||||
<string name="menu_randomarticle">Τυχαίο άρθρο</string>
|
||||
<string name="menu_fullscreen">Πλήρης οθόνη</string>
|
||||
<string name="menu_exitfullscreen">Έξοδος από πλήρη οθόνη</string>
|
||||
<string name="menu_read_aloud">Read aloud</string>
|
||||
<string name="menu_read_aloud_stop">Stop reading aloud</string>
|
||||
<string name="menu_read_aloud">Διάβασε δυνατά</string>
|
||||
<string name="menu_read_aloud_stop">Σταμάτα να διαβάζεις δυνατά</string>
|
||||
<string name="menu_rescan_fs">Rescan SD card</string>
|
||||
<string name="save_media">Save Media</string>
|
||||
<string name="save_media_error">An error occurred when trying to save the media!</string>
|
||||
<string name="save_media_saved">Saved media as %s in your Pictures folder.</string>
|
||||
<string name="rescan_fs_warning">Scanning for ZIM files, please wait…</string>
|
||||
<string name="save_media">Αποθήκευση αρχείου πολυμέσου ως...</string>
|
||||
<string name="save_media_error">Προέκυψε σφάλμα κατά την προσπάθεια αποθήκευσης του αρχείου πολυμέσων!</string>
|
||||
<string name="save_media_saved">Αποθήκευση αρχείων πολυμέσων ως το %1$s στο φάκελο Εικόνες</string>
|
||||
<string name="rescan_fs_warning">Σάρωση για αρχεία ZIM, παρακαλώ περιμένετε...</string>
|
||||
<string name="button_backtotop">Επιστροφή στην κορυφή</string>
|
||||
<string name="search_label">Αναζήτηση</string>
|
||||
<string name="articlesearch_hint">Type to lookup articles</string>
|
||||
<string name="choose_file">Select a ZIM Content File (*.zim)</string>
|
||||
<string name="articlesearch_hint">Πληκτρολόγηση για αναζήτηση λημμάτων</string>
|
||||
<string name="choose_file">Επιλογή ZIM Content File (*.zim)</string>
|
||||
<string name="add_bookmark">Σημειώστε αυτή τη σελίδα</string>
|
||||
<string name="remove_bookmark">Κατάργηση σήμανσης επιλεγμένο</string>
|
||||
<string name="open_in_new_tab">Open link in new tab?</string>
|
||||
<string name="error_nozimfilesfound">No ZIM files found on your device.\nTake a look at the Help Page to get directions on how to load content into Kiwix.\nIf you did put a ZIM file on your device/external storage, you might retry in a minute or restart your device.</string>
|
||||
<string name="error_filenotfound">Error: The selected ZIM file could not be found.</string>
|
||||
<string name="error_fileinvalid">Error: The selected file is not a valid ZIM file.</string>
|
||||
<string name="error_articlenotfound">Error: Loading article \"%1$s\" failed.</string>
|
||||
<string name="error_articleurlnotfound">Error: Loading article (Url: %1$s) failed.</string>
|
||||
<string name="open_in_new_tab">Άνοιγμα συνδέσμου σε νέα καρτέλα;</string>
|
||||
<string name="error_nozimfilesfound">Δεν βρέθηκαν αρχεία ZIM στη συσκευή σας. Ρίξτε μια ματιά στη Σελίδα Βοήθειας για να λάβετε οδηγίες σχετικά με το πως να επιφορτώσετε περιεχόμενο στο Kiwix. \nΑν έβαλες ένα αρχείο ZIM στη συσκευή σου/μέσο εξωτερικής αποθήκευσης, μπορεί να ξαναδοκιμάσεις σε ένα λεπτό ή να επανεκκινήσεις τη συσκευή σου.</string>
|
||||
<string name="error_filenotfound">Σφάλμα: Το επιλεγμένο ZIM αρχείο δεν μπόρεσε να βρεθεί.</string>
|
||||
<string name="error_fileinvalid">Σφάλμα: Το επιλεγμένο αρχείο δεν είναι έγκυρο αρχείο ZIM.</string>
|
||||
<string name="error_articlenotfound">Σφάλμα: το ανέβασμα λήμματος \"%1$s\" απέτυχε.</string>
|
||||
<string name="error_articleurlnotfound">Σφάλμα:το Ανέβασμα του λήμματος (Url: %1$s) απέτυχε.</string>
|
||||
<string name="pref_display_title">Εμφάνιση</string>
|
||||
<string name="pref_zoom_sub_title">Zoom</string>
|
||||
<string name="pref_zoom_dialog">Zoom level</string>
|
||||
<string name="pref_zoom_dialog">Το επίπεδο ζουμ</string>
|
||||
<string-array name="pref_zoom_entries">
|
||||
<item name="pref_zoom_entry_automatic">Αυτόματη</item>
|
||||
<item name="pref_zoom_entry_small">Μικρό</item>
|
||||
@ -42,13 +42,13 @@
|
||||
</string-array>
|
||||
<string name="pref_info_title">Πληροφορίες</string>
|
||||
<string name="pref_info_version">Έκδοση</string>
|
||||
<string name="pref_zoom_enable">Zoom controls</string>
|
||||
<string name="pref_nightmode">Night mode</string>
|
||||
<string name="pref_nightmode_summary">Show articles with reverted colors</string>
|
||||
<string name="pref_backtotop">Back to Top</string>
|
||||
<string name="pref_backtotop_summary">Display a button at the end of the page to scroll up to the top</string>
|
||||
<string name="pref_zoom_enable">Στοιχεία ελέγχου ζουμ</string>
|
||||
<string name="pref_nightmode">Νυχτερινή λειτουργία</string>
|
||||
<string name="pref_nightmode_summary">Προβολή λημμάτων και αντεστραμμένα χρώματα</string>
|
||||
<string name="pref_backtotop">Επιστροφή στην κορυφή</string>
|
||||
<string name="pref_backtotop_summary">Εμφάνιση κουμπιού στο τέλος της σελίδας για να μετακινηθείτε στην κορυφή</string>
|
||||
<string name="pref_language_title">Γλώσσα</string>
|
||||
<string name="pref_language_chooser">Choose a language</string>
|
||||
<string name="pref_language_chooser">Επιλογή γλώσσας</string>
|
||||
<string name="tts_lang_not_supported">The language of this page is not supported, or appropriate language data was not installed. The article may not be properly read.</string>
|
||||
<string name="no_reader_application_installed">Could not find an installed application for this type of file</string>
|
||||
<string name="customapp_missing_content">Your application is corrupted.\nThis might happen when you remove files on the SD Card.\nYou need to uninstall then reinstall the App from the Play Store.</string>
|
||||
|
@ -15,7 +15,7 @@
|
||||
<string name="menu_read_aloud">Voorlezen</string>
|
||||
<string name="menu_read_aloud_stop">Stoppen met voorlezen</string>
|
||||
<string name="menu_rescan_fs">Rescan SD card</string>
|
||||
<string name="save_media">Sla media op als...</string>
|
||||
<string name="save_media">Media opslaan als...</string>
|
||||
<string name="save_media_error">Er is een fout opgetreden bij het opslaan van de media!</string>
|
||||
<string name="save_media_saved">Het bestand is opgeslagen als %1$s in uw afbeeldingenmap</string>
|
||||
<string name="rescan_fs_warning">Zoeken naar ZIM-bestanden. Even geduld...</string>
|
||||
|
@ -18,18 +18,18 @@
|
||||
<string name="save_media">رسنۍ ساتل لکه...</string>
|
||||
<string name="save_media_error">د رسنۍ په ساتلو کې يوه تېروتنه رامنځ ته شوه!</string>
|
||||
<string name="save_media_saved">رسنۍ خپل د انځورونو په ټولگه کې د %1$s په نوم ساتل</string>
|
||||
<string name="rescan_fs_warning">د ZIM دوتنو لپاره ځيرڅارنه، لطفاً تم شۍ...</string>
|
||||
<string name="rescan_fs_warning">د ZIM دوتنو لپاره ځيرڅارنه، لطفاً تم شئ...</string>
|
||||
<string name="button_backtotop">بېرته سر ته</string>
|
||||
<string name="search_label">پلټل</string>
|
||||
<string name="articlesearch_hint">د ليکنو موندلو لپاره وټاپۍ</string>
|
||||
<string name="articlesearch_hint">د ليکنو موندلو لپاره وټاپئ</string>
|
||||
<string name="choose_file">د ZIM مېنځپانگې يوه دوتنه ټاکل (*.zim)</string>
|
||||
<string name="add_bookmark">دا مخ په نخښه کول</string>
|
||||
<string name="remove_bookmark">ټاکلي بې نخښې کول</string>
|
||||
<string name="open_in_new_tab">تړنه په نوې کړکۍ کې پرانيستل</string>
|
||||
<string name="error_nozimfilesfound">ستاسې په وزلې هېڅ کومه ZIM دوتنه و نه موندل شوه.\nکيويکس کې د مېنځپانگې د برسېرولو لپاره د لارښود مخ ولولۍ.\nکه تاسې په خپلې وزلې کې يو ZIM دوتنه نه وي ايښې، نو تاسې کولی شی چې يوه دقيقه وروسته يې بيا وآزمويۍ او يا هم خپله وزله سر له نوي ولگوۍ او بيا هڅه وکړۍ.</string>
|
||||
<string name="error_nozimfilesfound">ستاسې په وزلې هېڅ کومه ZIM دوتنه و نه موندل شوه.\nکيويکس کې د مېنځپانگې د برسېرولو لپاره د لارښود مخ ولولئ.\nکه تاسې په خپلې وزلې کې يو ZIM دوتنه نه وي ايښې، نو تاسې کولی شی چې يوه دقيقه وروسته يې بيا وآزمويئ او يا هم خپله وزله سر له نوي ولگوئ او بيا هڅه وکړئ.</string>
|
||||
<string name="error_filenotfound">تېروتنه: ستاسې ټاکلې ZIM دوتنه و نه موندل شوه.</string>
|
||||
<string name="error_fileinvalid">تېروتنه: ستاسې ټاکلې دوتنه يوه کره ZIM دوتنه نه ده.</string>
|
||||
<string name="error_articlenotfound">تېروتنه: ليکنه برسېرېدنه \"%1$s\" نابريالۍ شوه.</string>
|
||||
<string name="error_articlenotfound">تېروتنه: ليکنه برسېرېدنه \"%1$s\" نابريالئ شوه.</string>
|
||||
<string name="error_articleurlnotfound">تېروتنه: ليکنه برسېرېدنه (يو آر ال: %1$s) نابريالئ شوه.</string>
|
||||
<string name="pref_display_title">ښکارېدنه</string>
|
||||
<string name="pref_zoom_sub_title">Zoom</string>
|
||||
|
56
res/values-sc/strings.xml
Normal file
56
res/values-sc/strings.xml
Normal file
@ -0,0 +1,56 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="menu_openfile">Aberi documentu...</string>
|
||||
<string name="menu_help">Agiudu</string>
|
||||
<string name="menu_home">Pàgina printzipale</string>
|
||||
<string name="menu_forward">In antis</string>
|
||||
<string name="menu_back">In segus</string>
|
||||
<string name="menu_settings">Preferèntzias</string>
|
||||
<string name="menu_search">Chirca</string>
|
||||
<string name="menu_searchintext">Agata in su testu</string>
|
||||
<string name="menu_bookmarks">Preferidos</string>
|
||||
<string name="menu_randomarticle">Artìculu a sa tzurpa</string>
|
||||
<string name="menu_fullscreen">Ischermu intreu</string>
|
||||
<string name="menu_exitfullscreen">Essi dae s\'ichermu intreu</string>
|
||||
<string name="menu_read_aloud">Leghe a boghe arta</string>
|
||||
<string name="menu_read_aloud_stop">Firma sa leghidura a boghe arta</string>
|
||||
<string name="menu_rescan_fs">Rescan SD card</string>
|
||||
<string name="save_media">Sarba mèdia comente...</string>
|
||||
<string name="save_media_error">B\'est istadu un\'errore durante su tentativu de sarbamentu de su mèdia!</string>
|
||||
<string name="save_media_saved">Mèdia sarbadu comente %1$s in sa cartella de sas immàgines tua</string>
|
||||
<string name="rescan_fs_warning">Iscansinde pro documentos ZIM, pro praghere iseta...</string>
|
||||
<string name="button_backtotop">Torra a su cumintzu</string>
|
||||
<string name="search_label">Chirca</string>
|
||||
<string name="articlesearch_hint">Iscrie pro chircare artìculos</string>
|
||||
<string name="choose_file">Ischerta unu documentu de cuntenutu ZIM (*.zim)</string>
|
||||
<string name="add_bookmark">Annanghe custa pàgina a sos preferidos</string>
|
||||
<string name="remove_bookmark">Boga custa pàgina dae sos preferidos</string>
|
||||
<string name="open_in_new_tab">Aberire su ligòngiu in un\'ischeda noa?</string>
|
||||
<string name="error_nozimfilesfound">Perunu documentu ZIM agatadu in su dispositivu tuo.\nLeghe sa pàgina de agiudu pro imparare a carrigare cuntenutu intre Kiwix.\nSi as postu unu documentu ZIM in su sa memòria de su dispositivu tuo o in un\'ischeda esterna, torra a proare a pustis de unu minutu o torra a allùere su dispositivu tuo.</string>
|
||||
<string name="error_filenotfound">Errore: su documentu ZIM ischertadu no est istadu agatadu.</string>
|
||||
<string name="error_fileinvalid">Errore: su documentu ischertadu no est unu documentu ZIM vàlidu.</string>
|
||||
<string name="error_articlenotfound">Errore: carrigamentu de s\'artìculu \"%1$s\" non resissidu.</string>
|
||||
<string name="error_articleurlnotfound">Errore: carrigamentu de s\'artìculu (Url: %1$s) non resissidu.</string>
|
||||
<string name="pref_display_title">Ischermu</string>
|
||||
<string name="pref_zoom_sub_title">Zoom</string>
|
||||
<string name="pref_zoom_dialog">Livellu de zoom</string>
|
||||
<string-array name="pref_zoom_entries">
|
||||
<item name="pref_zoom_entry_automatic">Automàticu</item>
|
||||
<item name="pref_zoom_entry_small">Minore</item>
|
||||
<item name="pref_zoom_entry_medium">Mesanu</item>
|
||||
<item name="pref_zoom_entry_large">Mannu</item>
|
||||
</string-array>
|
||||
<string name="pref_info_title">Informatziones</string>
|
||||
<string name="pref_info_version">Versione</string>
|
||||
<string name="pref_zoom_enable">Gestione de su zoom</string>
|
||||
<string name="pref_nightmode">Modalidade pro sa note</string>
|
||||
<string name="pref_nightmode_summary">Ammustra sos artìculos cun colores furriados</string>
|
||||
<string name="pref_backtotop">Torra a su cumintzu</string>
|
||||
<string name="pref_backtotop_summary">Ammustra unu butone a sa fine de sa pàgina pro torrare a su cumintzu</string>
|
||||
<string name="pref_language_title">Limba</string>
|
||||
<string name="pref_language_chooser">Issèbera una limba</string>
|
||||
<string name="tts_lang_not_supported">The language of this page is not supported, or appropriate language data was not installed. The article may not be properly read.</string>
|
||||
<string name="no_reader_application_installed">Could not find an installed application for this type of file</string>
|
||||
<string name="customapp_missing_content">Your application is corrupted.\nThis might happen when you remove files on the SD Card.\nYou need to uninstall then reinstall the App from the Play Store.</string>
|
||||
<string name="go_to_play_store">Go to Play Store</string>
|
||||
</resources>
|
@ -44,7 +44,7 @@
|
||||
<string name="pref_info_version">Nuqul</string>
|
||||
<string name="pref_zoom_enable">Weynayn hagista</string>
|
||||
<string name="pref_nightmode">Habka habeenkii</string>
|
||||
<string name="pref_nightmode_summary">Show articles with reverted colors</string>
|
||||
<string name="pref_nightmode_summary">Itus maqaalada iyagoo leh midab madadaalo ah</string>
|
||||
<string name="pref_backtotop">Ku laabo kor</string>
|
||||
<string name="pref_backtotop_summary">Itus batoonka dhammaadka bogga si kor loogu laabto</string>
|
||||
<string name="pref_language_title">Luqad</string>
|
||||
|
@ -28,7 +28,7 @@
|
||||
|
||||
android:defaultValue="false"/>
|
||||
|
||||
<org.kiwix.kiwixmobile.settings.SliderPreference
|
||||
<org.kiwix.kiwixmobile.views.SliderPreference
|
||||
android:key="pref_zoom_slider"
|
||||
android:title="@string/pref_zoom_dialog"
|
||||
android:summary="@array/pref_zoom_entryvalues"
|
||||
|
@ -9,7 +9,7 @@ import android.os.Bundle;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
|
||||
@SuppressLint("ValidFragment")
|
||||
public class BookmarkDialog extends DialogFragment {
|
||||
public class BookmarkDialogFragment extends DialogFragment {
|
||||
|
||||
private BookmarkDialogListener listen;
|
||||
|
||||
@ -17,7 +17,7 @@ public class BookmarkDialog extends DialogFragment {
|
||||
|
||||
private boolean isBookmarked;
|
||||
|
||||
public BookmarkDialog(String[] contents, boolean isBookmarked) {
|
||||
public BookmarkDialogFragment(String[] contents, boolean isBookmarked) {
|
||||
this.contents = contents;
|
||||
this.isBookmarked = isBookmarked;
|
||||
}
|
@ -70,6 +70,12 @@ import android.widget.Toast;
|
||||
|
||||
import org.kiwix.kiwixmobile.settings.Constants;
|
||||
import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity;
|
||||
import org.kiwix.kiwixmobile.utils.KiwixTextToSpeech;
|
||||
import org.kiwix.kiwixmobile.utils.LanguageUtils;
|
||||
import org.kiwix.kiwixmobile.utils.files.FileUtils;
|
||||
import org.kiwix.kiwixmobile.views.AnimatedProgressBar;
|
||||
import org.kiwix.kiwixmobile.views.CompatFindActionModeCallback;
|
||||
import org.kiwix.kiwixmobile.views.KiwixWebView;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
@ -83,9 +89,8 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
|
||||
public class KiwixMobileActivity extends AppCompatActivity
|
||||
implements BookmarkDialog.BookmarkDialogListener {
|
||||
implements BookmarkDialogFragment.BookmarkDialogListener {
|
||||
|
||||
|
||||
public static final String TAG_KIWIX = "kiwix";
|
||||
@ -108,6 +113,8 @@ public class KiwixMobileActivity extends AppCompatActivity
|
||||
|
||||
private static final String PREF_ZOOM_ENABLED = "pref_zoom_enabled";
|
||||
|
||||
private static final String PREF_FULLSCREEN = "pref_fullscreen";
|
||||
|
||||
private static final int REQUEST_FILE_SELECT = 1234;
|
||||
|
||||
private static final int REQUEST_PREFERENCES = 1235;
|
||||
@ -118,6 +125,8 @@ public class KiwixMobileActivity extends AppCompatActivity
|
||||
|
||||
public Menu menu;
|
||||
|
||||
public Toolbar toolbar;
|
||||
|
||||
public boolean isFullscreenOpened;
|
||||
|
||||
public ImageButton exitFullscreenButton;
|
||||
@ -201,7 +210,7 @@ public class KiwixMobileActivity extends AppCompatActivity
|
||||
setContentView(R.layout.main);
|
||||
getWindow().setFeatureInt(Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON);
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
bookmarks = new ArrayList<>();
|
||||
requestClearHistoryAfterLoad = false;
|
||||
@ -266,7 +275,6 @@ public class KiwixMobileActivity extends AppCompatActivity
|
||||
drawerToggle.syncState();
|
||||
|
||||
mCompatCallback = new CompatFindActionModeCallback(this);
|
||||
mIsFullscreenOpened = false;
|
||||
mContentFrame = (FrameLayout) findViewById(R.id.content_frame);
|
||||
newTab();
|
||||
|
||||
@ -455,25 +463,37 @@ public class KiwixMobileActivity extends AppCompatActivity
|
||||
|
||||
mToolbarContainer.setVisibility(View.GONE);
|
||||
exitFullscreenButton.setVisibility(View.VISIBLE);
|
||||
menu.findItem(R.id.menu_fullscreen)
|
||||
.setTitle(getResources().getString(R.string.menu_exitfullscreen));
|
||||
if (menu != null) {
|
||||
menu.findItem(R.id.menu_fullscreen)
|
||||
.setTitle(getResources().getString(R.string.menu_exitfullscreen));
|
||||
}
|
||||
int fullScreenFlag = WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
||||
int classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
|
||||
getWindow().addFlags(fullScreenFlag);
|
||||
getWindow().clearFlags(classicScreenFlag);
|
||||
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
SharedPreferences.Editor editor = settings.edit();
|
||||
editor.putBoolean(PREF_FULLSCREEN, true);
|
||||
editor.commit();
|
||||
mIsFullscreenOpened = true;
|
||||
}
|
||||
|
||||
private void closeFullScreen() {
|
||||
|
||||
mToolbarContainer.setVisibility(View.VISIBLE);
|
||||
menu.findItem(R.id.menu_fullscreen)
|
||||
.setTitle(getResources().getString(R.string.menu_fullscreen));
|
||||
if (menu != null) {
|
||||
menu.findItem(R.id.menu_fullscreen)
|
||||
.setTitle(getResources().getString(R.string.menu_fullscreen));
|
||||
}
|
||||
exitFullscreenButton.setVisibility(View.INVISIBLE);
|
||||
int fullScreenFlag = WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
||||
int classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
|
||||
getWindow().clearFlags(fullScreenFlag);
|
||||
getWindow().addFlags(classicScreenFlag);
|
||||
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
SharedPreferences.Editor editor = settings.edit();
|
||||
editor.putBoolean(PREF_FULLSCREEN, false);
|
||||
editor.commit();
|
||||
mIsFullscreenOpened = false;
|
||||
}
|
||||
|
||||
@ -610,6 +630,11 @@ public class KiwixMobileActivity extends AppCompatActivity
|
||||
menu.findItem(R.id.menu_randomarticle).setVisible(true);
|
||||
menu.findItem(R.id.menu_searchintext).setVisible(true);
|
||||
|
||||
if (mIsFullscreenOpened) {
|
||||
menu.findItem(R.id.menu_fullscreen)
|
||||
.setTitle(getResources().getString(R.string.menu_exitfullscreen));
|
||||
}
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.menu_search);
|
||||
searchItem.setVisible(true);
|
||||
searchItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||
@ -622,6 +647,15 @@ public class KiwixMobileActivity extends AppCompatActivity
|
||||
}
|
||||
});
|
||||
|
||||
toolbar.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent i = new Intent(KiwixMobileActivity.this, SearchActivity.class);
|
||||
startActivityForResult(i, REQUEST_FILE_SEARCH);
|
||||
overridePendingTransition(0, 0);
|
||||
}
|
||||
});
|
||||
|
||||
if (tts.isInitialized()) {
|
||||
menu.findItem(R.id.menu_read_aloud).setVisible(true);
|
||||
}
|
||||
@ -663,7 +697,7 @@ public class KiwixMobileActivity extends AppCompatActivity
|
||||
}
|
||||
|
||||
public void viewBookmarks() {
|
||||
new BookmarkDialog(bookmarks.toArray(new String[bookmarks.size()]),
|
||||
new BookmarkDialogFragment(bookmarks.toArray(new String[bookmarks.size()]),
|
||||
bookmarks.contains(getCurrentWebView().getTitle()))
|
||||
.show(getSupportFragmentManager(), "BookmarkDialog");
|
||||
}
|
||||
@ -913,6 +947,9 @@ public class KiwixMobileActivity extends AppCompatActivity
|
||||
if (requestInitAllMenuItems) {
|
||||
initAllMenuItems();
|
||||
}
|
||||
if (mIsFullscreenOpened) {
|
||||
openFullScreen();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -940,6 +977,7 @@ public class KiwixMobileActivity extends AppCompatActivity
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
boolean nightMode = sharedPreferences.getBoolean(PREF_NIGHTMODE, false);
|
||||
mIsBacktotopEnabled = sharedPreferences.getBoolean(PREF_BACKTOTOP, false);
|
||||
mIsFullscreenOpened = sharedPreferences.getBoolean(PREF_FULLSCREEN, false);
|
||||
boolean isZoomEnabled = sharedPreferences.getBoolean(PREF_ZOOM_ENABLED, false);
|
||||
|
||||
if (isZoomEnabled) {
|
||||
@ -953,12 +991,16 @@ public class KiwixMobileActivity extends AppCompatActivity
|
||||
mBackToTopButton.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
if (mIsFullscreenOpened) {
|
||||
openFullScreen();
|
||||
}
|
||||
|
||||
// Night mode status
|
||||
Log.d(TAG_KIWIX, "mNightMode value (" + nightMode + ")");
|
||||
if (nightMode) {
|
||||
getCurrentWebView().toggleNightMode();
|
||||
} else {
|
||||
getCurrentWebView().deactiviateNightMode();
|
||||
getCurrentWebView().deactivateNightMode();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,6 +13,7 @@ import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ListView;
|
||||
|
||||
import org.kiwix.kiwixmobile.views.AutoCompleteAdapter;
|
||||
|
||||
public class SearchActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
|
||||
|
||||
|
@ -29,6 +29,8 @@ import android.os.ParcelFileDescriptor.AutoCloseOutputStream;
|
||||
import android.util.Log;
|
||||
import android.webkit.MimeTypeMap;
|
||||
|
||||
import org.kiwix.kiwixmobile.utils.files.FileUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
@ -287,7 +289,7 @@ public class ZimContentProvider extends ContentProvider {
|
||||
|
||||
@Override
|
||||
public Cursor query(Uri url, String[] projection, String selection,
|
||||
String[] selectionArgs, String sort) {
|
||||
String[] selectionArgs, String sort) {
|
||||
throw new RuntimeException("Operation not supported");
|
||||
}
|
||||
|
||||
@ -298,7 +300,7 @@ public class ZimContentProvider extends ContentProvider {
|
||||
|
||||
@Override
|
||||
public int update(Uri uri, ContentValues values, String where,
|
||||
String[] whereArgs) {
|
||||
String[] whereArgs) {
|
||||
throw new RuntimeException("Operation not supported");
|
||||
}
|
||||
|
||||
|
@ -49,6 +49,10 @@ import android.widget.ListView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.kiwix.kiwixmobile.utils.LanguageUtils;
|
||||
import org.kiwix.kiwixmobile.utils.files.FileSearch;
|
||||
import org.kiwix.kiwixmobile.utils.files.FileWriter;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
@ -32,8 +32,9 @@ import android.support.v7.widget.Toolbar;
|
||||
import android.view.View;
|
||||
import android.widget.BaseAdapter;
|
||||
|
||||
import org.kiwix.kiwixmobile.LanguageUtils;
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
import org.kiwix.kiwixmobile.utils.LanguageUtils;
|
||||
import org.kiwix.kiwixmobile.views.SliderPreference;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
package org.kiwix.kiwixmobile;
|
||||
package org.kiwix.kiwixmobile.utils;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.Context;
|
||||
@ -10,6 +10,9 @@ import android.webkit.JavascriptInterface;
|
||||
import android.webkit.WebView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
import org.kiwix.kiwixmobile.ZimContentProvider;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
|
||||
@ -38,8 +41,8 @@ public class KiwixTextToSpeech {
|
||||
* ended
|
||||
*/
|
||||
public KiwixTextToSpeech(Context context, WebView webView,
|
||||
final OnInitSucceedListener onInitSucceedListener,
|
||||
final OnSpeakingListener onSpeakingListener) {
|
||||
final OnInitSucceedListener onInitSucceedListener,
|
||||
final OnSpeakingListener onSpeakingListener) {
|
||||
Log.d(TAG_KIWIX, "Initializing TextToSpeech");
|
||||
|
||||
this.context = context;
|
||||
@ -88,7 +91,7 @@ public class KiwixTextToSpeech {
|
||||
* Reads the currently selected text in the WebView.
|
||||
*/
|
||||
public void readSelection() {
|
||||
webView.loadUrl("javascript:tts.speakAloud(window.getSelection().toString());", null);
|
||||
webView.loadUrl("javascript:tts.speakAloud(window.getSelection().toString());", null);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -159,7 +162,7 @@ public class KiwixTextToSpeech {
|
||||
/**
|
||||
* The listener that is notified when speaking starts or stops (regardless of whether it was a
|
||||
* result of error, user, or because whole text was read).
|
||||
*
|
||||
* <p/>
|
||||
* Note that the methods of this interface may not be called from the UI thread.
|
||||
*/
|
||||
public interface OnSpeakingListener {
|
@ -17,7 +17,7 @@
|
||||
* MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
package org.kiwix.kiwixmobile;
|
||||
package org.kiwix.kiwixmobile.utils;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
@ -33,6 +33,8 @@ import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.kiwix.kiwixmobile.utils.files.FileWriter;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
@ -17,11 +17,13 @@
|
||||
* MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
package org.kiwix.kiwixmobile;
|
||||
package org.kiwix.kiwixmobile.utils.files;
|
||||
|
||||
import android.os.Environment;
|
||||
import android.util.Log;
|
||||
|
||||
import org.kiwix.kiwixmobile.DataModel;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FilenameFilter;
|
||||
import java.util.ArrayList;
|
||||
@ -141,7 +143,7 @@ public class FileSearch {
|
||||
|
||||
// Fill fileList with files found in the specific directory
|
||||
private void addFilesToFileList(String directory, FilenameFilter[] filter,
|
||||
List<String> fileList) {
|
||||
List<String> fileList) {
|
||||
Log.d(TAG_KIWIX, "Searching directory " + directory);
|
||||
File[] foundFiles = listFilesAsArray(new File(directory), filter, -1);
|
||||
for (File f : foundFiles) {
|
@ -1,12 +1,12 @@
|
||||
package org.kiwix.kiwixmobile;
|
||||
package org.kiwix.kiwixmobile.utils.files;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Environment;
|
||||
|
||||
import org.kiwix.kiwixmobile.settings.Constants;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Environment;
|
||||
|
||||
public class FileUtils {
|
||||
|
||||
public static File getFileCacheDir(Context context) {
|
@ -17,12 +17,14 @@
|
||||
* MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
package org.kiwix.kiwixmobile;
|
||||
package org.kiwix.kiwixmobile.utils.files;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.util.Log;
|
||||
|
||||
import org.kiwix.kiwixmobile.DataModel;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
@ -1,4 +1,4 @@
|
||||
package org.kiwix.kiwixmobile;
|
||||
package org.kiwix.kiwixmobile.views;
|
||||
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.content.Context;
|
||||
@ -15,6 +15,8 @@ import android.view.animation.DecelerateInterpolator;
|
||||
import android.view.animation.Transformation;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
|
||||
public class AnimatedProgressBar extends LinearLayout {
|
||||
|
||||
private final Paint mPaint = new Paint();
|
@ -1,14 +1,15 @@
|
||||
package org.kiwix.kiwixmobile;
|
||||
package org.kiwix.kiwixmobile.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Filter;
|
||||
import android.widget.Filterable;
|
||||
|
||||
import org.kiwix.kiwixmobile.ZimContentProvider;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class AutoCompleteAdapter extends ArrayAdapter<String> implements Filterable {
|
||||
|
||||
private List<String> mData;
|
@ -17,7 +17,7 @@
|
||||
* MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
package org.kiwix.kiwixmobile;
|
||||
package org.kiwix.kiwixmobile.views;
|
||||
|
||||
|
||||
import android.content.Context;
|
||||
@ -34,6 +34,8 @@ import android.view.inputmethod.InputMethodManager;
|
||||
import android.webkit.WebView;
|
||||
import android.widget.EditText;
|
||||
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class CompatFindActionModeCallback
|
@ -17,14 +17,13 @@
|
||||
* MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
package org.kiwix.kiwixmobile;
|
||||
package org.kiwix.kiwixmobile.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.ColorMatrixColorFilter;
|
||||
import android.graphics.Paint;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
@ -37,20 +36,22 @@ import android.view.View;
|
||||
import android.webkit.WebView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
|
||||
public class KiwixWebView extends WebView {
|
||||
|
||||
private static final String PREF_ZOOM = "pref_zoom_slider";
|
||||
|
||||
private static final String PREF_ZOOM_ENABLED = "pref_zoom_enabled";
|
||||
|
||||
private static final float[] mNegativeColorArray = {-1.0f, 0, 0, 0, 255, // red
|
||||
private static final float[] NIGHT_MODE_COLORS = {
|
||||
-1.0f, 0, 0, 0, 255, // red
|
||||
0, -1.0f, 0, 0, 255, // green
|
||||
0, 0, -1.0f, 0, 255, // blue
|
||||
0, 0, 0, 1.0f, 0 // alpha
|
||||
@ -139,34 +140,15 @@ public class KiwixWebView extends WebView {
|
||||
}
|
||||
}
|
||||
|
||||
public void deactiviateNightMode() {
|
||||
public void deactivateNightMode() {
|
||||
setLayerType(View.LAYER_TYPE_NONE, null);
|
||||
}
|
||||
|
||||
public void toggleNightMode() {
|
||||
|
||||
Paint paint = new Paint();
|
||||
ColorMatrixColorFilter filterInvert = new ColorMatrixColorFilter(mNegativeColorArray);
|
||||
ColorMatrixColorFilter filterInvert = new ColorMatrixColorFilter(NIGHT_MODE_COLORS);
|
||||
paint.setColorFilter(filterInvert);
|
||||
|
||||
setLayerType(View.LAYER_TYPE_HARDWARE, paint);
|
||||
try {
|
||||
InputStream stream = getContext().getAssets().open("invertcode.js");
|
||||
int size = stream.available();
|
||||
byte[] buffer = new byte[size];
|
||||
stream.read(buffer);
|
||||
stream.close();
|
||||
String JSInvert = new String(buffer);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
|
||||
evaluateJavascript("javascript:" + JSInvert, null);
|
||||
} else {
|
||||
//loadUrl("javascript:" + JSInvert);
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
@ -1,6 +1,4 @@
|
||||
package org.kiwix.kiwixmobile.settings;
|
||||
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
package org.kiwix.kiwixmobile.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
@ -10,6 +8,8 @@ import android.view.View;
|
||||
import android.widget.SeekBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
|
||||
public class SliderPreference extends DialogPreference {
|
||||
|
||||
protected final static int SEEKBAR_MAX = 500;
|
||||
@ -78,15 +78,6 @@ public class SliderPreference extends DialogPreference {
|
||||
}
|
||||
}
|
||||
|
||||
public void setSummary(CharSequence[] summaries) {
|
||||
mSummaries = summaries;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSummary(CharSequence summary) {
|
||||
super.setSummary(summary);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSummary(int summaryResId) {
|
||||
try {
|
||||
@ -97,6 +88,15 @@ public class SliderPreference extends DialogPreference {
|
||||
}
|
||||
}
|
||||
|
||||
public void setSummary(CharSequence[] summaries) {
|
||||
mSummaries = summaries;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSummary(CharSequence summary) {
|
||||
super.setSummary(summary);
|
||||
}
|
||||
|
||||
public float getValue() {
|
||||
return mSeekBarValue;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user