From 40d25ad8ef1bd2c75268932ee2ccfd9973aec07f Mon Sep 17 00:00:00 2001 From: fkloft Date: Mon, 2 Dec 2013 23:06:18 +0100 Subject: [PATCH 01/17] Replace Pane enum with class --- .../cradle/iitc_mobile/IITC_JSInterface.java | 4 +- .../cradle/iitc_mobile/IITC_MapSettings.java | 1 - .../com/cradle/iitc_mobile/IITC_Mobile.java | 4 +- .../iitc_mobile/IITC_NavigationHelper.java | 198 +++++++++--------- 4 files changed, 98 insertions(+), 109 deletions(-) diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java b/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java index 0222fbe9..d86e3e0e 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java @@ -13,8 +13,6 @@ import android.widget.Toast; import com.cradle.iitc_mobile.IITC_NavigationHelper.Pane; import com.cradle.iitc_mobile.share.ShareActivity; -import java.util.Locale; - // provide communication between IITC script and android app public class IITC_JSInterface { // context of main activity @@ -96,7 +94,7 @@ public class IITC_JSInterface { public void run() { Pane pane; try { - pane = Pane.valueOf(id.toUpperCase(Locale.getDefault())); + pane = mIitc.getNavigationHelper().getPane(id); } catch (IllegalArgumentException e) { pane = Pane.MAP; } diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_MapSettings.java b/mobile/src/com/cradle/iitc_mobile/IITC_MapSettings.java index 1e06f9e1..687aff13 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_MapSettings.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_MapSettings.java @@ -12,7 +12,6 @@ import android.widget.ArrayAdapter; import android.widget.CheckedTextView; import android.widget.ListView; import android.widget.Spinner; -import android.widget.TextView; import org.json.JSONArray; import org.json.JSONException; diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java index 92bcc447..46c59ef2 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java @@ -35,7 +35,6 @@ import com.cradle.iitc_mobile.IITC_NavigationHelper.Pane; import java.io.File; import java.io.IOException; import java.net.URISyntaxException; -import java.util.Locale; import java.util.Stack; public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeListener, LocationListener { @@ -412,8 +411,7 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis } public void switchToPane(Pane pane) { - String name = pane.name().toLowerCase(Locale.getDefault()); - mIitcWebView.loadUrl("javascript: window.show('" + name + "');"); + mIitcWebView.loadUrl("javascript: window.show('" + pane.name + "');"); } @Override diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java index 0d15cc85..35b8a504 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java @@ -34,69 +34,6 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt // Makes the icon/title clickable // getActionBar().setHomeButtonEnabled(enabled); - private class NavigationAdapter extends ArrayAdapter { - public NavigationAdapter() { - super(mIitc, R.layout.list_item_selectable); - - add(Pane.MAP); - add(Pane.INFO); - add(Pane.FULL); - add(Pane.COMPACT); - add(Pane.PUBLIC); - add(Pane.FACTION); - - if (mPrefs.getBoolean("pref_advanced_menu", false)) { - add(Pane.DEBUG); - } - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - TextView view = (TextView) super.getView(position, convertView, parent); - Pane item = getItem(position); - if (item == Pane.MAP) { - view.setText("Map"); - } else { - view.setText(getPaneTitle(item)); - } - - int icon = 0; - switch (item) { - case MAP: - icon = R.drawable.location_map; - break; - case INFO: - icon = R.drawable.action_about; - break; - case FULL: - icon = R.drawable.collections_view_as_list; - break; - case COMPACT: - icon = R.drawable.collections_view_as_list_compact; - break; - case PUBLIC: - icon = R.drawable.social_group; - break; - case FACTION: - icon = R.drawable.social_cc_bcc; - break; - case DEBUG: - icon = R.drawable.ic_debug; - break; - } - - if (icon != 0) { - view.setCompoundDrawablesWithIntrinsicBounds(icon, 0, 0, 0); - } - - return view; - } - } - - public static enum Pane { - COMPACT, DEBUG, FACTION, FULL, INFO, MAP, PUBLIC - } - public static final int NOTICE_DRAWERS = 1 << 0; public static final int NOTICE_INFO = 1 << 1; // next one would be 1<<2; (this results in 1,2,4,8,...) @@ -140,9 +77,7 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt } private void showNotice(final int which) { - if ((mPrefs.getInt("pref_messages", 0) & which) != 0) { - return; - } + if ((mPrefs.getInt("pref_messages", 0) & which) != 0) return; String text; switch (which) { @@ -185,10 +120,12 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt dialog.show(); } - private void updateActionBar() { + private void updateViews() { int position = mNavigationAdapter.getPosition(mPane); if (position >= 0 && position < mNavigationAdapter.getCount()) { mDrawerLeft.setItemChecked(position, true); + } else { + mDrawerLeft.setItemChecked(mDrawerLeft.getCheckedItemPosition(), false); } if (mDesktopMode) { @@ -219,7 +156,7 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt if (mDrawerLayout.isDrawerOpen(mDrawerLeft)) { mActionBar.setTitle(mIitc.getString(R.string.app_name)); } else { - mActionBar.setTitle(getPaneTitle(mPane)); + mActionBar.setTitle(mPane.label); } } @@ -235,23 +172,17 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt mDrawerLayout.closeDrawers(); } - public String getPaneTitle(Pane pane) { - switch (pane) { - case INFO: - return "Info"; - case FULL: - return "Full"; - case COMPACT: - return "Compact"; - case PUBLIC: - return "Public"; - case FACTION: - return "Faction"; - case DEBUG: - return "Debug"; - default: - return mIitc.getString(R.string.app_name); + public Pane getPane(String id) { + for (int i = 0; i < mNavigationAdapter.getCount(); i++) { + Pane pane = mNavigationAdapter.getItem(i); + if (pane.name.equals(id)) + return pane; } + throw new IllegalArgumentException("Unknown pane: " + id); + } + + public void hideActionBar() { + mActionBar.hide(); } public boolean isDrawerOpened() { @@ -268,7 +199,7 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt @Override public void run() { mIitc.invalidateOptionsMenu(); - updateActionBar(); + updateViews(); } }, 200); } @@ -278,7 +209,7 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt super.onDrawerOpened(drawerView); mIitc.getWebView().onWindowFocusChanged(false); mIitc.invalidateOptionsMenu(); - updateActionBar(); + updateViews(); mDrawerLayout.closeDrawer(drawerView.equals(mDrawerLeft) ? mDrawerRight : mDrawerLeft); } @@ -310,7 +241,7 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt public void onPrefChanged() { mDesktopMode = mPrefs.getBoolean("pref_force_desktop", false); - updateActionBar(); + updateViews(); } public void openRightDrawer() { @@ -321,37 +252,100 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt public void reset() { mPane = Pane.MAP; - updateActionBar(); + mNavigationAdapter.reset(); + updateViews(); } public void setDebugMode(boolean enabled) { - mNavigationAdapter.remove(Pane.DEBUG); // avoid duplicates - if (enabled) { - mNavigationAdapter.add(Pane.DEBUG); - } + mNavigationAdapter.reset(); } public void setHighlighter(String name) { mHighlighter = name; - updateActionBar(); + updateViews(); } public void setLoadingState(boolean isLoading) { mIsLoading = isLoading; - updateActionBar(); - } - - public void switchTo(Pane pane) { - mPane = pane; - - updateActionBar(); + updateViews(); } public void showActionBar() { mActionBar.show(); } - public void hideActionBar() { - mActionBar.hide(); + public void switchTo(Pane pane) { + mPane = pane; + + updateViews(); + } + + private class NavigationAdapter extends ArrayAdapter { + public NavigationAdapter() { + super(mIitc, R.layout.list_item_selectable); + + reset(); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + TextView view = (TextView) super.getView(position, convertView, parent); + Pane item = getItem(position); + view.setText(item.label); + + if (item.icon != 0) { + view.setCompoundDrawablesWithIntrinsicBounds(item.icon, 0, 0, 0); + } + + return view; + } + + public void reset() { + clear(); + + add(Pane.INFO); + add(Pane.FULL); + add(Pane.COMPACT); + add(Pane.PUBLIC); + add(Pane.FACTION); + + if (mPrefs.getBoolean("pref_advanced_menu", false)) { + add(Pane.DEBUG); + } + } + } + + public static class Pane { + public static final Pane COMPACT = new Pane("compact", "Compact", R.drawable.collections_view_as_list_compact); + public static final Pane DEBUG = new Pane("debug", "Debug", R.drawable.ic_debug); + public static final Pane FACTION = new Pane("faction", "Faction", R.drawable.social_cc_bcc); + public static final Pane FULL = new Pane("full", "Full", R.drawable.collections_view_as_list); + public static final Pane INFO = new Pane("info", "Info", R.drawable.action_about); + public static final Pane MAP = new Pane("map", "IITC Mobile", R.drawable.location_map); + public static final Pane PUBLIC = new Pane("public", "Public", R.drawable.social_group); + + private int icon; + public String label; + public String name; + + public Pane(String name, String label, int icon) { + this.name = name; + this.label = label; + this.icon = icon; + } + + @Override + public boolean equals(Object o) { + if (o == null) return false; + if (o.getClass() != getClass()) return false; + + Pane pane = (Pane) o; + return name.equals(pane.name); + } + + @Override + public int hashCode() { + return name.hashCode(); + } } } From ad6a447bded7e64c1bc7b9d0785f636de508ebb8 Mon Sep 17 00:00:00 2001 From: fkloft Date: Mon, 2 Dec 2013 23:18:55 +0100 Subject: [PATCH 02/17] Allow plugins to add panes to mobile nav drawer --- code/hooks.js | 6 +++++- code/panes.js | 5 ++--- .../src/com/cradle/iitc_mobile/IITC_JSInterface.java | 10 ++++++++++ .../com/cradle/iitc_mobile/IITC_NavigationHelper.java | 5 +++++ 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/code/hooks.js b/code/hooks.js index b4959745..60eefe45 100644 --- a/code/hooks.js +++ b/code/hooks.js @@ -50,6 +50,10 @@ // iitcLoaded: called after IITC and all plugins loaded // portalDetailLoaded: called when a request to load full portal detail // completes. guid, success, details parameters +// paneChanged called when the current pane has changed. On desktop, +// this only selects the current chat pane; on mobile, it +// also switches between map, info and other panes defined +// by plugins window._hooks = {} window.VALID_HOOKS = [ @@ -60,7 +64,7 @@ window.VALID_HOOKS = [ 'publicChatDataAvailable', 'factionChatDataAvailable', 'requestFinished', 'nicknameClicked', 'geoSearch', 'iitcLoaded', - 'portalDetailLoaded']; + 'portalDetailLoaded', 'paneChanged']; window.runHooks = function(event, data) { if(VALID_HOOKS.indexOf(event) === -1) throw('Unknown event type: ' + event); diff --git a/code/panes.js b/code/panes.js index 4c3898d4..c5ea4eea 100644 --- a/code/panes.js +++ b/code/panes.js @@ -3,6 +3,8 @@ window.show = function(id) { window.hideall(); + runHooks("paneChanged", id); + switch(id) { case 'full': window.chat.show('full'); @@ -27,9 +29,6 @@ window.show = function(id) { case 'info': window.smartphone.sideButton.click(); break; - default: - window.smartphone.mapButton.click(); - break; } if (typeof android !== 'undefined' && android && android.switchToPane) { diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java b/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java index d86e3e0e..010afcdd 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java @@ -168,4 +168,14 @@ public class IITC_JSInterface { } }); } + + @JavascriptInterface + public void addPane(final String name, final String label, final String icon) { + mIitc.runOnUiThread(new Runnable() { + @Override + public void run() { + mIitc.getNavigationHelper().addPane(name, label, icon); + } + }); + } } diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java index 35b8a504..f3e00f12 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java @@ -168,6 +168,11 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt } } + public void addPane(String name, String label, String icon) { + // TODO handle icon + mNavigationAdapter.add(new Pane(name, label, 0)); + } + public void closeDrawers() { mDrawerLayout.closeDrawers(); } From 8a10848e15fc3dd2057a6582b038db00846bebe1 Mon Sep 17 00:00:00 2001 From: fkloft Date: Mon, 2 Dec 2013 23:40:49 +0100 Subject: [PATCH 03/17] Naive attempt to make bookmarks compatible with nav drawer. @ZasoGD - please have a look, if necessary undo this commit and do it right --- plugins/bookmarks-by-zaso.user.js | 14 +++- plugins/bookmarks-css.css | 128 ++++++++++++++---------------- 2 files changed, 73 insertions(+), 69 deletions(-) diff --git a/plugins/bookmarks-by-zaso.user.js b/plugins/bookmarks-by-zaso.user.js index 89d4e6ed..c709cfb4 100644 --- a/plugins/bookmarks-by-zaso.user.js +++ b/plugins/bookmarks-by-zaso.user.js @@ -169,6 +169,13 @@ window.plugin.bookmarks.saveStorageBox(); } + window.plugin.bookmarks.onPaneChanged = function(pane) { + if(pane == "plugin-bookmarks") + $('#bookmarksBox').css("display", ""); + else + $('#bookmarksBox').css("display", "none"); + } + // Switch list (maps/portals) window.plugin.bookmarks.switchPageBkmrksBox = function(elem, page) { window.plugin.bookmarks.statusBox.page = page; @@ -938,8 +945,13 @@ $("#bookmarksBox #bookmarksMin , #bookmarksBox ul li, #bookmarksBox ul li a, #bookmarksBox ul li a span, #bookmarksBox h5, #bookmarksBox .addForm a").disableSelection(); $('#bookmarksBox').css({'top':window.plugin.bookmarks.statusBox.pos.x, 'left':window.plugin.bookmarks.statusBox.pos.y}); }else{ - $('#portaldetails').before(window.plugin.bookmarks.htmlBoxTrigger + window.plugin.bookmarks.htmlBkmrksBox); + $('body').append(window.plugin.bookmarks.htmlBkmrksBox); + $('#bookmarksBox').css("display", "none").addClass("mobile"); + if(typeof android !== 'undefined' && android && android.addPane) + android.addPane("plugin-bookmarks", "Bookmarks", "ic_action_star"); + window.addHook('paneChanged', window.plugin.bookmarks.onPaneChanged); + // Remove the star window.addHook('portalSelected', function(data) { if(data.selectedPortalGuid === null) { diff --git a/plugins/bookmarks-css.css b/plugins/bookmarks-css.css index 2fca0d09..d051677f 100644 --- a/plugins/bookmarks-css.css +++ b/plugins/bookmarks-css.css @@ -358,139 +358,131 @@ /********************************************** MOBILE **********************************************/ -#sidebar #bookmarksBox{ - position:static !important; - width:auto !important; - margin:0 !important; +#bookmarksBox.mobile{ + position:absolute !important; + width: 100% !important; + height: 100% !important; + top: 0 !important; + left: 0 !important; + margin: 0 !important; + padding: 0 !important; + border: 0 !important; + background: #0E3D4E; } -#sidebar #bkmrksTrigger, -#sidebar #bookmarksBox .bookmarkList ul, -#sidebar #bookmarksBox .bookmarkList ul li, -#sidebar #bookmarksBox .bookmarkList.current, -#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder.open ul{ +#bookmarksBox.mobile .bookmarkList ul, +#bookmarksBox.mobile .bookmarkList ul li, +#bookmarksBox.mobile .bookmarkList.current, +#bookmarksBox.mobile .bookmarkList li.bookmarkFolder.open ul{ width:100% !important; display:block !important; } -#sidebar #bookmarksBox *{ +#bookmarksBox.mobile *{ box-shadow:none !important; border-width:0 !important; } -#sidebar #bookmarksBox #topBar{ +#bookmarksBox.mobile #topBar{ display:none !important; } -#sidebar #bookmarksBox #bookmarksTypeBar h5{ +#bookmarksBox.mobile #bookmarksTypeBar h5{ cursor:pointer; text-align:center; float:left; width:50%; padding:7px 0; } -#sidebar #bookmarksBox #bookmarksTypeBar h5.current{ +#bookmarksBox.mobile #bookmarksTypeBar h5.current{ cursor:default; color:#fff; } -#sidebar #bookmarksBox #bookmarksTypeBar, -#sidebar #bookmarksBox .bookmarkList .addForm{ +#bookmarksBox.mobile #bookmarksTypeBar, +#bookmarksBox.mobile .bookmarkList .addForm{ border-bottom:1px solid #20a8b1 !important; } -#sidebar #bookmarksBox .bookmarkList ul li ul li.bkmrk, -#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder .folderLabel{ +#bookmarksBox.mobile .bookmarkList ul li ul li.bkmrk, +#bookmarksBox.mobile .bookmarkList li.bookmarkFolder .folderLabel{ height:36px !important; clear:both; } -#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder .folderLabel a, -#sidebar #bookmarksBox .bookmarkList ul li ul li.bkmrk a{ +#bookmarksBox.mobile .bookmarkList li.bookmarkFolder .folderLabel a, +#bookmarksBox.mobile .bookmarkList ul li ul li.bkmrk a{ background:none; padding:7px 0; height:auto; box-shadow:inset 0 1px 0 #20a8b1 !important; } -#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder a.bookmarksRemoveFrom, -#sidebar #bookmarksBox .bookmarkList li.bkmrk a.bookmarksRemoveFrom{ +#bookmarksBox.mobile .bookmarkList li.bookmarkFolder a.bookmarksRemoveFrom, +#bookmarksBox.mobile .bookmarkList li.bkmrk a.bookmarksRemoveFrom{ box-shadow:inset 0 1px 0 #20a8b1,inset -1px 0 0 #20a8b1 !important; width:15%; background:none !important; } -#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder a.bookmarksAnchor, -#sidebar #bookmarksBox .bookmarkList li.bkmrk a.bookmarksLink{ +#bookmarksBox.mobile .bookmarkList li.bookmarkFolder a.bookmarksAnchor, +#bookmarksBox.mobile .bookmarkList li.bkmrk a.bookmarksLink{ text-indent:10px; width:85%; height:21px; overflow:hidden; } -#sidebar #bookmarksBox .bookmarkList ul li.bookmarkFolder ul{ +#bookmarksBox.mobile .bookmarkList ul li.bookmarkFolder ul{ margin-left:0 !important; } -#sidebar #bookmarksBox .bookmarkList > ul{ +#bookmarksBox.mobile .bookmarkList > ul{ border-bottom:1px solid #20a8b1 !important; border-right:1px solid #20a8b1 !important; } -#sidebar #bookmarksBox .bookmarkList .bookmarkFolder.othersBookmarks ul{ +#bookmarksBox.mobile .bookmarkList .bookmarkFolder.othersBookmarks ul{ border-top:5px solid #20a8b1 !important; } -#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder, -#sidebar #bookmarksBox .bookmarkList li.bkmrk{ +#bookmarksBox.mobile .bookmarkList li.bookmarkFolder, +#bookmarksBox.mobile .bookmarkList li.bkmrk{ box-shadow:inset 0 1px 0 #20a8b1, 1px 0 0 #20a8b1, -1px 1px 0 #20a8b1 !important; } -#sidebar #bookmarksBox .bookmarkList > ul{ +#bookmarksBox.mobile .bookmarkList > ul{ max-height:none; width:85% !important; } -#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder .folderLabel{ +#bookmarksBox.mobile .bookmarkList li.bookmarkFolder .folderLabel{ box-shadow:0 1px 0 #20a8b1 !important; } -#sidebar #bookmarksBox .bookmarkList ul li.bookmarkFolder ul{ +#bookmarksBox.mobile .bookmarkList ul li.bookmarkFolder ul{ width:85% !important; margin-left:15% !important; } -#sidebar #bookmarksBox .bookmarkList ul li.bookmarkFolder.othersBookmarks ul{ +#bookmarksBox.mobile .bookmarkList ul li.bookmarkFolder.othersBookmarks ul{ width:100% !important; margin-left:0% !important; } -#sidebar #bkmrksTrigger{ - position:static; - width:auto; - margin:0; - height:auto; - background:none; - text-indent:0; - padding:11px 0 9px; - margin-bottom:5px; -} -#sidebar #bkmrksTrigger.open{ - margin-bottom:0; -} -#sidebar #bookmarksBox{ +#bookmarksBox.mobile{ margin-bottom:5px !important; } -#sidebar #bookmarksBox #bookmarksTypeBar{ +#bookmarksBox.mobile #bookmarksTypeBar{ height:auto; } -#sidebar #bookmarksBox .addForm, -#sidebar #bookmarksBox .addForm *{ +#bookmarksBox.mobile .addForm, +#bookmarksBox.mobile .addForm *{ height:35px; padding:0; } -#sidebar #bookmarksBox .addForm a{ +#bookmarksBox.mobile .addForm a{ line-height:37px; } -#sidebar #bookmarksBox .addForm a{ +#bookmarksBox.mobile .addForm a{ width:25% !important; } -#sidebar #bookmarksBox .addForm input{ +#bookmarksBox.mobile .addForm input{ width:50% !important; text-indent:10px; } -#sidebar #bookmarksBox #bkmrk_portals .addForm input{ +#bookmarksBox.mobile #bkmrk_portals .addForm input{ width:75% !important; } -#sidebar #bookmarksBox #bookmarksTypeBar h5, -#sidebar #bookmarksBox .bookmarkList .addForm a{ +#bookmarksBox.mobile #bookmarksTypeBar h5, +#bookmarksBox.mobile .bookmarkList .addForm a{ box-shadow:-1px 0 0 #20a8b1 !important; } -#sidebar #bookmarksBox .bookmarkList li.bookmarkFolder ul{ +#bookmarksBox.mobile .bookmarkList li.bookmarkFolder ul{ display:none !important; min-height:37px !important; } @@ -500,26 +492,26 @@ padding:0 3px 1px 4px; background:#262c32; } -#sidebar #bookmarksBox .bookmarkList .bookmarkFolder .folderLabel .bookmarksAnchor span, -#sidebar #bookmarksBox .bookmarkList .bookmarkFolder .folderLabel > span, -#sidebar #bookmarksBox .bookmarkList .bookmarkFolder .folderLabel > span > span, -#sidebar #bookmarksBox .bookmarkList .triangle{ +#bookmarksBox.mobile .bookmarkList .bookmarkFolder .folderLabel .bookmarksAnchor span, +#bookmarksBox.mobile .bookmarkList .bookmarkFolder .folderLabel > span, +#bookmarksBox.mobile .bookmarkList .bookmarkFolder .folderLabel > span > span, +#bookmarksBox.mobile .bookmarkList .triangle{ width:0 !important; height:0 !important; } -#sidebar #bookmarksBox .bookmarkList .bookmarkFolder .folderLabel .bookmarksAnchor span{ +#bookmarksBox.mobile .bookmarkList .bookmarkFolder .folderLabel .bookmarksAnchor span{ float:left !important; border-width:5px 0 5px 7px !important; border-color:transparent transparent transparent white !important; margin:7px 3px 0 13px !important; } -#sidebar #bookmarksBox .bookmarkList .bookmarkFolder.open .folderLabel .bookmarksAnchor span{ +#bookmarksBox.mobile .bookmarkList .bookmarkFolder.open .folderLabel .bookmarksAnchor span{ margin:9px 1px 0 12px !important; border-width:7px 5px 0 5px !important; border-color:white transparent transparent transparent !important; } -#sidebar #bookmarksBox .bookmarkList .bookmarkFolder .folderLabel > span, -#sidebar #bookmarksBox .bookmarkList .bookmarkFolder .folderLabel > span > span{ +#bookmarksBox.mobile .bookmarkList .bookmarkFolder .folderLabel > span, +#bookmarksBox.mobile .bookmarkList .bookmarkFolder .folderLabel > span > span{ display:none !important; border-width:0 12px 10px 0 !important; border-color:transparent #20a8b1 transparent transparent !important; @@ -528,14 +520,14 @@ top:21px !important; left:-10px !important; } -#sidebar #bookmarksBox .bookmarkList .bookmarkFolder .folderLabel > span > span{ +#bookmarksBox.mobile .bookmarkList .bookmarkFolder .folderLabel > span > span{ top:18px !important; left:0 !important; border-width:0 10px 9px 0 !important; border-color:transparent #069 transparent transparent !important; } -#sidebar #bookmarksBox .bookmarkList .bookmarkFolder.open .folderLabel > span, -#sidebar #bookmarksBox .bookmarkList .bookmarkFolder.open .folderLabel > span > span{ +#bookmarksBox.mobile .bookmarkList .bookmarkFolder.open .folderLabel > span, +#bookmarksBox.mobile .bookmarkList .bookmarkFolder.open .folderLabel > span > span{ display:block !important; } /********************************************** @@ -605,4 +597,4 @@ width:96%; height:120px; resize:vertical; -} \ No newline at end of file +} From cb603ea7be712a974691dd6d0bb626822757848d Mon Sep 17 00:00:00 2001 From: fkloft Date: Tue, 3 Dec 2013 00:06:15 +0100 Subject: [PATCH 04/17] Allow plugins to specify an icon for the nav drawer (and add icons for bookmarks) --- mobile/res/drawable-hdpi/ic_action_star.png | Bin 0 -> 3147 bytes mobile/res/drawable-mdpi/ic_action_star.png | Bin 0 -> 3048 bytes mobile/res/drawable-xhdpi/ic_action_star.png | Bin 0 -> 3220 bytes mobile/res/drawable-xxhdpi/ic_action_star.png | Bin 0 -> 3390 bytes .../iitc_mobile/IITC_NavigationHelper.java | 4 ++-- 5 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 mobile/res/drawable-hdpi/ic_action_star.png create mode 100644 mobile/res/drawable-mdpi/ic_action_star.png create mode 100644 mobile/res/drawable-xhdpi/ic_action_star.png create mode 100644 mobile/res/drawable-xxhdpi/ic_action_star.png diff --git a/mobile/res/drawable-hdpi/ic_action_star.png b/mobile/res/drawable-hdpi/ic_action_star.png new file mode 100644 index 0000000000000000000000000000000000000000..7c3e1db9f6d349f201e1bf683c96ba391a6a6001 GIT binary patch literal 3147 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 E1J8%R>Hq)$ literal 0 HcmV?d00001 diff --git a/mobile/res/drawable-xhdpi/ic_action_star.png b/mobile/res/drawable-xhdpi/ic_action_star.png new file mode 100644 index 0000000000000000000000000000000000000000..e3291481f739712203c780993c16b714ef2af725 GIT binary patch literal 3220 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 Rp?D1(Fw!&Et%W#8{SPZM7qS2V literal 0 HcmV?d00001 diff --git a/mobile/res/drawable-xxhdpi/ic_action_star.png b/mobile/res/drawable-xxhdpi/ic_action_star.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e51a75bc8927eddababa2d349b79ed27e6633b GIT binary patch literal 3390 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 ZeR-|*-Hb($?QJdqT`eQcYKUFL{{W#dbNT=P literal 0 HcmV?d00001 diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java index f3e00f12..e8aaa085 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java @@ -169,8 +169,8 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt } public void addPane(String name, String label, String icon) { - // TODO handle icon - mNavigationAdapter.add(new Pane(name, label, 0)); + int resId = mIitc.getResources().getIdentifier(icon, "drawable", mIitc.getPackageName()); + mNavigationAdapter.add(new Pane(name, label, resId)); } public void closeDrawers() { From fd24fad6417b815258700c155a4af51f67af79f5 Mon Sep 17 00:00:00 2001 From: fkloft Date: Tue, 3 Dec 2013 16:48:40 +0100 Subject: [PATCH 05/17] Change background colors --- mobile/smartphone.css | 10 ++++------ plugins/bookmarks-css.css | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/mobile/smartphone.css b/mobile/smartphone.css index be95476e..60c1109f 100644 --- a/mobile/smartphone.css +++ b/mobile/smartphone.css @@ -1,5 +1,4 @@ body { - background: #000; color: #fff; } @@ -81,7 +80,7 @@ body { } #sidebar, #chatcontrols, #chat, #chatinput { - background: #0B3351 !important; + background: transparent !important; } .leaflet-top .leaflet-control { @@ -199,19 +198,18 @@ body { padding: 5px; margin-top: 3px; margin-bottom: 3px; - border: 2px outset #0e3d4e; + border: 2px outset #20A8B1; } #toolbox > a { padding: 5px; margin-top: 3px; margin-bottom: 3px; - border: 2px outset #0e3d4e; + border: 2px outset #20A8B1; } #portaldetails .close { padding: 4px; - border: 1px outset #0e3d4e; + border: 1px outset #20A8B1; margin-top: 2px; - background: #0e3d4e; } diff --git a/plugins/bookmarks-css.css b/plugins/bookmarks-css.css index d051677f..9c160667 100644 --- a/plugins/bookmarks-css.css +++ b/plugins/bookmarks-css.css @@ -367,7 +367,7 @@ margin: 0 !important; padding: 0 !important; border: 0 !important; - background: #0E3D4E; + background: transparent !important;; } #bookmarksBox.mobile .bookmarkList ul, #bookmarksBox.mobile .bookmarkList ul li, From 6c0327b01c2e492e93880f0a83a455a4813ab0ce Mon Sep 17 00:00:00 2001 From: fkloft Date: Tue, 3 Dec 2013 23:07:05 +0100 Subject: [PATCH 06/17] Show a hint that plugins are now in the nav drawer --- mobile/res/values/strings.xml | 6 ++++++ .../src/com/cradle/iitc_mobile/IITC_NavigationHelper.java | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/mobile/res/values/strings.xml b/mobile/res/values/strings.xml index 1babb023..7fe993dd 100644 --- a/mobile/res/values/strings.xml +++ b/mobile/res/values/strings.xml @@ -68,6 +68,12 @@ • tap and hold a portal for a second
• tap on the left half of the status bar]]> + +
+ Some plugins (e.g. portals list and bookmarks) now appear in the navigation drawer for quick access.
+ They won\'t appear in the info pane any more.

