diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java index ed0d646a..22c1fa83 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java @@ -318,7 +318,19 @@ public class IITC_Mobile extends Activity { // we want a self defined behavior for the back button @Override public void onBackPressed() { - // first kill all open iitc dialogs + // exit fullscreen mode if it is enabled and action bar is disabled or the back stack is empty + if (mFullscreenMode && (mBackStack.isEmpty() || mNavigationHelper.hideInFullscreen())) { + toggleFullscreen(); + return; + } + + // close drawer if opened + if (mNavigationHelper.isDrawerOpened()) { + mNavigationHelper.closeDrawer(); + return; + } + + // kill all open iitc dialogs if (!mDialogStack.isEmpty()) { String id = mDialogStack.pop(); mIitcWebView.loadUrl("javascript: " + @@ -327,27 +339,26 @@ public class IITC_Mobile extends Activity { "selector.remove();"); return; } - // exit fullscreen mode if it is enabled and action bar is disabled - // or the back stack is empty - if (mFullscreenMode && (mBackStack.isEmpty() || mNavigationHelper.hideInFullscreen())) { - this.toggleFullscreen(); - } else if (!mBackStack.isEmpty()) { - // Pop last item from backstack and pretend the relevant menu item was clicked + + // Pop last item from backstack and pretend the relevant menu item was clicked + if (!mBackStack.isEmpty()) { backStackPop(); + return; + } + + if (mBackButtonPressed || !mSharedPrefs.getBoolean("pref_press_twice_to_exit", false)) { + super.onBackPressed(); + return; } else { - if (mBackButtonPressed || !mSharedPrefs.getBoolean("pref_press_twice_to_exit", false)) - super.onBackPressed(); - else { - mBackButtonPressed = true; - Toast.makeText(this, "Press twice to exit", Toast.LENGTH_SHORT).show(); - // reset back button after 2 seconds - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - mBackButtonPressed = false; - } - }, 2000); - } + mBackButtonPressed = true; + Toast.makeText(this, "Press twice to exit", Toast.LENGTH_SHORT).show(); + // reset back button after 2 seconds + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + mBackButtonPressed = false; + } + }, 2000); } } diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java index 3f152dde..1d4132f1 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java @@ -16,6 +16,8 @@ import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; +import java.util.Comparator; + public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnNavigationListener, OnItemClickListener { // Show/hide the up arrow on the very left // getActionBar().setDisplayHomeAsUpEnabled(enabled); @@ -30,6 +32,22 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnNa // getActionBar().setHomeButtonEnabled(enabled); private class HighlighterAdapter extends ArrayAdapter { + + // Move "No Highlights" on top. Sort the rest alphabetically + private class HighlighterComparator implements Comparator { + @Override + public int compare(String lhs, String rhs) { + if (lhs.equals("No Highlights")) + return -1000; + else if (rhs.equals("No Highlights")) + return 1000; + else + return lhs.compareTo(rhs); + } + } + + private HighlighterComparator mComparator = new HighlighterComparator(); + public HighlighterAdapter() { super(mIitc, android.R.layout.simple_list_item_1); clear(); @@ -39,6 +57,7 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnNa public void add(String object) { super.remove(object); // to avoid duplicates super.add(object); + super.sort(mComparator); } @Override @@ -177,8 +196,8 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnNa if (mHighlighters.getCount() < 2) // there should always be "No Highlights" showHighlighter = false; - - if(mDrawerOpened) + + if (mDrawerOpened) showHighlighter = false; if (showHighlighter) { @@ -204,6 +223,10 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnNa updateActionBar(); } + public void closeDrawer() { + mDrawerLayout.closeDrawers(); + } + public String getPaneTitle(Pane pane) { switch (pane) { @@ -224,6 +247,10 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnNa } } + public boolean isDrawerOpened() { + return mDrawerOpened; + } + public boolean hideInFullscreen() { return mHideInFullscreen; } @@ -240,7 +267,7 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnNa public void onDrawerOpened(View drawerView) { // TODO change menu? (via invalidateOptionsMenu) super.onDrawerOpened(drawerView); - mDrawerOpened=true; + mDrawerOpened = true; updateActionBar(); } diff --git a/website/page/home.php b/website/page/home.php index 47876d82..e8fd2093 100644 --- a/website/page/home.php +++ b/website/page/home.php @@ -15,6 +15,9 @@ offers many more features. It is available for

22nd September 2013

+Update: IITC Mobile 0.6.5 replaces 0.6.4. This fixes a crash on entering plugin preferences on some tablets. +

+

IITC 0.14.1 and IITC Mobile 0.6.4 have been released. Changes in this version include: