diff --git a/mobile/res/values/strings.xml b/mobile/res/values/strings.xml
index 6c6edfd9..5fe5d225 100644
--- a/mobile/res/values/strings.xml
+++ b/mobile/res/values/strings.xml
@@ -55,6 +55,13 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.]]>
+
+
+ • Navigation: swipe from the left edge of your screen (or click the app icon) to evoke the Navigation Drawer.
+ Click the app icon again to return to the map.
+ • Layers/Highlights: swipe from the right edge of your screen (or click the layer-chooser icon in the ActionBar)
+ to evoke the Layer Drawer]]>
+
UI
Misc
diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java
index 70716074..c4a5ee83 100644
--- a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java
+++ b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java
@@ -104,8 +104,11 @@ public class IITC_Mobile extends Activity {
// no reload needed
return;
}
- // no reload needed
- if (key.equals("pref_press_twice_to_exit") || key.equals("pref_share_selected_tab"))
+
+ if (key.equals("pref_press_twice_to_exit")
+ || key.equals("pref_share_selected_tab")
+ || key.equals("pref_drawers_seen"))
+ // no reload needed
return;
mReloadNeeded = true;
@@ -411,6 +414,19 @@ public class IITC_Mobile extends Activity {
return true;
}
+ @Override
+ public boolean onPrepareOptionsMenu(Menu menu) {
+ if (mNavigationHelper != null) {
+ boolean visible = !mNavigationHelper.isDrawerOpened();
+
+ for (int i = 0; i < menu.size(); i++)
+ if (menu.getItem(i).getItemId() != R.id.action_settings)
+ menu.getItem(i).setVisible(visible);
+ }
+
+ return super.onPrepareOptionsMenu(menu);
+ }
+
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mNavigationHelper.onOptionsItemSelected(item))
diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java
index 3c5d9193..34aaf348 100644
--- a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java
+++ b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java
@@ -1,11 +1,16 @@
package com.cradle.iitc_mobile;
import android.app.ActionBar;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.content.DialogInterface.OnDismissListener;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
+import android.text.Html;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
@@ -124,6 +129,38 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt
mDrawerLayout.setDrawerListener(this);
onPrefChanged(); // also calls updateActionBar()
+
+ showNotice();
+ }
+
+ private void showNotice() {
+ if (mPrefs.getBoolean("pref_drawers_seen", false))
+ return;
+
+ TextView message = new TextView(mIitc);
+ message.setPadding(20, 20, 20, 20);
+ message.setText(Html.fromHtml(mIitc.getText(R.string.notice_drawers).toString()));
+
+ AlertDialog dialog = new AlertDialog.Builder(mIitc)
+ .setView(message)
+ .setCancelable(true)
+ .setPositiveButton(android.R.string.ok, new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.cancel();
+ }
+ })
+ .create();
+ dialog.setOnDismissListener(new OnDismissListener() {
+ @Override
+ public void onDismiss(DialogInterface dialog) {
+ mPrefs
+ .edit()
+ .putBoolean("pref_drawers_seen", true)
+ .commit();
+ }
+ });
+ dialog.show();
}
private void updateActionBar() {
@@ -135,7 +172,8 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt
mActionBar.setDisplayHomeAsUpEnabled(false); // Hide "up" indicator
mActionBar.setHomeButtonEnabled(false); // Make icon unclickable
mActionBar.setTitle(mIitc.getString(R.string.app_name));
- mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
+ mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, mDrawerLeft);
+ mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, mDrawerRight);
setDrawerIndicatorEnabled(false);
} else {
if (mIsLoading) {
@@ -148,13 +186,16 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt
mActionBar.setHomeButtonEnabled(true);// Make icon clickable
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
- if (mPane != Pane.MAP)
- setDrawerIndicatorEnabled(false);
- else
+ if (mPane == Pane.MAP || mDrawerLayout.isDrawerOpen(mDrawerLeft))
setDrawerIndicatorEnabled(true);
+ else
+ setDrawerIndicatorEnabled(false);
}
- mActionBar.setTitle(getPaneTitle(mPane));
+ if (mDrawerLayout.isDrawerOpen(mDrawerLeft))
+ mActionBar.setTitle(mIitc.getString(R.string.app_name));
+ else
+ mActionBar.setTitle(getPaneTitle(mPane));
}
if (mFullscreen && mHideInFullscreen)
@@ -197,15 +238,15 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt
@Override
public void onDrawerClosed(View drawerView) {
- // TODO change menu? (via invalidateOptionsMenu)
super.onDrawerClosed(drawerView);
+ mIitc.invalidateOptionsMenu();
updateActionBar();
}
@Override
public void onDrawerOpened(View drawerView) {
- // TODO change menu? (via invalidateOptionsMenu)
super.onDrawerOpened(drawerView);
+ mIitc.invalidateOptionsMenu();
updateActionBar();
mDrawerLayout.closeDrawer(drawerView.equals(mDrawerLeft) ? mDrawerRight : mDrawerLeft);
}