diff options
Diffstat (limited to 'android/source/src/java/org/libreoffice/ToolbarController.java')
-rw-r--r-- | android/source/src/java/org/libreoffice/ToolbarController.java | 125 |
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: */ |