From 00227531e5f78c063fc6a0c0d9459ee0c81cafa5 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 21 Apr 2020 11:31:21 +0300 Subject: offline mode switch, etc --- .../src/main/java/org/fox/epube/MainActivity.java | 35 ++++++++++++++++++---- 1 file changed, 30 insertions(+), 5 deletions(-) (limited to 'org.fox.epube/src/main/java/org') diff --git a/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java b/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java index c9ef961..18845c4 100644 --- a/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java +++ b/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java @@ -29,6 +29,8 @@ public class MainActivity extends AppCompatActivity { private ProgressBar m_loadingBar; private WebView m_web; private Menu m_menu; + private boolean m_offlineMode; + private AppPage m_currentPage; @Override protected void onCreate(Bundle savedInstanceState) { @@ -49,7 +51,6 @@ public class MainActivity extends AppCompatActivity { settings.setAppCachePath(getCacheDir().getAbsolutePath()); settings.setAppCacheEnabled(true); - m_loadingBar = findViewById(R.id.loading_progress); m_loadingBar.setVisibility(View.VISIBLE); m_loadingBar.setMax(100); @@ -104,6 +105,8 @@ public class MainActivity extends AppCompatActivity { private void onPageSwitched(MainActivity.AppPage page) { + m_currentPage = page; + m_menu.setGroupVisible(R.id.menu_group_pages, false); m_menu.setGroupVisible(R.id.menu_group_library, false); m_menu.setGroupVisible(R.id.menu_group_favorites, false); @@ -112,18 +115,20 @@ public class MainActivity extends AppCompatActivity { getSupportActionBar().setDisplayHomeAsUpEnabled(false); - Log.d(TAG, "switching to page:" + page); + Log.d(TAG, "switching to page: " + page); + + if (page != AppPage.PAGE_READER) { + m_menu.setGroupVisible(R.id.menu_group_pages, !m_offlineMode); + m_menu.setGroupVisible(R.id.menu_group_pages_offline, m_offlineMode); + } if (page == AppPage.PAGE_FAVORITES) { - m_menu.setGroupVisible(R.id.menu_group_pages, true); m_menu.setGroupVisible(R.id.menu_group_favorites, true); getSupportActionBar().setTitle("Favorites"); } else if (page == AppPage.PAGE_LIBRARY) { - m_menu.setGroupVisible(R.id.menu_group_pages, true); m_menu.setGroupVisible(R.id.menu_group_library, true); getSupportActionBar().setTitle("The Epube"); } else if (page == AppPage.PAGE_OFFLINE) { - m_menu.setGroupVisible(R.id.menu_group_pages, true); m_menu.setGroupVisible(R.id.menu_group_offline, true); getSupportActionBar().setTitle("Downloaded"); } else if (page == AppPage.PAGE_READER) { @@ -163,6 +168,7 @@ public class MainActivity extends AppCompatActivity { m_web.loadUrl(BASE_URL + "/index.php"); return true; case R.id.library_local: + case R.id.library_local_offline: m_web.loadUrl(BASE_URL + "/offline.html"); return true; case R.id.refresh_script_cache: @@ -214,6 +220,15 @@ public class MainActivity extends AppCompatActivity { } } + private void onOfflineModeChanged(boolean offline) { + Log.d(TAG, "offline mode changed: " + offline); + + m_offlineMode = offline; + + if (m_currentPage != null) + onPageSwitched(m_currentPage); + } + class WebAppInterface { private Context m_context; @@ -288,5 +303,15 @@ public class MainActivity extends AppCompatActivity { } }); } + + @JavascriptInterface + public void setOffline(final boolean offline) { + runOnUiThread(new Runnable() { + @Override + public void run() { + MainActivity.this.onOfflineModeChanged(offline); + } + }); + } } } \ No newline at end of file -- cgit v1.2.3