+ Swipe from the left edge of your screen (or click the app icon) to seem them.]]> +
UI Misc diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java index e8aaa085..0b61a00d 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java @@ -36,6 +36,7 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt public static final int NOTICE_DRAWERS = 1 << 0; public static final int NOTICE_INFO = 1 << 1; + public static final int NOTICE_PANES = 1 << 2; // next one would be 1<<2; (this results in 1,2,4,8,...) private final IITC_Mobile mIitc; @@ -87,6 +88,9 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt case NOTICE_INFO: text = mIitc.getText(R.string.notice_info).toString(); break; + case NOTICE_PANES: + text = mIitc.getText(R.string.notice_panes).toString(); + break; default: return; } @@ -169,6 +173,8 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt } public void addPane(String name, String label, String icon) { + showNotice(NOTICE_PANES); + int resId = mIitc.getResources().getIdentifier(icon, "drawable", mIitc.getPackageName()); mNavigationAdapter.add(new Pane(name, label, resId)); } From b0d1ec84de7a8a909d428edb74f849c3d29a59ed Mon Sep 17 00:00:00 2001 From: fkloft Date: Tue, 3 Dec 2013 22:51:03 +0100 Subject: [PATCH 07/17] mobile: make portals-list appear appear in nav drawer --- plugins/portals-list.user.js | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/plugins/portals-list.user.js b/plugins/portals-list.user.js index ce61c6a6..536085f0 100644 --- a/plugins/portals-list.user.js +++ b/plugins/portals-list.user.js @@ -112,13 +112,17 @@ window.plugin.portalslist.displayPL = function() { html = '
Nothing to show!
'; }; - dialog({ - html: '
' + html + '
', - dialogClass: 'ui-dialog-portalslist', - title: 'Portal list: ' + window.plugin.portalslist.listPortals.length + ' ' + (window.plugin.portalslist.listPortals.length == 1 ? 'portal' : 'portals'), - id: 'portal-list', - width: 700 - }); + if(typeof android !== 'undefined' && android && android.addPane) { + $('
' + html + '
').appendTo(document.body); + } else { + dialog({ + html: '
' + html + '
', + dialogClass: 'ui-dialog-portalslist', + title: 'Portal list: ' + window.plugin.portalslist.listPortals.length + ' ' + (window.plugin.portalslist.listPortals.length == 1 ? 'portal' : 'portals'), + id: 'portal-list', + width: 700 + }); + } //run the name resolving process //resolvePlayerNames(); @@ -224,9 +228,23 @@ window.plugin.portalslist.getPortalLink = function(portal,guid) { return div; } +window.plugin.portalslist.onPaneChanged = function(pane) { + if(pane == "plugin-portalslist") + window.plugin.portalslist.displayPL(); + else + $("#portalslist").remove() +}; + var setup = function() { - $('#toolbox').append(' Portals list'); + if(typeof android !== 'undefined' && android && android.addPane) { + android.addPane("plugin-portalslist", "Portals list", "ic_action_view_as_list"); + addHook("paneChanged", window.plugin.portalslist.onPaneChanged); + } else { + $('#toolbox').append(' Portals list'); + } + $('head').append(''); - - }; var setup = window.plugin.miniMap.setup; From 0df056f083e6331d5eb5262c48fb55e68728323c Mon Sep 17 00:00:00 2001 From: Philipp Schaefer Date: Wed, 4 Dec 2013 19:49:03 +0100 Subject: [PATCH 16/17] renamed drawer notice since it is used as howto now --- .../src/com/cradle/iitc_mobile/IITC_NavigationHelper.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java index 00f55636..79ce1b9f 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java @@ -36,7 +36,7 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt // Makes the icon/title clickable // getActionBar().setHomeButtonEnabled(enabled); - public static final int NOTICE_DRAWERS = 1 << 0; + public static final int NOTICE_HOWTO = 1 << 0; public static final int NOTICE_INFO = 1 << 1; public static final int NOTICE_PANES = 1 << 2; // next one would be 1<<2; (this results in 1,2,4,8,...) @@ -77,7 +77,7 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt onPrefChanged(); // also calls updateActionBar() - showNotice(NOTICE_DRAWERS); + showNotice(NOTICE_HOWTO); } private void showNotice(final int which) { @@ -85,7 +85,7 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt int text; switch (which) { - case NOTICE_DRAWERS: + case NOTICE_HOWTO: text = R.string.notice_how_to; break; case NOTICE_INFO: From c537811e9b996bdcda80510d4e04e17fd3654796 Mon Sep 17 00:00:00 2001 From: fkloft Date: Wed, 4 Dec 2013 19:58:15 +0100 Subject: [PATCH 17/17] Remove zoom slider from minimap --- plugins/zoom-slider.user.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/zoom-slider.user.js b/plugins/zoom-slider.user.js index d54e4be0..0b5a96a9 100644 --- a/plugins/zoom-slider.user.js +++ b/plugins/zoom-slider.user.js @@ -27,6 +27,11 @@ window.plugin.zoomSlider.setup = function() { @@INCLUDERAW:external/L.Control.Zoomslider.js@@ try { console.log('done loading Leaflet.zoomslider JS'); } catch(e) {} + // prevent Zoomslider from being activated by default (e.g. in minimap) + L.Map.mergeOptions({ + zoomsliderControl: false + }); + if(map.zoomControl._map) { window.map.removeControl(map.zoomControl); } @@ -35,7 +40,7 @@ window.plugin.zoomSlider.setup = function() { $('head').append(''); }; -var setup = window.plugin.zoomSlider.setup; +var setup = window.plugin.zoomSlider.setup; // PLUGIN END //////////////////////////////////////////////////////////