summaryrefslogtreecommitdiff
path: root/org.fox.epube/src/main/java
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2020-04-21 11:31:21 +0300
committerAndrew Dolgov <[email protected]>2020-04-21 11:31:21 +0300
commit00227531e5f78c063fc6a0c0d9459ee0c81cafa5 (patch)
tree1dba992b39db90f87bdd06d7f491b02199614479 /org.fox.epube/src/main/java
parentf3a700589e16e16de38a0ae7f3a7c20ef919f3e9 (diff)
offline mode switch, etc
Diffstat (limited to 'org.fox.epube/src/main/java')
-rw-r--r--org.fox.epube/src/main/java/org/fox/epube/MainActivity.java35
1 files changed, 30 insertions, 5 deletions
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