mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-08-03 18:56:44 -04:00
parent
915bafc549
commit
8ca00227fd
@ -58,6 +58,7 @@ import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.view.ActionMode;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
@ -203,6 +204,8 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
|
||||
public Menu menu;
|
||||
|
||||
private MenuItem menuBookmarks;
|
||||
|
||||
private ArrayList<String> bookmarks;
|
||||
|
||||
private List<KiwixWebView> mWebViews = new ArrayList<>();
|
||||
@ -354,6 +357,16 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
public void onRandomArticleTabSelected() {
|
||||
openRandomArticle();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBookmarkTabSelected() {
|
||||
toggleBookmark();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBookmarkTabLongClicked() {
|
||||
goToBookmarks();
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
@ -485,6 +498,24 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
|
||||
pageBottomTabLayout.addOnTabSelectedListener(pageBottomTabListener);
|
||||
|
||||
View bookmarkTabView = LayoutInflater.from(KiwixMobileActivity.this)
|
||||
.inflate(R.layout.bookmark_tab, null);
|
||||
bookmarkTabView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
PageBottomTab.of(4).select(pageActionTabsCallback);
|
||||
}
|
||||
});
|
||||
bookmarkTabView.setOnLongClickListener(new View.OnLongClickListener() {
|
||||
@Override
|
||||
public boolean onLongClick(View view) {
|
||||
PageBottomTab.of(4).longClick(pageActionTabsCallback);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
pageBottomTabLayout.getTabAt(4).setCustomView(bookmarkTabView);
|
||||
|
||||
wasHideToolbar = isHideToolbar;
|
||||
|
||||
if (nightMode) {
|
||||
@ -882,9 +913,9 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
}
|
||||
|
||||
private void openFullScreen() {
|
||||
|
||||
toolbarContainer.setVisibility(View.GONE);
|
||||
pageBottomTabLayout.setVisibility(View.GONE);
|
||||
menuBookmarks.setVisible(true);
|
||||
exitFullscreenButton.setVisibility(View.VISIBLE);
|
||||
int fullScreenFlag = WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
||||
int classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
|
||||
@ -907,8 +938,10 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
toolbarContainer.setVisibility(View.VISIBLE);
|
||||
if (settings.getBoolean(KiwixSettingsActivity.PREF_BOTTOM_TOOLBAR, false)) {
|
||||
pageBottomTabLayout.setVisibility(View.VISIBLE);
|
||||
menuBookmarks.setVisible(false);
|
||||
}
|
||||
exitFullscreenButton.setVisibility(View.INVISIBLE);
|
||||
|
||||
int fullScreenFlag = WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
||||
int classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
|
||||
getWindow().clearFlags(fullScreenFlag);
|
||||
@ -1139,15 +1172,14 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
new Handler().post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ActionMenuItemView m = (ActionMenuItemView) findViewById(R.id.menu_bookmarks);
|
||||
if (m == null) {
|
||||
return;
|
||||
}
|
||||
ActionMenuItemView m = findViewById(R.id.menu_bookmarks);
|
||||
if (m != null) {
|
||||
findViewById(R.id.menu_bookmarks).setOnLongClickListener(view -> {
|
||||
goToBookmarks();
|
||||
return false;
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (tts.isInitialized()) {
|
||||
@ -1257,8 +1289,14 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
|
||||
if (settings.getBoolean(KiwixSettingsActivity.PREF_BOTTOM_TOOLBAR, false)) {
|
||||
pageBottomTabLayout.setVisibility(View.VISIBLE);
|
||||
if (menuBookmarks != null) {
|
||||
menuBookmarks.setVisible(false);
|
||||
}
|
||||
} else {
|
||||
pageBottomTabLayout.setVisibility(View.GONE);
|
||||
if (menuBookmarks != null) {
|
||||
menuBookmarks.setVisible(true);
|
||||
}
|
||||
}
|
||||
|
||||
Log.d(TAG_KIWIX, "action" + getIntent().getAction());
|
||||
@ -1551,6 +1589,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
MenuInflater inflater = getMenuInflater();
|
||||
inflater.inflate(R.menu.menu_main, menu);
|
||||
this.menu = menu;
|
||||
this.menuBookmarks = menu.findItem(R.id.menu_bookmarks);
|
||||
StyleMenuButtons(menu);
|
||||
if (BuildConfig.IS_CUSTOM_APP) {
|
||||
menu.findItem(R.id.menu_help).setVisible(false);
|
||||
@ -1562,6 +1601,13 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
if (isFullscreenOpened) {
|
||||
openFullScreen();
|
||||
}
|
||||
|
||||
if (PreferenceManager
|
||||
.getDefaultSharedPreferences(getApplicationContext())
|
||||
.getBoolean(KiwixSettingsActivity.PREF_BOTTOM_TOOLBAR, false)) {
|
||||
menu.findItem(R.id.menu_bookmarks).setVisible(false);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1600,19 +1646,28 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
bookmarksDao = new BookmarksDao(KiwixDatabase.getInstance(this));
|
||||
bookmarks = bookmarksDao.getBookmarks(ZimContentProvider.getId(), ZimContentProvider.getName());
|
||||
}
|
||||
|
||||
TabLayout.Tab bookmarkTab = pageBottomTabLayout.getTabAt(4);
|
||||
|
||||
if (menu.findItem(R.id.menu_bookmarks) != null &&
|
||||
getCurrentWebView().getUrl() != null &&
|
||||
ZimContentProvider.getId() != null &&
|
||||
!getCurrentWebView().getUrl().equals("file:///android_asset/help.html")) {
|
||||
int icon = bookmarks.contains(getCurrentWebView().getUrl()) ? R.drawable.action_bookmark_active : R.drawable.action_bookmark;
|
||||
|
||||
menu.findItem(R.id.menu_bookmarks)
|
||||
.setEnabled(true)
|
||||
.setIcon(bookmarks.contains(getCurrentWebView().getUrl()) ? R.drawable.action_bookmark_active : R.drawable.action_bookmark)
|
||||
.setIcon(icon)
|
||||
.getIcon().setAlpha(255);
|
||||
|
||||
bookmarkTab.getCustomView().findViewById(R.id.bookmark_tab_icon).setBackgroundResource(icon);
|
||||
} else {
|
||||
menu.findItem(R.id.menu_bookmarks)
|
||||
.setEnabled(false)
|
||||
.setIcon(R.drawable.action_bookmark)
|
||||
.getIcon().setAlpha(130);
|
||||
|
||||
bookmarkTab.getCustomView().findViewById(R.id.bookmark_tab_icon).setBackgroundResource(R.drawable.action_bookmark);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -26,6 +26,18 @@ public enum PageBottomTab {
|
||||
public void select(@NonNull Callback cb) {
|
||||
cb.onRandomArticleTabSelected();
|
||||
}
|
||||
},
|
||||
|
||||
BOOKMARK() {
|
||||
@Override
|
||||
public void select(@NonNull Callback cb) {
|
||||
cb.onBookmarkTabSelected();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void longClick(@NonNull Callback cb) {
|
||||
cb.onBookmarkTabLongClicked();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -40,6 +52,8 @@ public enum PageBottomTab {
|
||||
return FULL_SCREEN;
|
||||
case 3:
|
||||
return RANDOM_ARTICLE;
|
||||
case 4:
|
||||
return BOOKMARK;
|
||||
default:
|
||||
throw new IllegalArgumentException("Tab position is: " + code);
|
||||
}
|
||||
@ -47,10 +61,16 @@ public enum PageBottomTab {
|
||||
|
||||
public abstract void select(@NonNull Callback cb);
|
||||
|
||||
public void longClick(@NonNull Callback cb) {
|
||||
// Override me
|
||||
}
|
||||
|
||||
public interface Callback {
|
||||
void onHomeTabSelected();
|
||||
void onFindInPageTabSelected();
|
||||
void onFullscreenTabSelected();
|
||||
void onRandomArticleTabSelected();
|
||||
void onBookmarkTabSelected();
|
||||
void onBookmarkTabLongClicked();
|
||||
}
|
||||
}
|
||||
|
12
app/src/main/res/layout/bookmark_tab.xml
Normal file
12
app/src/main/res/layout/bookmark_tab.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/bookmark_tab_icon"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:background="@drawable/action_bookmark"
|
||||
android:contentDescription="@string/menu_bookmarks" />
|
||||
</RelativeLayout>
|
@ -24,4 +24,10 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/menu_randomarticle"
|
||||
android:icon="@drawable/action_randomarticle" />
|
||||
|
||||
<android.support.design.widget.TabItem
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/menu_bookmarks"
|
||||
android:icon="@drawable/action_bookmark_active" />
|
||||
</merge>
|
Loading…
x
Reference in New Issue
Block a user