mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-09 23:40:26 -04:00
Desktop mode added
This commit is contained in:
parent
25a8508983
commit
1e99f8e2f9
@ -276,6 +276,15 @@ class KiwixReaderFragment : CoreReaderFragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onDesktopModeMenuClicked(isEnable: Boolean) {
|
||||||
|
getCurrentWebView()?.settings?.apply {
|
||||||
|
useWideViewPort = isEnable
|
||||||
|
}.also {
|
||||||
|
sharedPreferenceUtil?.isDesktopModeEnable = isEnable
|
||||||
|
mainMenu?.setDesktopModeEnable(!isEnable)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun openFullScreen() {
|
override fun openFullScreen() {
|
||||||
super.openFullScreen()
|
super.openFullScreen()
|
||||||
hideNavBar()
|
hideNavBar()
|
||||||
|
@ -827,7 +827,9 @@ abstract class CoreReaderFragment :
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun loadUrl(url: String?, webview: KiwixWebView) {
|
private fun loadUrl(url: String?, webview: KiwixWebView) {
|
||||||
if (url != null && !url.endsWith("null")) {
|
if (url?.endsWith("null") == false) {
|
||||||
|
webview.settings.useWideViewPort = sharedPreferenceUtil?.isDesktopModeEnable == true
|
||||||
|
mainMenu?.setDesktopModeEnable(sharedPreferenceUtil?.isDesktopModeEnable == false)
|
||||||
webview.loadUrl(url)
|
webview.loadUrl(url)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1472,6 +1474,7 @@ abstract class CoreReaderFragment :
|
|||||||
super<BaseFragment>.onCreateOptionsMenu(menu, inflater)
|
super<BaseFragment>.onCreateOptionsMenu(menu, inflater)
|
||||||
menu.clear()
|
menu.clear()
|
||||||
mainMenu = createMainMenu(menu)
|
mainMenu = createMainMenu(menu)
|
||||||
|
mainMenu?.setDesktopModeEnable(sharedPreferenceUtil?.isDesktopModeEnable == false)
|
||||||
}
|
}
|
||||||
|
|
||||||
protected open fun createMainMenu(menu: Menu?): MainMenu? =
|
protected open fun createMainMenu(menu: Menu?): MainMenu? =
|
||||||
|
@ -57,6 +57,7 @@ class MainMenu(
|
|||||||
fun onRandomArticleMenuClicked()
|
fun onRandomArticleMenuClicked()
|
||||||
fun onReadAloudMenuClicked()
|
fun onReadAloudMenuClicked()
|
||||||
fun onFullscreenMenuClicked()
|
fun onFullscreenMenuClicked()
|
||||||
|
fun onDesktopModeMenuClicked(isEnable: Boolean)
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
@ -71,6 +72,7 @@ class MainMenu(
|
|||||||
private val randomArticle = menu.findItem(R.id.menu_random_article)
|
private val randomArticle = menu.findItem(R.id.menu_random_article)
|
||||||
private val fullscreen = menu.findItem(R.id.menu_fullscreen)
|
private val fullscreen = menu.findItem(R.id.menu_fullscreen)
|
||||||
private var readAloud: MenuItem? = menu.findItem(R.id.menu_read_aloud)
|
private var readAloud: MenuItem? = menu.findItem(R.id.menu_read_aloud)
|
||||||
|
private var desktopMode: MenuItem? = menu.findItem(R.id.menu_desktop_mode)
|
||||||
private var isInTabSwitcher: Boolean = false
|
private var isInTabSwitcher: Boolean = false
|
||||||
|
|
||||||
init {
|
init {
|
||||||
@ -96,6 +98,7 @@ class MainMenu(
|
|||||||
randomArticle.menuItemClickListener { menuClickListener.onRandomArticleMenuClicked() }
|
randomArticle.menuItemClickListener { menuClickListener.onRandomArticleMenuClicked() }
|
||||||
readAloud.menuItemClickListener { menuClickListener.onReadAloudMenuClicked() }
|
readAloud.menuItemClickListener { menuClickListener.onReadAloudMenuClicked() }
|
||||||
fullscreen.menuItemClickListener { menuClickListener.onFullscreenMenuClicked() }
|
fullscreen.menuItemClickListener { menuClickListener.onFullscreenMenuClicked() }
|
||||||
|
desktopMode.menuItemClickListener { menuClickListener.onDesktopModeMenuClicked(it.isChecked) }
|
||||||
|
|
||||||
showWebViewOptions(urlIsValid)
|
showWebViewOptions(urlIsValid)
|
||||||
zimFileReader?.let {
|
zimFileReader?.let {
|
||||||
@ -114,27 +117,27 @@ class MainMenu(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun onFileOpened(urlIsValid: Boolean) {
|
fun onFileOpened(urlIsValid: Boolean) {
|
||||||
setVisibility(urlIsValid, randomArticle, search, readAloud, addNote, fullscreen)
|
setVisibility(urlIsValid, randomArticle, search, readAloud, addNote, fullscreen, desktopMode)
|
||||||
search.setOnMenuItemClickListener { navigateToSearch() }
|
search.setOnMenuItemClickListener { navigateToSearch() }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun hideBookSpecificMenuItems() {
|
fun hideBookSpecificMenuItems() {
|
||||||
setVisibility(false, search, tabSwitcher, randomArticle, addNote)
|
setVisibility(false, search, tabSwitcher, randomArticle, addNote, desktopMode)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun showBookSpecificMenuItems() {
|
fun showBookSpecificMenuItems() {
|
||||||
setVisibility(true, search, tabSwitcher, randomArticle, addNote)
|
setVisibility(true, search, tabSwitcher, randomArticle, addNote, desktopMode)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun showTabSwitcherOptions() {
|
fun showTabSwitcherOptions() {
|
||||||
isInTabSwitcher = true
|
isInTabSwitcher = true
|
||||||
setVisibility(false, randomArticle, readAloud, addNote, fullscreen)
|
setVisibility(false, randomArticle, readAloud, addNote, fullscreen, desktopMode)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun showWebViewOptions(urlIsValid: Boolean) {
|
fun showWebViewOptions(urlIsValid: Boolean) {
|
||||||
isInTabSwitcher = false
|
isInTabSwitcher = false
|
||||||
fullscreen.isVisible = true
|
fullscreen.isVisible = true
|
||||||
setVisibility(urlIsValid, randomArticle, search, readAloud, addNote)
|
setVisibility(urlIsValid, randomArticle, search, readAloud, addNote, desktopMode)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun updateTabIcon(tabs: Int) {
|
fun updateTabIcon(tabs: Int) {
|
||||||
@ -154,6 +157,10 @@ class MainMenu(
|
|||||||
readAloud?.setTitle(R.string.menu_read_aloud)
|
readAloud?.setTitle(R.string.menu_read_aloud)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setDesktopModeEnable(isEnable: Boolean) {
|
||||||
|
desktopMode?.isChecked = isEnable
|
||||||
|
}
|
||||||
|
|
||||||
private fun setVisibility(visibility: Boolean, vararg menuItems: MenuItem?) {
|
private fun setVisibility(visibility: Boolean, vararg menuItems: MenuItem?) {
|
||||||
menuItems.forEach { it?.isVisible = visibility }
|
menuItems.forEach { it?.isVisible = visibility }
|
||||||
}
|
}
|
||||||
|
@ -139,6 +139,12 @@ class SharedPreferenceUtil @Inject constructor(val context: Context) {
|
|||||||
|
|
||||||
fun setIntroShown() = sharedPreferences.edit { putBoolean(PREF_SHOW_INTRO, false) }
|
fun setIntroShown() = sharedPreferences.edit { putBoolean(PREF_SHOW_INTRO, false) }
|
||||||
|
|
||||||
|
var isDesktopModeEnable: Boolean
|
||||||
|
get() = sharedPreferences.getBoolean(PREF_DESKTOP_MODE_ENABLE, true)
|
||||||
|
set(isEnable) {
|
||||||
|
sharedPreferences.edit { putBoolean(PREF_DESKTOP_MODE_ENABLE, isEnable) }
|
||||||
|
}
|
||||||
|
|
||||||
var showHistoryAllBooks: Boolean
|
var showHistoryAllBooks: Boolean
|
||||||
get() = sharedPreferences.getBoolean(PREF_SHOW_HISTORY_ALL_BOOKS, true)
|
get() = sharedPreferences.getBoolean(PREF_SHOW_HISTORY_ALL_BOOKS, true)
|
||||||
set(prefShowHistoryAllBooks) {
|
set(prefShowHistoryAllBooks) {
|
||||||
@ -213,6 +219,7 @@ class SharedPreferenceUtil @Inject constructor(val context: Context) {
|
|||||||
const val PREF_WIFI_ONLY = "pref_wifi_only"
|
const val PREF_WIFI_ONLY = "pref_wifi_only"
|
||||||
const val PREF_KIWIX_MOBILE = "kiwix-mobile"
|
const val PREF_KIWIX_MOBILE = "kiwix-mobile"
|
||||||
const val PREF_SHOW_INTRO = "showIntro"
|
const val PREF_SHOW_INTRO = "showIntro"
|
||||||
|
const val PREF_DESKTOP_MODE_ENABLE = "desktop_mode_enable"
|
||||||
private const val PREF_BACK_TO_TOP = "pref_backtotop"
|
private const val PREF_BACK_TO_TOP = "pref_backtotop"
|
||||||
private const val PREF_FULLSCREEN = "pref_fullscreen"
|
private const val PREF_FULLSCREEN = "pref_fullscreen"
|
||||||
private const val PREF_NEW_TAB_BACKGROUND = "pref_newtab_background"
|
private const val PREF_NEW_TAB_BACKGROUND = "pref_newtab_background"
|
||||||
|
@ -46,4 +46,12 @@
|
|||||||
app:showAsAction="never"
|
app:showAsAction="never"
|
||||||
tools:visible="true" />
|
tools:visible="true" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/menu_desktop_mode"
|
||||||
|
android:title="@string/menu_desktop_mode"
|
||||||
|
android:visible="false"
|
||||||
|
android:checkable="true"
|
||||||
|
app:showAsAction="never"
|
||||||
|
tools:visible="true"/>
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
|
@ -323,4 +323,5 @@
|
|||||||
<string name="open_article">Open Article</string>
|
<string name="open_article">Open Article</string>
|
||||||
<string name="delete_note_dialog_message">Note: Notes are not deleted from your storage</string>
|
<string name="delete_note_dialog_message">Note: Notes are not deleted from your storage</string>
|
||||||
<string name="delete_selected_notes">Delete Selected Notes?</string>
|
<string name="delete_selected_notes">Delete Selected Notes?</string>
|
||||||
|
<string name="menu_desktop_mode">Desktop Mode</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -208,6 +208,15 @@ class CustomReaderFragment : CoreReaderFragment() {
|
|||||||
menu.findItem(R.id.menu_host_books)?.isVisible = false
|
menu.findItem(R.id.menu_host_books)?.isVisible = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onDesktopModeMenuClicked(isEnable: Boolean) {
|
||||||
|
getCurrentWebView()?.settings?.apply {
|
||||||
|
useWideViewPort = isEnable
|
||||||
|
}.also {
|
||||||
|
sharedPreferenceUtil?.isDesktopModeEnable = isEnable
|
||||||
|
mainMenu?.setDesktopModeEnable(!isEnable)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun enforcedLanguage(): Boolean {
|
private fun enforcedLanguage(): Boolean {
|
||||||
val currentLocaleCode = Locale.getDefault().toString()
|
val currentLocaleCode = Locale.getDefault().toString()
|
||||||
if (BuildConfig.ENFORCED_LANG.isNotEmpty() && BuildConfig.ENFORCED_LANG != currentLocaleCode) {
|
if (BuildConfig.ENFORCED_LANG.isNotEmpty() && BuildConfig.ENFORCED_LANG != currentLocaleCode) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user