diff options
-rw-r--r-- | .idea/vcs.xml | 10 | ||||
-rw-r--r-- | org.fox.epube/src/main/java/org/fox/epube/MainActivity.java | 35 | ||||
-rw-r--r-- | org.fox.epube/src/main/res/layout/toolbar.xml | 22 | ||||
-rw-r--r-- | org.fox.epube/src/main/res/menu/activity_main.xml | 135 |
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 |