diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java b/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java index 71fa94d70..2a259851a 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java @@ -373,6 +373,7 @@ public class MainActivity extends BaseActivity implements WebViewCallback, searchFiles(); tabRecyclerView.setAdapter(tabsAdapter); new ItemTouchHelper(tabCallback).attachToRecyclerView(tabRecyclerView); + drawerLayout.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); } //End of onCreate @@ -541,15 +542,20 @@ public class MainActivity extends BaseActivity implements WebViewCallback, } private void updateBottomToolbarArrowsAlpha() { - if (getCurrentWebView().canGoForward()) { - bottomToolbarArrowForward.setAlpha(1f); - } else { - bottomToolbarArrowForward.setAlpha(0.6f); + if (checkNull(bottomToolbarArrowBack)) { + if (getCurrentWebView().canGoForward()) { + bottomToolbarArrowForward.setAlpha(1f); + } else { + bottomToolbarArrowForward.setAlpha(0.6f); + } } - if (getCurrentWebView().canGoBack()) { - bottomToolbarArrowBack.setAlpha(1f); - } else { - bottomToolbarArrowBack.setAlpha(0.6f); + + if (checkNull(bottomToolbarArrowForward)) { + if (getCurrentWebView().canGoBack()) { + bottomToolbarArrowBack.setAlpha(1f); + } else { + bottomToolbarArrowBack.setAlpha(0.6f); + } } } @@ -786,14 +792,17 @@ public class MainActivity extends BaseActivity implements WebViewCallback, updateTabSwitcherIcon(); }) .show(); + openDefaultTab(); + updateTabSwitcherIcon(); + } + + private void openDefaultTab() { new Handler().postDelayed(() -> { if (webViewList.size() == 0) { newTab(HOME_URL); } - }, 1500); - updateTabSwitcherIcon(); + }, 100); } - private void selectTab(int position) { currentWebViewIndex = position; tabsAdapter.setSelected(position); @@ -1139,7 +1148,10 @@ public class MainActivity extends BaseActivity implements WebViewCallback, if (event.getAction() == KeyEvent.ACTION_DOWN) { switch (keyCode) { case KeyEvent.KEYCODE_BACK: - if (getCurrentWebView().canGoBack()) { + if (tabSwitcherRoot.getVisibility() == View.VISIBLE) { + selectTab(currentWebViewIndex); + hideTabSwitcher(); + } else if (getCurrentWebView().canGoBack()) { getCurrentWebView().goBack(); } else if (isFullscreenOpened) { closeFullScreen(); @@ -1161,11 +1173,7 @@ public class MainActivity extends BaseActivity implements WebViewCallback, void closeAllTabs() { webViewList.clear(); tabsAdapter.notifyDataSetChanged(); - new Handler().postDelayed(() -> { - if (webViewList.size() == 0) { - newTab(HOME_URL); - } - }, 1500); + openDefaultTab(); updateTabSwitcherIcon(); } @@ -1293,20 +1301,22 @@ public class MainActivity extends BaseActivity implements WebViewCallback, } private void updateBottomToolbarVisibility() { - if (sharedPreferenceUtil.getPrefBottomToolbar() && !HOME_URL.equals( - getCurrentWebView().getUrl()) - && tabSwitcherRoot.getVisibility() != View.VISIBLE) { - bottomToolbar.setVisibility(View.VISIBLE); - if (getCurrentWebView() instanceof ToolbarStaticKiwixWebView - && sharedPreferenceUtil.getPrefBottomToolbar()) { - contentFrame.setPadding(0, 0, 0, - (int) getResources().getDimension(R.dimen.bottom_toolbar_height)); + if (checkNull(bottomToolbar)) { + if (sharedPreferenceUtil.getPrefBottomToolbar() && !HOME_URL.equals( + getCurrentWebView().getUrl()) + && tabSwitcherRoot.getVisibility() != View.VISIBLE) { + bottomToolbar.setVisibility(View.VISIBLE); + if (getCurrentWebView() instanceof ToolbarStaticKiwixWebView + && sharedPreferenceUtil.getPrefBottomToolbar()) { + contentFrame.setPadding(0, 0, 0, + (int) getResources().getDimension(R.dimen.bottom_toolbar_height)); + } else { + contentFrame.setPadding(0, 0, 0, 0); + } } else { + bottomToolbar.setVisibility(View.GONE); contentFrame.setPadding(0, 0, 0, 0); } - } else { - bottomToolbar.setVisibility(View.GONE); - contentFrame.setPadding(0, 0, 0, 0); } } @@ -1528,7 +1538,14 @@ public class MainActivity extends BaseActivity implements WebViewCallback, View tabSwitcher = menu.findItem(R.id.menu_tab_switcher).getActionView(); tabSwitcherIcon = tabSwitcher.findViewById(R.id.ic_tab_switcher_text); updateTabSwitcherIcon(); - tabSwitcher.setOnClickListener(v -> showTabSwitcher()); + tabSwitcher.setOnClickListener(v -> { + if (tabSwitcherRoot.getVisibility() == View.VISIBLE) { + hideTabSwitcher(); + selectTab(currentWebViewIndex); + } else { + showTabSwitcher(); + } + }); return true; } @@ -1583,14 +1600,16 @@ public class MainActivity extends BaseActivity implements WebViewCallback, } private void refreshBookmarkSymbol() { - if (getCurrentWebView().getUrl() != null && - ZimContentProvider.getId() != null && - !getCurrentWebView().getUrl().equals(HOME_URL)) { - int icon = bookmarks.contains(getCurrentWebView().getUrl()) ? R.drawable.ic_bookmark_24dp - : R.drawable.ic_bookmark_border_24dp; - bottomToolbarBookmark.setImageResource(icon); - } else { - bottomToolbarBookmark.setImageResource(R.drawable.ic_bookmark_border_24dp); + if (checkNull(bottomToolbarBookmark)) { + if (getCurrentWebView().getUrl() != null && + ZimContentProvider.getId() != null && + !getCurrentWebView().getUrl().equals(HOME_URL)) { + int icon = bookmarks.contains(getCurrentWebView().getUrl()) ? R.drawable.ic_bookmark_24dp + : R.drawable.ic_bookmark_border_24dp; + bottomToolbarBookmark.setImageResource(icon); + } else { + bottomToolbarBookmark.setImageResource(R.drawable.ic_bookmark_border_24dp); + } } } @@ -1841,16 +1860,18 @@ public class MainActivity extends BaseActivity implements WebViewCallback, @Override public void webViewProgressChanged(int progress) { - progressBar.setProgress(progress); - if (progress == 100) { - if (requestClearHistoryAfterLoad) { - Log.d(TAG_KIWIX, - "Loading article finished and requestClearHistoryAfterLoad -> clearHistory"); - getCurrentWebView().clearHistory(); - requestClearHistoryAfterLoad = false; - } + if (checkNull(progressBar)) { + progressBar.setProgress(progress); + if (progress == 100) { + if (requestClearHistoryAfterLoad) { + Log.d(TAG_KIWIX, + "Loading article finished and requestClearHistoryAfterLoad -> clearHistory"); + getCurrentWebView().clearHistory(); + requestClearHistoryAfterLoad = false; + } - Log.d(TAG_KIWIX, "Loaded URL: " + getCurrentWebView().getUrl()); + Log.d(TAG_KIWIX, "Loaded URL: " + getCurrentWebView().getUrl()); + } } } @@ -1950,4 +1971,8 @@ public class MainActivity extends BaseActivity implements WebViewCallback, fileSearch.scan(sharedPreferenceUtil.getPrefStorage()); } } + + public boolean checkNull(View view) { + return view != null; + } } diff --git a/app/src/main/res/layout/header_language.xml b/app/src/main/res/layout/header_language.xml index 9914b8af6..3706abb5a 100644 --- a/app/src/main/res/layout/header_language.xml +++ b/app/src/main/res/layout/header_language.xml @@ -11,7 +11,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="@dimen/activity_horizontal_margin" - android:textColor="@color/primary_text" + android:textColor="@color/textDarkPrimary" android:textSize="16sp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" diff --git a/app/src/main/res/layout/item_book.xml b/app/src/main/res/layout/item_book.xml index 297604cef..3552460d6 100644 --- a/app/src/main/res/layout/item_book.xml +++ b/app/src/main/res/layout/item_book.xml @@ -29,7 +29,7 @@ android:layout_height="wrap_content" android:layout_marginEnd="@dimen/activity_horizontal_margin" android:layout_marginStart="@dimen/activity_horizontal_margin" - android:textColor="@color/primary_text" + android:textColor="@color/textDarkPrimary" android:textSize="16sp" app:layout_constraintStart_toEndOf="@id/item_book_icon" app:layout_constraintTop_toTopOf="parent" @@ -40,7 +40,7 @@ android:id="@+id/item_book_date" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textColor="@color/secondary_text" + android:textColor="@color/textDarkSecondary" app:layout_constraintStart_toStartOf="@id/item_book_title" app:layout_constraintTop_toBottomOf="@id/item_book_title" tools:text="1 Jan 2018" @@ -52,7 +52,7 @@ android:layout_height="wrap_content" android:layout_marginEnd="@dimen/activity_horizontal_margin" android:layout_marginStart="@dimen/activity_horizontal_margin" - android:textColor="@color/secondary_text" + android:textColor="@color/textDarkSecondary" app:layout_constraintStart_toEndOf="@id/item_book_date" app:layout_constraintTop_toTopOf="@id/item_book_date" tools:text="20 GB" @@ -64,7 +64,7 @@ android:layout_height="wrap_content" android:layout_marginEnd="@dimen/activity_horizontal_margin" android:layout_marginStart="@dimen/activity_horizontal_margin" - android:textColor="@color/secondary_text" + android:textColor="@color/textDarkSecondary" app:layout_constraintStart_toEndOf="@id/item_book_size" app:layout_constraintTop_toTopOf="@id/item_book_size" tools:text="10.1 K articles" @@ -72,9 +72,12 @@ #ff212121 #ffffff #2196F3 - #212121 - #727272 #212121 #fafafa #0d000000 @@ -27,4 +25,14 @@ #962e7ac4 #4285F4 #000000 + + #000000 + #DE000000 + #8A000000 + + + #FFFFFF + #B2FFFFFF + #80FFFFFF + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index dafc29ae5..3b435f128 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -25,9 +25,9 @@ @color/divider_light @drawable/list_bg_light @color/primary_light - @color/primary - @color/primary - @color/primary + @color/textDarkPrimary + @color/textDarkSecondary + @color/textDarkTertiary @color/accent @@ -47,6 +47,12 @@ @drawable/list_bg @drawable/list_bg_light @color/primary_light + @color/drawer_background_day + @color/divider_light + @color/textDarkPrimary + @color/textDarkSecondary + @color/textDarkTertiary + @color/accent @@ -86,8 +92,8 @@