Merge branch 'newnavigation' of git://github.com/fkloft/ingress-intel-total-conversion into fkloft-newnavigation

This commit is contained in:
Philipp Schaefer 2013-09-23 23:23:18 +02:00
commit fc782218f1
3 changed files with 73 additions and 9 deletions

View File

@ -55,6 +55,13 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.]]>
</string>
<string name="notice_drawers">
<![CDATA[IITCm recently changed its navigation structure. How to use it:<br><br>
• 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.<br><br>
• Layers/Highlights: swipe from the right edge of your screen (or click the layer-chooser icon in the ActionBar)
to evoke the Layer Drawer]]>
</string>
<string name="pref_ui_cat">UI</string>
<string name="pref_misc_cat">Misc</string>

View File

@ -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))

View File

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