summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2014-12-16 16:14:54 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-12-16 16:16:37 +0100
commit450647a8a2e6f1e9f7474e1a5d82834e0d6cb594 (patch)
treebae54cd1793b87d907ed6ce5e11a0d515be76167 /android
parentca9a81b2ca858b82e863e1e6f917928916fea79e (diff)
android: disable navigation drawer for Writer
Writer documents currently always have one part, so it's not possible to switch to an other part anyway. Also hide the matching menu item accordingly. Change-Id: Ic634d46c4ff307416b2878e5bc8a590b22a827a0
Diffstat (limited to 'android')
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java5
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java14
2 files changed, 17 insertions, 2 deletions
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
index 82908e1cd533..848ec7b747d5 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
@@ -71,7 +71,8 @@ public class LOKitTileProvider implements TileProvider {
LibreOfficeMainActivity.mAppContext.getDocumentPartView().clear();
- if (parts > 1) {
+ // Writer documents always have one part, so hide the navigation drawer.
+ if (mDocument.getDocumentType() != Document.DOCTYPE_TEXT) {
for (int i = 0; i < parts; i++) {
String partName = mDocument.getPartName(i);
if (partName.isEmpty()) {
@@ -84,6 +85,8 @@ public class LOKitTileProvider implements TileProvider {
final DocumentPartView partView = new DocumentPartView(i, partName, thumbnail(128));
LibreOfficeMainActivity.mAppContext.getDocumentPartView().add(partView);
}
+ } else {
+ LibreOfficeMainActivity.mAppContext.disableNavigationDrawer();
}
mDocument.setPart(0);
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
index ccb864b98f33..16d0edf9bf9f 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
@@ -72,7 +72,9 @@ public class LibreOfficeMainActivity extends Activity {
public boolean onPrepareOptionsMenu(Menu menu) {
// If the nav drawer is open, hide action items related to the content view
boolean isDrawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
- menu.findItem(R.id.action_parts).setVisible(!isDrawerOpen);
+ // Do the same in case the drawer is locked.
+ boolean isDrawerLocked = mDrawerLayout.getDrawerLockMode(mDrawerList) != DrawerLayout.LOCK_MODE_UNLOCKED;
+ menu.findItem(R.id.action_parts).setVisible(!isDrawerOpen && !isDrawerLocked);
return super.onPrepareOptionsMenu(menu);
}
@@ -169,6 +171,16 @@ public class LibreOfficeMainActivity extends Activity {
return mDocumentPartView;
}
+ public void disableNavigationDrawer() {
+ // Only the original thread that created mDrawerLayout should touch its views.
+ LOKitShell.getMainHandler().post(new Runnable() {
+ @Override
+ public void run() {
+ mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, mDrawerList);
+ }
+ });
+ }
+
public DocumentPartViewListAdapter getDocumentPartViewListAdapter() {
return mDocumentPartViewListAdapter;
}