@@ -7,6 +7,7 @@ import utils = require("utils/utils");
77import view = require( "ui/core/view" ) ;
88import application = require( "application" ) ;
99import imageSource = require( "image-source" ) ;
10+ import enums = require( "ui/enums" ) ;
1011
1112declare var exports ;
1213require ( "utils/module-merge" ) . merge ( frameCommon , exports ) ;
@@ -143,14 +144,29 @@ class PageFragmentBody extends android.app.Fragment {
143144
144145 for ( var i = 0 ; i < items . length ; i ++ ) {
145146 var item = items [ i ] ;
146- var menuItem = menu . add ( android . view . Menu . NONE , i , item . priority , item . text ) ;
147+ var menuItem = menu . add ( android . view . Menu . NONE , i , android . view . Menu . NONE , item . text ) ;
147148 if ( item . icon ) {
148- var img = imageSource . fromFile ( item . icon ) ;
149+ var img = imageSource . fromResource ( item . icon ) ;
149150 var drawable = new android . graphics . drawable . BitmapDrawable ( img . android ) ;
150151 menuItem . setIcon ( drawable ) ;
151152 }
152153
153- menuItem . setShowAsAction ( android . view . MenuItem . SHOW_AS_ACTION_ALWAYS ) ;
154+ var showAsAction = PageFragmentBody . getShowAsAction ( item ) ;
155+ menuItem . setShowAsAction ( showAsAction ) ;
156+ }
157+ }
158+
159+ private static getShowAsAction ( menuItem : pages . MenuItem ) : number {
160+ switch ( menuItem . android . position ) {
161+ case enums . MenuItemPosition . actionBarIfRoom :
162+ return android . view . MenuItem . SHOW_AS_ACTION_IF_ROOM ;
163+
164+ case enums . MenuItemPosition . popup :
165+ return android . view . MenuItem . SHOW_AS_ACTION_NEVER ;
166+
167+ case enums . MenuItemPosition . actionBar :
168+ default :
169+ return android . view . MenuItem . SHOW_AS_ACTION_ALWAYS ;
154170 }
155171 }
156172
@@ -462,7 +478,7 @@ class NativeActivity extends com.tns.NativeScriptActivity {
462478 trace . write ( "NativeScriptActivity.onDestroy();" , trace . categories . NativeLifecycle ) ;
463479 }
464480
465- onOptionsItemSelected ( menuItem ) {
481+ onOptionsItemSelected ( menuItem : android . view . IMenuItem ) {
466482 if ( ! this . androidFrame . hasListeners ( frameCommon . knownEvents . android . optionSelected ) ) {
467483 return false ;
468484 }
@@ -638,10 +654,11 @@ function findPageForFragment(fragment: android.app.Fragment, frame: Frame) {
638654 trace . write ( "Current page matches fragment: " + fragmentTag , trace . categories . NativeLifecycle ) ;
639655 }
640656 else {
641- for ( var i = 0 ; i < frame . backStack . length ; i ++ ) {
642- entry = frame . backStack [ i ] ;
643- if ( frame . backStack [ i ] . resolvedPage [ TAG ] === fragmentTag ) {
644- entry = frame . backStack [ i ] ;
657+ var backStack = frame . backStack ;
658+ for ( var i = 0 ; i < backStack . length ; i ++ ) {
659+ entry = backStack [ i ] ;
660+ if ( backStack [ i ] . resolvedPage [ TAG ] === fragmentTag ) {
661+ entry = backStack [ i ] ;
645662 break ;
646663 }
647664 }
0 commit comments