summaryrefslogtreecommitdiff
path: root/android/source/src/java/org/libreoffice/ToolbarController.java
diff options
context:
space:
mode:
Diffstat (limited to 'android/source/src/java/org/libreoffice/ToolbarController.java')
-rw-r--r--android/source/src/java/org/libreoffice/ToolbarController.java125
1 files changed, 65 insertions, 60 deletions
diff --git a/android/source/src/java/org/libreoffice/ToolbarController.java b/android/source/src/java/org/libreoffice/ToolbarController.java
index abd1f3e8d6a7..08e981c42ece 100644
--- a/android/source/src/java/org/libreoffice/ToolbarController.java
+++ b/android/source/src/java/org/libreoffice/ToolbarController.java
@@ -9,39 +9,54 @@
package org.libreoffice;
import android.content.Context;
+import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LayerDrawable;
import android.support.v7.app.ActionBar;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
+import android.view.View;
+import android.widget.ImageButton;
+import android.widget.Toast;
import org.libreoffice.canvas.ImageUtils;
import org.libreoffice.kit.Document;
+import java.sql.SQLOutput;
+import java.util.Arrays;
+
/**
* Controls the changes to the toolbar.
*/
-public class ToolbarController {
+public class ToolbarController implements Toolbar.OnMenuItemClickListener {
private static final String LOGTAG = ToolbarController.class.getSimpleName();
- private final Toolbar mToolbar;
+ private final Toolbar mToolbarTop;
+
private final ActionBar mActionBar;
- private Menu mOptionsMenu;
- private Context mContext;
+ private LibreOfficeMainActivity mContext;
+ private Menu mMainMenu;
- public ToolbarController(Context context, ActionBar actionBar, Toolbar toolbar) {
- mToolbar = toolbar;
+ public ToolbarController(LibreOfficeMainActivity context, ActionBar actionBar, Toolbar toolbarTop) {
+ mToolbarTop = toolbarTop;
mActionBar = actionBar;
mContext = context;
+
+ mToolbarTop.inflateMenu(R.menu.main);
+ mToolbarTop.setOnMenuItemClickListener(this);
switchToViewMode();
+
+ mMainMenu = mToolbarTop.getMenu();
}
public void disableMenuItem(final int menuItemId, final boolean disabled) {
LOKitShell.getMainHandler().post(new Runnable() {
public void run() {
- MenuItem menuItem = mOptionsMenu.findItem(menuItemId);
+ MenuItem menuItem = mMainMenu.findItem(menuItemId);
if (menuItem != null) {
menuItem.setEnabled(!disabled);
} else {
@@ -51,53 +66,6 @@ public class ToolbarController {
});
}
- public void onToggleStateChanged(int type, boolean pressed) {
- MenuItem menuItem = null;
- Bitmap icon = null;
- switch (type) {
- case Document.BOLD:
- menuItem = mOptionsMenu.findItem(R.id.action_bold);
- icon = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.action_bold);
- break;
- case Document.ITALIC:
- menuItem = mOptionsMenu.findItem(R.id.action_italic);
- icon = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.action_italic);
- break;
- case Document.UNDERLINE:
- menuItem = mOptionsMenu.findItem(R.id.action_underline);
- icon = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.action_underline);
- break;
- case Document.STRIKEOUT:
- menuItem = mOptionsMenu.findItem(R.id.action_strikeout);
- icon = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.action_strikeout);
- break;
- default:
- Log.e(LOGTAG, "Uncaptured state change type: " + type);
- return;
- }
-
- if (menuItem == null) {
- Log.e(LOGTAG, "MenuItem not found.");
- return;
- }
-
- if (pressed) {
- icon = ImageUtils.bitmapToPressed(icon);
- }
-
- final MenuItem fMenuItem = menuItem;
- final Bitmap fIcon = icon;
- LOKitShell.getMainHandler().post(new Runnable() {
- public void run() {
- fMenuItem.setIcon(new BitmapDrawable(mContext.getResources(), fIcon));
- }
- });
- }
-
- public void setOptionMenu(Menu menu) {
- mOptionsMenu = menu;
- }
-
/**
* Change the toolbar to edit mode.
*/
@@ -109,9 +77,10 @@ public class ToolbarController {
LOKitShell.getMainHandler().post(new Runnable() {
@Override
public void run() {
- mActionBar.setDisplayHomeAsUpEnabled(false);
- mToolbar.setNavigationIcon(R.drawable.ic_check_grey600_24dp);
- mToolbar.setTitle(null);
+ mMainMenu.setGroupVisible(R.id.group_edit_actions, true);
+ mToolbarTop.setNavigationIcon(R.drawable.ic_check);
+ mToolbarTop.setTitle(null);
+ mToolbarTop.setLogo(null);
}
});
@@ -128,12 +97,48 @@ public class ToolbarController {
LOKitShell.getMainHandler().post(new Runnable() {
@Override
public void run() {
- mToolbar.setNavigationIcon(R.drawable.ic_menu_grey600_24dp);
- mToolbar.setTitle("LibreOffice");
- mActionBar.setDisplayHomeAsUpEnabled(true);
+ mMainMenu.setGroupVisible(R.id.group_edit_actions, false);
+ mToolbarTop.setNavigationIcon(R.drawable.lo_icon);
+ mToolbarTop.setTitle(null);
+ mToolbarTop.setLogo(null);
}
});
}
+
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.action_keyboard:
+ mContext.showSoftKeyboard();
+ break;
+ case R.id.action_format:
+ mContext.showFormattingToolbar();
+ break;
+ case R.id.action_about:
+ mContext.showAbout();
+ return true;
+ case R.id.action_save:
+ mContext.saveDocument();
+ return true;
+ case R.id.action_parts:
+ mContext.openDrawer();
+ return true;
+ case R.id.action_settings:
+ mContext.showSettings();
+ return true;
+ }
+ return false;
+ }
+
+ public void setupToolbars() {
+ LibreOfficeMainActivity activity = mContext;
+ if (activity.usesTemporaryFile()) {
+ disableMenuItem(R.id.action_save, true);
+ Toast.makeText(activity, activity.getString(R.string.temp_file_saving_disabled), Toast.LENGTH_LONG).show();
+ }
+ mMainMenu.findItem(R.id.action_parts).setVisible(activity.isDrawerEnabled());
+ }
+
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */