summaryrefslogtreecommitdiff
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
parentf3a700589e16e16de38a0ae7f3a7c20ef919f3e9 (diff)
offline mode switch, etc
-rw-r--r--.idea/vcs.xml10
-rw-r--r--org.fox.epube/src/main/java/org/fox/epube/MainActivity.java35
-rw-r--r--org.fox.epube/src/main/res/layout/toolbar.xml22
-rw-r--r--org.fox.epube/src/main/res/menu/activity_main.xml135
4 files changed, 117 insertions, 85 deletions
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..9661ac7 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="VcsDirectoryMappings">
- <mapping directory="$PROJECT_DIR$" vcs="Git" />
- </component>
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
+ </component>
</project> \ No newline at end of file
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
diff --git a/org.fox.epube/src/main/res/layout/toolbar.xml b/org.fox.epube/src/main/res/layout/toolbar.xml
index 8f9ea00..96d3616 100644
--- a/org.fox.epube/src/main/res/layout/toolbar.xml
+++ b/org.fox.epube/src/main/res/layout/toolbar.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.appcompat.widget.Toolbar
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/toolbar"
- app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
- app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
- android:elevation="4dp"
- android:layout_height="wrap_content"
- android:layout_width="match_parent"
- android:minHeight="?attr/actionBarSize"
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.appcompat.widget.Toolbar
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/toolbar"
+ app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+ app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
+ android:elevation="4dp"
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary" /> \ No newline at end of file
diff --git a/org.fox.epube/src/main/res/menu/activity_main.xml b/org.fox.epube/src/main/res/menu/activity_main.xml
index 1d22293..404a095 100644
--- a/org.fox.epube/src/main/res/menu/activity_main.xml
+++ b/org.fox.epube/src/main/res/menu/activity_main.xml
@@ -1,65 +1,72 @@
-<?xml version="1.0" encoding="utf-8"?>
-<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ugh="http://schemas.android.com/apk/res-auto">
-
- <group android:id="@+id/menu_group_pages" >
- <item
- android:id="@+id/library_all"
- android:icon="@drawable/baseline_book_white_48"
- ugh:showAsAction="ifRoom"
- android:title="All books"/>
-
- <item
- android:id="@+id/library_favorites"
- android:icon="@drawable/baseline_bookmarks_white_48"
- ugh:showAsAction="ifRoom"
- android:title="Favorites"/>
-
- <item
- android:id="@+id/library_local"
- android:icon="@drawable/baseline_cloud_circle_white_48"
- ugh:showAsAction="ifRoom"
- android:title="Downloaded"/>
- </group>
-
- <group android:id="@+id/menu_group_library" >
- <item
- android:id="@+id/refresh_script_cache"
- android:title="Refresh script cache"/>
-
- <item
- android:id="@+id/logout"
- android:title="Logout"/>
- </group>
-
- <group android:id="@+id/menu_group_favorites" >
- <item
- android:id="@+id/favorites_download_all"
- android:icon="@drawable/baseline_cloud_download_white_48"
- ugh:showAsAction="ifRoom"
- android:title="Download all"/>
-
- </group>
-
- <group android:id="@+id/menu_group_offline" >
- <item
- android:id="@+id/offline_remove_all"
- android:icon="@drawable/baseline_remove_circle_white_48"
- ugh:showAsAction="ifRoom"
- android:title="Remove all downloads"/>
- </group>
-
- <group android:id="@+id/menu_group_reader" >
- <item
- android:id="@+id/reader_search"
- android:icon="@drawable/baseline_search_white_48"
- ugh:showAsAction="ifRoom"
- android:title="Search"/>
-
- <item
- android:id="@+id/reader_settings"
- android:icon="@drawable/baseline_settings_white_48"
- ugh:showAsAction="ifRoom"
- android:title="Settings"/>
-
- </group>
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ugh="http://schemas.android.com/apk/res-auto">
+
+ <group android:id="@+id/menu_group_pages" >
+ <item
+ android:id="@+id/library_all"
+ android:icon="@drawable/baseline_book_white_48"
+ ugh:showAsAction="ifRoom"
+ android:title="All books"/>
+
+ <item
+ android:id="@+id/library_favorites"
+ android:icon="@drawable/baseline_bookmarks_white_48"
+ ugh:showAsAction="ifRoom"
+ android:title="Favorites"/>
+
+ <item
+ android:id="@+id/library_local"
+ android:icon="@drawable/baseline_cloud_circle_white_48"
+ ugh:showAsAction="ifRoom"
+ android:title="Downloaded"/>
+ </group>
+
+ <group android:id="@+id/menu_group_pages_offline" >
+ <item
+ android:id="@+id/library_local_offline"
+ android:icon="@drawable/baseline_cloud_circle_white_48"
+ ugh:showAsAction="ifRoom"
+ android:title="Downloaded"/>
+ </group>
+
+ <group android:id="@+id/menu_group_library" >
+ <item
+ android:id="@+id/refresh_script_cache"
+ android:title="Refresh script cache"/>
+
+ <item
+ android:id="@+id/logout"
+ android:title="Logout"/>
+ </group>
+
+ <group android:id="@+id/menu_group_favorites" >
+ <item
+ android:id="@+id/favorites_download_all"
+ android:icon="@drawable/baseline_cloud_download_white_48"
+ ugh:showAsAction="ifRoom"
+ android:title="Download all"/>
+
+ </group>
+
+ <group android:id="@+id/menu_group_offline" >
+ <item
+ android:id="@+id/offline_remove_all"
+ android:icon="@drawable/baseline_remove_circle_white_48"
+ android:title="Remove all downloads"/>
+ </group>
+
+ <group android:id="@+id/menu_group_reader" >
+ <item
+ android:id="@+id/reader_search"
+ android:icon="@drawable/baseline_search_white_48"
+ ugh:showAsAction="ifRoom"
+ android:title="Search"/>
+
+ <item
+ android:id="@+id/reader_settings"
+ android:icon="@drawable/baseline_settings_white_48"
+ ugh:showAsAction="ifRoom"
+ android:title="Settings"/>
+
+ </group>
</menu> \ No newline at end of file