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); }