Kaydet (Commit) 598ba92d authored tarafından Tomaž Vajngerl's avatar Tomaž Vajngerl Kaydeden (comit) Miklos Vajna

android: add toolbar controller

Change-Id: I9ecaf0f0e7e39e2a28e1545bc0310360d5cebfe5
üst 2c0498dc
...@@ -250,7 +250,7 @@ public class InvalidationHandler implements Document.MessageCallback { ...@@ -250,7 +250,7 @@ public class InvalidationHandler implements Document.MessageCallback {
private synchronized void changeState(OverlayState previous, OverlayState next) { private synchronized void changeState(OverlayState previous, OverlayState next) {
mState = next; mState = next;
handleGeneralChangeState(previous, next);
switch (next) { switch (next) {
case CURSOR: case CURSOR:
handleCursorState(previous); handleCursorState(previous);
...@@ -270,6 +270,14 @@ public class InvalidationHandler implements Document.MessageCallback { ...@@ -270,6 +270,14 @@ public class InvalidationHandler implements Document.MessageCallback {
} }
} }
private void handleGeneralChangeState(OverlayState previous, OverlayState next) {
if (previous == OverlayState.NONE) {
LOKitShell.getToolbarController().switchToEditMode();
} else if (next == OverlayState.NONE) {
LOKitShell.getToolbarController().switchToViewMode();
}
}
private void handleNoneState(OverlayState previous) { private void handleNoneState(OverlayState previous) {
if (previous == OverlayState.NONE) { if (previous == OverlayState.NONE) {
return; return;
......
...@@ -47,6 +47,10 @@ public class LOKitShell { ...@@ -47,6 +47,10 @@ public class LOKitShell {
}); });
} }
public static ToolbarController getToolbarController() {
return LibreOfficeMainActivity.mAppContext.getToolbarController();
}
public static int getMemoryClass(Context context) { public static int getMemoryClass(Context context) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
return activityManager.getMemoryClass() * 1024 * 1024; return activityManager.getMemoryClass() * 1024 * 1024;
......
...@@ -214,16 +214,7 @@ public class LOKitThread extends Thread { ...@@ -214,16 +214,7 @@ public class LOKitThread extends Thread {
onSwipeRight(); onSwipeRight();
break; break;
case LOEvent.NAVIGATION_CLICK: case LOEvent.NAVIGATION_CLICK:
if (mInvalidationHandler.getCurrentState() == InvalidationHandler.OverlayState.NONE) { mInvalidationHandler.changeStateTo(InvalidationHandler.OverlayState.NONE);
LOKitShell.getMainHandler().post(new Runnable() {
@Override
public void run() {
LibreOfficeMainActivity.mAppContext.onBackPressed();
}
});
} else {
mInvalidationHandler.changeStateTo(InvalidationHandler.OverlayState.NONE);
}
break; break;
} }
} }
......
...@@ -54,6 +54,7 @@ public class LibreOfficeMainActivity extends ActionBarActivity { ...@@ -54,6 +54,7 @@ public class LibreOfficeMainActivity extends ActionBarActivity {
private TextCursorLayer mTextCursorLayer; private TextCursorLayer mTextCursorLayer;
private File mTempFile = null; private File mTempFile = null;
private LOAbout mAbout; private LOAbout mAbout;
private ToolbarController mToolbarController;
public LibreOfficeMainActivity() { public LibreOfficeMainActivity() {
mAbout = new LOAbout(this, false); mAbout = new LOAbout(this, false);
...@@ -120,9 +121,7 @@ public class LibreOfficeMainActivity extends ActionBarActivity { ...@@ -120,9 +121,7 @@ public class LibreOfficeMainActivity extends ActionBarActivity {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar); setSupportActionBar(toolbar);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.lo_icon); mToolbarController = new ToolbarController(getSupportActionBar(), toolbar);
//getSupportActionBar().setHomeAsUpIndicator();
toolbar.setNavigationOnClickListener(new View.OnClickListener() { toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override @Override
...@@ -324,6 +323,10 @@ public class LibreOfficeMainActivity extends ActionBarActivity { ...@@ -324,6 +323,10 @@ public class LibreOfficeMainActivity extends ActionBarActivity {
return mTextCursorLayer; return mTextCursorLayer;
} }
public ToolbarController getToolbarController() {
return mToolbarController;
}
private class DocumentPartClickListener implements android.widget.AdapterView.OnItemClickListener { private class DocumentPartClickListener implements android.widget.AdapterView.OnItemClickListener {
@Override @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
......
package org.libreoffice;
import android.support.v7.app.ActionBar;
import android.support.v7.widget.Toolbar;
public class ToolbarController {
private final Toolbar mToolbar;
private final ActionBar mActionBar;
public ToolbarController(ActionBar actionBar, Toolbar toolbar) {
mToolbar = toolbar;
mActionBar = actionBar;
switchToViewMode();
}
void switchToEditMode() {
LOKitShell.getMainHandler().post(new Runnable() {
@Override
public void run() {
mActionBar.setDisplayHomeAsUpEnabled(false);
mToolbar.setNavigationIcon(R.drawable.ic_check_grey600_24dp);
mToolbar.setTitle(null);
}
});
}
void switchToViewMode() {
LOKitShell.getMainHandler().post(new Runnable() {
@Override
public void run() {
mToolbar.setNavigationIcon(R.drawable.ic_menu_grey600_24dp);
mToolbar.setTitle("LibreOffice");
mActionBar.setDisplayHomeAsUpEnabled(true);
}
});
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment