mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-22 20:24:03 -04:00
Merge branch 'master' into swipe-down
This commit is contained in:
commit
9fcd0a887d
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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"
|
||||
|
@ -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 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/item_book_description"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/secondary_text"
|
||||
android:textColor="@color/textDarkSecondary"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/item_book_title"
|
||||
app:layout_constraintTop_toBottomOf="@id/item_book_date"
|
||||
tools:text="All wikipedia articles"
|
||||
|
@ -47,7 +47,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/human_kind_knowledge"
|
||||
android:textAlignment="center"
|
||||
android:textColor="@color/secondary_text"
|
||||
android:textColor="@color/textDarkSecondary"
|
||||
android:textSize="15sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
@ -49,7 +49,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/download_books_message"
|
||||
android:textAlignment="center"
|
||||
android:textColor="@color/secondary_text"
|
||||
android:textColor="@color/textDarkSecondary"
|
||||
android:textSize="15sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
@ -6,8 +6,6 @@
|
||||
<color name="primary_dark_night">#ff212121</color>
|
||||
<color name="primary_light">#ffffff</color>
|
||||
<color name="accent">#2196F3</color>
|
||||
<color name="primary_text">#212121</color>
|
||||
<color name="secondary_text">#727272</color>
|
||||
<color name="icons">#212121</color>
|
||||
<color name="white">#fafafa</color>
|
||||
<color name="gray_list_bg">#0d000000</color>
|
||||
@ -27,4 +25,14 @@
|
||||
<color name="blueTransparent">#962e7ac4</color>
|
||||
<color name="actionModeBackground">#4285F4</color>
|
||||
<color name="titleBar">#000000</color>
|
||||
<!-- Dark Text Color for Light Background -->
|
||||
<color name="textDarkPrimary">#000000</color> <!-- 0% opacity-->
|
||||
<color name="textDarkSecondary">#DE000000</color> <!--DE for 87% opacity-->
|
||||
<color name="textDarkTertiary">#8A000000</color> <!--8A for 54% opacity-->
|
||||
|
||||
<!-- White Text Color for Dark Background -->
|
||||
<color name="textLightPrimary">#FFFFFF</color> <!--100% opacity-->
|
||||
<color name="textLightSecondary">#B2FFFFFF</color> <!--B2 for 70% opacity-->
|
||||
<color name="textLightTertiary">#80FFFFFF</color> <!--80 for 50% opacity-->
|
||||
|
||||
</resources>
|
||||
|
@ -25,9 +25,9 @@
|
||||
<item name="dividerColor">@color/divider_light</item>
|
||||
<item name="selectedBackground">@drawable/list_bg_light</item>
|
||||
<item name="android:itemBackground">@color/primary_light</item>
|
||||
<item name="android:textColorPrimary">@color/primary</item>
|
||||
<item name="android:textColorSecondary">@color/primary</item>
|
||||
<item name="android:textColorTertiary">@color/primary</item>
|
||||
<item name="android:textColorPrimary">@color/textDarkPrimary</item>
|
||||
<item name="android:textColorSecondary">@color/textDarkSecondary</item>
|
||||
<item name="android:textColorTertiary">@color/textDarkTertiary</item>
|
||||
<item name="colorControlNormal">@color/accent</item>
|
||||
</style>
|
||||
|
||||
@ -47,6 +47,12 @@
|
||||
<item name="listBackground">@drawable/list_bg</item>
|
||||
<item name="selectedBackground">@drawable/list_bg_light</item>
|
||||
<item name="android:itemBackground">@color/primary_light</item>
|
||||
<item name="drawerBackground">@color/drawer_background_day</item>
|
||||
<item name="dividerColor">@color/divider_light</item>
|
||||
<item name="android:textColorPrimary">@color/textDarkPrimary</item>
|
||||
<item name="android:textColorSecondary">@color/textDarkSecondary</item>
|
||||
<item name="android:textColorTertiary">@color/textDarkTertiary</item>
|
||||
<item name="colorControlNormal">@color/accent</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.Night" parent="AppTheme.Base">
|
||||
@ -59,9 +65,9 @@
|
||||
<item name="android:itemBackground">@color/grey</item>
|
||||
<item name="android:itemTextAppearance">@color/grey</item>
|
||||
<item name="android:textColor">@color/primary_light</item>
|
||||
<item name="android:textColorPrimary">@color/primary_light</item>
|
||||
<item name="android:textColorSecondary">@color/primary_light</item>
|
||||
<item name="android:textColorTertiary">@color/primary_light</item>
|
||||
<item name="android:textColorPrimary">@color/textLightPrimary</item>
|
||||
<item name="android:textColorSecondary">@color/textLightSecondary</item>
|
||||
<item name="android:textColorTertiary">@color/textLightTertiary</item>
|
||||
<item name="android:alertDialogTheme">@style/AppTheme.Dialog.Night</item>
|
||||
<item name="colorControlNormal">@color/accent</item>
|
||||
</style>
|
||||
@ -86,8 +92,8 @@
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat">
|
||||
<item name="android:textColorPrimary">@color/primary_text</item>
|
||||
<item name="actionMenuTextColor">@color/primary_text</item>
|
||||
<item name="android:textColorPrimary">@color/textDarkPrimary</item>
|
||||
<item name="actionMenuTextColor">@color/textDarkPrimary</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.Dialog" parent="Theme.AppCompat.Light.Dialog.Alert">
|
||||
|
Loading…
x
Reference in New Issue
Block a user